diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6835f191b..59ed0a34f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,12 +12,12 @@ pool: steps: - task: NodeTool@0 inputs: - versionSpec: '14.x' + versionSpec: '16.x' displayName: 'Install Node.js' - script: | - npm i -g npm@7 - displayName: 'Install npm 7' + npm i -g npm@8 + displayName: 'Install npm 8' - script: | npm install diff --git a/dev.md b/dev.md index ff0edec2a..b75100a01 100644 --- a/dev.md +++ b/dev.md @@ -13,8 +13,8 @@ The SandDance repo is a monorepo made up of several packages, managed by [Lerna] 1. [sanddance-app](https://github.com/microsoft/SandDance/tree/master/packages/sanddance-app) - React-based sample application used on website. ## System requirements -* Node.js 14 or higher -* NPM 7 or higher +* Node.js 16 or higher +* NPM 8 or higher ## Install 1. Clone this repo diff --git a/docs/dist/powerbi/v4/SandDance2019beta4.4.0.9.pbiviz b/docs/dist/powerbi/v4/SandDance2019beta4.4.0.9.pbiviz new file mode 100644 index 000000000..ffd18c2dd Binary files /dev/null and b/docs/dist/powerbi/v4/SandDance2019beta4.4.0.9.pbiviz differ diff --git a/docs/dist/sanddance-explorer/v4/sanddance-explorer.js b/docs/dist/sanddance-explorer/v4/sanddance-explorer.js index 47b248df9..bc6dbdf7a 100644 --- a/docs/dist/sanddance-explorer/v4/sanddance-explorer.js +++ b/docs/dist/sanddance-explorer/v4/sanddance-explorer.js @@ -98,7 +98,7 @@ var $818261f0bc10eb56$var$BarChartRecommenderSummary = /** @class */ function() if (column.name === this.best.columns.x || column.stats.isSequential) continue; if (column.quantitative || column.stats.distinctValueCount < $mKnoG.maxCategoricalColors && column.stats.distinctValueCount > 1) { this.best.columns.color = this.best.columns.sort = column.name; - this.best.scheme = $mKnoG.defaultColorScheme(column); + this.best.scheme = (0, $mKnoG.defaultColorScheme)(column); if (column.quantitative) this.best.colorBin = "quantile"; break; } @@ -243,16 +243,16 @@ var $482125d789b1323b$var$ScatterPlotRecommenderSummary = /** @class */ function columns.forEach(function(column) { if (!rec.columns.x) { if (column.name.toLowerCase() === "x") return rec.columns.x = column.name; - else if ($a7afS.isLongitude(column)) return rec.columns.x = column.name; + else if ((0, $a7afS.isLongitude)(column)) return rec.columns.x = column.name; } if (!rec.columns.y) { if (column.name.toLowerCase() === "y") return rec.columns.y = column.name; - else if ($a7afS.isLatitude(column)) return rec.columns.y = column.name; + else if ((0, $a7afS.isLatitude)(column)) return rec.columns.y = column.name; } if (!rec.columns.color && !column.stats.isSequential) { if (column.quantitative || column.stats.distinctValueCount < $mKnoG.maxCategoricalColors) { rec.columns.color = rec.columns.sort = column.name; - rec.scheme = $mKnoG.defaultColorScheme(column); + rec.scheme = (0, $mKnoG.defaultColorScheme)(column); if (column.quantitative) rec.colorBin = "quantile"; return; } @@ -286,7 +286,7 @@ function $178167658ad4c5ea$var$preferredColumnForTreemapSize(columns, strict) { if (c.quantitative) { if (strict && c.stats.hasNegative) continue; if (strict && c.stats.isSequential) continue; - if (strict && $a7afS.isGeo(c)) continue; + if (strict && (0, $a7afS.isGeo)(c)) continue; return c; } } @@ -38860,7 +38860,7 @@ const $8f1b85a9470d3af5$export$c4b7cd609ccf4a5a = (title, embed)=>` - + diff --git a/docs/docs/sanddance-explorer/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html b/docs/docs/sanddance-explorer/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html index 8bda51d40..4f1f30f38 100644 --- a/docs/docs/sanddance-explorer/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html +++ b/docs/docs/sanddance-explorer/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html @@ -52,6 +52,8 @@

Properties

+
+ +

getView

+ + +
+
+ +

lerpView

+ + +

pickLasso

@@ -724,7 +831,7 @@

pickLasso

  • Parameters

    @@ -759,7 +866,7 @@

    render

  • Parameters

    @@ -785,7 +892,7 @@

    requestWebXRSession

  • Returns void

    @@ -802,7 +909,7 @@

    reset

  • Parameters

    @@ -825,7 +932,7 @@

    resetManipulationOrigin

  • Returns void

    @@ -842,7 +949,7 @@

    resetModel

  • Parameters

    @@ -865,7 +972,7 @@

    setModelManipulationOrigin

  • Parameters

    @@ -888,7 +995,7 @@

    setModelPosition

  • Parameters

    @@ -914,7 +1021,7 @@

    setModelRotation

  • Parameters

    @@ -940,7 +1047,7 @@

    setModelScale

  • Parameters

    @@ -956,6 +1063,32 @@

    Returns void

  • +
    + +

    setView

    + + +

    start

    @@ -966,7 +1099,7 @@

    start

  • Returns void

    @@ -983,7 +1116,7 @@

    stop

  • Returns void

    @@ -1000,7 +1133,7 @@

    update

  • Parameters

    @@ -1085,6 +1218,12 @@

    Returns void manipulationOriginChangedCallback

  • +
  • + startCallback +
  • +
  • + stopCallback +
  • updateCallback
  • @@ -1151,6 +1290,12 @@

    Returns void getModelScale +
  • + getView +
  • +
  • + lerpView +
  • pickLasso
  • @@ -1181,6 +1326,9 @@

    Returns void setModelScale +
  • + setView +
  • start
  • diff --git a/docs/docs/sanddance-explorer/v4/index.html b/docs/docs/sanddance-explorer/v4/index.html index 5f5ba94df..e3ca79c5b 100644 --- a/docs/docs/sanddance-explorer/v4/index.html +++ b/docs/docs/sanddance-explorer/v4/index.html @@ -24,7 +24,7 @@

    Installation

    Add these to the dependencies section of your package.json, then run npm install:

    "@msrvida/sanddance-explorer": "^4",
     "@fluentui/react": "^8",
    -"vega": "^5.20"
    +"vega": "^5.22"
     

    Import these in your JavaScript:

    import * as fluentui from '@fluentui/react';
    diff --git a/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html b/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html
    index e7b5ccf5a..de115fd3d 100644
    --- a/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html
    +++ b/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html
    @@ -50,6 +50,7 @@ 

    Index

    Properties

    @@ -70,6 +71,17 @@

    Optional antialias

    +
    + +

    Optional contextmenu

    +
    contextmenu: boolean
    + +

    Optional height

    @@ -167,6 +179,9 @@

    Optional width

  • antialias
  • +
  • + contextmenu +
  • height
  • diff --git a/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html b/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html index 53eb8b6aa..e47ea1a30 100644 --- a/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html +++ b/docs/docs/sanddance-explorer/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html @@ -78,7 +78,7 @@

    bounds

    @@ -89,7 +89,7 @@

    clip

    @@ -100,7 +100,7 @@

    interactive

    @@ -111,7 +111,7 @@

    items

    @@ -122,7 +122,7 @@

    marktype

    @@ -133,7 +133,7 @@

    name

    @@ -144,7 +144,7 @@

    role

    diff --git a/docs/docs/sanddance-explorer/v4/interfaces/controls.IDialogProps.html b/docs/docs/sanddance-explorer/v4/interfaces/controls.IDialogProps.html index 25da43987..2029a82c4 100644 --- a/docs/docs/sanddance-explorer/v4/interfaces/controls.IDialogProps.html +++ b/docs/docs/sanddance-explorer/v4/interfaces/controls.IDialogProps.html @@ -46,7 +46,7 @@

    Properties

  • ariaDescribedById
  • ariaLabelledById
  • buttons
  • -
  • children
  • +
  • children
  • className
  • closeButtonAriaLabel
  • componentRef
  • @@ -98,7 +98,7 @@

    Optional ariaDescribed

    Inherited from FluentUITypes.IDialogProps.ariaDescribedById

      -
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:129
    • +
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:130
    @@ -119,7 +119,7 @@

    Optional ariaLabelled

    Inherited from FluentUITypes.IDialogProps.ariaLabelledById

      -
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:124
    • +
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:125
    @@ -143,11 +143,12 @@

    Optional buttons

    -
    +

    Optional children

    children: ReactNode
    @@ -215,7 +216,7 @@

    Optional containerClass

    Inherited from FluentUITypes.IDialogProps.containerClassName

      -
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:83
    • +
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:84
    @@ -236,7 +237,7 @@

    Optional contentClass

    Inherited from FluentUITypes.IDialogProps.contentClassName

      -
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:114
    • +
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:115
    @@ -257,7 +258,7 @@

    Optional dialogContent

    Inherited from FluentUITypes.IDialogProps.dialogContentProps

      -
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:36
    • +
    • Defined in fluentui-react-cdn-typings/node_modules/@fluentui/react/lib/components/Dialog/Dialog.types.d.ts:37
    @@ -353,7 +354,7 @@

    Optional hidden

    @@ -392,7 +393,7 @@

    Optional isBlocking

    @@ -437,7 +438,7 @@

    Optional isDarkOverl
    @@ -461,7 +462,7 @@

    Optional isOpen

    @@ -496,7 +497,7 @@

    Optional maxWidth

    @@ -513,7 +514,7 @@

    Optional minWidth

    @@ -530,7 +531,7 @@

    Optional modalProps

    @@ -568,7 +569,7 @@

    Optional styles

    @@ -584,7 +585,7 @@

    Optional subText

    @@ -605,7 +606,7 @@

    Optional theme

    @@ -632,7 +633,7 @@

    Optional topButtonsP
    @@ -653,7 +654,7 @@

    Optional type

    @@ -684,7 +685,7 @@

    Optional onDismiss

    @@ -714,7 +715,7 @@

    Optional onDismissed

    @@ -742,7 +743,7 @@

    Optional onLayerDid<
    @@ -770,7 +771,7 @@

    Optional onLayerMoun
    @@ -822,7 +823,7 @@

    Returns void buttons -
  • +
  • children
  • diff --git a/docs/docs/sanddance-react/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html b/docs/docs/sanddance-react/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html index 4b0eea554..63df51723 100644 --- a/docs/docs/sanddance-react/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html +++ b/docs/docs/sanddance-react/v4/classes/SandDance.VegaMorphCharts.types.MorphChartsCore.html @@ -52,6 +52,8 @@

    Properties

  • +
    + +

    startCallback

    +
    startCallback: () => void
    + +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      +
        +
      • +

        Returns void

        +
      • +
      +
    • +
    +
    +
    +
    + +

    stopCallback

    +
    stopCallback: () => void
    + +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      +
        +
      • +

        Returns void

        +
      • +
      +
    • +
    +
    +

    updateCallback

    updateCallback: (elapsedTime: number, xrFrame?: XRFrame) => void
    @@ -226,7 +281,7 @@

    webXRInputSourceRequestCallback

    webXRInputSourceRequestCallback: (profiles: string[], handedness: string, completed: (result: IWebXRInputSourceResponse) => void, failed: (e: string) => void) => void
    @@ -302,7 +357,7 @@

    webXRSessionEndedCallback

    webXRSessionEndedCallback: () => void
    @@ -327,7 +382,7 @@

    webXRSessionStartedCallback

    webXRSessionStartedCallback: () => void
    @@ -352,7 +407,7 @@

    webXRSupportedCallback

    webXRSupportedCallback: () => void
    @@ -385,7 +440,7 @@

    camera

  • Returns CameraBase

    @@ -393,7 +448,7 @@

    Returns CameraBas
  • Parameters

    @@ -416,7 +471,7 @@

    config

  • Returns Config

    @@ -433,7 +488,7 @@

    container

  • Returns HTMLElement

    @@ -450,7 +505,7 @@

    debugText

  • Returns DebugText

    @@ -467,7 +522,7 @@

    font

  • Returns Font

    @@ -484,7 +539,7 @@

    inputManager

  • Returns Manager

    @@ -501,7 +556,7 @@

    log

  • Returns Log

    @@ -518,7 +573,7 @@

    paletteResources

  • Returns PaletteResources

    @@ -536,7 +591,7 @@

    renderer

  • Returns RendererBase

    @@ -544,7 +599,7 @@

    Returns RendererB
  • Parameters

    @@ -567,7 +622,7 @@

    started

  • Returns boolean

    @@ -584,7 +639,7 @@

    totalFrames

  • Returns number

    @@ -601,7 +656,7 @@

    webXRSession

  • Returns XRSession

    @@ -621,7 +676,7 @@

    checkWebXRSupport

  • Returns void

    @@ -638,7 +693,7 @@

    getModelManipulationOrigin

  • Parameters

    @@ -661,7 +716,7 @@

    getModelPosition

  • Parameters

    @@ -684,7 +739,7 @@

    getModelRotation

  • Parameters

    @@ -707,13 +762,65 @@

    getModelScale

  • Returns number

  • +
    + +

    getView

    +
      +
    • getView(view: ModelView): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        view: ModelView
        +
      • +
      +

      Returns void

      +
    • +
    +
    +
    + +

    lerpView

    +
      +
    • lerpView(from: ModelView, to: ModelView, time: number): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        from: ModelView
        +
      • +
      • +
        to: ModelView
        +
      • +
      • +
        time: number
        +
      • +
      +

      Returns void

      +
    • +
    +

    pickLasso

    @@ -724,7 +831,7 @@

    pickLasso

  • Parameters

    @@ -759,7 +866,7 @@

    render

  • Parameters

    @@ -785,7 +892,7 @@

    requestWebXRSession

  • Returns void

    @@ -802,7 +909,7 @@

    reset

  • Parameters

    @@ -825,7 +932,7 @@

    resetManipulationOrigin

  • Returns void

    @@ -842,7 +949,7 @@

    resetModel

  • Parameters

    @@ -865,7 +972,7 @@

    setModelManipulationOrigin

  • Parameters

    @@ -888,7 +995,7 @@

    setModelPosition

  • Parameters

    @@ -914,7 +1021,7 @@

    setModelRotation

  • Parameters

    @@ -940,7 +1047,7 @@

    setModelScale

  • Parameters

    @@ -956,6 +1063,32 @@

    Returns void

  • +
    + +

    setView

    +
      +
    • setView(view: ModelView, isSmooth: boolean): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        view: ModelView
        +
      • +
      • +
        isSmooth: boolean
        +
      • +
      +

      Returns void

      +
    • +
    +

    start

    @@ -966,7 +1099,7 @@

    start

  • Returns void

    @@ -983,7 +1116,7 @@

    stop

  • Returns void

    @@ -1000,7 +1133,7 @@

    update

  • Parameters

    @@ -1082,6 +1215,12 @@

    Returns void manipulationOriginChangedCallback

  • +
  • + startCallback +
  • +
  • + stopCallback +
  • updateCallback
  • @@ -1148,6 +1287,12 @@

    Returns void getModelScale +
  • + getView +
  • +
  • + lerpView +
  • pickLasso
  • @@ -1178,6 +1323,9 @@

    Returns void setModelScale +
  • + setView +
  • start
  • diff --git a/docs/docs/sanddance-react/v4/index.html b/docs/docs/sanddance-react/v4/index.html index 0f447cd85..38072c2a5 100644 --- a/docs/docs/sanddance-react/v4/index.html +++ b/docs/docs/sanddance-react/v4/index.html @@ -25,7 +25,7 @@

    Installation

    "@msrvida/sanddance-react": "^4",
     "react": "^17",
     "react-dom": "^17",
    -"vega": "^5.20"
    +"vega": "^5.22"
     

    Import these in your JavaScript:

    import * as vega from 'vega';
    diff --git a/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html b/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html
    index c2524373b..a38b7aaf1 100644
    --- a/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html
    +++ b/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.BasicRendererOptions.html
    @@ -50,6 +50,7 @@ 

    Index

    Properties

    @@ -70,6 +71,17 @@

    Optional antialias

    +
    + +

    Optional contextmenu

    +
    contextmenu: boolean
    + +

    Optional height

    @@ -164,6 +176,9 @@

    Optional width

  • antialias
  • +
  • + contextmenu +
  • height
  • diff --git a/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html b/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html index fdb9ea72f..181b07c85 100644 --- a/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html +++ b/docs/docs/sanddance-react/v4/interfaces/SandDance.VegaMorphCharts.types.Scene3d.html @@ -78,7 +78,7 @@

    bounds

    @@ -89,7 +89,7 @@

    clip

    @@ -100,7 +100,7 @@

    interactive

    @@ -111,7 +111,7 @@

    items

    @@ -122,7 +122,7 @@

    marktype

    @@ -133,7 +133,7 @@

    name

    @@ -144,7 +144,7 @@

    role

    diff --git a/docs/docs/sanddance/v4/classes/VegaMorphCharts.types.MorphChartsCore.html b/docs/docs/sanddance/v4/classes/VegaMorphCharts.types.MorphChartsCore.html index 8c846be44..aa86993d5 100644 --- a/docs/docs/sanddance/v4/classes/VegaMorphCharts.types.MorphChartsCore.html +++ b/docs/docs/sanddance/v4/classes/VegaMorphCharts.types.MorphChartsCore.html @@ -49,6 +49,8 @@

    Properties

    • afterRenderCallback
    • manipulationOriginChangedCallback
    • +
    • startCallback
    • +
    • stopCallback
    • updateCallback
    • webXRInputSourceRequestCallback
    • webXRSessionEndedCallback
    • @@ -81,6 +83,8 @@

      Methods

    • getModelPosition
    • getModelRotation
    • getModelScale
    • +
    • getView
    • +
    • lerpView
    • pickLasso
    • render
    • requestWebXRSession
    • @@ -91,6 +95,7 @@

      Methods

    • setModelPosition
    • setModelRotation
    • setModelScale
    • +
    • setView
    • start
    • stop
    • update
    • @@ -111,7 +116,7 @@

      constructor

    • Parameters

      @@ -133,7 +138,7 @@

      afterRenderCallback

      afterRenderCallback: () => void
      @@ -158,7 +163,7 @@

      manipulationOriginChangedCallback

      manipulationOriginChangedCallback: (result: IManipulationOriginChanged) => void
      @@ -183,13 +188,63 @@

      Returns void

      +
      + +

      startCallback

      +
      startCallback: () => void
      + +
      +

      Type declaration

      +
        +
      • +
          +
        • (): void
        • +
        +
          +
        • +

          Returns void

          +
        • +
        +
      • +
      +
      +
      +
      + +

      stopCallback

      +
      stopCallback: () => void
      + +
      +

      Type declaration

      +
        +
      • +
          +
        • (): void
        • +
        +
          +
        • +

          Returns void

          +
        • +
        +
      • +
      +
      +

      updateCallback

      updateCallback: (elapsedTime: number, xrFrame?: XRFrame) => void
      @@ -223,7 +278,7 @@

      webXRInputSourceRequestCallback

      webXRInputSourceRequestCallback: (profiles: string[], handedness: string, completed: (result: IWebXRInputSourceResponse) => void, failed: (e: string) => void) => void
      @@ -299,7 +354,7 @@

      webXRSessionEndedCallback

      webXRSessionEndedCallback: () => void
      @@ -324,7 +379,7 @@

      webXRSessionStartedCallback

      webXRSessionStartedCallback: () => void
      @@ -349,7 +404,7 @@

      webXRSupportedCallback

      webXRSupportedCallback: () => void
      @@ -382,7 +437,7 @@

      camera

    • Returns CameraBase

      @@ -390,7 +445,7 @@

      Returns CameraBas
    • Parameters

      @@ -413,7 +468,7 @@

      config

    • Returns Config

      @@ -430,7 +485,7 @@

      container

    • Returns HTMLElement

      @@ -447,7 +502,7 @@

      debugText

    • Returns DebugText

      @@ -464,7 +519,7 @@

      font

    • Returns Font

      @@ -481,7 +536,7 @@

      inputManager

    • Returns Manager

      @@ -498,7 +553,7 @@

      log

    • Returns Log

      @@ -515,7 +570,7 @@

      paletteResources

    • Returns PaletteResources

      @@ -533,7 +588,7 @@

      renderer

    • Returns RendererBase

      @@ -541,7 +596,7 @@

      Returns RendererB
    • Parameters

      @@ -564,7 +619,7 @@

      started

    • Returns boolean

      @@ -581,7 +636,7 @@

      totalFrames

    • Returns number

      @@ -598,7 +653,7 @@

      webXRSession

    • Returns XRSession

      @@ -618,7 +673,7 @@

      checkWebXRSupport

    • Returns void

      @@ -635,7 +690,7 @@

      getModelManipulationOrigin

    • Parameters

      @@ -658,7 +713,7 @@

      getModelPosition

    • Parameters

      @@ -681,7 +736,7 @@

      getModelRotation

    • Parameters

      @@ -704,13 +759,65 @@

      getModelScale

    • Returns number

    +
    + +

    getView

    +
      +
    • getView(view: ModelView): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        view: ModelView
        +
      • +
      +

      Returns void

      +
    • +
    +
    +
    + +

    lerpView

    +
      +
    • lerpView(from: ModelView, to: ModelView, time: number): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        from: ModelView
        +
      • +
      • +
        to: ModelView
        +
      • +
      • +
        time: number
        +
      • +
      +

      Returns void

      +
    • +
    +

    pickLasso

    @@ -721,7 +828,7 @@

    pickLasso

  • Parameters

    @@ -756,7 +863,7 @@

    render

  • Parameters

    @@ -782,7 +889,7 @@

    requestWebXRSession

  • Returns void

    @@ -799,7 +906,7 @@

    reset

  • Parameters

    @@ -822,7 +929,7 @@

    resetManipulationOrigin

  • Returns void

    @@ -839,7 +946,7 @@

    resetModel

  • Parameters

    @@ -862,7 +969,7 @@

    setModelManipulationOrigin

  • Parameters

    @@ -885,7 +992,7 @@

    setModelPosition

  • Parameters

    @@ -911,7 +1018,7 @@

    setModelRotation

  • Parameters

    @@ -937,7 +1044,7 @@

    setModelScale

  • Parameters

    @@ -953,6 +1060,32 @@

    Returns void

  • +
    + +

    setView

    +
      +
    • setView(view: ModelView, isSmooth: boolean): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        view: ModelView
        +
      • +
      • +
        isSmooth: boolean
        +
      • +
      +

      Returns void

      +
    • +
    +

    start

    @@ -963,7 +1096,7 @@

    start

  • Returns void

    @@ -980,7 +1113,7 @@

    stop

  • Returns void

    @@ -997,7 +1130,7 @@

    update

  • Parameters

    @@ -1071,6 +1204,12 @@

    Returns void manipulationOriginChangedCallback

  • +
  • + startCallback +
  • +
  • + stopCallback +
  • updateCallback
  • @@ -1137,6 +1276,12 @@

    Returns void getModelScale +
  • + getView +
  • +
  • + lerpView +
  • pickLasso
  • @@ -1167,6 +1312,9 @@

    Returns void setModelScale +
  • + setView +
  • start
  • diff --git a/docs/docs/sanddance/v4/index.html b/docs/docs/sanddance/v4/index.html index 136092e87..051ed3686 100644 --- a/docs/docs/sanddance/v4/index.html +++ b/docs/docs/sanddance/v4/index.html @@ -26,7 +26,7 @@

    Installation

    Installation via script tags

    Load dependencies via <script> tags in your HTML:

    -
    <script src="https://unpkg.com/vega@^5.20/build/vega.js" charset="utf-8"></script>
    +			
    <script src="https://unpkg.com/vega@^5.22/build/vega.js" charset="utf-8"></script>
     <script src="https://unpkg.com/@msrvida/sanddance@^4/dist/umd/sanddance.js"></script>
     

    A global variable named SandDance will be available to you. In your JavaScript, call the use function to pass the dependency libraries:

    @@ -37,7 +37,7 @@

    Installation via Node.js

    Add these to the dependencies section of your package.json, then run npm install:

    "@msrvida/sanddance": "^4",
    -"vega": "^5.20"
    +"vega": "^5.22"
     

    Import these in your JavaScript, then call the use() function to pass the dependency libraries to SandDance.VegaMorphCharts:

    import * as vega from 'vega';
    diff --git a/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.BasicRendererOptions.html b/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.BasicRendererOptions.html
    index ba0b6a47c..0b77e4e00 100644
    --- a/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.BasicRendererOptions.html
    +++ b/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.BasicRendererOptions.html
    @@ -47,6 +47,7 @@ 

    Index

    Properties

    @@ -67,6 +68,17 @@

    Optional antialias

    +
    + +

    Optional contextmenu

    +
    contextmenu: boolean
    + +

    Optional height

    @@ -153,6 +165,9 @@

    Optional width

  • antialias
  • +
  • + contextmenu +
  • height
  • diff --git a/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.Scene3d.html b/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.Scene3d.html index 5036366b8..e2f670bc3 100644 --- a/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.Scene3d.html +++ b/docs/docs/sanddance/v4/interfaces/VegaMorphCharts.types.Scene3d.html @@ -75,7 +75,7 @@

    bounds

    @@ -86,7 +86,7 @@

    clip

    @@ -97,7 +97,7 @@

    interactive

    @@ -108,7 +108,7 @@

    items

    @@ -119,7 +119,7 @@

    marktype

    @@ -130,7 +130,7 @@

    name

    @@ -141,7 +141,7 @@

    role

    diff --git a/docs/docs/vega-deck.gl/v3/interfaces/types.scene3d.html b/docs/docs/vega-deck.gl/v3/interfaces/types.scene3d.html index 5d09a49f3..0d25e5b08 100644 --- a/docs/docs/vega-deck.gl/v3/interfaces/types.scene3d.html +++ b/docs/docs/vega-deck.gl/v3/interfaces/types.scene3d.html @@ -72,7 +72,7 @@

    bounds

    @@ -83,7 +83,7 @@

    clip

    @@ -94,7 +94,7 @@

    interactive

    @@ -105,7 +105,7 @@

    items

    @@ -116,7 +116,7 @@

    marktype

    @@ -127,7 +127,7 @@

    name

    @@ -138,7 +138,7 @@

    role

    diff --git a/docs/docs/vega-morphcharts/v1/classes/types.MorphChartsCore.html b/docs/docs/vega-morphcharts/v1/classes/types.MorphChartsCore.html index bcaa7f5cf..c2ef99f21 100644 --- a/docs/docs/vega-morphcharts/v1/classes/types.MorphChartsCore.html +++ b/docs/docs/vega-morphcharts/v1/classes/types.MorphChartsCore.html @@ -46,6 +46,8 @@

    Properties

    • afterRenderCallback
    • manipulationOriginChangedCallback
    • +
    • startCallback
    • +
    • stopCallback
    • updateCallback
    • webXRInputSourceRequestCallback
    • webXRSessionEndedCallback
    • @@ -78,6 +80,8 @@

      Methods

    • getModelPosition
    • getModelRotation
    • getModelScale
    • +
    • getView
    • +
    • lerpView
    • pickLasso
    • render
    • requestWebXRSession
    • @@ -88,6 +92,7 @@

      Methods

    • setModelPosition
    • setModelRotation
    • setModelScale
    • +
    • setView
    • start
    • stop
    • update
    • @@ -108,7 +113,7 @@

      constructor

    • Parameters

      @@ -130,7 +135,7 @@

      afterRenderCallback

      afterRenderCallback: () => void
      @@ -155,7 +160,7 @@

      manipulationOriginChangedCallback

      manipulationOriginChangedCallback: (result: IManipulationOriginChanged) => void
      @@ -180,13 +185,63 @@

      Returns void

      +
      + +

      startCallback

      +
      startCallback: () => void
      + +
      +

      Type declaration

      +
        +
      • +
          +
        • (): void
        • +
        +
          +
        • +

          Returns void

          +
        • +
        +
      • +
      +
      +
      +
      + +

      stopCallback

      +
      stopCallback: () => void
      + +
      +

      Type declaration

      +
        +
      • +
          +
        • (): void
        • +
        +
          +
        • +

          Returns void

          +
        • +
        +
      • +
      +
      +

      updateCallback

      updateCallback: (elapsedTime: number, xrFrame?: XRFrame) => void
      @@ -220,7 +275,7 @@

      webXRInputSourceRequestCallback

      webXRInputSourceRequestCallback: (profiles: string[], handedness: string, completed: (result: IWebXRInputSourceResponse) => void, failed: (e: string) => void) => void
      @@ -296,7 +351,7 @@

      webXRSessionEndedCallback

      webXRSessionEndedCallback: () => void
      @@ -321,7 +376,7 @@

      webXRSessionStartedCallback

      webXRSessionStartedCallback: () => void
      @@ -346,7 +401,7 @@

      webXRSupportedCallback

      webXRSupportedCallback: () => void
      @@ -379,7 +434,7 @@

      camera

    • Returns CameraBase

      @@ -387,7 +442,7 @@

      Returns CameraBas
    • Parameters

      @@ -410,7 +465,7 @@

      config

    • Returns Config

      @@ -427,7 +482,7 @@

      container

    • Returns HTMLElement

      @@ -444,7 +499,7 @@

      debugText

    • Returns DebugText

      @@ -461,7 +516,7 @@

      font

    • Returns Font

      @@ -478,7 +533,7 @@

      inputManager

    • Returns Manager

      @@ -495,7 +550,7 @@

      log

    • Returns Log

      @@ -512,7 +567,7 @@

      paletteResources

    • Returns PaletteResources

      @@ -530,7 +585,7 @@

      renderer

    • Returns RendererBase

      @@ -538,7 +593,7 @@

      Returns RendererB
    • Parameters

      @@ -561,7 +616,7 @@

      started

    • Returns boolean

      @@ -578,7 +633,7 @@

      totalFrames

    • Returns number

      @@ -595,7 +650,7 @@

      webXRSession

    • Returns XRSession

      @@ -615,7 +670,7 @@

      checkWebXRSupport

    • Returns void

      @@ -632,7 +687,7 @@

      getModelManipulationOrigin

    • Parameters

      @@ -655,7 +710,7 @@

      getModelPosition

    • Parameters

      @@ -678,7 +733,7 @@

      getModelRotation

    • Parameters

      @@ -701,13 +756,65 @@

      getModelScale

    • Returns number

    +
    + +

    getView

    +
      +
    • getView(view: ModelView): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        view: ModelView
        +
      • +
      +

      Returns void

      +
    • +
    +
    +
    + +

    lerpView

    +
      +
    • lerpView(from: ModelView, to: ModelView, time: number): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        from: ModelView
        +
      • +
      • +
        to: ModelView
        +
      • +
      • +
        time: number
        +
      • +
      +

      Returns void

      +
    • +
    +

    pickLasso

    @@ -718,7 +825,7 @@

    pickLasso

  • Parameters

    @@ -753,7 +860,7 @@

    render

  • Parameters

    @@ -779,7 +886,7 @@

    requestWebXRSession

  • Returns void

    @@ -796,7 +903,7 @@

    reset

  • Parameters

    @@ -819,7 +926,7 @@

    resetManipulationOrigin

  • Returns void

    @@ -836,7 +943,7 @@

    resetModel

  • Parameters

    @@ -859,7 +966,7 @@

    setModelManipulationOrigin

  • Parameters

    @@ -882,7 +989,7 @@

    setModelPosition

  • Parameters

    @@ -908,7 +1015,7 @@

    setModelRotation

  • Parameters

    @@ -934,7 +1041,7 @@

    setModelScale

  • Parameters

    @@ -950,6 +1057,32 @@

    Returns void

  • +
    + +

    setView

    +
      +
    • setView(view: ModelView, isSmooth: boolean): void
    • +
    +
      +
    • + +

      Parameters

      +
        +
      • +
        view: ModelView
        +
      • +
      • +
        isSmooth: boolean
        +
      • +
      +

      Returns void

      +
    • +
    +

    start

    @@ -960,7 +1093,7 @@

    start

  • Returns void

    @@ -977,7 +1110,7 @@

    stop

  • Returns void

    @@ -994,7 +1127,7 @@

    update

  • Parameters

    @@ -1048,6 +1181,12 @@

    Returns void manipulationOriginChangedCallback

  • +
  • + startCallback +
  • +
  • + stopCallback +
  • updateCallback
  • @@ -1114,6 +1253,12 @@

    Returns void getModelScale +
  • + getView +
  • +
  • + lerpView +
  • pickLasso
  • @@ -1144,6 +1289,9 @@

    Returns void setModelScale +
  • + setView +
  • start
  • diff --git a/docs/docs/vega-morphcharts/v1/interfaces/types.BasicRendererOptions.html b/docs/docs/vega-morphcharts/v1/interfaces/types.BasicRendererOptions.html index ec9b4daea..18c7655a0 100644 --- a/docs/docs/vega-morphcharts/v1/interfaces/types.BasicRendererOptions.html +++ b/docs/docs/vega-morphcharts/v1/interfaces/types.BasicRendererOptions.html @@ -44,6 +44,7 @@

    Index

    Properties

    @@ -64,6 +65,17 @@

    Optional antialias

    +
    + +

    Optional contextmenu

    +
    contextmenu: boolean
    + +

    Optional height

    @@ -130,6 +142,9 @@

    Optional width

  • antialias
  • +
  • + contextmenu +
  • height
  • diff --git a/docs/docs/vega-morphcharts/v1/interfaces/types.Scene3d.html b/docs/docs/vega-morphcharts/v1/interfaces/types.Scene3d.html index 7a03bf801..e837296f1 100644 --- a/docs/docs/vega-morphcharts/v1/interfaces/types.Scene3d.html +++ b/docs/docs/vega-morphcharts/v1/interfaces/types.Scene3d.html @@ -72,7 +72,7 @@

    bounds

    @@ -83,7 +83,7 @@

    clip

    @@ -94,7 +94,7 @@

    interactive

    @@ -105,7 +105,7 @@

    items

    @@ -116,7 +116,7 @@

    marktype

    @@ -127,7 +127,7 @@

    name

    @@ -138,7 +138,7 @@

    role

    diff --git a/docs/embed/v4/sanddance-embed.html b/docs/embed/v4/sanddance-embed.html index 1a1b63f98..1d8d16062 100644 --- a/docs/embed/v4/sanddance-embed.html +++ b/docs/embed/v4/sanddance-embed.html @@ -14,7 +14,7 @@ - + diff --git a/docs/examples/index.md b/docs/examples/index.md index aec1325d0..6ef7210e4 100644 --- a/docs/examples/index.md +++ b/docs/examples/index.md @@ -27,7 +27,7 @@ title: Examples ## SandDance apps v4 Beta * [Web app](../tests/v4/es6/app) -* [Power BI custom visual](../dist/powerbi/v4/SandDance2019beta4.4.0.8.pbiviz) SandDance 2019 beta4 4.0.8 +* [Power BI custom visual](../dist/powerbi/v4/SandDance2019beta4.4.0.9.pbiviz) SandDance 2019 beta4 4.0.9 * [VSCode extension](../dist/vscode/v4/vscode-sanddance-4.0.0.vsix) SandDance 4.0.0 ## Previous versions diff --git a/docs/tests/v4/es6/js/sanddance-app.js b/docs/tests/v4/es6/js/sanddance-app.js index 0620b727a..6356a8540 100644 --- a/docs/tests/v4/es6/js/sanddance-app.js +++ b/docs/tests/v4/es6/js/sanddance-app.js @@ -45003,7 +45003,7 @@ const embedHtml = (title, embed)=>` - + @@ -45553,7 +45553,7 @@ var BarChartRecommenderSummary = /** @class */ function() { if (column.name === this.best.columns.x || column.stats.isSequential) continue; if (column.quantitative || column.stats.distinctValueCount < recommender_1.maxCategoricalColors && column.stats.distinctValueCount > 1) { this.best.columns.color = this.best.columns.sort = column.name; - this.best.scheme = recommender_1.defaultColorScheme(column); + this.best.scheme = (0, recommender_1.defaultColorScheme)(column); if (column.quantitative) this.best.colorBin = "quantile"; break; } @@ -45690,16 +45690,16 @@ var ScatterPlotRecommenderSummary = /** @class */ function() { columns.forEach(function(column) { if (!rec.columns.x) { if (column.name.toLowerCase() === "x") return rec.columns.x = column.name; - else if (geo_1.isLongitude(column)) return rec.columns.x = column.name; + else if ((0, geo_1.isLongitude)(column)) return rec.columns.x = column.name; } if (!rec.columns.y) { if (column.name.toLowerCase() === "y") return rec.columns.y = column.name; - else if (geo_1.isLatitude(column)) return rec.columns.y = column.name; + else if ((0, geo_1.isLatitude)(column)) return rec.columns.y = column.name; } if (!rec.columns.color && !column.stats.isSequential) { if (column.quantitative || column.stats.distinctValueCount < recommender_1.maxCategoricalColors) { rec.columns.color = rec.columns.sort = column.name; - rec.scheme = recommender_1.defaultColorScheme(column); + rec.scheme = (0, recommender_1.defaultColorScheme)(column); if (column.quantitative) rec.colorBin = "quantile"; return; } @@ -45730,7 +45730,7 @@ function preferredColumnForTreemapSize(columns, strict) { if (c.quantitative) { if (strict && c.stats.hasNegative) continue; if (strict && c.stats.isSequential) continue; - if (strict && geo_1.isGeo(c)) continue; + if (strict && (0, geo_1.isGeo)(c)) continue; return c; } } @@ -53485,6 +53485,7 @@ parcelHelpers.exportAll(_index, exports); },{"./components/Button/index":"ksWPz","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ksWPz":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "ButtonGlobalClassNames", ()=>(0, _baseButtonClassNames.ButtonGlobalClassNames)); var _baseButton = require("./BaseButton"); parcelHelpers.exportAll(_baseButton, exports); var _buttonTypes = require("./Button.types"); @@ -53509,8 +53510,9 @@ var _iconButton = require("./IconButton/IconButton"); parcelHelpers.exportAll(_iconButton, exports); var _splitButtonClassNames = require("./SplitButton/SplitButton.classNames"); parcelHelpers.exportAll(_splitButtonClassNames, exports); +var _baseButtonClassNames = require("./BaseButton.classNames"); -},{"./BaseButton":"aFQzv","./Button.types":"dS38G","./Button":"cyUjW","./ActionButton/ActionButton":"7NwWQ","./CommandBarButton/CommandBarButton":"9NF4g","./CommandButton/CommandButton":"6Kn9C","./CompoundButton/CompoundButton":"8oyjs","./DefaultButton/DefaultButton":"6ZQzj","./MessageBarButton/MessageBarButton":"ik86k","./PrimaryButton/PrimaryButton":"01TCg","./IconButton/IconButton":"fwEU5","./SplitButton/SplitButton.classNames":"1z3em","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"aFQzv":[function(require,module,exports) { +},{"./BaseButton":"aFQzv","./Button.types":"dS38G","./Button":"cyUjW","./ActionButton/ActionButton":"7NwWQ","./CommandBarButton/CommandBarButton":"9NF4g","./CommandButton/CommandButton":"6Kn9C","./CompoundButton/CompoundButton":"8oyjs","./DefaultButton/DefaultButton":"6ZQzj","./MessageBarButton/MessageBarButton":"ik86k","./PrimaryButton/PrimaryButton":"01TCg","./IconButton/IconButton":"fwEU5","./SplitButton/SplitButton.classNames":"1z3em","./BaseButton.classNames":"h7V1v","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"aFQzv":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "BaseButton", ()=>BaseButton); @@ -53682,7 +53684,9 @@ var COMPONENT_NAME = "BaseButton"; if (!_this.props.disabled && _this.props.onKeyUp !== undefined) _this.props.onKeyUp(ev); // not cancelling event because it's not disabled }; _this._onKeyPress = function(ev) { - if (!_this.props.disabled && _this.props.onKeyPress !== undefined) _this.props.onKeyPress(ev); // not cancelling event because it's not disabled + // eslint-disable-next-line deprecation/deprecation + if (!_this.props.disabled && _this.props.onKeyPress !== undefined) // eslint-disable-next-line deprecation/deprecation + _this.props.onKeyPress(ev); // not cancelling event because it's not disabled }; _this._onMouseUp = function(ev) { if (!_this.props.disabled && _this.props.onMouseUp !== undefined) _this.props.onMouseUp(ev); // not cancelling event because it's not disabled @@ -54517,6 +54521,8 @@ parcelHelpers.export(exports, "DelayedRender", ()=>(0, _utilities.DelayedRender) parcelHelpers.export(exports, "EventGroup", ()=>(0, _utilities.EventGroup)); parcelHelpers.export(exports, "FabricPerformance", ()=>(0, _utilities.FabricPerformance)); parcelHelpers.export(exports, "FocusRects", ()=>(0, _utilities.FocusRects)); +parcelHelpers.export(exports, "FocusRectsContext", ()=>(0, _utilities.FocusRectsContext)); +parcelHelpers.export(exports, "FocusRectsProvider", ()=>(0, _utilities.FocusRectsProvider)); parcelHelpers.export(exports, "GlobalSettings", ()=>(0, _utilities.GlobalSettings)); parcelHelpers.export(exports, "IsFocusVisibleClassName", ()=>(0, _utilities.IsFocusVisibleClassName)); parcelHelpers.export(exports, "KeyCodes", ()=>(0, _utilities.KeyCodes)); @@ -54637,6 +54643,7 @@ parcelHelpers.export(exports, "optionProperties", ()=>(0, _utilities.optionPrope parcelHelpers.export(exports, "portalContainsElement", ()=>(0, _utilities.portalContainsElement)); parcelHelpers.export(exports, "precisionRound", ()=>(0, _utilities.precisionRound)); parcelHelpers.export(exports, "raiseClick", ()=>(0, _utilities.raiseClick)); +parcelHelpers.export(exports, "removeDirectionalKeyCode", ()=>(0, _utilities.removeDirectionalKeyCode)); parcelHelpers.export(exports, "removeIndex", ()=>(0, _utilities.removeIndex)); parcelHelpers.export(exports, "replaceElement", ()=>(0, _utilities.replaceElement)); parcelHelpers.export(exports, "resetControlledWarnings", ()=>(0, _utilities.resetControlledWarnings)); @@ -54680,7 +54687,7 @@ var _utilities = require("@fluentui/utilities"); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/react", "8.81.1"); +(0, _setVersion.setVersion)("@fluentui/react", "8.94.2"); },{"@fluentui/set-version":"aMFYG"}],"aMFYG":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -54797,11 +54804,14 @@ parcelHelpers.export(exports, "unhoistMethods", ()=>(0, _hoist.unhoistMethods)); parcelHelpers.export(exports, "hoistStatics", ()=>(0, _hoistStatics.hoistStatics)); parcelHelpers.export(exports, "initializeComponentRef", ()=>(0, _initializeComponentRef.initializeComponentRef)); parcelHelpers.export(exports, "initializeFocusRects", ()=>(0, _initializeFocusRects.initializeFocusRects)); +parcelHelpers.export(exports, "FocusRectsProvider", ()=>(0, _focusRectsProvider.FocusRectsProvider)); parcelHelpers.export(exports, "FocusRects", ()=>(0, _useFocusRects.FocusRects)); +parcelHelpers.export(exports, "FocusRectsContext", ()=>(0, _useFocusRects.FocusRectsContext)); parcelHelpers.export(exports, "useFocusRects", ()=>(0, _useFocusRects.useFocusRects)); parcelHelpers.export(exports, "getInitials", ()=>(0, _initials.getInitials)); parcelHelpers.export(exports, "addDirectionalKeyCode", ()=>(0, _keyboard.addDirectionalKeyCode)); parcelHelpers.export(exports, "isDirectionalKeyCode", ()=>(0, _keyboard.isDirectionalKeyCode)); +parcelHelpers.export(exports, "removeDirectionalKeyCode", ()=>(0, _keyboard.removeDirectionalKeyCode)); parcelHelpers.export(exports, "getLanguage", ()=>(0, _language.getLanguage)); parcelHelpers.export(exports, "setLanguage", ()=>(0, _language.setLanguage)); parcelHelpers.export(exports, "calculatePrecision", ()=>(0, _math.calculatePrecision)); @@ -54925,6 +54935,7 @@ var _hoist = require("./hoist"); var _hoistStatics = require("./hoistStatics"); var _initializeComponentRef = require("./initializeComponentRef"); var _initializeFocusRects = require("./initializeFocusRects"); +var _focusRectsProvider = require("./FocusRectsProvider"); var _useFocusRects = require("./useFocusRects"); var _initials = require("./initials"); var _keyboard = require("./keyboard"); @@ -54956,11 +54967,11 @@ var _setSSR = require("./dom/setSSR"); var _createMergedRef = require("./createMergedRef"); var _useIsomorphicLayoutEffect = require("./useIsomorphicLayoutEffect"); -},{"./version":"9PCaM","./Async":"hAQcF","./AutoScroll":"iVvnk","./BaseComponent":"vNedS","./DelayedRender":"kBgki","./EventGroup":"bQDG8","./FabricPerformance":"cJi5t","./GlobalSettings":"hOBvf","./KeyCodes":"aVdtV","./Rectangle":"jqgRr","./appendFunction":"7Twuh","./aria":"4l6c3","./array":"51Jbj","./asAsync":"8GVXW","./assertNever":"7XVG7","./classNamesFunction":"4Iezg","./componentAs/composeComponentAs":"lA2Mh","./controlled":"77Y1K","./css":"j75mX","./customizations/Customizations":"7aH6S","./customizations/Customizer":"83xLA","./customizations/CustomizerContext":"fYZ4d","./customizations/customizable":"bqcZZ","./customizations/useCustomizationSettings":"efO5y","./customizations/mergeCustomizations":"aWBwG","./customizations/mergeSettings":"hfsOs","./dom":"bEiaC","./extendComponent":"i4bE8","./focus":"czIBK","./getId":"kKU74","./getNativeElementProps":"kIq46","./hoist":"a0YrH","./hoistStatics":"kvC3B","./initializeComponentRef":"bP7B7","./initializeFocusRects":"e13M2","./useFocusRects":"bttYg","./initials":"5azVr","./keyboard":"gcwLg","./language":"g4Aej","./math":"cvCig","./memoize":"63n82","./merge":"3nXHH","./mobileDetector":"gKqgU","./modalize":"5K7Du","./object":"cCaiB","./osDetector":"iLauf","./overflow":"lLUjc","./properties":"9boev","./renderFunction/composeRenderFunction":"1ASFG","./resources":"6Q55p","./rtl":"6SQS0","./safeRequestAnimationFrame":"2YKAT","./safeSetTimeout":"fHy6l","./scroll":"kGwz1","./selection/index":"9ugij","./string":"bONba","./styled":"h441M","./warn":"jBE7j","./ie11Detector":"g96q9","./getPropsWithDefaults":"9dYTp","./setFocusVisibility":"jrsUT","./dom/canUseDOM":"61CDL","./dom/setSSR":"b63SA","./createMergedRef":"f2qNU","./useIsomorphicLayoutEffect":"abKbf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9PCaM":[function(require,module,exports) { +},{"./version":"9PCaM","./Async":"hAQcF","./AutoScroll":"iVvnk","./BaseComponent":"vNedS","./DelayedRender":"kBgki","./EventGroup":"bQDG8","./FabricPerformance":"cJi5t","./GlobalSettings":"hOBvf","./KeyCodes":"aVdtV","./Rectangle":"jqgRr","./appendFunction":"7Twuh","./aria":"4l6c3","./array":"51Jbj","./asAsync":"8GVXW","./assertNever":"7XVG7","./classNamesFunction":"4Iezg","./componentAs/composeComponentAs":"lA2Mh","./controlled":"77Y1K","./css":"j75mX","./customizations/Customizations":"7aH6S","./customizations/Customizer":"83xLA","./customizations/CustomizerContext":"fYZ4d","./customizations/customizable":"bqcZZ","./customizations/useCustomizationSettings":"efO5y","./customizations/mergeCustomizations":"aWBwG","./customizations/mergeSettings":"hfsOs","./dom":"bEiaC","./extendComponent":"i4bE8","./focus":"czIBK","./getId":"kKU74","./getNativeElementProps":"kIq46","./hoist":"a0YrH","./hoistStatics":"kvC3B","./initializeComponentRef":"bP7B7","./initializeFocusRects":"e13M2","./FocusRectsProvider":"itEBl","./useFocusRects":"bttYg","./initials":"5azVr","./keyboard":"gcwLg","./language":"g4Aej","./math":"cvCig","./memoize":"63n82","./merge":"3nXHH","./mobileDetector":"gKqgU","./modalize":"5K7Du","./object":"cCaiB","./osDetector":"iLauf","./overflow":"lLUjc","./properties":"9boev","./renderFunction/composeRenderFunction":"1ASFG","./resources":"6Q55p","./rtl":"6SQS0","./safeRequestAnimationFrame":"2YKAT","./safeSetTimeout":"fHy6l","./scroll":"kGwz1","./selection/index":"9ugij","./string":"bONba","./styled":"h441M","./warn":"jBE7j","./ie11Detector":"g96q9","./getPropsWithDefaults":"9dYTp","./setFocusVisibility":"jrsUT","./dom/canUseDOM":"61CDL","./dom/setSSR":"b63SA","./createMergedRef":"f2qNU","./useIsomorphicLayoutEffect":"abKbf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9PCaM":[function(require,module,exports) { // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/utilities", "8.9.0"); +(0, _setVersion.setVersion)("@fluentui/utilities", "8.13.1"); },{"@fluentui/set-version":"aMFYG"}],"hAQcF":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -55927,7 +55938,7 @@ var _styleOptionsState = require("./StyleOptionsState"); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/merge-styles", "8.5.2"); +(0, _setVersion.setVersion)("@fluentui/merge-styles", "8.5.3"); },{"@fluentui/set-version":"aMFYG"}],"8Z5s2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -58048,7 +58059,7 @@ parcelHelpers.exportAll(_setVirtualParent, exports); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/dom-utilities", "2.2.1"); +(0, _setVersion.setVersion)("@fluentui/dom-utilities", "2.2.2"); },{"@fluentui/set-version":"aMFYG"}],"b0FZf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -58322,6 +58333,7 @@ parcelHelpers.defineInteropFlag(exports); * * @public * @param rootElement - Element to start the search for a focusable child. + * @param bypassHiddenElements - If true, focus will be not be set on hidden elements. * @returns True if focus was set, false if it was not. */ parcelHelpers.export(exports, "focusFirstChild", ()=>focusFirstChild); /** @@ -58416,8 +58428,8 @@ function getLastTabbable(rootElement, currentElement, includeElementsInFocusZone if (checkNode === void 0) checkNode = true; return getPreviousElement(rootElement, currentElement, checkNode, false, true, includeElementsInFocusZones, false, true); } -function focusFirstChild(rootElement) { - var element = getNextElement(rootElement, rootElement, true, false, false, true); +function focusFirstChild(rootElement, bypassHiddenElements) { + var element = getNextElement(rootElement, rootElement, true, false, false, true, undefined, undefined, bypassHiddenElements); if (element) { focusAsync(element); return true; @@ -58455,21 +58467,22 @@ function getPreviousElement(rootElement, currentElement, checkNode, suppressPare if (!suppressParentTraversal) return getPreviousElement(rootElement, currentElement.parentElement, true, false, false, includeElementsInFocusZones, allowFocusRoot, tabbable); return null; } -function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable) { +function getNextElement(rootElement, currentElement, checkNode, suppressParentTraversal, suppressChildTraversal, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements) { if (!currentElement || currentElement === rootElement && suppressChildTraversal && !allowFocusRoot) return null; - var isCurrentElementVisible = isElementVisible(currentElement); + var checkElementVisibility = bypassHiddenElements ? isElementVisibleAndNotHidden : isElementVisible; + var isCurrentElementVisible = checkElementVisibility(currentElement); // Check the current node, if it's not the first traversal. if (checkNode && isCurrentElementVisible && isElementTabbable(currentElement, tabbable)) return currentElement; // Check its children. if (!suppressChildTraversal && isCurrentElementVisible && (includeElementsInFocusZones || !(isElementFocusZone(currentElement) || isElementFocusSubZone(currentElement)))) { - var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable); + var childMatch = getNextElement(rootElement, currentElement.firstElementChild, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements); if (childMatch) return childMatch; } if (currentElement === rootElement) return null; // Check its sibling. - var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable); + var siblingMatch = getNextElement(rootElement, currentElement.nextElementSibling, true, true, false, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements); if (siblingMatch) return siblingMatch; - if (!suppressParentTraversal) return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable); + if (!suppressParentTraversal) return getNextElement(rootElement, currentElement.parentElement, false, false, true, includeElementsInFocusZones, allowFocusRoot, tabbable, bypassHiddenElements); return null; } function isElementVisible(element) { @@ -59735,6 +59748,11 @@ parcelHelpers.defineInteropFlag(exports); * This can be used to add global shortcut keys that directionally move from section to section within * an app or between focus trap zones. */ parcelHelpers.export(exports, "addDirectionalKeyCode", ()=>addDirectionalKeyCode); +/** + * Removes a keycode to the list of keys that, when pressed, should cause the focus outlines to be visible. + * This can be used to remove global shortcut keys that directionally move from section to section within + * an app or between focus trap zones. + */ parcelHelpers.export(exports, "removeDirectionalKeyCode", ()=>removeDirectionalKeyCode); var _keyCodes = require("./KeyCodes"); var _a; var DirectionalKeyCodes = (_a = {}, _a[(0, _keyCodes.KeyCodes).up] = 1, _a[(0, _keyCodes.KeyCodes).down] = 1, _a[(0, _keyCodes.KeyCodes).left] = 1, _a[(0, _keyCodes.KeyCodes).right] = 1, _a[(0, _keyCodes.KeyCodes).home] = 1, _a[(0, _keyCodes.KeyCodes).end] = 1, _a[(0, _keyCodes.KeyCodes).tab] = 1, _a[(0, _keyCodes.KeyCodes).pageUp] = 1, _a[(0, _keyCodes.KeyCodes).pageDown] = 1, _a); @@ -59744,6 +59762,9 @@ function isDirectionalKeyCode(which) { function addDirectionalKeyCode(which) { DirectionalKeyCodes[which] = 1; } +function removeDirectionalKeyCode(which) { + delete DirectionalKeyCodes[which]; +} },{"./KeyCodes":"aVdtV","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jrsUT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -59760,33 +59781,96 @@ parcelHelpers.export(exports, "IsFocusHiddenClassName", ()=>IsFocusHiddenClassNa * A use case might be when you have a keypress like ctrl-f6 navigate to a particular region on the page, * and want focus to show up. * - * @param enabled - whether to remove or add focus - * @param target - optional target + * @param enabled - Whether to turn focus visibility on or off. + * @param target - Optional target from which to get window in case no `providerElem` has been specified. + * @param registeredProviders - Array of provider refs that are associated with a FocusRectsProvider. If no array + * is passed in, the classnames are attached to the document body that contains `target`. */ parcelHelpers.export(exports, "setFocusVisibility", ()=>setFocusVisibility); var _getWindow = require("./dom/getWindow"); var IsFocusVisibleClassName = "ms-Fabric--isFocusVisible"; var IsFocusHiddenClassName = "ms-Fabric--isFocusHidden"; -function setFocusVisibility(enabled, target) { - var win = target ? (0, _getWindow.getWindow)(target) : (0, _getWindow.getWindow)(); - if (win) { - var classList = win.document.body.classList; - classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName); - classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName); +function updateClassList(el, enabled) { + if (el) { + el.classList.add(enabled ? IsFocusVisibleClassName : IsFocusHiddenClassName); + el.classList.remove(enabled ? IsFocusHiddenClassName : IsFocusVisibleClassName); } } +function setFocusVisibility(enabled, target, registeredProviders) { + var _a; + if (registeredProviders) registeredProviders.forEach(function(ref) { + return updateClassList(ref.current, enabled); + }); + else updateClassList((_a = (0, _getWindow.getWindow)(target)) === null || _a === void 0 ? void 0 : _a.document.body, enabled); +} + +},{"./dom/getWindow":"i0Ddq","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"itEBl":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "FocusRectsProvider", ()=>FocusRectsProvider); +var _react = require("react"); +var _useFocusRects = require("./useFocusRects"); +var FocusRectsProvider = function(props) { + var providerRef = props.providerRef, layerRoot = props.layerRoot; + var registeredProviders = _react.useState([])[0]; + var parentContext = _react.useContext((0, _useFocusRects.FocusRectsContext)); + // Inherit the parent context if it exists, unless this is a layer root. + // This allows the topmost provider element in the DOM tree to handle the focus events. + // Since layers are in a separate HTML tree from their parent, they shouldn't use the parent's providerRef. + var inheritParentContext = parentContext !== undefined && !layerRoot; + var context = _react.useMemo(function() { + return inheritParentContext ? undefined : { + providerRef: providerRef, + registeredProviders: registeredProviders, + registerProvider: function(ref) { + // Register this child provider with the current context, and any parent contexts + registeredProviders.push(ref); + parentContext === null || parentContext === void 0 || parentContext.registerProvider(ref); + }, + unregisterProvider: function(ref) { + parentContext === null || parentContext === void 0 || parentContext.unregisterProvider(ref); + var i = registeredProviders.indexOf(ref); + if (i >= 0) registeredProviders.splice(i, 1); + } + }; + }, [ + providerRef, + registeredProviders, + parentContext, + inheritParentContext + ]); + _react.useEffect(function() { + if (context) { + context.registerProvider(context.providerRef); + return function() { + return context.unregisterProvider(context.providerRef); + }; + } + }, [ + context + ]); + // Create a new context provider if this is not inheriting from the parent. + if (context) return _react.createElement((0, _useFocusRects.FocusRectsContext).Provider, { + value: context + }, props.children); + else return _react.createElement(_react.Fragment, null, props.children); +}; -},{"./dom/getWindow":"i0Ddq","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bttYg":[function(require,module,exports) { +},{"react":"8ePka","./useFocusRects":"bttYg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bttYg":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "FocusRectsContext", ()=>FocusRectsContext); /** * Initializes the logic which: * - * 1. Subscribes keydown and mousedown events. (It will only do it once per window, - * so it's safe to call this method multiple times.) - * 2. When the user presses directional keyboard keys, adds the 'ms-Fabric--isFocusVisible' classname - * to the document body, removes the 'ms-Fabric-isFocusHidden' classname. - * 3. When the user clicks a mouse button, adds the 'ms-Fabric-isFocusHidden' classname to the - * document body, removes the 'ms-Fabric--isFocusVisible' classname. + * 1. Subscribes keydown, keyup, mousedown and pointerdown events. (It will only do it once for the current element of + * the FocusRectsContext providerRef or once per window if no such element is provided via context, so it's safe to + * call this method multiple times.) + * 2. When the user presses triggers a keydown or keyup event via directional keyboard keys, adds the + * 'ms-Fabric--isFocusVisible' classname to the current element of the FocusRectsContext providerRef or the document + * body if no such element is provided via context, and removes the 'ms-Fabric-isFocusHidden' classname. + * 3. When the user triggers a mousedown or pointerdown event, adds the 'ms-Fabric-isFocusHidden' classname to the + * current element of the FocusRectsContext providerRef or the document body if no such element is provided via + * context, and removes the 'ms-Fabric--isFocusVisible' classname. * * This logic allows components on the page to conditionally render focus treatments based on * the existence of global classnames, which simplifies logic overall. @@ -59798,10 +59882,8 @@ var _react = require("react"); var _getWindow = require("./dom/getWindow"); var _keyboard = require("./keyboard"); var _setFocusVisibility = require("./setFocusVisibility"); -/** - * Counter for mounted component that uses focus rectangle. - * We want to cleanup the listners before last component that uses focus rectangle unmounts. - */ var mountCounters = new WeakMap(); +var mountCounters = new WeakMap(); +var callbackMap = new WeakMap(); function setMountCounters(key, delta) { var newValue; var currValue = mountCounters.get(key); @@ -59810,28 +59892,75 @@ function setMountCounters(key, delta) { mountCounters.set(key, newValue); return newValue; } +function setCallbackMap(context) { + var callbacks = callbackMap.get(context); + if (callbacks) return callbacks; + var onMouseDown = function(ev) { + return _onMouseDown(ev, context.registeredProviders); + }; + var onPointerDown = function(ev) { + return _onPointerDown(ev, context.registeredProviders); + }; + var onKeyDown = function(ev) { + return _onKeyDown(ev, context.registeredProviders); + }; + var onKeyUp = function(ev) { + return _onKeyUp(ev, context.registeredProviders); + }; + callbacks = { + onMouseDown: onMouseDown, + onPointerDown: onPointerDown, + onKeyDown: onKeyDown, + onKeyUp: onKeyUp + }; + callbackMap.set(context, callbacks); + return callbacks; +} +var FocusRectsContext = _react.createContext(undefined); function useFocusRects(rootRef) { + var context = _react.useContext(FocusRectsContext); _react.useEffect(function() { - var _a; + var _a, _b; var win = (0, _getWindow.getWindow)(rootRef === null || rootRef === void 0 ? void 0 : rootRef.current); if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) return undefined; - var count = setMountCounters(win, 1); + var el = win; + var onMouseDown; + var onPointerDown; + var onKeyDown; + var onKeyUp; + if ((_b = context === null || context === void 0 ? void 0 : context.providerRef) === null || _b === void 0 ? void 0 : _b.current) { + el = context.providerRef.current; + var callbacks = setCallbackMap(context); + onMouseDown = callbacks.onMouseDown; + onPointerDown = callbacks.onPointerDown; + onKeyDown = callbacks.onKeyDown; + onKeyUp = callbacks.onKeyUp; + } else { + onMouseDown = _onMouseDown; + onPointerDown = _onPointerDown; + onKeyDown = _onKeyDown; + onKeyUp = _onKeyUp; + } + var count = setMountCounters(el, 1); if (count <= 1) { - win.addEventListener("mousedown", _onMouseDown, true); - win.addEventListener("pointerdown", _onPointerDown, true); - win.addEventListener("keydown", _onKeyDown, true); + el.addEventListener("mousedown", onMouseDown, true); + el.addEventListener("pointerdown", onPointerDown, true); + el.addEventListener("keydown", onKeyDown, true); + el.addEventListener("keyup", onKeyUp, true); } return function() { var _a; if (!win || ((_a = win.FabricConfig) === null || _a === void 0 ? void 0 : _a.disableFocusRects) === true) return; - count = setMountCounters(win, -1); + count = setMountCounters(el, -1); if (count === 0) { - win.removeEventListener("mousedown", _onMouseDown, true); - win.removeEventListener("pointerdown", _onPointerDown, true); - win.removeEventListener("keydown", _onKeyDown, true); + el.removeEventListener("mousedown", onMouseDown, true); + el.removeEventListener("pointerdown", onPointerDown, true); + el.removeEventListener("keydown", onKeyDown, true); + el.removeEventListener("keyup", onKeyUp, true); } }; }, [ + context, rootRef ]); } @@ -59839,15 +59968,28 @@ var FocusRects = function(props) { useFocusRects(props.rootRef); return null; }; -function _onMouseDown(ev) { - (0, _setFocusVisibility.setFocusVisibility)(false, ev.target); -} -function _onPointerDown(ev) { - if (ev.pointerType !== "mouse") (0, _setFocusVisibility.setFocusVisibility)(false, ev.target); +function _onMouseDown(ev, registeredProviders) { + (0, _setFocusVisibility.setFocusVisibility)(false, ev.target, registeredProviders); +} +function _onPointerDown(ev, registeredProviders) { + if (ev.pointerType !== "mouse") (0, _setFocusVisibility.setFocusVisibility)(false, ev.target, registeredProviders); +} +// You need both a keydown and a keyup listener that sets focus visibility to true to handle two distinct scenarios when +// attaching the listeners and classnames to the provider instead of the document body. +// If you only have a keydown listener, then the focus rectangles will not show when moving from outside of the provider +// to inside it. That is why a keyup listener is needed, since it will always trigger after the focus event is fired. +// If you only have a keyup listener, then the focus rectangles will not show moving between different tabbable elements +// if the tab key is pressed without being released. That's is why we need a keydown listener, since it will trigger for +// every element that is being tabbed into. +// This works because `classList.add` is smart and will not duplicate a classname that already exists on the classList +// when focus visibility is turned on. +function _onKeyDown(ev, registeredProviders) { + // eslint-disable-next-line deprecation/deprecation + if ((0, _keyboard.isDirectionalKeyCode)(ev.which)) (0, _setFocusVisibility.setFocusVisibility)(true, ev.target, registeredProviders); } -function _onKeyDown(ev) { +function _onKeyUp(ev, registeredProviders) { // eslint-disable-next-line deprecation/deprecation - if ((0, _keyboard.isDirectionalKeyCode)(ev.which)) (0, _setFocusVisibility.setFocusVisibility)(true, ev.target); + if ((0, _keyboard.isDirectionalKeyCode)(ev.which)) (0, _setFocusVisibility.setFocusVisibility)(true, ev.target, registeredProviders); } },{"react":"8ePka","./dom/getWindow":"i0Ddq","./keyboard":"gcwLg","./setFocusVisibility":"jrsUT","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"5azVr":[function(require,module,exports) { @@ -60564,9 +60706,39 @@ var _eventGroup = require("../EventGroup"); this._updateCount(); this.setChangeEvents(true); }; + Selection.prototype.setRangeSelected = function(fromIndex, count, isSelected, shouldAnchor) { + if (this.mode === (0, _selectionTypes.SelectionMode).none) return; + // Clamp the index. + fromIndex = Math.min(Math.max(0, fromIndex), this._items.length - 1); + // Clamp the range. + count = Math.min(Math.max(0, count), this._items.length - fromIndex); + // No-op on out of bounds selections. + if (fromIndex < 0 || fromIndex >= this._items.length || count === 0) return; + this.setChangeEvents(false); + var anchorIndex = this._anchoredIndex || 0; + var startIndex = fromIndex; + var endIndex = fromIndex + count - 1; + var newAnchorIndex = anchorIndex >= endIndex ? startIndex : endIndex; + for(; startIndex <= endIndex; startIndex++)this.setIndexSelected(startIndex, isSelected, shouldAnchor ? startIndex === newAnchorIndex : false); + this.setChangeEvents(true); + }; Selection.prototype.selectToKey = function(key, clearSelection) { this.selectToIndex(this._keyToIndexMap[key], clearSelection); }; + Selection.prototype.selectToRange = function(fromIndex, count, clearSelection) { + if (this.mode === (0, _selectionTypes.SelectionMode).none) return; + if (this.mode === (0, _selectionTypes.SelectionMode).single) { + if (count === 1) this.setIndexSelected(fromIndex, true, true); + return; + } + var anchorIndex = this._anchoredIndex || 0; + var startIndex = Math.min(fromIndex, anchorIndex); + var endIndex = Math.max(fromIndex + count - 1, anchorIndex); + this.setChangeEvents(false); + if (clearSelection) this._setAllSelected(false, true); + for(; startIndex <= endIndex; startIndex++)this.setIndexSelected(startIndex, true, false); + this.setChangeEvents(true); + }; Selection.prototype.selectToIndex = function(index, clearSelection) { if (this.mode === (0, _selectionTypes.SelectionMode).none) return; if (this.mode === (0, _selectionTypes.SelectionMode).single) { @@ -61253,7 +61425,7 @@ var _utilities = require("@fluentui/utilities"); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/react-hooks", "8.6.1"); +(0, _setVersion.setVersion)("@fluentui/react-hooks", "8.6.11"); },{"@fluentui/set-version":"aMFYG"}],"4ue7h":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -61263,51 +61435,20 @@ parcelHelpers.defineInteropFlag(exports); */ parcelHelpers.export(exports, "useAsync", ()=>useAsync); var _utilities = require("@fluentui/utilities"); var _react = require("react"); -var _useConst = require("./useConst"); function useAsync() { - var async = (0, _useConst.useConst)(function() { - return new (0, _utilities.Async)(); - }); - // Function that returns a function in order to dispose the async instance on unmount + var asyncRef = _react.useRef(); + if (!asyncRef.current) asyncRef.current = new (0, _utilities.Async)(); _react.useEffect(function() { return function() { - return async.dispose(); + var _a; + (_a = asyncRef.current) === null || _a === void 0 || _a.dispose(); + asyncRef.current = undefined; }; - }, [ - async - ]); - return async; -} - -},{"@fluentui/utilities":"6wnm3","react":"8ePka","./useConst":"fltI2","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fltI2":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -/** - * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to - * always return the same value (and if the initializer is a function, only call it once). - * This is similar to setting a private member in a class constructor. - * - * If the value should ever change based on dependencies, use `React.useMemo` instead. - * - * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`, - * only the value/function passed in the first time this is called is respected. - * @returns The value. The identity of this value will always be the same. - */ parcelHelpers.export(exports, "useConst", ()=>useConst); -var _react = require("react"); -function useConst(initialValue) { - // Use useRef to store the value because it's the least expensive built-in hook that works here - // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive - // internally due to reducer handling which we don't need) - var ref = _react.useRef(); - if (ref.current === undefined) // Box the value in an object so we can tell if it's initialized even if the initializer - // returns/is undefined - ref.current = { - value: typeof initialValue === "function" ? initialValue() : initialValue - }; - return ref.current.value; + }, []); + return asyncRef.current; } -},{"react":"8ePka","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"54CiG":[function(require,module,exports) { +},{"@fluentui/utilities":"6wnm3","react":"8ePka","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"54CiG":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); /** @@ -61348,7 +61489,35 @@ function useBoolean(initialState) { ]; } -},{"react":"8ePka","./useConst":"fltI2","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ftGjh":[function(require,module,exports) { +},{"react":"8ePka","./useConst":"fltI2","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fltI2":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +/** + * Hook to initialize and return a constant value. Unlike `React.useMemo`, this is guaranteed to + * always return the same value (and if the initializer is a function, only call it once). + * This is similar to setting a private member in a class constructor. + * + * If the value should ever change based on dependencies, use `React.useMemo` instead. + * + * @param initialValue - Initial value, or function to get the initial value. Similar to `useState`, + * only the value/function passed in the first time this is called is respected. + * @returns The value. The identity of this value will always be the same. + */ parcelHelpers.export(exports, "useConst", ()=>useConst); +var _react = require("react"); +function useConst(initialValue) { + // Use useRef to store the value because it's the least expensive built-in hook that works here + // (we could also use `const [value] = React.useState(initialValue)` but that's more expensive + // internally due to reducer handling which we don't need) + var ref = _react.useRef(); + if (ref.current === undefined) // Box the value in an object so we can tell if it's initialized even if the initializer + // returns/is undefined + ref.current = { + value: typeof initialValue === "function" ? initialValue() : initialValue + }; + return ref.current.value; +} + +},{"react":"8ePka","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ftGjh":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); /** @@ -61763,7 +61932,7 @@ parcelHelpers.exportAll(_windowProvider, exports); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/react-window-provider", "2.2.1"); +(0, _setVersion.setVersion)("@fluentui/react-window-provider", "2.2.2"); },{"@fluentui/set-version":"aMFYG"}],"eR7zs":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -62062,7 +62231,7 @@ parcelHelpers.exportAll(_mergeStyles, exports); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/style-utilities", "8.7.2"); +(0, _setVersion.setVersion)("@fluentui/style-utilities", "8.7.12"); },{"@fluentui/set-version":"aMFYG"}],"hVV04":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -62245,7 +62414,7 @@ function measure(func) { }, runState: { flushTimer: 0, - mode: 0 /* sync */ , + mode: 0 /* Mode.sync */ , buffer: [] } }); @@ -62260,7 +62429,7 @@ function loadStyles(styles, loadAsync) { measure(function() { var styleParts = Array.isArray(styles) ? styles : splitStyles(styles); var _a = _themeState.runState, mode = _a.mode, buffer = _a.buffer, flushTimer = _a.flushTimer; - if (loadAsync || mode === 1 /* async */ ) { + if (loadAsync || mode === 1 /* Mode.async */ ) { buffer.push(styleParts); if (!flushTimer) _themeState.runState.flushTimer = asyncLoadStyles(); } else applyThemableStyles(styleParts); @@ -62303,12 +62472,12 @@ function loadTheme(theme) { reloadStyles(); } function clearStyles(option) { - if (option === void 0) option = 3 /* all */ ; - if (option === 3 /* all */ || option === 2 /* onlyNonThemable */ ) { + if (option === void 0) option = 3 /* ClearStyleOptions.all */ ; + if (option === 3 /* ClearStyleOptions.all */ || option === 2 /* ClearStyleOptions.onlyNonThemable */ ) { clearStylesInternal(_themeState.registeredStyles); _themeState.registeredStyles = []; } - if (option === 3 /* all */ || option === 1 /* onlyThemable */ ) { + if (option === 3 /* ClearStyleOptions.all */ || option === 1 /* ClearStyleOptions.onlyThemable */ ) { clearStylesInternal(_themeState.registeredThemableStyles); _themeState.registeredThemableStyles = []; } @@ -62329,7 +62498,7 @@ function clearStylesInternal(records) { themableStyles.push(styleRecord.themableStyle); } if (themableStyles.length > 0) { - clearStyles(1 /* onlyThemable */ ); + clearStyles(1 /* ClearStyleOptions.onlyThemable */ ); applyThemableStyles([].concat.apply([], themableStyles)); } } @@ -62445,7 +62614,7 @@ var _fluentTheme = require("./FluentTheme"); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/theme", "2.6.7"); +(0, _setVersion.setVersion)("@fluentui/theme", "2.6.16"); },{"@fluentui/set-version":"aMFYG"}],"54YSc":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -63814,21 +63983,22 @@ parcelHelpers.export(exports, "getInputFocusStyle", ()=>getInputFocusStyle); var _commonStyles = require("./CommonStyles"); var _utilities = require("@fluentui/utilities"); var _zIndexes = require("./zIndexes"); -function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly) { +function getFocusStyle(theme, insetOrOptions, position, highContrastStyle, borderColor, outlineColor, isFocusedOnly, borderRadius) { if (typeof insetOrOptions === "number" || !insetOrOptions) return _getFocusStyleInternal(theme, { inset: insetOrOptions, position: position, highContrastStyle: highContrastStyle, borderColor: borderColor, outlineColor: outlineColor, - isFocusedOnly: isFocusedOnly + isFocusedOnly: isFocusedOnly, + borderRadius: borderRadius }); else return _getFocusStyleInternal(theme, insetOrOptions); } function _getFocusStyleInternal(theme, options) { var _a, _b; if (options === void 0) options = {}; - var _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? "relative" : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h; + var borderRadius = options.borderRadius, _c = options.inset, inset = _c === void 0 ? 0 : _c, _d = options.width, width = _d === void 0 ? 1 : _d, _e = options.position, position = _e === void 0 ? "relative" : _e, highContrastStyle = options.highContrastStyle, _f = options.borderColor, borderColor = _f === void 0 ? theme.palette.white : _f, _g = options.outlineColor, outlineColor = _g === void 0 ? theme.palette.neutralSecondary : _g, _h = options.isFocusedOnly, isFocusedOnly = _h === void 0 ? true : _h; return { // Clear browser-specific focus styles and use 'transparent' as placeholder for focus style. outline: "transparent", @@ -63852,6 +64022,7 @@ function _getFocusStyleInternal(theme, options) { border: width + "px solid " + borderColor, outline: width + "px solid " + outlineColor, zIndex: (0, _zIndexes.ZIndexes).FocusStyle, + borderRadius: borderRadius, selectors: (_b = {}, _b[0, _commonStyles.HighContrastSelector] = highContrastStyle, _b) }, _a) }; @@ -64572,6 +64743,8 @@ parcelHelpers.exportAll(_index, exports); var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "getMenuItemStyles", ()=>(0, _contextualMenuCnstyles.getMenuItemStyles)); +parcelHelpers.export(exports, "getContextualMenuItemClassNames", ()=>(0, _contextualMenuClassNames.getItemClassNames)); +parcelHelpers.export(exports, "getContextualMenuItemStyles", ()=>(0, _contextualMenuClassNames.getItemStyles)); var _contextualMenu = require("./ContextualMenu"); parcelHelpers.exportAll(_contextualMenu, exports); var _contextualMenuBase = require("./ContextualMenu.base"); @@ -64585,8 +64758,9 @@ parcelHelpers.exportAll(_contextualMenuItemBase, exports); var _contextualMenuItemTypes = require("./ContextualMenuItem.types"); parcelHelpers.exportAll(_contextualMenuItemTypes, exports); var _contextualMenuCnstyles = require("./ContextualMenu.cnstyles"); +var _contextualMenuClassNames = require("./ContextualMenu.classNames"); -},{"./ContextualMenu":"7QQsJ","./ContextualMenu.base":"4PcRn","./ContextualMenu.types":"caH26","./ContextualMenuItem":"gtwxS","./ContextualMenuItem.base":"bS1pa","./ContextualMenuItem.types":"h0O6D","./ContextualMenu.cnstyles":"b8RGv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7QQsJ":[function(require,module,exports) { +},{"./ContextualMenu":"7QQsJ","./ContextualMenu.base":"4PcRn","./ContextualMenu.types":"caH26","./ContextualMenuItem":"gtwxS","./ContextualMenuItem.base":"bS1pa","./ContextualMenuItem.types":"h0O6D","./ContextualMenu.cnstyles":"b8RGv","./ContextualMenu.classNames":"XiyJW","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7QQsJ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "ContextualMenu", ()=>ContextualMenu); @@ -64798,27 +64972,33 @@ function useShouldUpdateFocusOnMouseMove(_a) { } function usePreviousActiveElement(_a, targetWindow) { var hidden = _a.hidden, onRestoreFocus = _a.onRestoreFocus; - var previousActiveElement = _react.useRef(); + var previousElementsQueue = _react.useRef([]); var tryFocusPreviousActiveElement = _react.useCallback(function(options) { var _a, _b; if (onRestoreFocus) onRestoreFocus(options); else if (options === null || options === void 0 ? void 0 : options.documentContainsFocus) // Make sure that the focus method actually exists // In some cases the object might exist but not be a real element. // This is primarily for IE 11 and should be removed once IE 11 is no longer in use. - (_b = (_a = previousActiveElement.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 || _b.call(_a); + (_b = (_a = previousElementsQueue.current[0]) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 || _b.call(_a); }, [ onRestoreFocus ]); (0, _reactHooks.useIsomorphicLayoutEffect)(function() { var _a; - if (!hidden) previousActiveElement.current = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement; - else if (previousActiveElement.current) { + if (!hidden) { + var targetElement = targetWindow === null || targetWindow === void 0 ? void 0 : targetWindow.document.activeElement; + var targetPosition = previousElementsQueue.current.indexOf(targetElement); + if (targetPosition > -1) previousElementsQueue.current = previousElementsQueue.current.slice(targetPosition + 1); + else previousElementsQueue.current = (0, _tslib.__spreadArray)([ + targetElement + ], previousElementsQueue.current); + } else if (previousElementsQueue.current.length > 0) { tryFocusPreviousActiveElement({ - originalElement: previousActiveElement.current, + originalElement: previousElementsQueue.current[0], containsFocus: true, documentContainsFocus: ((_a = (0, _utilities.getDocument)()) === null || _a === void 0 ? void 0 : _a.hasFocus()) || false }); - previousActiveElement.current = undefined; + previousElementsQueue.current = []; } }, [ hidden, @@ -65432,7 +65612,7 @@ var ContextualMenuBase = _react.memo(_react.forwardRef(function(propsWithoutDefa labelElementId: labelElementId }, function(menuListProps, defaultRender) { return onDefaultRenderMenuList(menuListProps, classNames, defaultRender); - }), adjustedFocusZoneProps) : null, submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu))); + }), adjustedFocusZoneProps) : null, submenuProps && onRenderSubMenu(submenuProps, onDefaultRenderSubMenu)), _react.createElement((0, _utilities.FocusRects), null)); }); } else return null; //#endregion @@ -65515,7 +65695,7 @@ parcelHelpers.exportAll(_index, exports); // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/react-focus", "8.7.3"); +(0, _setVersion.setVersion)("@fluentui/react-focus", "8.8.5"); },{"@fluentui/set-version":"aMFYG"}],"aHWFR":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -65802,7 +65982,6 @@ var FocusZone = /** @class */ function(_super) { var root = this._root.current; _allInstances[this._id] = this; if (root) { - this._windowElement = (0, _utilities.getWindow)(root); var parentElement = (0, _utilities.getParent)(root, ALLOW_VIRTUAL_ELEMENTS); while(parentElement && parentElement !== this._getDocument().body && parentElement.nodeType === 1){ if ((0, _utilities.isElementFocusZone)(parentElement)) { @@ -65813,7 +65992,7 @@ var FocusZone = /** @class */ function(_super) { } if (!this._isInnerZone) { _outerZones.add(this); - if (this._windowElement && _outerZones.size === 1) this._windowElement.addEventListener("keydown", FocusZone._onKeyDownCapture, true); + this._root.current && this._root.current.addEventListener("keydown", FocusZone._onKeyDownCapture, true); } this._root.current && this._root.current.addEventListener("blur", this._onBlur, true); // Assign initial tab indexes so that we can set initial focus as appropriate. @@ -65850,8 +66029,7 @@ var FocusZone = /** @class */ function(_super) { delete _allInstances[this._id]; if (!this._isInnerZone) { _outerZones.delete(this); - // If this is the last outer zone, remove the keydown listener. - if (this._windowElement && _outerZones.size === 0) this._windowElement.removeEventListener("keydown", FocusZone._onKeyDownCapture, true); + this._root.current && this._root.current.removeEventListener("keydown", FocusZone._onKeyDownCapture, true); } if (this._root.current) this._root.current.removeEventListener("blur", this._onBlur, true); this._activeElement = null; @@ -65894,9 +66072,11 @@ var FocusZone = /** @class */ function(_super) { * Sets focus to the first tabbable item in the zone. * @param forceIntoFirstElement - If true, focus will be forced into the first element, even * if focus is already in the focus zone. + * @param bypassHiddenElements - If true, focus will be not be set on hidden elements. * @returns True if focus could be set to an active element, false if no operation was taken. - */ FocusZone.prototype.focus = function(forceIntoFirstElement) { + */ FocusZone.prototype.focus = function(forceIntoFirstElement, bypassHiddenElements) { if (forceIntoFirstElement === void 0) forceIntoFirstElement = false; + if (bypassHiddenElements === void 0) bypassHiddenElements = false; if (this._root.current) { if (!forceIntoFirstElement && this._root.current.getAttribute(IS_FOCUSABLE_ATTRIBUTE) === "true" && this._isInnerZone) { var ownerZoneElement = this._getOwnerZone(this._root.current); @@ -65905,12 +66085,12 @@ var FocusZone = /** @class */ function(_super) { return !!ownerZone && ownerZone.focusElement(this._root.current); } return false; - } else if (!forceIntoFirstElement && this._activeElement && (0, _utilities.elementContains)(this._root.current, this._activeElement) && (0, _utilities.isElementTabbable)(this._activeElement)) { + } else if (!forceIntoFirstElement && this._activeElement && (0, _utilities.elementContains)(this._root.current, this._activeElement) && (0, _utilities.isElementTabbable)(this._activeElement) && (!bypassHiddenElements || (0, _utilities.isElementVisibleAndNotHidden)(this._activeElement))) { this._activeElement.focus(); return true; } else { var firstChild = this._root.current.firstChild; - return this.focusElement((0, _utilities.getNextElement)(this._root.current, firstChild, true)); + return this.focusElement((0, _utilities.getNextElement)(this._root.current, firstChild, true, undefined, undefined, undefined, undefined, undefined, bypassHiddenElements)); } } return false; @@ -66769,7 +66949,7 @@ var CalloutContentBase = _react.memo(_react.forwardRef(function(propsWithoutDefa var props = (0, _utilities.getPropsWithDefaults)(DEFAULT_PROPS, propsWithoutDefaults); var styles = props.styles, style = props.style, ariaLabel = props.ariaLabel, ariaDescribedBy = props.ariaDescribedBy, ariaLabelledBy = props.ariaLabelledBy, className = props.className, isBeakVisible = props.isBeakVisible, children = props.children, beakWidth = props.beakWidth, calloutWidth = props.calloutWidth, calloutMaxWidth = props.calloutMaxWidth, calloutMinWidth = props.calloutMinWidth, doNotLayer = props.doNotLayer, finalHeight = props.finalHeight, _a = props.hideOverflow, hideOverflow = _a === void 0 ? !!finalHeight : _a, backgroundColor = props.backgroundColor, calloutMaxHeight = props.calloutMaxHeight, onScroll = props.onScroll, // eslint-disable-next-line deprecation/deprecation _b = props.shouldRestoreFocus, // eslint-disable-next-line deprecation/deprecation - shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted; + shouldRestoreFocus = _b === void 0 ? true : _b, target = props.target, hidden = props.hidden, onLayerMounted = props.onLayerMounted, popupProps = props.popupProps; var hostElement = _react.useRef(null); var _c = _react.useState(null), calloutElement = _c[0], setCalloutElement = _c[1]; var calloutCallback = _react.useCallback(function(calloutEl) { @@ -66838,7 +67018,7 @@ var CalloutContentBase = _react.memo(_react.forwardRef(function(propsWithoutDefa style: getBeakPosition(positions) }), beakVisible && _react.createElement("div", { className: classNames.beakCurtain - }), _react.createElement((0, _popup.Popup), { + }), _react.createElement((0, _popup.Popup), (0, _tslib.__assign)({ // don't use getNativeElementProps for role and roledescription because it will also // pass through data-* props (resulting in them being used in two places) role: props.role, @@ -66854,7 +67034,7 @@ var CalloutContentBase = _react.memo(_react.forwardRef(function(propsWithoutDefa onScroll: onScroll, shouldRestoreFocus: shouldRestoreFocus, style: overflowStyle - }, children))); + }, popupProps), children))); }), function(previousProps, nextProps) { if (!nextProps.shouldUpdateWhenHidden && previousProps.hidden && nextProps.hidden) // Do not update when hidden. return true; @@ -67838,7 +68018,16 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "createDefaultLayerHost", ()=>(0, _layerNotification.createDefaultLayerHost)); parcelHelpers.export(exports, "cleanupDefaultLayerHost", ()=>(0, _layerNotification.cleanupDefaultLayerHost)); +parcelHelpers.export(exports, "getLayerHostSelector", ()=>(0, _layerNotification.getDefaultTarget)); +parcelHelpers.export(exports, "getLayerCount", ()=>(0, _layerNotification.getLayerCount)); +parcelHelpers.export(exports, "getLayerHost", ()=>(0, _layerNotification.getLayerHost)); +parcelHelpers.export(exports, "notifyHostChanged", ()=>(0, _layerNotification.notifyHostChanged)); +parcelHelpers.export(exports, "registerLayer", ()=>(0, _layerNotification.registerLayer)); +parcelHelpers.export(exports, "registerLayerHost", ()=>(0, _layerNotification.registerLayerHost)); parcelHelpers.export(exports, "setLayerHostSelector", ()=>(0, _layerNotification.setDefaultTarget)); +parcelHelpers.export(exports, "unregisterLayer", ()=>(0, _layerNotification.unregisterLayer)); +parcelHelpers.export(exports, "unregisterLayerHost", ()=>(0, _layerNotification.unregisterLayerHost)); +parcelHelpers.export(exports, "getLayerStyles", ()=>(0, _layerStyles.getStyles)); var _layer = require("./Layer"); parcelHelpers.exportAll(_layer, exports); var _layerBase = require("./Layer.base"); @@ -67850,8 +68039,9 @@ parcelHelpers.exportAll(_layerHost, exports); var _layerHostTypes = require("./LayerHost.types"); parcelHelpers.exportAll(_layerHostTypes, exports); var _layerNotification = require("./Layer.notification"); +var _layerStyles = require("./Layer.styles"); -},{"./Layer":"lx0Yf","./Layer.base":"1XPON","./Layer.types":"jRDWI","./LayerHost":"7K0Bc","./LayerHost.types":"jC168","./Layer.notification":"hAJk7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lx0Yf":[function(require,module,exports) { +},{"./Layer":"lx0Yf","./Layer.base":"1XPON","./Layer.types":"jRDWI","./LayerHost":"7K0Bc","./LayerHost.types":"jC168","./Layer.notification":"hAJk7","./Layer.styles":"2i1qc","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lx0Yf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "Layer", ()=>Layer); @@ -67887,6 +68077,7 @@ var LayerBase = _react.forwardRef(function(props, ref) { var rootRef = _react.useRef(null); var mergedRef = (0, _reactHooks.useMergedRefs)(rootRef, ref); var layerRef = _react.useRef(); + var fabricRef = _react.useRef(null); // Tracks if the layer mount events need to be raised. // Required to allow the DOM to render after the layer element is added. var _a = _react.useState(false), needRaiseLayerMount = _a[0], setNeedRaiseLayerMount = _a[1]; @@ -67974,9 +68165,13 @@ var LayerBase = _react.forwardRef(function(props, ref) { return _react.createElement("span", { className: "ms-layer", ref: mergedRef - }, layerRef.current && _reactDom.createPortal(/* eslint-disable deprecation/deprecation */ _react.createElement((0, _fabric.Fabric), (0, _tslib.__assign)({}, !eventBubblingEnabled && getFilteredEvents(), { - className: classNames.content - }), children), /* eslint-enable deprecation/deprecation */ layerRef.current)); + }, layerRef.current && _reactDom.createPortal(_react.createElement((0, _utilities.FocusRectsProvider), { + layerRoot: true, + providerRef: fabricRef + }, _react.createElement((0, _fabric.Fabric), (0, _tslib.__assign)({}, !eventBubblingEnabled && getFilteredEvents(), { + className: classNames.content, + ref: fabricRef + }), children)), layerRef.current)); }); LayerBase.displayName = "LayerBase"; var filteredEventProps; @@ -68116,7 +68311,6 @@ var FabricBase = _react.forwardRef(function(props, ref) { }); var rootElement = _react.useRef(null); useApplyThemeToBody(applyThemeToBody, classNames, rootElement); - (0, _utilities.useFocusRects)(rootElement); return _react.createElement(_react.Fragment, null, useRenderedContent(props, classNames, rootElement, ref)); }); FabricBase.displayName = "FabricBase"; @@ -68127,12 +68321,14 @@ function useRenderedContent(props, _a, rootElement, ref) { "dir" ]); var _c = getDir(props), rootDir = _c.rootDir, needsTheme = _c.needsTheme; - var renderedContent = _react.createElement(Root, (0, _tslib.__assign)({ + var renderedContent = _react.createElement((0, _utilities.FocusRectsProvider), { + providerRef: rootElement + }, _react.createElement(Root, (0, _tslib.__assign)({ dir: rootDir }, divProps, { className: root, ref: (0, _reactHooks.useMergedRefs)(rootElement, ref) - })); + }))); // Create the contextual theme if component direction does not match parent direction. if (needsTheme) // Disabling ThemeProvider here because theme doesn't need to be re-provided by ThemeProvider if dir has changed. renderedContent = // eslint-disable-next-line deprecation/deprecation @@ -68214,33 +68410,33 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); /** * Register a layer for a given host id - * @param hostId Id of the layer host - * @param layer Layer instance + * @param hostId - Id of the layer host + * @param layer - Layer instance */ parcelHelpers.export(exports, "registerLayer", ()=>registerLayer); /** * Unregister a layer for a given host id - * @param hostId Id of the layer host - * @param layer Layer instance + * @param hostId - Id of the layer host + * @param layer - Layer instance */ parcelHelpers.export(exports, "unregisterLayer", ()=>unregisterLayer); /** * Gets the number of layers currently registered with a host id. - * @param hostId Id of the layer host. + * @param hostId - Id of the layer host. * @returns The number of layers currently registered with the host. */ parcelHelpers.export(exports, "getLayerCount", ()=>getLayerCount); /** * Gets the Layer Host instance associated with a hostId, if applicable. - * @param hostId + * @param hostId - Id of the layer host * @returns A component ref for the associated layer host. */ parcelHelpers.export(exports, "getLayerHost", ()=>getLayerHost); /** * Registers a Layer Host with an associated hostId. - * @param hostId Id of the layer host - * @param layerHost layer host instance + * @param hostId - Id of the layer host + * @param layerHost - layer host instance */ parcelHelpers.export(exports, "registerLayerHost", ()=>registerLayerHost); /** * Unregisters a Layer Host from the associated hostId. - * @param hostId Id of the layer host - * @param layerHost layer host instance + * @param hostId - Id of the layer host + * @param layerHost - layer host instance */ parcelHelpers.export(exports, "unregisterLayerHost", ()=>unregisterLayerHost); /** * When no default layer host is provided, this function is executed to create the default host. @@ -76148,7 +76344,7 @@ var _measureScrollRect = _measurePageRect; var scrollTop = 0; var itemsPerPage = 1; for(var itemIndex = startIndex; itemIndex < endIndex; itemIndex += itemsPerPage){ - var pageSpecification = this._getPageSpecification(itemIndex, allowedRect); + var pageSpecification = this._getPageSpecification(this.props, itemIndex, allowedRect); var pageHeight = pageSpecification.height; itemsPerPage = pageSpecification.itemCount; var requestedIndexIsInPage = itemIndex <= index && itemIndex + itemsPerPage > index; @@ -76534,7 +76730,7 @@ var _measureScrollRect = _measurePageRect; var isFirstRender = this._estimatedPageHeight === 0 && !getPageHeight; var allowedRect = this._allowedRect; var _loop_1 = function(itemIndex) { - var pageSpecification = this_1._getPageSpecification(itemIndex, allowedRect); + var pageSpecification = this_1._getPageSpecification(props, itemIndex, allowedRect); var pageHeight = pageSpecification.height; var pageData = pageSpecification.data; var key = pageSpecification.key; @@ -76597,8 +76793,8 @@ var _measureScrollRect = _measurePageRect; measureVersion: this._measureVersion }); }; - List.prototype._getPageSpecification = function(itemIndex, visibleRect) { - var getPageSpecification = this.props.getPageSpecification; + List.prototype._getPageSpecification = function(props, itemIndex, visibleRect) { + var getPageSpecification = props.getPageSpecification; if (getPageSpecification) { var pageData = getPageSpecification(itemIndex, visibleRect); var _a = pageData.itemCount, itemCount = _a === void 0 ? this._getItemCountForPage(itemIndex, visibleRect) : _a; @@ -76786,6 +76982,9 @@ parcelHelpers.exportAll(_index, exports); },{"./components/CommandBar/index":"1w28u","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1w28u":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "getCommandBarStyles", ()=>(0, _commandBarStyles.getStyles)); +parcelHelpers.export(exports, "getCommandButtonStyles", ()=>(0, _commandBarStyles.getCommandButtonStyles)); +var _commandBarStyles = require("./CommandBar.styles"); var _commandBar = require("./CommandBar"); parcelHelpers.exportAll(_commandBar, exports); var _commandBarBase = require("./CommandBar.base"); @@ -76793,7 +76992,71 @@ parcelHelpers.exportAll(_commandBarBase, exports); var _commandBarTypes = require("./CommandBar.types"); parcelHelpers.exportAll(_commandBarTypes, exports); -},{"./CommandBar":"9EUs1","./CommandBar.base":"ftuio","./CommandBar.types":"eWnW9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9EUs1":[function(require,module,exports) { +},{"./CommandBar.styles":"1TgsQ","./CommandBar":"9EUs1","./CommandBar.base":"ftuio","./CommandBar.types":"eWnW9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1TgsQ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "getStyles", ()=>getStyles); +parcelHelpers.export(exports, "getCommandButtonStyles", ()=>getCommandButtonStyles); +var _tslib = require("tslib"); +var _utilities = require("../../Utilities"); +var COMMAND_BAR_HEIGHT = 44; +var getStyles = function(props) { + var className = props.className, theme = props.theme; + var semanticColors = theme.semanticColors; + return { + root: [ + theme.fonts.medium, + "ms-CommandBar", + { + display: "flex", + backgroundColor: semanticColors.bodyBackground, + padding: "0 14px 0 24px", + height: COMMAND_BAR_HEIGHT + }, + className, + ], + primarySet: [ + "ms-CommandBar-primaryCommand", + { + flexGrow: "1", + display: "flex", + alignItems: "stretch" + }, + ], + secondarySet: [ + "ms-CommandBar-secondaryCommand", + { + flexShrink: "0", + display: "flex", + alignItems: "stretch" + }, + ] + }; +}; +var getCommandButtonStyles = (0, _utilities.memoizeFunction)(function(customStyles) { + var rootStyles = { + height: "100%" + }; + var labelStyles = { + whiteSpace: "nowrap" + }; + var _a = customStyles || {}, root = _a.root, label = _a.label, restCustomStyles = (0, _tslib.__rest)(_a, [ + "root", + "label" + ]); + return (0, _tslib.__assign)((0, _tslib.__assign)({}, restCustomStyles), { + root: root ? [ + rootStyles, + root + ] : rootStyles, + label: label ? [ + labelStyles, + label + ] : labelStyles + }); +}); + +},{"tslib":"01Tx1","../../Utilities":"d0PNn","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9EUs1":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "CommandBar", ()=>CommandBar); @@ -76911,6 +77174,7 @@ var CommandBarBase = /** @class */ function(_super) { _this._onReduceData = function(data) { var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataReduced = _a.onDataReduced; var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey; + var farItems = data.farItems; // Use first item if shiftOnReduce, otherwise use last item var movedItem = primaryItems[shiftOnReduce ? 0 : primaryItems.length - 1]; if (movedItem !== undefined) { @@ -76925,7 +77189,8 @@ var CommandBarBase = /** @class */ function(_super) { }); cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, - overflow: overflowItems.length > 0 + overflow: overflowItems.length > 0, + farItems: farItems }); if (onDataReduced) onDataReduced(movedItem); newData.cacheKey = cacheKey; @@ -76937,6 +77202,7 @@ var CommandBarBase = /** @class */ function(_super) { var _a = _this.props, shiftOnReduce = _a.shiftOnReduce, onDataGrown = _a.onDataGrown; var minimumOverflowItems = data.minimumOverflowItems; var primaryItems = data.primaryItems, overflowItems = data.overflowItems, cacheKey = data.cacheKey; + var farItems = data.farItems; var movedItem = overflowItems[0]; // Make sure that moved item exists and is not one of the original overflow items if (movedItem !== undefined && overflowItems.length > minimumOverflowItems) { @@ -76954,7 +77220,8 @@ var CommandBarBase = /** @class */ function(_super) { }); cacheKey = _this._computeCacheKey({ primaryItems: primaryItems, - overflow: overflowItems.length > 0 + overflow: overflowItems.length > 0, + farItems: farItems }); if (onDataGrown) onDataGrown(movedItem); newData.cacheKey = cacheKey; @@ -76974,7 +77241,8 @@ var CommandBarBase = /** @class */ function(_super) { farItems: farItems, cacheKey: this._computeCacheKey({ primaryItems: (0, _tslib.__spreadArray)([], items), - overflow: overflowItems && overflowItems.length > 0 + overflow: overflowItems && overflowItems.length > 0, + farItems: farItems }) }; this._classNames = getClassNames(styles, { @@ -77008,16 +77276,18 @@ var CommandBarBase = /** @class */ function(_super) { }; }; CommandBarBase.prototype._computeCacheKey = function(data) { - var primaryItems = data.primaryItems, overflow = data.overflow; + var primaryItems = data.primaryItems, overflow = data.overflow, farItems = data.farItems; var returnKey = function(acc, current) { var _a = current.cacheKey, cacheKey = _a === void 0 ? current.key : _a; return acc + cacheKey; }; var primaryKey = primaryItems && primaryItems.reduce(returnKey, ""); var overflowKey = overflow ? "overflow" : ""; + var farKey = farItems && farItems.reduce(returnKey, ""); return [ primaryKey, - overflowKey + overflowKey, + farKey ].join(""); }; CommandBarBase.defaultProps = { @@ -77068,9 +77338,9 @@ var COMPONENT_NAME = "OverflowSet"; var useComponentRef = function(props, divContainer) { _react.useImperativeHandle(props.componentRef, function() { return { - focus: function() { + focus: function(_forceIntoFirstElement, bypassHiddenElements) { var focusSucceeded = false; - if (divContainer.current) focusSucceeded = (0, _utilities.focusFirstChild)(divContainer.current); + if (divContainer.current) focusSucceeded = (0, _utilities.focusFirstChild)(divContainer.current, bypassHiddenElements); return focusSucceeded; }, focusElement: function(childElement) { @@ -77958,9 +78228,9 @@ var TooltipHostBase = /** @class */ function(_super) { }); var isTooltipVisible = this.state.isTooltipVisible; var tooltipId = id || this._defaultTooltipId; - var isContentPresent = !!(content || tooltipProps && tooltipProps.onRenderContent && tooltipProps.onRenderContent()); - var showTooltip = isTooltipVisible && isContentPresent; - var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && isContentPresent ? tooltipId : undefined; + var tooltipContent = (tooltipProps === null || tooltipProps === void 0 ? void 0 : tooltipProps.onRenderContent) ? tooltipProps.onRenderContent() : content; + var showTooltip = isTooltipVisible && !!tooltipContent; + var ariaDescribedBy = setAriaDescribedBy && isTooltipVisible && !!tooltipContent ? tooltipId : undefined; return _react.createElement("div", (0, _tslib.__assign)({ className: this._classNames.root, ref: this._tooltipHost @@ -77993,7 +78263,7 @@ var TooltipHostBase = /** @class */ function(_super) { hidden: true, id: tooltipId, style: (0, _styling.hiddenContentStyle) - }, content)); + }, tooltipContent)); }; TooltipHostBase.prototype.componentWillUnmount = function() { if (TooltipHostBase._currentVisibleTooltip && TooltipHostBase._currentVisibleTooltip === this) TooltipHostBase._currentVisibleTooltip = undefined; @@ -78041,71 +78311,7 @@ var getStyles = function(props) { }; }; -},{"../../Styling":"fmg3v","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1TgsQ":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "getStyles", ()=>getStyles); -parcelHelpers.export(exports, "getCommandButtonStyles", ()=>getCommandButtonStyles); -var _tslib = require("tslib"); -var _utilities = require("../../Utilities"); -var COMMAND_BAR_HEIGHT = 44; -var getStyles = function(props) { - var className = props.className, theme = props.theme; - var semanticColors = theme.semanticColors; - return { - root: [ - theme.fonts.medium, - "ms-CommandBar", - { - display: "flex", - backgroundColor: semanticColors.bodyBackground, - padding: "0 14px 0 24px", - height: COMMAND_BAR_HEIGHT - }, - className, - ], - primarySet: [ - "ms-CommandBar-primaryCommand", - { - flexGrow: "1", - display: "flex", - alignItems: "stretch" - }, - ], - secondarySet: [ - "ms-CommandBar-secondaryCommand", - { - flexShrink: "0", - display: "flex", - alignItems: "stretch" - }, - ] - }; -}; -var getCommandButtonStyles = (0, _utilities.memoizeFunction)(function(customStyles) { - var rootStyles = { - height: "100%" - }; - var labelStyles = { - whiteSpace: "nowrap" - }; - var _a = customStyles || {}, root = _a.root, label = _a.label, restCustomStyles = (0, _tslib.__rest)(_a, [ - "root", - "label" - ]); - return (0, _tslib.__assign)((0, _tslib.__assign)({}, restCustomStyles), { - root: root ? [ - rootStyles, - root - ] : rootStyles, - label: label ? [ - labelStyles, - label - ] : labelStyles - }); -}); - -},{"tslib":"01Tx1","../../Utilities":"d0PNn","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eWnW9":[function(require,module,exports) { +},{"../../Styling":"fmg3v","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eWnW9":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -78421,7 +78627,7 @@ var ModalBase = _react.forwardRef(function(propsWithoutDefaults, ref) { eventBubblingEnabled: false }, layerProps), { onLayerDidMount: layerProps && layerProps.onLayerDidMount ? layerProps.onLayerDidMount : onLayerDidMount, - insertFirst: isModeless, + insertFirst: (layerProps === null || layerProps === void 0 ? void 0 : layerProps.insertFirst) || isModeless, className: classNames.layer }); // Allow the user to scroll within the modal but not on the body @@ -78736,7 +78942,7 @@ var getStyles = function(props) { fonts.medium, { backgroundColor: "transparent", - position: isModeless ? "absolute" : "fixed", + position: "fixed", height: "100%", width: "100%", display: "flex", @@ -78751,7 +78957,9 @@ var getStyles = function(props) { }, isOpen && classNames.isOpen, isVisible && { - opacity: 1, + opacity: 1 + }, + isVisible && !isModeless && { pointerEvents: "auto" }, className, @@ -78773,6 +78981,9 @@ var getStyles = function(props) { overflowY: "auto", zIndex: isModeless ? (0, _styling.ZIndexes).Layer : undefined }, + isModeless && { + pointerEvents: "auto" + }, topOffsetFixed && typeof modalRectangleTop === "number" && hasBeenOpened && { top: modalRectangleTop }, @@ -78797,10 +79008,8 @@ var getStyles = function(props) { layerClassName, classNames.layer, { - position: "static", - width: "unset", - height: "unset" - }, + pointerEvents: "none" + } ], keyboardMoveIconContainer: { position: "absolute", @@ -79939,7 +80148,7 @@ var DropdownInternal = /** @class */ function(_super) { title: title, // eslint-disable-next-line react/jsx-no-bind onRenderLabel: _this._onRenderItemLabel.bind(_this, item), - className: itemClassName, + className: (0, _utilities.css)(itemClassName, "is-multi-select"), checked: isItemSelected, styles: multiSelectItemStyles, ariaPositionInSet: !item.hidden ? _this._sizePosCache.positionInSet(item.index) : undefined, @@ -81399,23 +81608,22 @@ var getStyles = function(props) { if (isSelected === void 0) isSelected = false; return { selectors: (_a = { - "&:hover:focus": [ + "&:hover": [ { color: semanticColors.menuItemTextHovered, backgroundColor: !isSelected ? semanticColors.menuItemBackgroundHovered : selectedItemBackgroundColor }, highContrastItemAndTitleStateMixin, ], - "&:focus": [ + "&.is-multi-select:hover": [ { backgroundColor: !isSelected ? "transparent" : selectedItemBackgroundColor - }, - highContrastItemAndTitleStateMixin, + } ], - "&:active": [ + "&:active:hover": [ { color: semanticColors.menuItemTextHovered, - backgroundColor: !isSelected ? semanticColors.menuBackground : semanticColors.menuItemBackgroundHovered + backgroundColor: !isSelected ? semanticColors.menuItemBackgroundPressed : semanticColors.menuItemBackgroundHovered }, highContrastItemAndTitleStateMixin, ] @@ -84096,7 +84304,7 @@ exports.default = registerIconAliases; // Do not modify this file; it is generated as part of publish. // The checked in version is a placeholder only and will not be updated. var _setVersion = require("@fluentui/set-version"); -(0, _setVersion.setVersion)("@fluentui/font-icons-mdl2", "8.4.3"); +(0, _setVersion.setVersion)("@fluentui/font-icons-mdl2", "8.4.13"); },{"@fluentui/set-version":"aMFYG"}],"brPQz":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -85018,16 +85226,18 @@ parcelHelpers.exportAll(_index, exports); },{"./components/TextField/index":"iRJVA","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"iRJVA":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "getTextFieldStyles", ()=>(0, _textFieldStyles.getStyles)); var _textField = require("./TextField"); parcelHelpers.exportAll(_textField, exports); var _textFieldBase = require("./TextField.base"); parcelHelpers.exportAll(_textFieldBase, exports); +var _textFieldStyles = require("./TextField.styles"); var _textFieldTypes = require("./TextField.types"); parcelHelpers.exportAll(_textFieldTypes, exports); var _maskedTextField = require("./MaskedTextField/MaskedTextField"); parcelHelpers.exportAll(_maskedTextField, exports); -},{"./TextField":"hK2mI","./TextField.base":"31PTX","./TextField.types":"1P271","./MaskedTextField/MaskedTextField":"gGjsl","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hK2mI":[function(require,module,exports) { +},{"./TextField":"hK2mI","./TextField.base":"31PTX","./TextField.styles":"4dBZS","./TextField.types":"1P271","./MaskedTextField/MaskedTextField":"gGjsl","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hK2mI":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "TextField", ()=>TextField); @@ -85514,7 +85724,7 @@ function _browserNeedsRevealButton() { var win = (0, _utilities.getWindow)(); if (win === null || win === void 0 ? void 0 : win.navigator) { // Edge, Chromium Edge - var isEdge = /^Edg/.test(win.navigator.userAgent || ""); + var isEdge = /Edg/.test(win.navigator.userAgent || ""); __browserNeedsRevealButton = !((0, _utilities.isIE11)() || isEdge); } else __browserNeedsRevealButton = true; } @@ -87733,9 +87943,9 @@ parcelHelpers.export(exports, "timeFormatLocale", ()=>(0, _vegaFormat.timeFormat parcelHelpers.export(exports, "expressionFunction", ()=>(0, _vegaFunctions.expressionFunction)); parcelHelpers.export(exports, "parse", ()=>(0, _vegaParser.parse)); parcelHelpers.export(exports, "runtimeContext", ()=>(0, _vegaRuntime.context)); -parcelHelpers.export(exports, "codegenExpression", ()=>(0, _vegaExpression.codegen)); -parcelHelpers.export(exports, "parseExpression", ()=>(0, _vegaExpression.parse)); -parcelHelpers.export(exports, "parseSelector", ()=>(0, _vegaEventSelector.selector)); +parcelHelpers.export(exports, "codegenExpression", ()=>(0, _vegaExpression.codegenExpression)); +parcelHelpers.export(exports, "parseExpression", ()=>(0, _vegaExpression.parseExpression)); +parcelHelpers.export(exports, "parseSelector", ()=>(0, _vegaEventSelector.parseSelector)); parcelHelpers.export(exports, "version", ()=>version); var _vegaUtil = require("vega-util"); var _vegaDataflow = require("vega-dataflow"); @@ -87768,90 +87978,9 @@ var _vegaParser = require("vega-parser"); var _vegaRuntime = require("vega-runtime"); var _vegaExpression = require("vega-expression"); var _vegaEventSelector = require("vega-event-selector"); -var name = "vega"; -var version$1 = "5.20.2"; -var description = "The Vega visualization grammar."; -var keywords = [ - "vega", - "visualization", - "interaction", - "dataflow", - "library", - "data", - "d3" -]; -var license = "BSD-3-Clause"; -var author = "UW Interactive Data Lab (http://idl.cs.washington.edu)"; -var main = "build/vega-node.js"; -var module = "build/vega.module.js"; -var unpkg = "build/vega.min.js"; -var jsdelivr = "build/vega.min.js"; -var types = "index.d.ts"; -var repository = "vega/vega"; -var scripts = { - bundle: "rollup -c --config-bundle", - prebuild: "rimraf build && rimraf build-es5", - build: "rollup -c --config-core --config-bundle --config-ie", - postbuild: "node schema-copy", - pretest: "yarn build --config-test", - test: "TZ=America/Los_Angeles tape 'test/**/*-test.js'", - prepublishOnly: "yarn test && yarn build", - postpublish: "./schema-deploy.sh" -}; -var dependencies = { - "vega-crossfilter": "~4.0.5", - "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", - "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", - "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", - "vega-wordcloud": "~4.1.3" -}; -var devDependencies = { - "vega-schema": "*" -}; -var gitHead = "e251dbc61ab6645689d9f349e7dd9d15ddb85bce"; -var pkg = { - name: name, - version: version$1, - description: description, - keywords: keywords, - license: license, - author: author, - main: main, - module: module, - unpkg: unpkg, - jsdelivr: jsdelivr, - types: types, - repository: repository, - scripts: scripts, - dependencies: dependencies, - devDependencies: devDependencies, - gitHead: gitHead -}; +var version = "5.22.1"; // -- Transforms ----- (0, _vegaUtil.extend)((0, _vegaDataflow.transforms), _vegaTransforms, _vegaViewTransforms, _vegaEncode, _vegaGeo, _vegaForce, _vegaLabel, _vegaHierarchy, _vegaRegression, _vegaVoronoi, _vegaWordcloud, _vegaCrossfilter); // -- Exports ----- -const version = pkg.version; },{"vega-util":"dPFAY","vega-dataflow":"4kvYg","vega-transforms":"b5NmQ","vega-view-transforms":"5GAYs","vega-encode":"045Ip","vega-geo":"35zWv","vega-force":"gbywE","vega-hierarchy":"5vTN6","vega-label":"1Rqgb","vega-regression":"kvZot","vega-voronoi":"6qrVt","vega-wordcloud":"77b1A","vega-crossfilter":"e4OAM","vega-statistics":"hZmG3","vega-time":"hDlOp","vega-loader":"fAGtK","vega-scenegraph":"gIB0Z","vega-scale":"evQIv","vega-projection":"6FRxi","vega-view":"trjDL","vega-format":"bXIHh","vega-functions":"92bWe","vega-parser":"irqWQ","vega-runtime":"37uhx","vega-expression":"kqWZH","vega-event-selector":"kbnnw","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dPFAY":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -88023,7 +88152,7 @@ const Error$1 = 1; const Warn = 2; const Info = 3; const Debug = 4; -function logger(_, method) { +function logger(_, method, handler = log$1) { let level = _ || None; return { level (_) { @@ -88033,19 +88162,19 @@ function logger(_, method) { } else return level; }, error () { - if (level >= Error$1) log$1(method || "error", "ERROR", arguments); + if (level >= Error$1) handler(method || "error", "ERROR", arguments); return this; }, warn () { - if (level >= Warn) log$1(method || "warn", "WARN", arguments); + if (level >= Warn) handler(method || "warn", "WARN", arguments); return this; }, info () { - if (level >= Info) log$1(method || "log", "INFO", arguments); + if (level >= Info) handler(method || "log", "INFO", arguments); return this; }, debug () { - if (level >= Debug) log$1(method || "log", "DEBUG", arguments); + if (level >= Debug) handler(method || "log", "DEBUG", arguments); return this; } }; @@ -91521,6 +91650,9 @@ parcelHelpers.export(exports, "bisectLeft", ()=>(0, _bisectJs.bisectLeft)); parcelHelpers.export(exports, "bisectCenter", ()=>(0, _bisectJs.bisectCenter)); parcelHelpers.export(exports, "ascending", ()=>(0, _ascendingJsDefault.default)); parcelHelpers.export(exports, "bisector", ()=>(0, _bisectorJsDefault.default)); +parcelHelpers.export(exports, "blur", ()=>(0, _blurJs.blur)); +parcelHelpers.export(exports, "blur2", ()=>(0, _blurJs.blur2)); +parcelHelpers.export(exports, "blurImage", ()=>(0, _blurJs.blurImage)); parcelHelpers.export(exports, "count", ()=>(0, _countJsDefault.default)); parcelHelpers.export(exports, "cross", ()=>(0, _crossJsDefault.default)); parcelHelpers.export(exports, "cumsum", ()=>(0, _cumsumJsDefault.default)); @@ -91531,6 +91663,8 @@ parcelHelpers.export(exports, "Adder", ()=>(0, _fsumJs.Adder)); parcelHelpers.export(exports, "fsum", ()=>(0, _fsumJs.fsum)); parcelHelpers.export(exports, "fcumsum", ()=>(0, _fsumJs.fcumsum)); parcelHelpers.export(exports, "group", ()=>(0, _groupJsDefault.default)); +parcelHelpers.export(exports, "flatGroup", ()=>(0, _groupJs.flatGroup)); +parcelHelpers.export(exports, "flatRollup", ()=>(0, _groupJs.flatRollup)); parcelHelpers.export(exports, "groups", ()=>(0, _groupJs.groups)); parcelHelpers.export(exports, "index", ()=>(0, _groupJs.index)); parcelHelpers.export(exports, "indexes", ()=>(0, _groupJs.indexes)); @@ -91547,16 +91681,20 @@ parcelHelpers.export(exports, "max", ()=>(0, _maxJsDefault.default)); parcelHelpers.export(exports, "maxIndex", ()=>(0, _maxIndexJsDefault.default)); parcelHelpers.export(exports, "mean", ()=>(0, _meanJsDefault.default)); parcelHelpers.export(exports, "median", ()=>(0, _medianJsDefault.default)); +parcelHelpers.export(exports, "medianIndex", ()=>(0, _medianJs.medianIndex)); parcelHelpers.export(exports, "merge", ()=>(0, _mergeJsDefault.default)); parcelHelpers.export(exports, "min", ()=>(0, _minJsDefault.default)); parcelHelpers.export(exports, "minIndex", ()=>(0, _minIndexJsDefault.default)); +parcelHelpers.export(exports, "mode", ()=>(0, _modeJsDefault.default)); parcelHelpers.export(exports, "nice", ()=>(0, _niceJsDefault.default)); parcelHelpers.export(exports, "pairs", ()=>(0, _pairsJsDefault.default)); parcelHelpers.export(exports, "permute", ()=>(0, _permuteJsDefault.default)); parcelHelpers.export(exports, "quantile", ()=>(0, _quantileJsDefault.default)); +parcelHelpers.export(exports, "quantileIndex", ()=>(0, _quantileJs.quantileIndex)); parcelHelpers.export(exports, "quantileSorted", ()=>(0, _quantileJs.quantileSorted)); parcelHelpers.export(exports, "quickselect", ()=>(0, _quickselectJsDefault.default)); parcelHelpers.export(exports, "range", ()=>(0, _rangeJsDefault.default)); +parcelHelpers.export(exports, "rank", ()=>(0, _rankJsDefault.default)); parcelHelpers.export(exports, "least", ()=>(0, _leastJsDefault.default)); parcelHelpers.export(exports, "leastIndex", ()=>(0, _leastIndexJsDefault.default)); parcelHelpers.export(exports, "greatest", ()=>(0, _greatestJsDefault.default)); @@ -91593,6 +91731,7 @@ var _ascendingJs = require("./ascending.js"); var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); var _bisectorJs = require("./bisector.js"); var _bisectorJsDefault = parcelHelpers.interopDefault(_bisectorJs); +var _blurJs = require("./blur.js"); var _countJs = require("./count.js"); var _countJsDefault = parcelHelpers.interopDefault(_countJs); var _crossJs = require("./cross.js"); @@ -91632,6 +91771,8 @@ var _minJs = require("./min.js"); var _minJsDefault = parcelHelpers.interopDefault(_minJs); var _minIndexJs = require("./minIndex.js"); var _minIndexJsDefault = parcelHelpers.interopDefault(_minIndexJs); +var _modeJs = require("./mode.js"); +var _modeJsDefault = parcelHelpers.interopDefault(_modeJs); var _niceJs = require("./nice.js"); var _niceJsDefault = parcelHelpers.interopDefault(_niceJs); var _pairsJs = require("./pairs.js"); @@ -91644,6 +91785,8 @@ var _quickselectJs = require("./quickselect.js"); var _quickselectJsDefault = parcelHelpers.interopDefault(_quickselectJs); var _rangeJs = require("./range.js"); var _rangeJsDefault = parcelHelpers.interopDefault(_rangeJs); +var _rankJs = require("./rank.js"); +var _rankJsDefault = parcelHelpers.interopDefault(_rankJs); var _leastJs = require("./least.js"); var _leastJsDefault = parcelHelpers.interopDefault(_leastJs); var _leastIndexJs = require("./leastIndex.js"); @@ -91694,7 +91837,7 @@ var _unionJs = require("./union.js"); var _unionJsDefault = parcelHelpers.interopDefault(_unionJs); var _internmap = require("internmap"); -},{"./bisect.js":"a9fyl","./ascending.js":"3BPPi","./bisector.js":"2bvKF","./count.js":false,"./cross.js":false,"./cumsum.js":false,"./descending.js":false,"./deviation.js":"a68i2","./extent.js":false,"./fsum.js":"ke2C0","./group.js":false,"./groupSort.js":false,"./bin.js":false,"./threshold/freedmanDiaconis.js":false,"./threshold/scott.js":false,"./threshold/sturges.js":false,"./max.js":"8f8pE","./maxIndex.js":false,"./mean.js":"88IUx","./median.js":"c9ICZ","./merge.js":"14kry","./min.js":"1YYnD","./minIndex.js":false,"./nice.js":false,"./pairs.js":false,"./permute.js":"2dx3E","./quantile.js":"lHxtE","./quickselect.js":"ec6zf","./range.js":"7dCbL","./least.js":false,"./leastIndex.js":false,"./greatest.js":false,"./greatestIndex.js":false,"./scan.js":false,"./shuffle.js":false,"./sum.js":"fvrgL","./ticks.js":"eUhlt","./transpose.js":false,"./variance.js":"dQA4P","./zip.js":false,"./every.js":false,"./some.js":false,"./filter.js":false,"./map.js":false,"./reduce.js":false,"./reverse.js":false,"./sort.js":false,"./difference.js":false,"./disjoint.js":false,"./intersection.js":false,"./subset.js":false,"./superset.js":false,"./union.js":false,"internmap":"13ksD","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a9fyl":[function(require,module,exports) { +},{"./bisect.js":"a9fyl","./ascending.js":"3BPPi","./bisector.js":"2bvKF","./blur.js":false,"./count.js":false,"./cross.js":false,"./cumsum.js":false,"./descending.js":"xAhWI","./deviation.js":"a68i2","./extent.js":false,"./fsum.js":"ke2C0","./group.js":false,"./groupSort.js":false,"./bin.js":false,"./threshold/freedmanDiaconis.js":false,"./threshold/scott.js":false,"./threshold/sturges.js":false,"./max.js":"8f8pE","./maxIndex.js":"fulam","./mean.js":"88IUx","./median.js":"c9ICZ","./merge.js":"14kry","./min.js":"1YYnD","./minIndex.js":"4wlPS","./mode.js":false,"./nice.js":false,"./pairs.js":false,"./permute.js":"2dx3E","./quantile.js":"lHxtE","./quickselect.js":"ec6zf","./range.js":"7dCbL","./rank.js":false,"./least.js":false,"./leastIndex.js":false,"./greatest.js":"dAvo9","./greatestIndex.js":false,"./scan.js":false,"./shuffle.js":false,"./sum.js":"fvrgL","./ticks.js":"eUhlt","./transpose.js":false,"./variance.js":"dQA4P","./zip.js":false,"./every.js":false,"./some.js":false,"./filter.js":false,"./map.js":false,"./reduce.js":false,"./reverse.js":false,"./sort.js":"ieAiN","./difference.js":false,"./disjoint.js":false,"./intersection.js":false,"./subset.js":false,"./superset.js":false,"./union.js":false,"internmap":"13ksD","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a9fyl":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "bisectRight", ()=>bisectRight); @@ -91715,45 +91858,57 @@ exports.default = bisectRight; },{"./ascending.js":"3BPPi","./bisector.js":"2bvKF","./number.js":"h4wXR","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3BPPi":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -exports.default = function(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -}; +function ascending(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} +exports.default = ascending; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2bvKF":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _ascendingJs = require("./ascending.js"); var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); -exports.default = function(f) { - let delta = f; - let compare = f; - if (f.length === 1) { +var _descendingJs = require("./descending.js"); +var _descendingJsDefault = parcelHelpers.interopDefault(_descendingJs); +function bisector(f) { + let compare1, compare2, delta; + // If an accessor is specified, promote it to a comparator. In this case we + // can test whether the search value is (self-) comparable. We can’t do this + // for a comparator (except for specific, known comparators) because we can’t + // tell if the comparator is symmetric, and an asymmetric comparator can’t be + // used to test whether a single value is comparable. + if (f.length !== 2) { + compare1 = (0, _ascendingJsDefault.default); + compare2 = (d, x)=>(0, _ascendingJsDefault.default)(f(d), x); delta = (d, x)=>f(d) - x; - compare = ascendingComparator(f); + } else { + compare1 = f === (0, _ascendingJsDefault.default) || f === (0, _descendingJsDefault.default) ? f : zero; + compare2 = f; + delta = f; } - function left(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while(lo < hi){ - const mid = lo + hi >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + }while (lo < hi); } return lo; } - function right(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while(lo < hi){ - const mid = lo + hi >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) <= 0) lo = mid + 1; + else hi = mid; + }while (lo < hi); } return lo; } - function center(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; + function center(a, x, lo = 0, hi = a.length) { const i = left(a, x, lo, hi - 1); return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; } @@ -91762,18 +91917,28 @@ exports.default = function(f) { center, right }; -}; -function ascendingComparator(f) { - return (d, x)=>(0, _ascendingJsDefault.default)(f(d), x); +} +exports.default = bisector; +function zero() { + return 0; } -},{"./ascending.js":"3BPPi","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"h4wXR":[function(require,module,exports) { +},{"./ascending.js":"3BPPi","./descending.js":"xAhWI","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"xAhWI":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function descending(a, b) { + return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} +exports.default = descending; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"h4wXR":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "numbers", ()=>numbers); -exports.default = function(x) { +function number(x) { return x === null ? NaN : +x; -}; +} +exports.default = number; function* numbers(values, valueof) { if (valueof === undefined) { for (let value of values)if (value != null && (value = +value) >= value) yield value; @@ -91896,6 +92061,24 @@ function max(values, valueof) { } exports.default = max; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fulam":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function maxIndex(values, valueof) { + let max; + let maxIndex = -1; + let index = -1; + if (valueof === undefined) for (const value of values){ + ++index; + if (value != null && (max < value || max === undefined && value >= value)) max = value, maxIndex = index; + } + else { + for (let value1 of values)if ((value1 = valueof(value1, ++index, values)) != null && (max < value1 || max === undefined && value1 >= value1)) max = value1, maxIndex = index; + } + return maxIndex; +} +exports.default = maxIndex; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"88IUx":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -91915,24 +92098,37 @@ exports.default = mean; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c9ICZ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "medianIndex", ()=>medianIndex); var _quantileJs = require("./quantile.js"); var _quantileJsDefault = parcelHelpers.interopDefault(_quantileJs); -exports.default = function(values, valueof) { +function median(values, valueof) { return (0, _quantileJsDefault.default)(values, 0.5, valueof); -}; +} +exports.default = median; +function medianIndex(values, valueof) { + return (0, _quantileJs.quantileIndex)(values, 0.5, valueof); +} },{"./quantile.js":"lHxtE","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lHxtE":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "quantileSorted", ()=>quantileSorted); +parcelHelpers.export(exports, "quantileIndex", ()=>quantileIndex); var _maxJs = require("./max.js"); var _maxJsDefault = parcelHelpers.interopDefault(_maxJs); +var _maxIndexJs = require("./maxIndex.js"); +var _maxIndexJsDefault = parcelHelpers.interopDefault(_maxIndexJs); var _minJs = require("./min.js"); var _minJsDefault = parcelHelpers.interopDefault(_minJs); +var _minIndexJs = require("./minIndex.js"); +var _minIndexJsDefault = parcelHelpers.interopDefault(_minIndexJs); var _quickselectJs = require("./quickselect.js"); var _quickselectJsDefault = parcelHelpers.interopDefault(_quickselectJs); var _numberJs = require("./number.js"); var _numberJsDefault = parcelHelpers.interopDefault(_numberJs); +var _sortJs = require("./sort.js"); +var _greatestJs = require("./greatest.js"); +var _greatestJsDefault = parcelHelpers.interopDefault(_greatestJs); function quantile(values, p, valueof) { values = Float64Array.from((0, _numberJs.numbers)(values, valueof)); if (!(n = values.length)) return; @@ -91949,8 +92145,16 @@ function quantileSorted(values, p, valueof = (0, _numberJsDefault.default)) { var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = +valueof(values[i0], i0, values), value1 = +valueof(values[i0 + 1], i0 + 1, values); return value0 + (value1 - value0) * (i - i0); } +function quantileIndex(values, p, valueof) { + values = Float64Array.from((0, _numberJs.numbers)(values, valueof)); + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return (0, _minIndexJsDefault.default)(values); + if (p >= 1) return (0, _maxIndexJsDefault.default)(values); + var n, i = Math.floor((n - 1) * p), order = (i, j)=>(0, _sortJs.ascendingDefined)(values[i], values[j]), index = (0, _quickselectJsDefault.default)(Uint32Array.from(values, (_, i)=>i), i, 0, n - 1, order); + return (0, _greatestJsDefault.default)(index.subarray(0, i + 1), (i)=>values[i]); +} -},{"./max.js":"8f8pE","./min.js":"1YYnD","./quickselect.js":"ec6zf","./number.js":"h4wXR","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1YYnD":[function(require,module,exports) { +},{"./max.js":"8f8pE","./maxIndex.js":"fulam","./min.js":"1YYnD","./minIndex.js":"4wlPS","./quickselect.js":"ec6zf","./number.js":"h4wXR","./sort.js":"ieAiN","./greatest.js":"dAvo9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1YYnD":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function min(values, valueof) { @@ -91965,12 +92169,30 @@ function min(values, valueof) { } exports.default = min; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4wlPS":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function minIndex(values, valueof) { + let min; + let minIndex = -1; + let index = -1; + if (valueof === undefined) for (const value of values){ + ++index; + if (value != null && (min > value || min === undefined && value >= value)) min = value, minIndex = index; + } + else { + for (let value1 of values)if ((value1 = valueof(value1, ++index, values)) != null && (min > value1 || min === undefined && value1 >= value1)) min = value1, minIndex = index; + } + return minIndex; +} +exports.default = minIndex; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ec6zf":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _ascendingJs = require("./ascending.js"); -var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); -function quickselect(array, k, left = 0, right = array.length - 1, compare = (0, _ascendingJsDefault.default)) { +var _sortJs = require("./sort.js"); +function quickselect(array, k, left = 0, right = array.length - 1, compare) { + compare = compare === undefined ? (0, _sortJs.ascendingDefined) : (0, _sortJs.compareDefined)(compare); while(right > left){ if (right - left > 600) { const n = right - left + 1; @@ -92006,6 +92228,87 @@ function swap(array, i, j) { array[j] = t; } +},{"./sort.js":"ieAiN","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ieAiN":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "compareDefined", ()=>compareDefined); +parcelHelpers.export(exports, "ascendingDefined", ()=>ascendingDefined); +var _ascendingJs = require("./ascending.js"); +var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); +var _permuteJs = require("./permute.js"); +var _permuteJsDefault = parcelHelpers.interopDefault(_permuteJs); +function sort(values, ...F) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + values = Array.from(values); + let [f] = F; + if (f && f.length !== 2 || F.length > 1) { + const index = Uint32Array.from(values, (d, i)=>i); + if (F.length > 1) { + F = F.map((f)=>values.map(f)); + index.sort((i, j)=>{ + for (const f of F){ + const c = ascendingDefined(f[i], f[j]); + if (c) return c; + } + }); + } else { + f = values.map(f); + index.sort((i, j)=>ascendingDefined(f[i], f[j])); + } + return (0, _permuteJsDefault.default)(values, index); + } + return values.sort(compareDefined(f)); +} +exports.default = sort; +function compareDefined(compare = (0, _ascendingJsDefault.default)) { + if (compare === (0, _ascendingJsDefault.default)) return ascendingDefined; + if (typeof compare !== "function") throw new TypeError("compare is not a function"); + return (a, b)=>{ + const x = compare(a, b); + if (x || x === 0) return x; + return (compare(b, b) === 0) - (compare(a, a) === 0); + }; +} +function ascendingDefined(a, b) { + return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0); +} + +},{"./ascending.js":"3BPPi","./permute.js":"2dx3E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2dx3E":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function permute(source, keys) { + return Array.from(keys, (key)=>source[key]); +} +exports.default = permute; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dAvo9":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _ascendingJs = require("./ascending.js"); +var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); +function greatest(values, compare = (0, _ascendingJsDefault.default)) { + let max; + let defined = false; + if (compare.length === 1) { + let maxValue; + for (const element of values){ + const value = compare(element); + if (defined ? (0, _ascendingJsDefault.default)(value, maxValue) > 0 : (0, _ascendingJsDefault.default)(value, value) === 0) { + max = element; + maxValue = value; + defined = true; + } + } + } else { + for (const value1 of values)if (defined ? compare(value1, max) > 0 : compare(value1, value1) === 0) { + max = value1; + defined = true; + } + } + return max; +} +exports.default = greatest; + },{"./ascending.js":"3BPPi","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"14kry":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -92017,22 +92320,16 @@ function merge(arrays) { } exports.default = merge; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2dx3E":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -exports.default = function(source, keys) { - return Array.from(keys, (key)=>source[key]); -}; - },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7dCbL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -exports.default = function(start, stop, step) { +function range(start, stop, step) { start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range = new Array(n); while(++i < n)range[i] = start + i * step; return range; -}; +} +exports.default = range; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fvrgL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -92055,7 +92352,7 @@ parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "tickIncrement", ()=>tickIncrement); parcelHelpers.export(exports, "tickStep", ()=>tickStep); var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2); -exports.default = function(start, stop, count) { +function ticks(start, stop, count) { var reverse, i = -1, n, ticks, step; stop = +stop, start = +start, count = +count; if (start === stop && count > 0) return [ @@ -92079,7 +92376,8 @@ exports.default = function(start, stop, count) { } if (reverse) ticks.reverse(); return ticks; -}; +} +exports.default = ticks; function tickIncrement(start, stop, count) { var step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power); return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); @@ -92159,7 +92457,7 @@ function intern_set({ _intern , _key }, value) { function intern_delete({ _intern , _key }, value) { const key = _key(value); if (_intern.has(key)) { - value = _intern.get(value); + value = _intern.get(key); _intern.delete(key); } return value; @@ -98519,8 +98817,8 @@ Extent.Definition = { }); if (!Number.isFinite(min) || !Number.isFinite(max)) { let name = (0, _vegaUtil.accessorName)(field); - if (name) name = ` for field "${name}"`; - pulse.dataflow.warn(`Infinite extent${name}: [${min}, ${max}]`); + if (name) name = ' for field "'.concat(name, '"'); + pulse.dataflow.warn("Infinite extent".concat(name, ": [").concat(min, ", ").concat(max, "]")); min = max = undefined; } this.value = [ @@ -100038,7 +100336,7 @@ TimeUnit.Definition = { transform (_, pulse) { const field = _.field, band = _.interval !== false, utc = _.timezone === "utc", floor = this._floor(_, pulse), offset = (utc ? (0, _vegaTime.utcInterval) : (0, _vegaTime.timeInterval))(floor.unit).offset, as = _.as || OUTPUT, u0 = as[0], u1 = as[1], step = floor.step; let min = floor.start || Infinity, max = floor.stop || -Infinity, flag = pulse.ADD; - if (_.modified() || pulse.modified((0, _vegaUtil.accessorFields)(field))) { + if (_.modified() || pulse.changed(pulse.REM) || pulse.modified((0, _vegaUtil.accessorFields)(field))) { pulse = pulse.reflow(true); flag = pulse.SOURCE; min = Infinity; @@ -102393,6 +102691,7 @@ function viewSizeLayout(view, group, viewBounds, _) { },{"vega-dataflow":"4kvYg","vega-scenegraph":"gIB0Z","vega-util":"dPFAY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gIB0Z":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "path", ()=>(0, _d3Path.path)); parcelHelpers.export(exports, "Bounds", ()=>Bounds); parcelHelpers.export(exports, "CanvasHandler", ()=>CanvasHandler); parcelHelpers.export(exports, "CanvasRenderer", ()=>CanvasRenderer); @@ -102430,7 +102729,7 @@ parcelHelpers.export(exports, "markup", ()=>markup); parcelHelpers.export(exports, "multiLineOffset", ()=>multiLineOffset); parcelHelpers.export(exports, "pathCurves", ()=>curves); parcelHelpers.export(exports, "pathEqual", ()=>pathEqual); -parcelHelpers.export(exports, "pathParse", ()=>pathParse); +parcelHelpers.export(exports, "pathParse", ()=>parse); parcelHelpers.export(exports, "pathRectangle", ()=>vg_rect); parcelHelpers.export(exports, "pathRender", ()=>pathRender); parcelHelpers.export(exports, "pathSymbols", ()=>symbols); @@ -102581,51 +102880,60 @@ function curves(type, orientation, tension) { } return curve; } -// Path parsing and rendering code adapted from fabric.js -- Thanks! -const cmdlen = { +const paramCounts = { m: 2, l: 2, h: 1, v: 1, + z: 0, c: 6, s: 4, q: 4, t: 2, a: 7 -}, regexp = [ - /([MLHVCSQTAZmlhvcsqtaz])/g, - /###/, - /(\.\d+)(\.\d)/g, - /(\d)([-+])/g, - /\s|,|###/ -]; -function pathParse(pathstr) { - const result = []; - let curr, chunks, parsed, param, cmd, len, i, j, n, m; // First, break path into command sequence - const path = pathstr.slice().replace(regexp[0], "###$1").split(regexp[1]).slice(1); // Next, parse each command in turn - for(i = 0, n = path.length; i < n; ++i){ - curr = path[i]; - chunks = curr.slice(1).trim().replace(regexp[2], "$1###$2").replace(regexp[3], "$1###$2").split(regexp[4]); - cmd = curr.charAt(0); - parsed = [ - cmd - ]; - for(j = 0, m = chunks.length; j < m; ++j)if ((param = +chunks[j]) === param) // not NaN - parsed.push(param); - len = cmdlen[cmd.toLowerCase()]; - if (parsed.length - 1 > len) { - const m1 = parsed.length; - j = 1; - result.push([ - cmd - ].concat(parsed.slice(j, j += len))); // handle implicit lineTo (#2803) - cmd = cmd === "M" ? "L" : cmd === "m" ? "l" : cmd; - for(; j < m1; j += len)result.push([ - cmd - ].concat(parsed.slice(j, j + len))); - } else result.push(parsed); +}; +const commandPattern = /[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi; +const numberPattern = /^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/; +const spacePattern = /^((\s+,?\s*)|(,\s*))/; +const flagPattern = /^[01]/; +function parse(path) { + const commands = []; + const matches = path.match(commandPattern) || []; + matches.forEach((str)=>{ + let cmd = str[0]; + const type = cmd.toLowerCase(); // parse parameters + const paramCount = paramCounts[type]; + const params = parseParams(type, paramCount, str.slice(1).trim()); + const count = params.length; // error checking based on parameter count + if (count < paramCount || count && count % paramCount !== 0) throw Error("Invalid SVG path, incorrect parameter count"); + // register the command + commands.push([ + cmd, + ...params.slice(0, paramCount) + ]); // exit now if we're done, also handles zero-param 'z' + if (count === paramCount) return; + // handle implicit line-to + if (type === "m") cmd = cmd === "M" ? "L" : "l"; + // repeat command when given extended param list + for(let i = paramCount; i < count; i += paramCount)commands.push([ + cmd, + ...params.slice(i, i + paramCount) + ]); + }); + return commands; +} +function parseParams(type, paramCount, segment) { + const params = []; + for(let index = 0; paramCount && index < segment.length;)for(let i = 0; i < paramCount; ++i){ + const pattern = type === "a" && (i === 3 || i === 4) ? flagPattern : numberPattern; + const match = segment.slice(index).match(pattern); + if (match === null) throw Error("Invalid SVG path, incorrect parameter type"); + index += match[0].length; + params.push(+match[0]); + const ws = segment.slice(index).match(spacePattern); + if (ws !== null) index += ws[0].length; } - return result; + return params; } const DegToRad = Math.PI / 180; const Epsilon = 1e-14; @@ -102750,7 +103058,7 @@ function pathRender(context, path, l, t, sX, sY) { y = 0, // current y controlX = 0, // current control point x controlY = 0, // current control point y - tempX, tempY, tempControlX, tempControlY; + tempX, tempY, tempControlX, tempControlY, anchorX = 0, anchorY = 0; if (l == null) l = 0; if (t == null) t = 0; if (sX == null) sX = 1; @@ -102797,12 +103105,16 @@ function pathRender(context, path, l, t, sX, sY) { // moveTo, relative x += current[1]; y += current[2]; + anchorX = x; + anchorY = y; context.moveTo(x + l, y + t); break; case "M": // moveTo, absolute x = current[1]; y = current[2]; + anchorX = x; + anchorY = y; context.moveTo(x + l, y + t); break; case "c": @@ -102939,6 +103251,8 @@ function pathRender(context, path, l, t, sX, sY) { break; case "z": case "Z": + x = anchorX; + y = anchorY; context.closePath(); break; } @@ -103076,7 +103390,7 @@ function symbols(_) { var custom = {}; function customSymbol(path) { if (!(0, _vegaUtil.hasOwnProperty)(custom, path)) { - const parsed = pathParse(path); + const parsed = parse(path); custom[path] = { draw: function(context, size) { pathRender(context, parsed, 0, 0, Math.sqrt(size) / 2); @@ -104166,7 +104480,7 @@ function path$1(context, item) { var path = item.path; if (path == null) return true; var x = item.x || 0, y = item.y || 0, sx = item.scaleX || 1, sy = item.scaleY || 1, a = (item.angle || 0) * DegToRad, cache = item.pathCache; - if (!cache || cache.path !== path) (item.pathCache = cache = pathParse(path)).path = path; + if (!cache || cache.path !== path) (item.pathCache = cache = parse(path)).path = path; if (a && context.rotate && context.translate) { context.translate(x, y); context.rotate(a); @@ -104280,7 +104594,7 @@ function measureWidth(item, text) { return fontSize(item) <= 0 || !(text = textValue(item, text)) ? 0 : _measureWidth(text, font(item)); } function _measureWidth(text, currentFont) { - const key = `(${currentFont}) ${text}`; + const key = "(".concat(currentFont, ") ").concat(text); let width = widthCache.get(key); if (width === undefined) { context.font = currentFont; @@ -104737,10 +105051,10 @@ Handler.prototype = { }, /** * Add an event handler. Subclasses should override this method. - */ on () /*type, handler*/ {}, + */ on () {}, /** * Remove an event handler. Subclasses should override this method. - */ off () /*type, handler*/ {}, + */ off () {}, /** * Utility method for finding the array index of an event handler. * @param {Array} h - An array of registered event handlers. @@ -104901,7 +105215,7 @@ Renderer.prototype = { * This base class method does nothing. Subclasses that perform * incremental should implement this method. * @param {Item} item - The dirty item whose bounds should be redrawn. - */ dirty () /*item*/ {}, + */ dirty () {}, /** * Render an input scenegraph, potentially with a set of dirty items. * This method will perform an immediate rendering with available resources. @@ -104926,7 +105240,7 @@ Renderer.prototype = { * Internal rendering method. Renderer subclasses should override this * method to actually perform rendering. * @param {object} scene - The root mark of a scenegraph to render. - */ _render () /*scene*/ {}, + */ _render () {}, /** * Asynchronous rendering method. Similar to render, but returns a Promise * that resolves when all rendering is completed. Sometimes a renderer must @@ -105356,11 +105670,11 @@ const AriaGuides = { }, "title-text": { desc: "title", - caption: (item)=>`Title text '${titleCaption(item)}'` + caption: (item)=>"Title text '".concat(titleCaption(item), "'") }, "title-subtitle": { desc: "subtitle", - caption: (item)=>`Subtitle text '${titleCaption(item)}'` + caption: (item)=>"Subtitle text '".concat(titleCaption(item), "'") } }; // aria properties generated for mark item encoding channels const AriaEncode = { @@ -105376,7 +105690,7 @@ function ariaItemAttributes(emit, item) { const type = item.mark.marktype; emit(ARIA_LABEL, item.description); emit(ARIA_ROLE, item.ariaRole || (type === "group" ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL)); - emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || `${type} mark`); + emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || "".concat(type, " mark")); } } function ariaMarkAttributes(mark) { @@ -105387,7 +105701,7 @@ function ariaMarkAttributes(mark) { function ariaMark(mark) { const type = mark.marktype; const recurse = type === "group" || type === "text" || mark.items.some((_)=>_.description != null && _.aria !== false); - return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, `${type} mark container`, mark.description); + return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, "".concat(type, " mark container"), mark.description); } function ariaGuide(mark, opt) { try { @@ -105402,11 +105716,11 @@ function titleCaption(item) { } function axisCaption(item) { const datum = item.datum, orient = item.orient, title = datum.title ? extractTitle(item) : null, ctx = item.context, scale = ctx.scales[datum.scale].value, locale = ctx.dataflow.locale(), type = scale.type, xy = orient === "left" || orient === "right" ? "Y" : "X"; - return `${xy}-axis` + (title ? ` titled '${title}'` : "") + ` for a ${(0, _vegaScale.isDiscrete)(type) ? "discrete" : type} scale` + ` with ${(0, _vegaScale.domainCaption)(locale, scale, item)}`; + return "".concat(xy, "-axis") + (title ? " titled '".concat(title, "'") : "") + " for a ".concat((0, _vegaScale.isDiscrete)(type) ? "discrete" : type, " scale") + " with ".concat((0, _vegaScale.domainCaption)(locale, scale, item)); } function legendCaption(item) { - const datum = item.datum, title = datum.title ? extractTitle(item) : null, type = `${datum.type || ""} legend`.trim(), scales = datum.scales, props = Object.keys(scales), ctx = item.context, scale = ctx.scales[scales[props[0]]].value, locale = ctx.dataflow.locale(); - return capitalize(type) + (title ? ` titled '${title}'` : "") + ` for ${channelCaption(props)}` + ` with ${(0, _vegaScale.domainCaption)(locale, scale, item)}`; + const datum = item.datum, title = datum.title ? extractTitle(item) : null, type = "".concat(datum.type || "", " legend").trim(), scales = datum.scales, props = Object.keys(scales), ctx = item.context, scale = ctx.scales[scales[props[0]]].value, locale = ctx.dataflow.locale(); + return capitalize(type) + (title ? " titled '".concat(title, "'") : "") + " for ".concat(channelCaption(props)) + " with ".concat((0, _vegaScale.domainCaption)(locale, scale, item)); } function extractTitle(item) { try { @@ -105428,24 +105742,25 @@ function markup() { let buf = "", outer = "", inner = ""; const stack = [], clear = ()=>outer = inner = "", push = (tag)=>{ if (outer) { - buf += `${outer}>${inner}`; + buf += "".concat(outer, ">").concat(inner); clear(); } stack.push(tag); }, attr = (name, value)=>{ - if (value != null) outer += ` ${name}="${attrText(value)}"`; + if (value != null) outer += " ".concat(name, '="').concat(attrText(value), '"'); return m; }, m = { - open (tag, ...attrs) { + open (tag) { push(tag); outer = "<" + tag; + for(var _len = arguments.length, attrs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)attrs[_key - 1] = arguments[_key]; for (const set of attrs)for(const key in set)attr(key, set[key]); return m; }, close () { const tag = stack.pop(); - if (outer) buf += outer + (inner ? `>${inner}` : "/>"); - else buf += ``; + if (outer) buf += outer + (inner ? ">".concat(inner, "") : "/>"); + else buf += ""); clear(); return m; }, @@ -105463,16 +105778,13 @@ function _serialize(m, node) { for(let i = 0; i < n; ++i)m.attr(attrs[i].name, attrs[i].value); } if (node.hasChildNodes()) { - const children = node.childNodes, n1 = children.length; - for(let i1 = 0; i1 < n1; i1++){ - const child = children[i1]; - child.nodeType === 3 // text node - ? m.text(child.nodeValue) : _serialize(m, child); - } + const children = node.childNodes; + for (const child of children)child.nodeType === 3 // text node + ? m.text(child.nodeValue) : _serialize(m, child); } return m.close(); } -const styles = { +const stylesAttr = { fill: "fill", fillOpacity: "fill-opacity", stroke: "stroke", @@ -105483,7 +105795,9 @@ const styles = { strokeDash: "stroke-dasharray", strokeDashOffset: "stroke-dashoffset", strokeMiterLimit: "stroke-miterlimit", - opacity: "opacity", + opacity: "opacity" +}; +const stylesCss = { blend: "mix-blend-mode" }; // ensure miter limit default is consistent with canvas (#2498) const rootAttributes = { @@ -105550,9 +105864,9 @@ const base = Renderer.prototype; setAttributes(this._svg, { width: this._width * this._scale, height: this._height * this._scale, - viewBox: `0 0 ${this._width} ${this._height}` + viewBox: "0 0 ".concat(this._width, " ").concat(this._height) }); - this._root.setAttribute("transform", `translate(${this._origin})`); + this._root.setAttribute("transform", "translate(".concat(this._origin, ")")); } this._dirty = []; return this; @@ -105615,7 +105929,7 @@ const base = Renderer.prototype; * Check if a mark item is considered dirty. * @param {Item} item - The mark item. */ isDirty (item) { - return this._dirtyAll || !item._svg || item.dirty === this._dirtyID; + return this._dirtyAll || !item._svg || !item._svg.ownerSVGElement || item.dirty === this._dirtyID; }, /** * Internal method to check dirty status and, if possible, @@ -105677,13 +105991,13 @@ const base = Renderer.prototype; */ mark (el, scene, prev) { if (!this.isDirty(scene)) return scene._svg; const svg = this._svg, mdef = Marks[scene.marktype], events = scene.interactive === false ? "none" : null, isGroup = mdef.tag === "g"; - let sibling = null, i = 0; const parent = bind(scene, el, prev, "g", svg); parent.setAttribute("class", cssClass(scene)); // apply aria attributes to parent container element const aria = ariaMarkAttributes(scene); for(const key in aria)setAttribute(parent, key, aria[key]); if (!isGroup) setAttribute(parent, "pointer-events", events); setAttribute(parent, "clip-path", scene.clip ? clip$1(this, scene, scene.group) : null); + let sibling = null, i = 0; const process = (item)=>{ const dirty = this.isDirty(item), node = bind(item, parent, sibling, mdef.tag, svg); if (dirty) { @@ -105722,10 +106036,10 @@ const base = Renderer.prototype; * @param {Item} item - The mark item. */ style (el, item) { if (item == null) return; - for(const prop in styles){ + for(const prop in stylesAttr){ let value = prop === "font" ? fontFamily(item) : item[prop]; if (value === values[prop]) continue; - const name = styles[prop]; + const name = stylesAttr[prop]; if (value == null) el.removeAttribute(name); else { if (isGradient(value)) value = gradientRef(value, this._defs.gradient, href()); @@ -105733,6 +106047,7 @@ const base = Renderer.prototype; } values[prop] = value; } + for(const prop1 in stylesCss)setStyle(el, stylesCss[prop1], item[prop1]); }, /** * Render SVG defs, as needed. @@ -105785,7 +106100,7 @@ function updateGradient(el, grad, index) { setAttributes(pt, { width: 1, height: 1, - fill: `url(${href()}#${grad.id})` + fill: "url(".concat(href(), "#").concat(grad.id, ")") }); el = domChild(el, index++, "radialGradient", svgns); setAttributes(el, { @@ -105835,6 +106150,8 @@ function updateClipping(el, clip, index) { return index + 1; } // Recursively process group contents. function recurse(renderer, el, group) { + // child 'g' element is second to last among children (path, g, path) + // other children here are foreground and background path elements el = el.lastChild.previousSibling; let prev, idx = 0; visit(group, (item)=>{ @@ -106011,7 +106328,7 @@ function SVGStringRenderer(loader) { class: "marks", width: this._width * this._scale, height: this._height * this._scale, - viewBox: `0 0 ${this._width} ${this._height}` + viewBox: "0 0 ".concat(this._width, " ").concat(this._height) })); // background, if defined const bg = this._bgcolor; if (bg && bg !== "transparent" && bg !== "none") m.open("rect", { @@ -106187,6 +106504,7 @@ function SVGStringRenderer(loader) { } }); // Helper function for attr for style presentation attributes function style(s, item, scene, tag, defs) { + let styleList; if (item == null) return s; if (tag === "bgrect" && scene.interactive === false) s["pointer-events"] = "none"; if (tag === "bgfore") { @@ -106194,7 +106512,10 @@ function style(s, item, scene, tag, defs) { s.display = "none"; if (item.fill !== null) return s; } - if (tag === "image" && item.smooth === false) s.style = "image-rendering: optimizeSpeed; image-rendering: pixelated;"; + if (tag === "image" && item.smooth === false) styleList = [ + "image-rendering: optimizeSpeed;", + "image-rendering: pixelated;" + ]; if (tag === "text") { s["font-family"] = fontFamily(item); s["font-size"] = fontSize(item) + "px"; @@ -106202,15 +106523,23 @@ function style(s, item, scene, tag, defs) { s["font-variant"] = item.fontVariant; s["font-weight"] = item.fontWeight; } - for(const prop in styles){ + for(const prop in stylesAttr){ let value = item[prop]; - const name = styles[prop]; + const name = stylesAttr[prop]; if (value === "transparent" && (name === "fill" || name === "stroke")) ; else if (value != null) { if (isGradient(value)) value = gradientRef(value, defs.gradient, ""); s[name] = value; } } + for(const prop1 in stylesCss){ + const value1 = item[prop1]; + if (value1 != null) { + styleList = styleList || []; + styleList.push("".concat(stylesCss[prop1], ": ").concat(value1, ";")); + } + } + if (styleList) s.style = styleList.join(" "); return s; } const Canvas = "canvas"; @@ -106299,7 +106628,7 @@ function sceneEqual(a, b, key) { return a === b ? true : key === "path" ? pathEqual(a, b) : a instanceof Date && b instanceof Date ? +a === +b : (0, _vegaUtil.isNumber)(a) && (0, _vegaUtil.isNumber)(b) ? Math.abs(a - b) <= TOLERANCE : !a || !b || !(0, _vegaUtil.isObject)(a) && !(0, _vegaUtil.isObject)(b) ? a == b : objectEqual(a, b); } function pathEqual(a, b) { - return sceneEqual(pathParse(a), pathParse(b)); + return sceneEqual(parse(a), parse(b)); } function objectEqual(a, b) { var ka = Object.keys(a), kb = Object.keys(b), key, i; @@ -106334,18 +106663,27 @@ parcelHelpers.export(exports, "lineRadial", ()=>(0, _lineRadialJsDefault.default ; parcelHelpers.export(exports, "radialLine", ()=>(0, _lineRadialJsDefault.default)); parcelHelpers.export(exports, "pointRadial", ()=>(0, _pointRadialJsDefault.default)); -parcelHelpers.export(exports, "linkHorizontal", ()=>(0, _indexJs.linkHorizontal)); -parcelHelpers.export(exports, "linkVertical", ()=>(0, _indexJs.linkVertical)); -parcelHelpers.export(exports, "linkRadial", ()=>(0, _indexJs.linkRadial)); +parcelHelpers.export(exports, "link", ()=>(0, _linkJs.link)); +parcelHelpers.export(exports, "linkHorizontal", ()=>(0, _linkJs.linkHorizontal)); +parcelHelpers.export(exports, "linkVertical", ()=>(0, _linkJs.linkVertical)); +parcelHelpers.export(exports, "linkRadial", ()=>(0, _linkJs.linkRadial)); parcelHelpers.export(exports, "symbol", ()=>(0, _symbolJsDefault.default)); -parcelHelpers.export(exports, "symbols", ()=>(0, _symbolJs.symbols)); +parcelHelpers.export(exports, "symbolsStroke", ()=>(0, _symbolJs.symbolsStroke)); +parcelHelpers.export(exports, "symbolsFill", ()=>(0, _symbolJs.symbolsFill)); +parcelHelpers.export(exports, "symbols", ()=>(0, _symbolJs.symbolsFill)); +parcelHelpers.export(exports, "symbolAsterisk", ()=>(0, _asteriskJsDefault.default)); parcelHelpers.export(exports, "symbolCircle", ()=>(0, _circleJsDefault.default)); parcelHelpers.export(exports, "symbolCross", ()=>(0, _crossJsDefault.default)); parcelHelpers.export(exports, "symbolDiamond", ()=>(0, _diamondJsDefault.default)); +parcelHelpers.export(exports, "symbolDiamond2", ()=>(0, _diamond2JsDefault.default)); +parcelHelpers.export(exports, "symbolPlus", ()=>(0, _plusJsDefault.default)); parcelHelpers.export(exports, "symbolSquare", ()=>(0, _squareJsDefault.default)); +parcelHelpers.export(exports, "symbolSquare2", ()=>(0, _square2JsDefault.default)); parcelHelpers.export(exports, "symbolStar", ()=>(0, _starJsDefault.default)); parcelHelpers.export(exports, "symbolTriangle", ()=>(0, _triangleJsDefault.default)); +parcelHelpers.export(exports, "symbolTriangle2", ()=>(0, _triangle2JsDefault.default)); parcelHelpers.export(exports, "symbolWye", ()=>(0, _wyeJsDefault.default)); +parcelHelpers.export(exports, "symbolX", ()=>(0, _xJsDefault.default)); parcelHelpers.export(exports, "curveBasisClosed", ()=>(0, _basisClosedJsDefault.default)); parcelHelpers.export(exports, "curveBasisOpen", ()=>(0, _basisOpenJsDefault.default)); parcelHelpers.export(exports, "curveBasis", ()=>(0, _basisJsDefault.default)); @@ -106392,23 +106730,35 @@ var _lineRadialJs = require("./lineRadial.js"); var _lineRadialJsDefault = parcelHelpers.interopDefault(_lineRadialJs); var _pointRadialJs = require("./pointRadial.js"); var _pointRadialJsDefault = parcelHelpers.interopDefault(_pointRadialJs); -var _indexJs = require("./link/index.js"); +var _linkJs = require("./link.js"); var _symbolJs = require("./symbol.js"); var _symbolJsDefault = parcelHelpers.interopDefault(_symbolJs); +var _asteriskJs = require("./symbol/asterisk.js"); +var _asteriskJsDefault = parcelHelpers.interopDefault(_asteriskJs); var _circleJs = require("./symbol/circle.js"); var _circleJsDefault = parcelHelpers.interopDefault(_circleJs); var _crossJs = require("./symbol/cross.js"); var _crossJsDefault = parcelHelpers.interopDefault(_crossJs); var _diamondJs = require("./symbol/diamond.js"); var _diamondJsDefault = parcelHelpers.interopDefault(_diamondJs); +var _diamond2Js = require("./symbol/diamond2.js"); +var _diamond2JsDefault = parcelHelpers.interopDefault(_diamond2Js); +var _plusJs = require("./symbol/plus.js"); +var _plusJsDefault = parcelHelpers.interopDefault(_plusJs); var _squareJs = require("./symbol/square.js"); var _squareJsDefault = parcelHelpers.interopDefault(_squareJs); +var _square2Js = require("./symbol/square2.js"); +var _square2JsDefault = parcelHelpers.interopDefault(_square2Js); var _starJs = require("./symbol/star.js"); var _starJsDefault = parcelHelpers.interopDefault(_starJs); var _triangleJs = require("./symbol/triangle.js"); var _triangleJsDefault = parcelHelpers.interopDefault(_triangleJs); +var _triangle2Js = require("./symbol/triangle2.js"); +var _triangle2JsDefault = parcelHelpers.interopDefault(_triangle2Js); var _wyeJs = require("./symbol/wye.js"); var _wyeJsDefault = parcelHelpers.interopDefault(_wyeJs); +var _xJs = require("./symbol/x.js"); +var _xJsDefault = parcelHelpers.interopDefault(_xJs); var _basisClosedJs = require("./curve/basisClosed.js"); var _basisClosedJsDefault = parcelHelpers.interopDefault(_basisClosedJs); var _basisOpenJs = require("./curve/basisOpen.js"); @@ -106464,7 +106814,7 @@ var _noneJsDefault1 = parcelHelpers.interopDefault(_noneJs1); var _reverseJs = require("./order/reverse.js"); var _reverseJsDefault = parcelHelpers.interopDefault(_reverseJs); -},{"./arc.js":"hBXaC","./area.js":"7HGRc","./line.js":"iTpSu","./pie.js":false,"./areaRadial.js":false,"./lineRadial.js":false,"./pointRadial.js":false,"./link/index.js":false,"./symbol.js":"6wXmG","./symbol/circle.js":"9G0bU","./symbol/cross.js":"3dJnN","./symbol/diamond.js":"O6MwS","./symbol/square.js":"llhtb","./symbol/star.js":"4OIBI","./symbol/triangle.js":"bcE3R","./symbol/wye.js":"ceglC","./curve/basisClosed.js":"LU7y1","./curve/basisOpen.js":"iUFcz","./curve/basis.js":"fxwIG","./curve/bump.js":false,"./curve/bundle.js":"1IdIu","./curve/cardinalClosed.js":"i9B3n","./curve/cardinalOpen.js":"feING","./curve/cardinal.js":"jFqTA","./curve/catmullRomClosed.js":"7vsUO","./curve/catmullRomOpen.js":"gmFtf","./curve/catmullRom.js":"9AIhm","./curve/linearClosed.js":"iNV0m","./curve/linear.js":"kDDgD","./curve/monotone.js":"jALvT","./curve/natural.js":"9Lzi3","./curve/step.js":"1D7Gv","./stack.js":false,"./offset/expand.js":false,"./offset/diverging.js":false,"./offset/none.js":false,"./offset/silhouette.js":false,"./offset/wiggle.js":false,"./order/appearance.js":false,"./order/ascending.js":false,"./order/descending.js":false,"./order/insideOut.js":false,"./order/none.js":false,"./order/reverse.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hBXaC":[function(require,module,exports) { +},{"./arc.js":"hBXaC","./area.js":"7HGRc","./line.js":"iTpSu","./pie.js":false,"./areaRadial.js":false,"./lineRadial.js":false,"./pointRadial.js":false,"./link.js":false,"./symbol.js":"6wXmG","./symbol/asterisk.js":"j4DN4","./symbol/circle.js":"9G0bU","./symbol/cross.js":"3dJnN","./symbol/diamond.js":"O6MwS","./symbol/diamond2.js":"grkT4","./symbol/plus.js":"6KkxA","./symbol/square.js":"llhtb","./symbol/square2.js":"b16iw","./symbol/star.js":"4OIBI","./symbol/triangle.js":"bcE3R","./symbol/triangle2.js":"jdvpz","./symbol/wye.js":"ceglC","./symbol/x.js":"ceBP8","./curve/basisClosed.js":"LU7y1","./curve/basisOpen.js":"iUFcz","./curve/basis.js":"fxwIG","./curve/bump.js":false,"./curve/bundle.js":"1IdIu","./curve/cardinalClosed.js":"i9B3n","./curve/cardinalOpen.js":"feING","./curve/cardinal.js":"jFqTA","./curve/catmullRomClosed.js":"7vsUO","./curve/catmullRomOpen.js":"gmFtf","./curve/catmullRom.js":"9AIhm","./curve/linearClosed.js":"iNV0m","./curve/linear.js":"kDDgD","./curve/monotone.js":"jALvT","./curve/natural.js":"9Lzi3","./curve/step.js":"1D7Gv","./stack.js":false,"./offset/expand.js":false,"./offset/diverging.js":false,"./offset/none.js":false,"./offset/silhouette.js":false,"./offset/wiggle.js":false,"./order/appearance.js":false,"./order/ascending.js":false,"./order/descending.js":false,"./order/insideOut.js":false,"./order/none.js":false,"./order/reverse.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hBXaC":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _d3Path = require("d3-path"); @@ -106719,17 +107069,17 @@ parcelHelpers.export(exports, "halfPi", ()=>halfPi); parcelHelpers.export(exports, "tau", ()=>tau); parcelHelpers.export(exports, "acos", ()=>acos); parcelHelpers.export(exports, "asin", ()=>asin); -var abs = Math.abs; -var atan2 = Math.atan2; -var cos = Math.cos; -var max = Math.max; -var min = Math.min; -var sin = Math.sin; -var sqrt = Math.sqrt; -var epsilon = 1e-12; -var pi = Math.PI; -var halfPi = pi / 2; -var tau = 2 * pi; +const abs = Math.abs; +const atan2 = Math.atan2; +const cos = Math.cos; +const max = Math.max; +const min = Math.min; +const sin = Math.sin; +const sqrt = Math.sqrt; +const epsilon = 1e-12; +const pi = Math.PI; +const halfPi = pi / 2; +const tau = 2 * pi; function acos(x) { return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); } @@ -106859,7 +107209,7 @@ Linear.prototype = { this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; case 1: - this._point = 2; // proceed + this._point = 2; // falls through default: this._context.lineTo(x, y); break; @@ -106930,25 +107280,38 @@ function y(p) { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6wXmG":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "symbols", ()=>symbols); +parcelHelpers.export(exports, "symbolsFill", ()=>symbolsFill); +parcelHelpers.export(exports, "symbolsStroke", ()=>symbolsStroke); var _d3Path = require("d3-path"); +var _constantJs = require("./constant.js"); +var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); +var _asteriskJs = require("./symbol/asterisk.js"); +var _asteriskJsDefault = parcelHelpers.interopDefault(_asteriskJs); var _circleJs = require("./symbol/circle.js"); var _circleJsDefault = parcelHelpers.interopDefault(_circleJs); var _crossJs = require("./symbol/cross.js"); var _crossJsDefault = parcelHelpers.interopDefault(_crossJs); var _diamondJs = require("./symbol/diamond.js"); var _diamondJsDefault = parcelHelpers.interopDefault(_diamondJs); -var _starJs = require("./symbol/star.js"); -var _starJsDefault = parcelHelpers.interopDefault(_starJs); +var _diamond2Js = require("./symbol/diamond2.js"); +var _diamond2JsDefault = parcelHelpers.interopDefault(_diamond2Js); +var _plusJs = require("./symbol/plus.js"); +var _plusJsDefault = parcelHelpers.interopDefault(_plusJs); var _squareJs = require("./symbol/square.js"); var _squareJsDefault = parcelHelpers.interopDefault(_squareJs); +var _square2Js = require("./symbol/square2.js"); +var _square2JsDefault = parcelHelpers.interopDefault(_square2Js); +var _starJs = require("./symbol/star.js"); +var _starJsDefault = parcelHelpers.interopDefault(_starJs); var _triangleJs = require("./symbol/triangle.js"); var _triangleJsDefault = parcelHelpers.interopDefault(_triangleJs); +var _triangle2Js = require("./symbol/triangle2.js"); +var _triangle2JsDefault = parcelHelpers.interopDefault(_triangle2Js); var _wyeJs = require("./symbol/wye.js"); var _wyeJsDefault = parcelHelpers.interopDefault(_wyeJs); -var _constantJs = require("./constant.js"); -var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); -var symbols = [ +var _xJs = require("./symbol/x.js"); +var _xJsDefault = parcelHelpers.interopDefault(_xJs); +const symbolsFill = [ (0, _circleJsDefault.default), (0, _crossJsDefault.default), (0, _diamondJsDefault.default), @@ -106957,12 +107320,21 @@ var symbols = [ (0, _triangleJsDefault.default), (0, _wyeJsDefault.default) ]; -exports.default = function(type, size) { - var context = null; +const symbolsStroke = [ + (0, _circleJsDefault.default), + (0, _plusJsDefault.default), + (0, _xJsDefault.default), + (0, _triangle2JsDefault.default), + (0, _asteriskJsDefault.default), + (0, _square2JsDefault.default), + (0, _diamond2JsDefault.default) +]; +function Symbol(type, size) { + let context = null; type = typeof type === "function" ? type : (0, _constantJsDefault.default)(type || (0, _circleJsDefault.default)); size = typeof size === "function" ? size : (0, _constantJsDefault.default)(size === undefined ? 64 : +size); function symbol() { - var buffer; + let buffer; if (!context) context = buffer = (0, _d3Path.path)(); type.apply(this, arguments).draw(context, +size.apply(this, arguments)); if (buffer) return context = null, buffer + "" || null; @@ -106977,15 +107349,35 @@ exports.default = function(type, size) { return arguments.length ? (context = _ == null ? null : _, symbol) : context; }; return symbol; +} +exports.default = Symbol; + +},{"d3-path":"erNya","./constant.js":"6fSWz","./symbol/asterisk.js":"j4DN4","./symbol/circle.js":"9G0bU","./symbol/cross.js":"3dJnN","./symbol/diamond.js":"O6MwS","./symbol/diamond2.js":"grkT4","./symbol/plus.js":"6KkxA","./symbol/square.js":"llhtb","./symbol/square2.js":"b16iw","./symbol/star.js":"4OIBI","./symbol/triangle.js":"bcE3R","./symbol/triangle2.js":"jdvpz","./symbol/wye.js":"ceglC","./symbol/x.js":"ceBP8","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"j4DN4":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size + (0, _mathJs.min)(size / 28, 0.75)) * 0.59436; + const t = r / 2; + const u = t * sqrt3; + context.moveTo(0, r); + context.lineTo(0, -r); + context.moveTo(-u, -t); + context.lineTo(u, t); + context.moveTo(-u, t); + context.lineTo(u, -t); + } }; -},{"d3-path":"erNya","./symbol/circle.js":"9G0bU","./symbol/cross.js":"3dJnN","./symbol/diamond.js":"O6MwS","./symbol/star.js":"4OIBI","./symbol/square.js":"llhtb","./symbol/triangle.js":"bcE3R","./symbol/wye.js":"ceglC","./constant.js":"6fSWz","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9G0bU":[function(require,module,exports) { +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9G0bU":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / (0, _mathJs.pi)); + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / (0, _mathJs.pi)); context.moveTo(r, 0); context.arc(0, 0, r, 0, (0, _mathJs.tau)); } @@ -106994,9 +107386,10 @@ exports.default = { },{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3dJnN":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / 5) / 2; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / 5) / 2; context.moveTo(-3 * r, -r); context.lineTo(-r, -r); context.lineTo(-r, -3 * r); @@ -107013,13 +107406,16 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"O6MwS":[function(require,module,exports) { +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"O6MwS":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2; +var _mathJs = require("../math.js"); +const tan30 = (0, _mathJs.sqrt)(1 / 3); +const tan30_2 = tan30 * 2; exports.default = { - draw: function(context, size) { - var y = Math.sqrt(size / tan30_2), x = y * tan30; + draw (context, size) { + const y = (0, _mathJs.sqrt)(size / tan30_2); + const x = y * tan30; context.moveTo(0, -y); context.lineTo(x, 0); context.lineTo(0, y); @@ -107028,42 +107424,96 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4OIBI":[function(require,module,exports) { +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"grkT4":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _mathJs = require("../math.js"); -var ka = 0.89081309152928522810, kr = Math.sin((0, _mathJs.pi) / 10) / Math.sin(7 * (0, _mathJs.pi) / 10), kx = Math.sin((0, _mathJs.tau) / 10) * kr, ky = -Math.cos((0, _mathJs.tau) / 10) * kr; exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size * ka), x = kx * r, y = ky * r; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size) * 0.62625; context.moveTo(0, -r); - context.lineTo(x, y); - for(var i = 1; i < 5; ++i){ - var a = (0, _mathJs.tau) * i / 5, c = Math.cos(a), s = Math.sin(a); - context.lineTo(s * r, -c * r); - context.lineTo(c * x - s * y, s * x + c * y); - } + context.lineTo(r, 0); + context.lineTo(0, r); + context.lineTo(-r, 0); context.closePath(); } }; +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6KkxA":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size - (0, _mathJs.min)(size / 7, 2)) * 0.87559; + context.moveTo(-r, 0); + context.lineTo(r, 0); + context.moveTo(0, r); + context.lineTo(0, -r); + } +}; + },{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"llhtb":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var w = Math.sqrt(size), x = -w / 2; + draw (context, size) { + const w = (0, _mathJs.sqrt)(size); + const x = -w / 2; context.rect(x, x, w, w); } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bcE3R":[function(require,module,exports) { +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"b16iw":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var sqrt3 = Math.sqrt(3); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var y = -Math.sqrt(size / (sqrt3 * 3)); + draw (context, size) { + const r = (0, _mathJs.sqrt)(size) * 0.4431; + context.moveTo(r, r); + context.lineTo(r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, r); + context.closePath(); + } +}; + +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4OIBI":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const ka = 0.89081309152928522810; +const kr = (0, _mathJs.sin)((0, _mathJs.pi) / 10) / (0, _mathJs.sin)(7 * (0, _mathJs.pi) / 10); +const kx = (0, _mathJs.sin)((0, _mathJs.tau) / 10) * kr; +const ky = -(0, _mathJs.cos)((0, _mathJs.tau) / 10) * kr; +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size * ka); + const x = kx * r; + const y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for(let i = 1; i < 5; ++i){ + const a = (0, _mathJs.tau) * i / 5; + const c = (0, _mathJs.cos)(a); + const s = (0, _mathJs.sin)(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); + } +}; + +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bcE3R":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); +exports.default = { + draw (context, size) { + const y = -(0, _mathJs.sqrt)(size / (sqrt3 * 3)); context.moveTo(0, y * 2); context.lineTo(-sqrt3 * y, -y); context.lineTo(sqrt3 * y, -y); @@ -107071,13 +107521,37 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ceglC":[function(require,module,exports) { +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jdvpz":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3; +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1; + draw (context, size) { + const s = (0, _mathJs.sqrt)(size) * 0.6824; + const t = s / 2; + const u = s * sqrt3 / 2; // cos(Math.PI / 6) + context.moveTo(0, -s); + context.lineTo(u, t); + context.lineTo(-u, t); + context.closePath(); + } +}; + +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ceglC":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const c = -0.5; +const s = (0, _mathJs.sqrt)(3) / 2; +const k = 1 / (0, _mathJs.sqrt)(12); +const a = (k / 2 + 1) * 3; +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / a); + const x0 = r / 2, y0 = r * k; + const x1 = x0, y1 = r * k + r; + const x2 = -x1, y2 = y1; context.moveTo(x0, y0); context.lineTo(x1, y1); context.lineTo(x2, y2); @@ -107091,7 +107565,21 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"LU7y1":[function(require,module,exports) { +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ceBP8":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size - (0, _mathJs.min)(size / 6, 1.7)) * 0.6189; + context.moveTo(-r, -r); + context.lineTo(r, r); + context.moveTo(-r, r); + context.lineTo(r, -r); + } +}; + +},{"../math.js":"fkq1E","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"LU7y1":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _noopJs = require("../noop.js"); @@ -107183,7 +107671,7 @@ Basis.prototype = { lineEnd: function() { switch(this._point){ case 3: - point(this, this._x1, this._y1); // proceed + point(this, this._x1, this._y1); // falls through case 2: this._context.lineTo(this._x1, this._y1); break; @@ -107203,7 +107691,7 @@ Basis.prototype = { break; case 2: this._point = 3; - this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed + this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through default: point(this, x, y); break; @@ -107253,7 +107741,7 @@ BasisOpen.prototype = { this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _basisJs.point)(this, x, y); break; @@ -107422,7 +107910,7 @@ Cardinal.prototype = { this._x1 = x, this._y1 = y; break; case 2: - this._point = 3; // proceed + this._point = 3; // falls through default: point(this, x, y); break; @@ -107479,7 +107967,7 @@ CardinalOpen.prototype = { this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _cardinalJs.point)(this, x, y); break; @@ -107634,7 +108122,7 @@ CatmullRom.prototype = { this._point = 2; break; case 2: - this._point = 3; // proceed + this._point = 3; // falls through default: point(this, x, y); break; @@ -107697,7 +108185,7 @@ CatmullRomOpen.prototype = { this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _catmullRomJs.point)(this, x, y); break; @@ -107943,7 +108431,7 @@ Step.prototype = { this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; case 1: - this._point = 2; // proceed + this._point = 2; // falls through default: if (this._t <= 0) { this._context.lineTo(this._x, y); @@ -108287,80 +108775,80 @@ function scale(type, scale, metadata) { return this; } else return isValidScaleType(type) ? scales[type] : undefined; } // identity scale -scale(Identity, (0, _d3Scale.scaleIdentity)); // continuous scales -scale(Linear, (0, _d3Scale.scaleLinear), Continuous); -scale(Log, (0, _d3Scale.scaleLog), [ +scale(Identity, _d3Scale.scaleIdentity); // continuous scales +scale(Linear, _d3Scale.scaleLinear, Continuous); +scale(Log, _d3Scale.scaleLog, [ Continuous, Log ]); -scale(Pow, (0, _d3Scale.scalePow), Continuous); -scale(Sqrt, (0, _d3Scale.scaleSqrt), Continuous); -scale(Symlog, (0, _d3Scale.scaleSymlog), Continuous); -scale(Time, (0, _d3Scale.scaleTime), [ +scale(Pow, _d3Scale.scalePow, Continuous); +scale(Sqrt, _d3Scale.scaleSqrt, Continuous); +scale(Symlog, _d3Scale.scaleSymlog, Continuous); +scale(Time, _d3Scale.scaleTime, [ Continuous, Temporal ]); -scale(UTC, (0, _d3Scale.scaleUtc), [ +scale(UTC, _d3Scale.scaleUtc, [ Continuous, Temporal ]); // sequential scales -scale(Sequential, (0, _d3Scale.scaleSequential), [ +scale(Sequential, _d3Scale.scaleSequential, [ Continuous, Interpolating ]); // backwards compat -scale("".concat(Sequential, "-").concat(Linear), (0, _d3Scale.scaleSequential), [ +scale("".concat(Sequential, "-").concat(Linear), _d3Scale.scaleSequential, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Log), (0, _d3Scale.scaleSequentialLog), [ +scale("".concat(Sequential, "-").concat(Log), _d3Scale.scaleSequentialLog, [ Continuous, Interpolating, Log ]); -scale("".concat(Sequential, "-").concat(Pow), (0, _d3Scale.scaleSequentialPow), [ +scale("".concat(Sequential, "-").concat(Pow), _d3Scale.scaleSequentialPow, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Sqrt), (0, _d3Scale.scaleSequentialSqrt), [ +scale("".concat(Sequential, "-").concat(Sqrt), _d3Scale.scaleSequentialSqrt, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Symlog), (0, _d3Scale.scaleSequentialSymlog), [ +scale("".concat(Sequential, "-").concat(Symlog), _d3Scale.scaleSequentialSymlog, [ Continuous, Interpolating ]); // diverging scales -scale("".concat(Diverging, "-").concat(Linear), (0, _d3Scale.scaleDiverging), [ +scale("".concat(Diverging, "-").concat(Linear), _d3Scale.scaleDiverging, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Log), (0, _d3Scale.scaleDivergingLog), [ +scale("".concat(Diverging, "-").concat(Log), _d3Scale.scaleDivergingLog, [ Continuous, Interpolating, Log ]); -scale("".concat(Diverging, "-").concat(Pow), (0, _d3Scale.scaleDivergingPow), [ +scale("".concat(Diverging, "-").concat(Pow), _d3Scale.scaleDivergingPow, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Sqrt), (0, _d3Scale.scaleDivergingSqrt), [ +scale("".concat(Diverging, "-").concat(Sqrt), _d3Scale.scaleDivergingSqrt, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Symlog), (0, _d3Scale.scaleDivergingSymlog), [ +scale("".concat(Diverging, "-").concat(Symlog), _d3Scale.scaleDivergingSymlog, [ Continuous, Interpolating ]); // discretizing scales -scale(Quantile, (0, _d3Scale.scaleQuantile), [ +scale(Quantile, _d3Scale.scaleQuantile, [ Discretizing, Quantile ]); -scale(Quantize, (0, _d3Scale.scaleQuantize), Discretizing); -scale(Threshold, (0, _d3Scale.scaleThreshold), Discretizing); // discrete scales +scale(Quantize, _d3Scale.scaleQuantize, Discretizing); +scale(Threshold, _d3Scale.scaleThreshold, Discretizing); // discrete scales scale(BinOrdinal, scaleBinOrdinal, [ Discrete, Discretizing ]); -scale(Ordinal, (0, _d3Scale.scaleOrdinal), Discrete); +scale(Ordinal, _d3Scale.scaleOrdinal, Discrete); scale(Band, band, Discrete); scale(Point, point, Discrete); function isValidScaleType(type) { @@ -108404,7 +108892,7 @@ function interpolateRange(interpolator, range) { }; } function interpolateColors(colors, type, gamma) { - return (0, _d3Interpolate.piecewise)(interpolate(type || "rgb", gamma), colors); + return _d3Interpolate.piecewise(interpolate(type || "rgb", gamma), colors); } function quantizeInterpolator(interpolator, count) { const samples = new Array(count), n = count + 1; @@ -108784,7 +109272,161 @@ var _divergingJsDefault = parcelHelpers.interopDefault(_divergingJs); var _tickFormatJs = require("./tickFormat.js"); var _tickFormatJsDefault = parcelHelpers.interopDefault(_tickFormatJs); -},{"./band.js":false,"./identity.js":"4lmrT","./linear.js":"2Mb1X","./log.js":"fjlvX","./symlog.js":"jw0HW","./ordinal.js":"l4AYv","./pow.js":"a3E7U","./radial.js":false,"./quantile.js":"8l8gh","./quantize.js":"asmDg","./threshold.js":"bXV4m","./time.js":"hf0gG","./utcTime.js":"gH413","./sequential.js":"7utjO","./sequentialQuantile.js":false,"./diverging.js":"hvyvZ","./tickFormat.js":"bbchH","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4lmrT":[function(require,module,exports) { +},{"./band.js":"clQZe","./identity.js":"4lmrT","./linear.js":"2Mb1X","./log.js":"fjlvX","./symlog.js":"jw0HW","./ordinal.js":"l4AYv","./pow.js":"a3E7U","./radial.js":"5Oqgs","./quantile.js":"8l8gh","./quantize.js":"asmDg","./threshold.js":"bXV4m","./time.js":"hf0gG","./utcTime.js":"gH413","./sequential.js":"7utjO","./sequentialQuantile.js":"37xzU","./diverging.js":"hvyvZ","./tickFormat.js":"bbchH","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"clQZe":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "point", ()=>point); +var _d3Array = require("d3-array"); +var _initJs = require("./init.js"); +var _ordinalJs = require("./ordinal.js"); +var _ordinalJsDefault = parcelHelpers.interopDefault(_ordinalJs); +function band() { + var scale = (0, _ordinalJsDefault.default)().unknown(undefined), domain = scale.domain, ordinalRange = scale.range, r0 = 0, r1 = 1, step, bandwidth, round = false, paddingInner = 0, paddingOuter = 0, align = 0.5; + delete scale.unknown; + function rescale() { + var n = domain().length, reverse = r1 < r0, start = reverse ? r1 : r0, stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = (0, _d3Array.range)(n).map(function(i) { + return start + step * i; + }); + return ordinalRange(reverse ? values.reverse() : values); + } + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [ + r0, + r1 + ]; + }; + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + scale.bandwidth = function() { + return bandwidth; + }; + scale.step = function() { + return step; + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + scale.copy = function() { + return band(domain(), [ + r0, + r1 + ]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align); + }; + return (0, _initJs.initRange).apply(rescale(), arguments); +} +exports.default = band; +function pointish(scale) { + var copy = scale.copy; + scale.padding = scale.paddingOuter; + delete scale.paddingInner; + delete scale.paddingOuter; + scale.copy = function() { + return pointish(copy()); + }; + return scale; +} +function point() { + return pointish(band.apply(null, arguments).paddingInner(1)); +} + +},{"d3-array":"8JMcC","./init.js":"efWLG","./ordinal.js":"l4AYv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"efWLG":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "initRange", ()=>initRange); +parcelHelpers.export(exports, "initInterpolator", ()=>initInterpolator); +function initRange(domain, range) { + switch(arguments.length){ + case 0: + break; + case 1: + this.range(domain); + break; + default: + this.range(range).domain(domain); + break; + } + return this; +} +function initInterpolator(domain, interpolator) { + switch(arguments.length){ + case 0: + break; + case 1: + if (typeof domain === "function") this.interpolator(domain); + else this.range(domain); + break; + default: + this.domain(domain); + if (typeof interpolator === "function") this.interpolator(interpolator); + else this.range(interpolator); + break; + } + return this; +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"l4AYv":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "implicit", ()=>implicit); +var _d3Array = require("d3-array"); +var _initJs = require("./init.js"); +const implicit = Symbol("implicit"); +function ordinal() { + var index = new (0, _d3Array.InternMap)(), domain = [], range = [], unknown = implicit; + function scale(d) { + let i = index.get(d); + if (i === undefined) { + if (unknown !== implicit) return unknown; + index.set(d, i = domain.push(d) - 1); + } + return range[i % range.length]; + } + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = [], index = new (0, _d3Array.InternMap)(); + for (const value of _){ + if (index.has(value)) continue; + index.set(value, domain.push(value) - 1); + } + return scale; + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + (0, _initJs.initRange).apply(scale, arguments); + return scale; +} +exports.default = ordinal; + +},{"d3-array":"8JMcC","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4lmrT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _linearJs = require("./linear.js"); @@ -109109,34 +109751,7 @@ var _defineJsDefault = parcelHelpers.interopDefault(_defineJs); function Color() {} var darker = 0.7; var brighter = 1 / darker; -var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp("^rgb\\(" + [ - reI, - reI, - reI -] + "\\)$"), reRgbPercent = new RegExp("^rgb\\(" + [ - reP, - reP, - reP -] + "\\)$"), reRgbaInteger = new RegExp("^rgba\\(" + [ - reI, - reI, - reI, - reN -] + "\\)$"), reRgbaPercent = new RegExp("^rgba\\(" + [ - reP, - reP, - reP, - reN -] + "\\)$"), reHslPercent = new RegExp("^hsl\\(" + [ - reN, - reP, - reP -] + "\\)$"), reHslaPercent = new RegExp("^hsla\\(" + [ - reN, - reP, - reP, - reN -] + "\\)$"); +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); var named = { aliceblue: 0xf0f8ff, antiquewhite: 0xfaebd7, @@ -109288,14 +109903,15 @@ var named = { yellowgreen: 0x9acd32 }; (0, _defineJsDefault.default)(Color, color, { - copy: function(channels) { + copy (channels) { return Object.assign(new this.constructor, this, channels); }, - displayable: function() { + displayable () { return this.rgb().displayable(); }, hex: color_formatHex, formatHex: color_formatHex, + formatHex8: color_formatHex8, formatHsl: color_formatHsl, formatRgb: color_formatRgb, toString: color_formatRgb @@ -109303,6 +109919,9 @@ var named = { function color_formatHex() { return this.rgb().formatHex(); } +function color_formatHex8() { + return this.rgb().formatHex8(); +} function color_formatHsl() { return hslConvert(this).formatHsl(); } @@ -109350,35 +109969,47 @@ function Rgb(r, g, b, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Rgb, rgb, (0, _defineJs.extend)(Color, { - brighter: function(k) { + brighter (k) { k = k == null ? brighter : Math.pow(brighter, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? darker : Math.pow(darker, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, - rgb: function() { + rgb () { return this; }, - displayable: function() { + clamp () { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable () { return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1; }, hex: rgb_formatHex, formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, formatRgb: rgb_formatRgb, toString: rgb_formatRgb })); function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; } function rgb_formatRgb() { - var a = this.opacity; - a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? ")" : ", " + a + ")"); + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); } function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); + value = clampi(value); return (value < 16 ? "0" : "") + value.toString(16); } function hsla(h, s, l, a) { @@ -109413,27 +110044,36 @@ function Hsl(h, s, l, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Hsl, hsl, (0, _defineJs.extend)(Color, { - brighter: function(k) { + brighter (k) { k = k == null ? brighter : Math.pow(brighter, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? darker : Math.pow(darker, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, - rgb: function() { + rgb () { var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity); }, - displayable: function() { + clamp () { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable () { return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1; }, - formatHsl: function() { - var a = this.opacity; - a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a === 1 ? ")" : ", " + a + ")"); + formatHsl () { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; } })); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} /* From FvD 13.37, CSS Color Module Level 3 */ function hsl2rgb(h, m1, m2) { return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; } @@ -109492,13 +110132,13 @@ function Lab(l, a, b, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Lab, lab, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); }, - darker: function(k) { + darker (k) { return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); }, - rgb: function() { + rgb () { var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200; x = Xn * lab2xyz(x); y = Yn * lab2xyz(y); @@ -109543,13 +110183,13 @@ function hcl2lab(o) { return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); } (0, _defineJsDefault.default)(Hcl, hcl, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); }, - darker: function(k) { + darker (k) { return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); }, - rgb: function() { + rgb () { return hcl2lab(this).rgb(); } })); @@ -109588,15 +110228,15 @@ function Cubehelix(h, s, l, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Cubehelix, cubehelix, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { k = k == null ? (0, _colorJs.brighter) : Math.pow((0, _colorJs.brighter), k); return new Cubehelix(this.h, this.s, this.l * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? (0, _colorJs.darker) : Math.pow((0, _colorJs.darker), k); return new Cubehelix(this.h, this.s, this.l * k, this.opacity); }, - rgb: function() { + rgb () { var h = isNaN(this.h) ? 0 : (this.h + 120) * (0, _mathJs.radians), l = +this.l, a = isNaN(this.s) ? 0 : this.s * l * (1 - l), cosh = Math.cos(h), sinh = Math.sin(h); return new (0, _colorJs.Rgb)(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity); } @@ -110178,41 +110818,6 @@ function number(x) { } exports.default = number; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"efWLG":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "initRange", ()=>initRange); -parcelHelpers.export(exports, "initInterpolator", ()=>initInterpolator); -function initRange(domain, range) { - switch(arguments.length){ - case 0: - break; - case 1: - this.range(domain); - break; - default: - this.range(range).domain(domain); - break; - } - return this; -} -function initInterpolator(domain, interpolator) { - switch(arguments.length){ - case 0: - break; - case 1: - if (typeof domain === "function") this.interpolator(domain); - else this.range(domain); - break; - default: - this.domain(domain); - if (typeof interpolator === "function") this.interpolator(interpolator); - else this.range(interpolator); - break; - } - return this; -} - },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bbchH":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -110268,22 +110873,20 @@ function pow10(x) { return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; } function powp(base) { - return base === 10 ? pow10 : base === Math.E ? Math.exp : function(x) { - return Math.pow(base, x); - }; + return base === 10 ? pow10 : base === Math.E ? Math.exp : (x)=>Math.pow(base, x); } function logp(base) { - return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function(x) { - return Math.log(x) / base; - }); + return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), (x)=>Math.log(x) / base); } function reflect(f) { - return function(x) { - return -f(-x); - }; + return (x, k)=>-f(-x, k); } function loggish(transform) { - var scale = transform(transformLog, transformExp), domain = scale.domain, base = 10, logs, pows; + const scale = transform(transformLog, transformExp); + const domain = scale.domain; + let base = 10; + let logs; + let pows; function rescale() { logs = logp(base), pows = powp(base); if (domain()[0] < 0) { @@ -110298,20 +110901,31 @@ function loggish(transform) { scale.domain = function(_) { return arguments.length ? (domain(_), rescale()) : domain(); }; - scale.ticks = function(count) { - var d = domain(), u = d[0], v = d[d.length - 1], r; - if (r = v < u) i = u, u = v, v = i; - var i = logs(u), j = logs(v), p, k, t, n = count == null ? 10 : +count, z = []; + scale.ticks = (count)=>{ + const d = domain(); + let u = d[0]; + let v = d[d.length - 1]; + const r = v < u; + if (r) [u, v] = [ + v, + u + ]; + let i = logs(u); + let j = logs(v); + let k; + let t; + const n = count == null ? 10 : +count; + let z = []; if (!(base % 1) && j - i < n) { i = Math.floor(i), j = Math.ceil(j); - if (u > 0) for(; i <= j; ++i)for(k = 1, p = pows(i); k < base; ++k){ - t = p * k; + if (u > 0) for(; i <= j; ++i)for(k = 1; k < base; ++k){ + t = i < 0 ? k / pows(-i) : k * pows(i); if (t < u) continue; if (t > v) break; z.push(t); } - else for(; i <= j; ++i)for(k = base - 1, p = pows(i); k >= 1; --k){ - t = p * k; + else for(; i <= j; ++i)for(k = base - 1; k >= 1; --k){ + t = i > 0 ? k / pows(-i) : k * pows(i); if (t < u) continue; if (t > v) break; z.push(t); @@ -110320,38 +110934,35 @@ function loggish(transform) { } else z = (0, _d3Array.ticks)(i, j, Math.min(j - i, n)).map(pows); return r ? z.reverse() : z; }; - scale.tickFormat = function(count, specifier) { - if (specifier == null) specifier = base === 10 ? ".0e" : ","; - if (typeof specifier !== "function") specifier = (0, _d3Format.format)(specifier); - if (count === Infinity) return specifier; + scale.tickFormat = (count, specifier)=>{ if (count == null) count = 10; - var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? - return function(d) { - var i = d / pows(Math.round(logs(d))); + if (specifier == null) specifier = base === 10 ? "s" : ","; + if (typeof specifier !== "function") { + if (!(base % 1) && (specifier = (0, _d3Format.formatSpecifier)(specifier)).precision == null) specifier.trim = true; + specifier = (0, _d3Format.format)(specifier); + } + if (count === Infinity) return specifier; + const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? + return (d)=>{ + let i = d / pows(Math.round(logs(d))); if (i * base < base - 0.5) i *= base; return i <= k ? specifier(d) : ""; }; }; - scale.nice = function() { + scale.nice = ()=>{ return domain((0, _niceJsDefault.default)(domain(), { - floor: function(x) { - return pows(Math.floor(logs(x))); - }, - ceil: function(x) { - return pows(Math.ceil(logs(x))); - } + floor: (x)=>pows(Math.floor(logs(x))), + ceil: (x)=>pows(Math.ceil(logs(x))) })); }; return scale; } function log() { - var scale = loggish((0, _continuousJs.transformer)()).domain([ + const scale = loggish((0, _continuousJs.transformer)()).domain([ 1, 10 ]); - scale.copy = function() { - return (0, _continuousJs.copy)(scale, log()).base(scale.base()); - }; + scale.copy = ()=>(0, _continuousJs.copy)(scale, log()).base(scale.base()); (0, _initJs.initRange).apply(scale, arguments); return scale; } @@ -110406,47 +111017,7 @@ function symlog() { } exports.default = symlog; -},{"./linear.js":"2Mb1X","./continuous.js":"Mo65z","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"l4AYv":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "implicit", ()=>implicit); -var _initJs = require("./init.js"); -const implicit = Symbol("implicit"); -function ordinal() { - var index = new Map(), domain = [], range = [], unknown = implicit; - function scale(d) { - var key = d + "", i = index.get(key); - if (!i) { - if (unknown !== implicit) return unknown; - index.set(key, i = domain.push(d)); - } - return range[(i - 1) % range.length]; - } - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = [], index = new Map(); - for (const value of _){ - const key = value + ""; - if (index.has(key)) continue; - index.set(key, domain.push(value)); - } - return scale; - }; - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), scale) : range.slice(); - }; - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - scale.copy = function() { - return ordinal(domain, range).unknown(unknown); - }; - (0, _initJs.initRange).apply(scale, arguments); - return scale; -} -exports.default = ordinal; - -},{"./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a3E7U":[function(require,module,exports) { +},{"./linear.js":"2Mb1X","./continuous.js":"Mo65z","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a3E7U":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "powish", ()=>powish); @@ -110488,7 +111059,60 @@ function sqrt() { return pow.apply(null, arguments).exponent(0.5); } -},{"./linear.js":"2Mb1X","./continuous.js":"Mo65z","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8l8gh":[function(require,module,exports) { +},{"./linear.js":"2Mb1X","./continuous.js":"Mo65z","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"5Oqgs":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _continuousJs = require("./continuous.js"); +var _continuousJsDefault = parcelHelpers.interopDefault(_continuousJs); +var _initJs = require("./init.js"); +var _linearJs = require("./linear.js"); +var _numberJs = require("./number.js"); +var _numberJsDefault = parcelHelpers.interopDefault(_numberJs); +function square(x) { + return Math.sign(x) * x * x; +} +function unsquare(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); +} +function radial() { + var squared = (0, _continuousJsDefault.default)(), range = [ + 0, + 1 + ], round = false, unknown; + function scale(x) { + var y = unsquare(squared(x)); + return isNaN(y) ? unknown : round ? Math.round(y) : y; + } + scale.invert = function(y) { + return squared.invert(square(y)); + }; + scale.domain = function(_) { + return arguments.length ? (squared.domain(_), scale) : squared.domain(); + }; + scale.range = function(_) { + return arguments.length ? (squared.range((range = Array.from(_, (0, _numberJsDefault.default))).map(square)), scale) : range.slice(); + }; + scale.rangeRound = function(_) { + return scale.range(_).round(true); + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, scale) : round; + }; + scale.clamp = function(_) { + return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return radial(squared.domain(), range).round(round).clamp(squared.clamp()).unknown(unknown); + }; + (0, _initJs.initRange).apply(scale, arguments); + return (0, _linearJs.linearish)(scale); +} +exports.default = radial; + +},{"./continuous.js":"Mo65z","./init.js":"efWLG","./linear.js":"2Mb1X","./number.js":"1GMBF","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8l8gh":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _d3Array = require("d3-array"); @@ -110797,7 +111421,43 @@ function sequentialSqrt() { return sequentialPow.apply(null, arguments).exponent(0.5); } -},{"d3-interpolate":"dQqYJ","./continuous.js":"Mo65z","./init.js":"efWLG","./linear.js":"2Mb1X","./log.js":"fjlvX","./symlog.js":"jw0HW","./pow.js":"a3E7U","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hvyvZ":[function(require,module,exports) { +},{"d3-interpolate":"dQqYJ","./continuous.js":"Mo65z","./init.js":"efWLG","./linear.js":"2Mb1X","./log.js":"fjlvX","./symlog.js":"jw0HW","./pow.js":"a3E7U","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"37xzU":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _d3Array = require("d3-array"); +var _continuousJs = require("./continuous.js"); +var _initJs = require("./init.js"); +function sequentialQuantile() { + var domain = [], interpolator = (0, _continuousJs.identity); + function scale(x) { + if (x != null && !isNaN(x = +x)) return interpolator(((0, _d3Array.bisect)(domain, x, 1) - 1) / (domain.length - 1)); + } + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _)if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort((0, _d3Array.ascending)); + return scale; + }; + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + scale.range = function() { + return domain.map((d, i)=>interpolator(i / (domain.length - 1))); + }; + scale.quantiles = function(n) { + return Array.from({ + length: n + 1 + }, (_, i)=>(0, _d3Array.quantile)(domain, i / n)); + }; + scale.copy = function() { + return sequentialQuantile(interpolator).domain(domain); + }; + return (0, _initJs.initInterpolator).apply(scale, arguments); +} +exports.default = sequentialQuantile; + +},{"d3-array":"8JMcC","./continuous.js":"Mo65z","./init.js":"efWLG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hvyvZ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "divergingLog", ()=>divergingLog); @@ -114296,8 +114956,7 @@ var _d3Array = require("d3-array"); var _cartesianJs = require("./cartesian.js"); var _mathJs = require("./math.js"); function longitude(point) { - if ((0, _mathJs.abs)(point[0]) <= (0, _mathJs.pi)) return point[0]; - else return (0, _mathJs.sign)(point[0]) * (((0, _mathJs.abs)(point[0]) + (0, _mathJs.pi)) % (0, _mathJs.tau) - (0, _mathJs.pi)); + return (0, _mathJs.abs)(point[0]) <= (0, _mathJs.pi) ? point[0] : (0, _mathJs.sign)(point[0]) * (((0, _mathJs.abs)(point[0]) + (0, _mathJs.pi)) % (0, _mathJs.tau) - (0, _mathJs.pi)); } exports.default = function(polygon, point) { var lambda = longitude(point), phi = point[1], sinPhi = (0, _mathJs.sin)(phi), normal = [ @@ -116311,41 +116970,41 @@ exports.default = function() { },{"../math.js":"cDOGy","./mercator.js":"a3u6b","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3lKpN":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "geoAiry", ()=>(0, _airyDefault.default)); -parcelHelpers.export(exports, "geoAiryRaw", ()=>(0, _airy.airyRaw)); -parcelHelpers.export(exports, "geoAitoff", ()=>(0, _aitoffDefault.default)); -parcelHelpers.export(exports, "geoAitoffRaw", ()=>(0, _aitoff.aitoffRaw)); -parcelHelpers.export(exports, "geoArmadillo", ()=>(0, _armadilloDefault.default)); -parcelHelpers.export(exports, "geoArmadilloRaw", ()=>(0, _armadillo.armadilloRaw)); -parcelHelpers.export(exports, "geoAugust", ()=>(0, _augustDefault.default)); -parcelHelpers.export(exports, "geoAugustRaw", ()=>(0, _august.augustRaw)); -parcelHelpers.export(exports, "geoBaker", ()=>(0, _bakerDefault.default)); -parcelHelpers.export(exports, "geoBakerRaw", ()=>(0, _baker.bakerRaw)); -parcelHelpers.export(exports, "geoBerghaus", ()=>(0, _berghausDefault.default)); -parcelHelpers.export(exports, "geoBerghausRaw", ()=>(0, _berghaus.berghausRaw)); -parcelHelpers.export(exports, "geoBertin1953", ()=>(0, _bertinDefault.default)); -parcelHelpers.export(exports, "geoBertin1953Raw", ()=>(0, _bertin.bertin1953Raw)); -parcelHelpers.export(exports, "geoBoggs", ()=>(0, _boggsDefault.default)); -parcelHelpers.export(exports, "geoBoggsRaw", ()=>(0, _boggs.boggsRaw)); -parcelHelpers.export(exports, "geoBonne", ()=>(0, _bonneDefault.default)); -parcelHelpers.export(exports, "geoBonneRaw", ()=>(0, _bonne.bonneRaw)); -parcelHelpers.export(exports, "geoBottomley", ()=>(0, _bottomleyDefault.default)); -parcelHelpers.export(exports, "geoBottomleyRaw", ()=>(0, _bottomley.bottomleyRaw)); -parcelHelpers.export(exports, "geoBromley", ()=>(0, _bromleyDefault.default)); -parcelHelpers.export(exports, "geoBromleyRaw", ()=>(0, _bromley.bromleyRaw)); -parcelHelpers.export(exports, "geoChamberlin", ()=>(0, _chamberlinDefault.default)); -parcelHelpers.export(exports, "geoChamberlinRaw", ()=>(0, _chamberlin.chamberlinRaw)); -parcelHelpers.export(exports, "geoChamberlinAfrica", ()=>(0, _chamberlin.chamberlinAfrica)); -parcelHelpers.export(exports, "geoCollignon", ()=>(0, _collignonDefault.default)); -parcelHelpers.export(exports, "geoCollignonRaw", ()=>(0, _collignon.collignonRaw)); -parcelHelpers.export(exports, "geoCraig", ()=>(0, _craigDefault.default)); -parcelHelpers.export(exports, "geoCraigRaw", ()=>(0, _craig.craigRaw)); -parcelHelpers.export(exports, "geoCraster", ()=>(0, _crasterDefault.default)); -parcelHelpers.export(exports, "geoCrasterRaw", ()=>(0, _craster.crasterRaw)); -parcelHelpers.export(exports, "geoCylindricalEqualArea", ()=>(0, _cylindricalEqualAreaDefault.default)); -parcelHelpers.export(exports, "geoCylindricalEqualAreaRaw", ()=>(0, _cylindricalEqualArea.cylindricalEqualAreaRaw)); -parcelHelpers.export(exports, "geoCylindricalStereographic", ()=>(0, _cylindricalStereographicDefault.default)); -parcelHelpers.export(exports, "geoCylindricalStereographicRaw", ()=>(0, _cylindricalStereographic.cylindricalStereographicRaw)); +parcelHelpers.export(exports, "geoAiry", ()=>(0, _airyJsDefault.default)); +parcelHelpers.export(exports, "geoAiryRaw", ()=>(0, _airyJs.airyRaw)); +parcelHelpers.export(exports, "geoAitoff", ()=>(0, _aitoffJsDefault.default)); +parcelHelpers.export(exports, "geoAitoffRaw", ()=>(0, _aitoffJs.aitoffRaw)); +parcelHelpers.export(exports, "geoArmadillo", ()=>(0, _armadilloJsDefault.default)); +parcelHelpers.export(exports, "geoArmadilloRaw", ()=>(0, _armadilloJs.armadilloRaw)); +parcelHelpers.export(exports, "geoAugust", ()=>(0, _augustJsDefault.default)); +parcelHelpers.export(exports, "geoAugustRaw", ()=>(0, _augustJs.augustRaw)); +parcelHelpers.export(exports, "geoBaker", ()=>(0, _bakerJsDefault.default)); +parcelHelpers.export(exports, "geoBakerRaw", ()=>(0, _bakerJs.bakerRaw)); +parcelHelpers.export(exports, "geoBerghaus", ()=>(0, _berghausJsDefault.default)); +parcelHelpers.export(exports, "geoBerghausRaw", ()=>(0, _berghausJs.berghausRaw)); +parcelHelpers.export(exports, "geoBertin1953", ()=>(0, _bertinJsDefault.default)); +parcelHelpers.export(exports, "geoBertin1953Raw", ()=>(0, _bertinJs.bertin1953Raw)); +parcelHelpers.export(exports, "geoBoggs", ()=>(0, _boggsJsDefault.default)); +parcelHelpers.export(exports, "geoBoggsRaw", ()=>(0, _boggsJs.boggsRaw)); +parcelHelpers.export(exports, "geoBonne", ()=>(0, _bonneJsDefault.default)); +parcelHelpers.export(exports, "geoBonneRaw", ()=>(0, _bonneJs.bonneRaw)); +parcelHelpers.export(exports, "geoBottomley", ()=>(0, _bottomleyJsDefault.default)); +parcelHelpers.export(exports, "geoBottomleyRaw", ()=>(0, _bottomleyJs.bottomleyRaw)); +parcelHelpers.export(exports, "geoBromley", ()=>(0, _bromleyJsDefault.default)); +parcelHelpers.export(exports, "geoBromleyRaw", ()=>(0, _bromleyJs.bromleyRaw)); +parcelHelpers.export(exports, "geoChamberlin", ()=>(0, _chamberlinJsDefault.default)); +parcelHelpers.export(exports, "geoChamberlinRaw", ()=>(0, _chamberlinJs.chamberlinRaw)); +parcelHelpers.export(exports, "geoChamberlinAfrica", ()=>(0, _chamberlinJs.chamberlinAfrica)); +parcelHelpers.export(exports, "geoCollignon", ()=>(0, _collignonJsDefault.default)); +parcelHelpers.export(exports, "geoCollignonRaw", ()=>(0, _collignonJs.collignonRaw)); +parcelHelpers.export(exports, "geoCraig", ()=>(0, _craigJsDefault.default)); +parcelHelpers.export(exports, "geoCraigRaw", ()=>(0, _craigJs.craigRaw)); +parcelHelpers.export(exports, "geoCraster", ()=>(0, _crasterJsDefault.default)); +parcelHelpers.export(exports, "geoCrasterRaw", ()=>(0, _crasterJs.crasterRaw)); +parcelHelpers.export(exports, "geoCylindricalEqualArea", ()=>(0, _cylindricalEqualAreaJsDefault.default)); +parcelHelpers.export(exports, "geoCylindricalEqualAreaRaw", ()=>(0, _cylindricalEqualAreaJs.cylindricalEqualAreaRaw)); +parcelHelpers.export(exports, "geoCylindricalStereographic", ()=>(0, _cylindricalStereographicJsDefault.default)); +parcelHelpers.export(exports, "geoCylindricalStereographicRaw", ()=>(0, _cylindricalStereographicJs.cylindricalStereographicRaw)); parcelHelpers.export(exports, "geoEckert1", ()=>(0, _eckert1JsDefault.default)); parcelHelpers.export(exports, "geoEckert1Raw", ()=>(0, _eckert1Js.eckert1Raw)); parcelHelpers.export(exports, "geoEckert2", ()=>(0, _eckert2JsDefault.default)); @@ -116395,91 +117054,91 @@ parcelHelpers.export(exports, "geoHomolosine", ()=>(0, _homolosineJsDefault.defa parcelHelpers.export(exports, "geoHomolosineRaw", ()=>(0, _homolosineJs.homolosineRaw)); parcelHelpers.export(exports, "geoHufnagel", ()=>(0, _hufnagelJsDefault.default)); parcelHelpers.export(exports, "geoHufnagelRaw", ()=>(0, _hufnagelJs.hufnagelRaw)); -parcelHelpers.export(exports, "geoHyperelliptical", ()=>(0, _hyperellipticalDefault.default)); -parcelHelpers.export(exports, "geoHyperellipticalRaw", ()=>(0, _hyperelliptical.hyperellipticalRaw)); -parcelHelpers.export(exports, "geoInterrupt", ()=>(0, _indexDefault.default)); -parcelHelpers.export(exports, "geoInterruptedBoggs", ()=>(0, _boggsDefault1.default)); -parcelHelpers.export(exports, "geoInterruptedHomolosine", ()=>(0, _homolosineDefault.default)); -parcelHelpers.export(exports, "geoInterruptedMollweide", ()=>(0, _mollweideDefault.default)); -parcelHelpers.export(exports, "geoInterruptedMollweideHemispheres", ()=>(0, _mollweideHemispheresDefault.default)); -parcelHelpers.export(exports, "geoInterruptedSinuMollweide", ()=>(0, _sinuMollweideDefault.default)); -parcelHelpers.export(exports, "geoInterruptedSinusoidal", ()=>(0, _sinusoidalDefault.default)); +parcelHelpers.export(exports, "geoHyperelliptical", ()=>(0, _hyperellipticalJsDefault.default)); +parcelHelpers.export(exports, "geoHyperellipticalRaw", ()=>(0, _hyperellipticalJs.hyperellipticalRaw)); +parcelHelpers.export(exports, "geoInterrupt", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedBoggs", ()=>(0, _boggsJsDefault1.default)); +parcelHelpers.export(exports, "geoInterruptedHomolosine", ()=>(0, _homolosineJsDefault1.default)); +parcelHelpers.export(exports, "geoInterruptedMollweide", ()=>(0, _mollweideJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedMollweideHemispheres", ()=>(0, _mollweideHemispheresJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedSinuMollweide", ()=>(0, _sinuMollweideJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedSinusoidal", ()=>(0, _sinusoidalJsDefault.default)); parcelHelpers.export(exports, "geoKavrayskiy7", ()=>(0, _kavrayskiy7JsDefault.default)); parcelHelpers.export(exports, "geoKavrayskiy7Raw", ()=>(0, _kavrayskiy7Js.kavrayskiy7Raw)); parcelHelpers.export(exports, "geoLagrange", ()=>(0, _lagrangeJsDefault.default)); parcelHelpers.export(exports, "geoLagrangeRaw", ()=>(0, _lagrangeJs.lagrangeRaw)); -parcelHelpers.export(exports, "geoLarrivee", ()=>(0, _larriveeDefault.default)); -parcelHelpers.export(exports, "geoLarriveeRaw", ()=>(0, _larrivee.larriveeRaw)); -parcelHelpers.export(exports, "geoLaskowski", ()=>(0, _laskowskiDefault.default)); -parcelHelpers.export(exports, "geoLaskowskiRaw", ()=>(0, _laskowski.laskowskiRaw)); +parcelHelpers.export(exports, "geoLarrivee", ()=>(0, _larriveeJsDefault.default)); +parcelHelpers.export(exports, "geoLarriveeRaw", ()=>(0, _larriveeJs.larriveeRaw)); +parcelHelpers.export(exports, "geoLaskowski", ()=>(0, _laskowskiJsDefault.default)); +parcelHelpers.export(exports, "geoLaskowskiRaw", ()=>(0, _laskowskiJs.laskowskiRaw)); parcelHelpers.export(exports, "geoLittrow", ()=>(0, _littrowJsDefault.default)); parcelHelpers.export(exports, "geoLittrowRaw", ()=>(0, _littrowJs.littrowRaw)); parcelHelpers.export(exports, "geoLoximuthal", ()=>(0, _loximuthalJsDefault.default)); parcelHelpers.export(exports, "geoLoximuthalRaw", ()=>(0, _loximuthalJs.loximuthalRaw)); -parcelHelpers.export(exports, "geoMiller", ()=>(0, _millerDefault.default)); -parcelHelpers.export(exports, "geoMillerRaw", ()=>(0, _miller.millerRaw)); -parcelHelpers.export(exports, "geoModifiedStereographic", ()=>(0, _modifiedStereographicDefault.default)); -parcelHelpers.export(exports, "geoModifiedStereographicRaw", ()=>(0, _modifiedStereographic.modifiedStereographicRaw)); -parcelHelpers.export(exports, "geoModifiedStereographicAlaska", ()=>(0, _modifiedStereographic.modifiedStereographicAlaska)); -parcelHelpers.export(exports, "geoModifiedStereographicGs48", ()=>(0, _modifiedStereographic.modifiedStereographicGs48)); -parcelHelpers.export(exports, "geoModifiedStereographicGs50", ()=>(0, _modifiedStereographic.modifiedStereographicGs50)); -parcelHelpers.export(exports, "geoModifiedStereographicMiller", ()=>(0, _modifiedStereographic.modifiedStereographicMiller)); -parcelHelpers.export(exports, "geoModifiedStereographicLee", ()=>(0, _modifiedStereographic.modifiedStereographicLee)); -parcelHelpers.export(exports, "geoMollweide", ()=>(0, _mollweideDefault1.default)); -parcelHelpers.export(exports, "geoMollweideRaw", ()=>(0, _mollweide1.mollweideRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarParabolic", ()=>(0, _mtFlatPolarParabolicDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarParabolicRaw", ()=>(0, _mtFlatPolarParabolic.mtFlatPolarParabolicRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarQuartic", ()=>(0, _mtFlatPolarQuarticDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarQuarticRaw", ()=>(0, _mtFlatPolarQuartic.mtFlatPolarQuarticRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarSinusoidal", ()=>(0, _mtFlatPolarSinusoidalDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarSinusoidalRaw", ()=>(0, _mtFlatPolarSinusoidal.mtFlatPolarSinusoidalRaw)); -parcelHelpers.export(exports, "geoNaturalEarth2", ()=>(0, _naturalEarth2Default.default)); -parcelHelpers.export(exports, "geoNaturalEarth2Raw", ()=>(0, _naturalEarth2.naturalEarth2Raw)); -parcelHelpers.export(exports, "geoNellHammer", ()=>(0, _nellHammerDefault.default)); -parcelHelpers.export(exports, "geoNellHammerRaw", ()=>(0, _nellHammer.nellHammerRaw)); -parcelHelpers.export(exports, "geoInterruptedQuarticAuthalic", ()=>(0, _quarticAuthalicDefault.default)); -parcelHelpers.export(exports, "geoNicolosi", ()=>(0, _nicolosiDefault.default)); -parcelHelpers.export(exports, "geoNicolosiRaw", ()=>(0, _nicolosi.nicolosiRaw)); -parcelHelpers.export(exports, "geoPatterson", ()=>(0, _pattersonDefault.default)); -parcelHelpers.export(exports, "geoPattersonRaw", ()=>(0, _patterson.pattersonRaw)); -parcelHelpers.export(exports, "geoPolyconic", ()=>(0, _polyconicDefault.default)); -parcelHelpers.export(exports, "geoPolyconicRaw", ()=>(0, _polyconic.polyconicRaw)); -parcelHelpers.export(exports, "geoPolyhedral", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "geoMiller", ()=>(0, _millerJsDefault.default)); +parcelHelpers.export(exports, "geoMillerRaw", ()=>(0, _millerJs.millerRaw)); +parcelHelpers.export(exports, "geoModifiedStereographic", ()=>(0, _modifiedStereographicJsDefault.default)); +parcelHelpers.export(exports, "geoModifiedStereographicRaw", ()=>(0, _modifiedStereographicJs.modifiedStereographicRaw)); +parcelHelpers.export(exports, "geoModifiedStereographicAlaska", ()=>(0, _modifiedStereographicJs.modifiedStereographicAlaska)); +parcelHelpers.export(exports, "geoModifiedStereographicGs48", ()=>(0, _modifiedStereographicJs.modifiedStereographicGs48)); +parcelHelpers.export(exports, "geoModifiedStereographicGs50", ()=>(0, _modifiedStereographicJs.modifiedStereographicGs50)); +parcelHelpers.export(exports, "geoModifiedStereographicMiller", ()=>(0, _modifiedStereographicJs.modifiedStereographicMiller)); +parcelHelpers.export(exports, "geoModifiedStereographicLee", ()=>(0, _modifiedStereographicJs.modifiedStereographicLee)); +parcelHelpers.export(exports, "geoMollweide", ()=>(0, _mollweideJsDefault1.default)); +parcelHelpers.export(exports, "geoMollweideRaw", ()=>(0, _mollweideJs1.mollweideRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarParabolic", ()=>(0, _mtFlatPolarParabolicJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarParabolicRaw", ()=>(0, _mtFlatPolarParabolicJs.mtFlatPolarParabolicRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarQuartic", ()=>(0, _mtFlatPolarQuarticJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarQuarticRaw", ()=>(0, _mtFlatPolarQuarticJs.mtFlatPolarQuarticRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarSinusoidal", ()=>(0, _mtFlatPolarSinusoidalJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarSinusoidalRaw", ()=>(0, _mtFlatPolarSinusoidalJs.mtFlatPolarSinusoidalRaw)); +parcelHelpers.export(exports, "geoNaturalEarth2", ()=>(0, _naturalEarth2JsDefault.default)); +parcelHelpers.export(exports, "geoNaturalEarth2Raw", ()=>(0, _naturalEarth2Js.naturalEarth2Raw)); +parcelHelpers.export(exports, "geoNellHammer", ()=>(0, _nellHammerJsDefault.default)); +parcelHelpers.export(exports, "geoNellHammerRaw", ()=>(0, _nellHammerJs.nellHammerRaw)); +parcelHelpers.export(exports, "geoInterruptedQuarticAuthalic", ()=>(0, _quarticAuthalicJsDefault.default)); +parcelHelpers.export(exports, "geoNicolosi", ()=>(0, _nicolosiJsDefault.default)); +parcelHelpers.export(exports, "geoNicolosiRaw", ()=>(0, _nicolosiJs.nicolosiRaw)); +parcelHelpers.export(exports, "geoPatterson", ()=>(0, _pattersonJsDefault.default)); +parcelHelpers.export(exports, "geoPattersonRaw", ()=>(0, _pattersonJs.pattersonRaw)); +parcelHelpers.export(exports, "geoPolyconic", ()=>(0, _polyconicJsDefault.default)); +parcelHelpers.export(exports, "geoPolyconicRaw", ()=>(0, _polyconicJs.polyconicRaw)); +parcelHelpers.export(exports, "geoPolyhedral", ()=>(0, _indexJsDefault1.default)); parcelHelpers.export(exports, "geoPolyhedralButterfly", ()=>(0, _butterflyJsDefault.default)); -parcelHelpers.export(exports, "geoPolyhedralCollignon", ()=>(0, _collignonJsDefault.default)); +parcelHelpers.export(exports, "geoPolyhedralCollignon", ()=>(0, _collignonJsDefault1.default)); parcelHelpers.export(exports, "geoPolyhedralWaterman", ()=>(0, _watermanJsDefault.default)); -parcelHelpers.export(exports, "geoProject", ()=>(0, _indexDefault1.default)); +parcelHelpers.export(exports, "geoProject", ()=>(0, _indexJsDefault2.default)); parcelHelpers.export(exports, "geoGringortenQuincuncial", ()=>(0, _gringortenJsDefault1.default)); parcelHelpers.export(exports, "geoPeirceQuincuncial", ()=>(0, _peirceJsDefault.default)); -parcelHelpers.export(exports, "geoQuantize", ()=>(0, _quantizeDefault.default)); -parcelHelpers.export(exports, "geoQuincuncial", ()=>(0, _indexJsDefault1.default)); -parcelHelpers.export(exports, "geoRectangularPolyconic", ()=>(0, _rectangularPolyconicDefault.default)); -parcelHelpers.export(exports, "geoRectangularPolyconicRaw", ()=>(0, _rectangularPolyconic.rectangularPolyconicRaw)); -parcelHelpers.export(exports, "geoRobinson", ()=>(0, _robinsonDefault.default)); -parcelHelpers.export(exports, "geoRobinsonRaw", ()=>(0, _robinson.robinsonRaw)); -parcelHelpers.export(exports, "geoSatellite", ()=>(0, _satelliteDefault.default)); -parcelHelpers.export(exports, "geoSatelliteRaw", ()=>(0, _satellite.satelliteRaw)); -parcelHelpers.export(exports, "geoSinuMollweide", ()=>(0, _sinuMollweideDefault1.default)); -parcelHelpers.export(exports, "geoSinuMollweideRaw", ()=>(0, _sinuMollweide1.sinuMollweideRaw)); -parcelHelpers.export(exports, "geoSinusoidal", ()=>(0, _sinusoidalDefault1.default)); -parcelHelpers.export(exports, "geoSinusoidalRaw", ()=>(0, _sinusoidal1.sinusoidalRaw)); -parcelHelpers.export(exports, "geoStitch", ()=>(0, _stitchDefault.default)); -parcelHelpers.export(exports, "geoTimes", ()=>(0, _timesDefault.default)); -parcelHelpers.export(exports, "geoTimesRaw", ()=>(0, _times.timesRaw)); -parcelHelpers.export(exports, "geoTwoPointAzimuthal", ()=>(0, _twoPointAzimuthalDefault.default)); -parcelHelpers.export(exports, "geoTwoPointAzimuthalRaw", ()=>(0, _twoPointAzimuthal.twoPointAzimuthalRaw)); -parcelHelpers.export(exports, "geoTwoPointAzimuthalUsa", ()=>(0, _twoPointAzimuthal.twoPointAzimuthalUsa)); -parcelHelpers.export(exports, "geoTwoPointEquidistant", ()=>(0, _twoPointEquidistantDefault.default)); -parcelHelpers.export(exports, "geoTwoPointEquidistantRaw", ()=>(0, _twoPointEquidistant.twoPointEquidistantRaw)); -parcelHelpers.export(exports, "geoTwoPointEquidistantUsa", ()=>(0, _twoPointEquidistant.twoPointEquidistantUsa)); -parcelHelpers.export(exports, "geoVanDerGrinten", ()=>(0, _vanDerGrintenDefault.default)); -parcelHelpers.export(exports, "geoVanDerGrintenRaw", ()=>(0, _vanDerGrinten.vanDerGrintenRaw)); -parcelHelpers.export(exports, "geoVanDerGrinten2", ()=>(0, _vanDerGrinten2Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten2Raw", ()=>(0, _vanDerGrinten2.vanDerGrinten2Raw)); -parcelHelpers.export(exports, "geoVanDerGrinten3", ()=>(0, _vanDerGrinten3Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten3Raw", ()=>(0, _vanDerGrinten3.vanDerGrinten3Raw)); -parcelHelpers.export(exports, "geoVanDerGrinten4", ()=>(0, _vanDerGrinten4Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten4Raw", ()=>(0, _vanDerGrinten4.vanDerGrinten4Raw)); +parcelHelpers.export(exports, "geoQuantize", ()=>(0, _quantizeJsDefault.default)); +parcelHelpers.export(exports, "geoQuincuncial", ()=>(0, _indexJsDefault3.default)); +parcelHelpers.export(exports, "geoRectangularPolyconic", ()=>(0, _rectangularPolyconicJsDefault.default)); +parcelHelpers.export(exports, "geoRectangularPolyconicRaw", ()=>(0, _rectangularPolyconicJs.rectangularPolyconicRaw)); +parcelHelpers.export(exports, "geoRobinson", ()=>(0, _robinsonJsDefault.default)); +parcelHelpers.export(exports, "geoRobinsonRaw", ()=>(0, _robinsonJs.robinsonRaw)); +parcelHelpers.export(exports, "geoSatellite", ()=>(0, _satelliteJsDefault.default)); +parcelHelpers.export(exports, "geoSatelliteRaw", ()=>(0, _satelliteJs.satelliteRaw)); +parcelHelpers.export(exports, "geoSinuMollweide", ()=>(0, _sinuMollweideJsDefault1.default)); +parcelHelpers.export(exports, "geoSinuMollweideRaw", ()=>(0, _sinuMollweideJs1.sinuMollweideRaw)); +parcelHelpers.export(exports, "geoSinusoidal", ()=>(0, _sinusoidalJsDefault1.default)); +parcelHelpers.export(exports, "geoSinusoidalRaw", ()=>(0, _sinusoidalJs1.sinusoidalRaw)); +parcelHelpers.export(exports, "geoStitch", ()=>(0, _stitchJsDefault.default)); +parcelHelpers.export(exports, "geoTimes", ()=>(0, _timesJsDefault.default)); +parcelHelpers.export(exports, "geoTimesRaw", ()=>(0, _timesJs.timesRaw)); +parcelHelpers.export(exports, "geoTwoPointAzimuthal", ()=>(0, _twoPointAzimuthalJsDefault.default)); +parcelHelpers.export(exports, "geoTwoPointAzimuthalRaw", ()=>(0, _twoPointAzimuthalJs.twoPointAzimuthalRaw)); +parcelHelpers.export(exports, "geoTwoPointAzimuthalUsa", ()=>(0, _twoPointAzimuthalJs.twoPointAzimuthalUsa)); +parcelHelpers.export(exports, "geoTwoPointEquidistant", ()=>(0, _twoPointEquidistantJsDefault.default)); +parcelHelpers.export(exports, "geoTwoPointEquidistantRaw", ()=>(0, _twoPointEquidistantJs.twoPointEquidistantRaw)); +parcelHelpers.export(exports, "geoTwoPointEquidistantUsa", ()=>(0, _twoPointEquidistantJs.twoPointEquidistantUsa)); +parcelHelpers.export(exports, "geoVanDerGrinten", ()=>(0, _vanDerGrintenJsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrintenRaw", ()=>(0, _vanDerGrintenJs.vanDerGrintenRaw)); +parcelHelpers.export(exports, "geoVanDerGrinten2", ()=>(0, _vanDerGrinten2JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten2Raw", ()=>(0, _vanDerGrinten2Js.vanDerGrinten2Raw)); +parcelHelpers.export(exports, "geoVanDerGrinten3", ()=>(0, _vanDerGrinten3JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten3Raw", ()=>(0, _vanDerGrinten3Js.vanDerGrinten3Raw)); +parcelHelpers.export(exports, "geoVanDerGrinten4", ()=>(0, _vanDerGrinten4JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten4Raw", ()=>(0, _vanDerGrinten4Js.vanDerGrinten4Raw)); parcelHelpers.export(exports, "geoWagner", ()=>(0, _wagnerJsDefault.default)); parcelHelpers.export(exports, "geoWagner7", ()=>(0, _wagnerJs.wagner7)); parcelHelpers.export(exports, "geoWagnerRaw", ()=>(0, _wagnerJs.wagnerRaw)); @@ -116489,42 +117148,42 @@ parcelHelpers.export(exports, "geoWagner6", ()=>(0, _wagner6JsDefault.default)); parcelHelpers.export(exports, "geoWagner6Raw", ()=>(0, _wagner6Js.wagner6Raw)); parcelHelpers.export(exports, "geoWiechel", ()=>(0, _wiechelJsDefault.default)); parcelHelpers.export(exports, "geoWiechelRaw", ()=>(0, _wiechelJs.wiechelRaw)); -parcelHelpers.export(exports, "geoWinkel3", ()=>(0, _winkel3Default.default)); -parcelHelpers.export(exports, "geoWinkel3Raw", ()=>(0, _winkel3.winkel3Raw)); -var _airy = require("./airy"); -var _airyDefault = parcelHelpers.interopDefault(_airy); -var _aitoff = require("./aitoff"); -var _aitoffDefault = parcelHelpers.interopDefault(_aitoff); -var _armadillo = require("./armadillo"); -var _armadilloDefault = parcelHelpers.interopDefault(_armadillo); -var _august = require("./august"); -var _augustDefault = parcelHelpers.interopDefault(_august); -var _baker = require("./baker"); -var _bakerDefault = parcelHelpers.interopDefault(_baker); -var _berghaus = require("./berghaus"); -var _berghausDefault = parcelHelpers.interopDefault(_berghaus); -var _bertin = require("./bertin"); -var _bertinDefault = parcelHelpers.interopDefault(_bertin); -var _boggs = require("./boggs"); -var _boggsDefault = parcelHelpers.interopDefault(_boggs); -var _bonne = require("./bonne"); -var _bonneDefault = parcelHelpers.interopDefault(_bonne); -var _bottomley = require("./bottomley"); -var _bottomleyDefault = parcelHelpers.interopDefault(_bottomley); -var _bromley = require("./bromley"); -var _bromleyDefault = parcelHelpers.interopDefault(_bromley); -var _chamberlin = require("./chamberlin"); -var _chamberlinDefault = parcelHelpers.interopDefault(_chamberlin); -var _collignon = require("./collignon"); -var _collignonDefault = parcelHelpers.interopDefault(_collignon); -var _craig = require("./craig"); -var _craigDefault = parcelHelpers.interopDefault(_craig); -var _craster = require("./craster"); -var _crasterDefault = parcelHelpers.interopDefault(_craster); -var _cylindricalEqualArea = require("./cylindricalEqualArea"); -var _cylindricalEqualAreaDefault = parcelHelpers.interopDefault(_cylindricalEqualArea); -var _cylindricalStereographic = require("./cylindricalStereographic"); -var _cylindricalStereographicDefault = parcelHelpers.interopDefault(_cylindricalStereographic); +parcelHelpers.export(exports, "geoWinkel3", ()=>(0, _winkel3JsDefault.default)); +parcelHelpers.export(exports, "geoWinkel3Raw", ()=>(0, _winkel3Js.winkel3Raw)); +var _airyJs = require("./airy.js"); +var _airyJsDefault = parcelHelpers.interopDefault(_airyJs); +var _aitoffJs = require("./aitoff.js"); +var _aitoffJsDefault = parcelHelpers.interopDefault(_aitoffJs); +var _armadilloJs = require("./armadillo.js"); +var _armadilloJsDefault = parcelHelpers.interopDefault(_armadilloJs); +var _augustJs = require("./august.js"); +var _augustJsDefault = parcelHelpers.interopDefault(_augustJs); +var _bakerJs = require("./baker.js"); +var _bakerJsDefault = parcelHelpers.interopDefault(_bakerJs); +var _berghausJs = require("./berghaus.js"); +var _berghausJsDefault = parcelHelpers.interopDefault(_berghausJs); +var _bertinJs = require("./bertin.js"); +var _bertinJsDefault = parcelHelpers.interopDefault(_bertinJs); +var _boggsJs = require("./boggs.js"); +var _boggsJsDefault = parcelHelpers.interopDefault(_boggsJs); +var _bonneJs = require("./bonne.js"); +var _bonneJsDefault = parcelHelpers.interopDefault(_bonneJs); +var _bottomleyJs = require("./bottomley.js"); +var _bottomleyJsDefault = parcelHelpers.interopDefault(_bottomleyJs); +var _bromleyJs = require("./bromley.js"); +var _bromleyJsDefault = parcelHelpers.interopDefault(_bromleyJs); +var _chamberlinJs = require("./chamberlin.js"); +var _chamberlinJsDefault = parcelHelpers.interopDefault(_chamberlinJs); +var _collignonJs = require("./collignon.js"); +var _collignonJsDefault = parcelHelpers.interopDefault(_collignonJs); +var _craigJs = require("./craig.js"); +var _craigJsDefault = parcelHelpers.interopDefault(_craigJs); +var _crasterJs = require("./craster.js"); +var _crasterJsDefault = parcelHelpers.interopDefault(_crasterJs); +var _cylindricalEqualAreaJs = require("./cylindricalEqualArea.js"); +var _cylindricalEqualAreaJsDefault = parcelHelpers.interopDefault(_cylindricalEqualAreaJs); +var _cylindricalStereographicJs = require("./cylindricalStereographic.js"); +var _cylindricalStereographicJsDefault = parcelHelpers.interopDefault(_cylindricalStereographicJs); var _eckert1Js = require("./eckert1.js"); var _eckert1JsDefault = parcelHelpers.interopDefault(_eckert1Js); var _eckert2Js = require("./eckert2.js"); @@ -116575,102 +117234,102 @@ var _homolosineJs = require("./homolosine.js"); var _homolosineJsDefault = parcelHelpers.interopDefault(_homolosineJs); var _hufnagelJs = require("./hufnagel.js"); var _hufnagelJsDefault = parcelHelpers.interopDefault(_hufnagelJs); -var _hyperelliptical = require("./hyperelliptical"); -var _hyperellipticalDefault = parcelHelpers.interopDefault(_hyperelliptical); -var _index = require("./interrupted/index"); -var _indexDefault = parcelHelpers.interopDefault(_index); -var _boggs1 = require("./interrupted/boggs"); -var _boggsDefault1 = parcelHelpers.interopDefault(_boggs1); -var _homolosine = require("./interrupted/homolosine"); -var _homolosineDefault = parcelHelpers.interopDefault(_homolosine); -var _mollweide = require("./interrupted/mollweide"); -var _mollweideDefault = parcelHelpers.interopDefault(_mollweide); -var _mollweideHemispheres = require("./interrupted/mollweideHemispheres"); -var _mollweideHemispheresDefault = parcelHelpers.interopDefault(_mollweideHemispheres); -var _sinuMollweide = require("./interrupted/sinuMollweide"); -var _sinuMollweideDefault = parcelHelpers.interopDefault(_sinuMollweide); -var _sinusoidal = require("./interrupted/sinusoidal"); -var _sinusoidalDefault = parcelHelpers.interopDefault(_sinusoidal); +var _hyperellipticalJs = require("./hyperelliptical.js"); +var _hyperellipticalJsDefault = parcelHelpers.interopDefault(_hyperellipticalJs); +var _indexJs = require("./interrupted/index.js"); +var _indexJsDefault = parcelHelpers.interopDefault(_indexJs); +var _boggsJs1 = require("./interrupted/boggs.js"); +var _boggsJsDefault1 = parcelHelpers.interopDefault(_boggsJs1); +var _homolosineJs1 = require("./interrupted/homolosine.js"); +var _homolosineJsDefault1 = parcelHelpers.interopDefault(_homolosineJs1); +var _mollweideJs = require("./interrupted/mollweide.js"); +var _mollweideJsDefault = parcelHelpers.interopDefault(_mollweideJs); +var _mollweideHemispheresJs = require("./interrupted/mollweideHemispheres.js"); +var _mollweideHemispheresJsDefault = parcelHelpers.interopDefault(_mollweideHemispheresJs); +var _sinuMollweideJs = require("./interrupted/sinuMollweide.js"); +var _sinuMollweideJsDefault = parcelHelpers.interopDefault(_sinuMollweideJs); +var _sinusoidalJs = require("./interrupted/sinusoidal.js"); +var _sinusoidalJsDefault = parcelHelpers.interopDefault(_sinusoidalJs); var _kavrayskiy7Js = require("./kavrayskiy7.js"); var _kavrayskiy7JsDefault = parcelHelpers.interopDefault(_kavrayskiy7Js); var _lagrangeJs = require("./lagrange.js"); var _lagrangeJsDefault = parcelHelpers.interopDefault(_lagrangeJs); -var _larrivee = require("./larrivee"); -var _larriveeDefault = parcelHelpers.interopDefault(_larrivee); -var _laskowski = require("./laskowski"); -var _laskowskiDefault = parcelHelpers.interopDefault(_laskowski); +var _larriveeJs = require("./larrivee.js"); +var _larriveeJsDefault = parcelHelpers.interopDefault(_larriveeJs); +var _laskowskiJs = require("./laskowski.js"); +var _laskowskiJsDefault = parcelHelpers.interopDefault(_laskowskiJs); var _littrowJs = require("./littrow.js"); var _littrowJsDefault = parcelHelpers.interopDefault(_littrowJs); var _loximuthalJs = require("./loximuthal.js"); var _loximuthalJsDefault = parcelHelpers.interopDefault(_loximuthalJs); -var _miller = require("./miller"); -var _millerDefault = parcelHelpers.interopDefault(_miller); -var _modifiedStereographic = require("./modifiedStereographic"); -var _modifiedStereographicDefault = parcelHelpers.interopDefault(_modifiedStereographic); -var _mollweide1 = require("./mollweide"); -var _mollweideDefault1 = parcelHelpers.interopDefault(_mollweide1); -var _mtFlatPolarParabolic = require("./mtFlatPolarParabolic"); -var _mtFlatPolarParabolicDefault = parcelHelpers.interopDefault(_mtFlatPolarParabolic); -var _mtFlatPolarQuartic = require("./mtFlatPolarQuartic"); -var _mtFlatPolarQuarticDefault = parcelHelpers.interopDefault(_mtFlatPolarQuartic); -var _mtFlatPolarSinusoidal = require("./mtFlatPolarSinusoidal"); -var _mtFlatPolarSinusoidalDefault = parcelHelpers.interopDefault(_mtFlatPolarSinusoidal); -var _naturalEarth2 = require("./naturalEarth2"); -var _naturalEarth2Default = parcelHelpers.interopDefault(_naturalEarth2); -var _nellHammer = require("./nellHammer"); -var _nellHammerDefault = parcelHelpers.interopDefault(_nellHammer); -var _quarticAuthalic = require("./interrupted/quarticAuthalic"); -var _quarticAuthalicDefault = parcelHelpers.interopDefault(_quarticAuthalic); -var _nicolosi = require("./nicolosi"); -var _nicolosiDefault = parcelHelpers.interopDefault(_nicolosi); -var _patterson = require("./patterson"); -var _pattersonDefault = parcelHelpers.interopDefault(_patterson); -var _polyconic = require("./polyconic"); -var _polyconicDefault = parcelHelpers.interopDefault(_polyconic); -var _indexJs = require("./polyhedral/index.js"); -var _indexJsDefault = parcelHelpers.interopDefault(_indexJs); +var _millerJs = require("./miller.js"); +var _millerJsDefault = parcelHelpers.interopDefault(_millerJs); +var _modifiedStereographicJs = require("./modifiedStereographic.js"); +var _modifiedStereographicJsDefault = parcelHelpers.interopDefault(_modifiedStereographicJs); +var _mollweideJs1 = require("./mollweide.js"); +var _mollweideJsDefault1 = parcelHelpers.interopDefault(_mollweideJs1); +var _mtFlatPolarParabolicJs = require("./mtFlatPolarParabolic.js"); +var _mtFlatPolarParabolicJsDefault = parcelHelpers.interopDefault(_mtFlatPolarParabolicJs); +var _mtFlatPolarQuarticJs = require("./mtFlatPolarQuartic.js"); +var _mtFlatPolarQuarticJsDefault = parcelHelpers.interopDefault(_mtFlatPolarQuarticJs); +var _mtFlatPolarSinusoidalJs = require("./mtFlatPolarSinusoidal.js"); +var _mtFlatPolarSinusoidalJsDefault = parcelHelpers.interopDefault(_mtFlatPolarSinusoidalJs); +var _naturalEarth2Js = require("./naturalEarth2.js"); +var _naturalEarth2JsDefault = parcelHelpers.interopDefault(_naturalEarth2Js); +var _nellHammerJs = require("./nellHammer.js"); +var _nellHammerJsDefault = parcelHelpers.interopDefault(_nellHammerJs); +var _quarticAuthalicJs = require("./interrupted/quarticAuthalic.js"); +var _quarticAuthalicJsDefault = parcelHelpers.interopDefault(_quarticAuthalicJs); +var _nicolosiJs = require("./nicolosi.js"); +var _nicolosiJsDefault = parcelHelpers.interopDefault(_nicolosiJs); +var _pattersonJs = require("./patterson.js"); +var _pattersonJsDefault = parcelHelpers.interopDefault(_pattersonJs); +var _polyconicJs = require("./polyconic.js"); +var _polyconicJsDefault = parcelHelpers.interopDefault(_polyconicJs); +var _indexJs1 = require("./polyhedral/index.js"); +var _indexJsDefault1 = parcelHelpers.interopDefault(_indexJs1); var _butterflyJs = require("./polyhedral/butterfly.js"); var _butterflyJsDefault = parcelHelpers.interopDefault(_butterflyJs); -var _collignonJs = require("./polyhedral/collignon.js"); -var _collignonJsDefault = parcelHelpers.interopDefault(_collignonJs); +var _collignonJs1 = require("./polyhedral/collignon.js"); +var _collignonJsDefault1 = parcelHelpers.interopDefault(_collignonJs1); var _watermanJs = require("./polyhedral/waterman.js"); var _watermanJsDefault = parcelHelpers.interopDefault(_watermanJs); -var _index1 = require("./project/index"); -var _indexDefault1 = parcelHelpers.interopDefault(_index1); +var _indexJs2 = require("./project/index.js"); +var _indexJsDefault2 = parcelHelpers.interopDefault(_indexJs2); var _gringortenJs1 = require("./quincuncial/gringorten.js"); var _gringortenJsDefault1 = parcelHelpers.interopDefault(_gringortenJs1); var _peirceJs = require("./quincuncial/peirce.js"); var _peirceJsDefault = parcelHelpers.interopDefault(_peirceJs); -var _quantize = require("./quantize"); -var _quantizeDefault = parcelHelpers.interopDefault(_quantize); -var _indexJs1 = require("./quincuncial/index.js"); -var _indexJsDefault1 = parcelHelpers.interopDefault(_indexJs1); -var _rectangularPolyconic = require("./rectangularPolyconic"); -var _rectangularPolyconicDefault = parcelHelpers.interopDefault(_rectangularPolyconic); -var _robinson = require("./robinson"); -var _robinsonDefault = parcelHelpers.interopDefault(_robinson); -var _satellite = require("./satellite"); -var _satelliteDefault = parcelHelpers.interopDefault(_satellite); -var _sinuMollweide1 = require("./sinuMollweide"); -var _sinuMollweideDefault1 = parcelHelpers.interopDefault(_sinuMollweide1); -var _sinusoidal1 = require("./sinusoidal"); -var _sinusoidalDefault1 = parcelHelpers.interopDefault(_sinusoidal1); -var _stitch = require("./stitch"); -var _stitchDefault = parcelHelpers.interopDefault(_stitch); -var _times = require("./times"); -var _timesDefault = parcelHelpers.interopDefault(_times); -var _twoPointAzimuthal = require("./twoPointAzimuthal"); -var _twoPointAzimuthalDefault = parcelHelpers.interopDefault(_twoPointAzimuthal); -var _twoPointEquidistant = require("./twoPointEquidistant"); -var _twoPointEquidistantDefault = parcelHelpers.interopDefault(_twoPointEquidistant); -var _vanDerGrinten = require("./vanDerGrinten"); -var _vanDerGrintenDefault = parcelHelpers.interopDefault(_vanDerGrinten); -var _vanDerGrinten2 = require("./vanDerGrinten2"); -var _vanDerGrinten2Default = parcelHelpers.interopDefault(_vanDerGrinten2); -var _vanDerGrinten3 = require("./vanDerGrinten3"); -var _vanDerGrinten3Default = parcelHelpers.interopDefault(_vanDerGrinten3); -var _vanDerGrinten4 = require("./vanDerGrinten4"); -var _vanDerGrinten4Default = parcelHelpers.interopDefault(_vanDerGrinten4); +var _quantizeJs = require("./quantize.js"); +var _quantizeJsDefault = parcelHelpers.interopDefault(_quantizeJs); +var _indexJs3 = require("./quincuncial/index.js"); +var _indexJsDefault3 = parcelHelpers.interopDefault(_indexJs3); +var _rectangularPolyconicJs = require("./rectangularPolyconic.js"); +var _rectangularPolyconicJsDefault = parcelHelpers.interopDefault(_rectangularPolyconicJs); +var _robinsonJs = require("./robinson.js"); +var _robinsonJsDefault = parcelHelpers.interopDefault(_robinsonJs); +var _satelliteJs = require("./satellite.js"); +var _satelliteJsDefault = parcelHelpers.interopDefault(_satelliteJs); +var _sinuMollweideJs1 = require("./sinuMollweide.js"); +var _sinuMollweideJsDefault1 = parcelHelpers.interopDefault(_sinuMollweideJs1); +var _sinusoidalJs1 = require("./sinusoidal.js"); +var _sinusoidalJsDefault1 = parcelHelpers.interopDefault(_sinusoidalJs1); +var _stitchJs = require("./stitch.js"); +var _stitchJsDefault = parcelHelpers.interopDefault(_stitchJs); +var _timesJs = require("./times.js"); +var _timesJsDefault = parcelHelpers.interopDefault(_timesJs); +var _twoPointAzimuthalJs = require("./twoPointAzimuthal.js"); +var _twoPointAzimuthalJsDefault = parcelHelpers.interopDefault(_twoPointAzimuthalJs); +var _twoPointEquidistantJs = require("./twoPointEquidistant.js"); +var _twoPointEquidistantJsDefault = parcelHelpers.interopDefault(_twoPointEquidistantJs); +var _vanDerGrintenJs = require("./vanDerGrinten.js"); +var _vanDerGrintenJsDefault = parcelHelpers.interopDefault(_vanDerGrintenJs); +var _vanDerGrinten2Js = require("./vanDerGrinten2.js"); +var _vanDerGrinten2JsDefault = parcelHelpers.interopDefault(_vanDerGrinten2Js); +var _vanDerGrinten3Js = require("./vanDerGrinten3.js"); +var _vanDerGrinten3JsDefault = parcelHelpers.interopDefault(_vanDerGrinten3Js); +var _vanDerGrinten4Js = require("./vanDerGrinten4.js"); +var _vanDerGrinten4JsDefault = parcelHelpers.interopDefault(_vanDerGrinten4Js); var _wagnerJs = require("./wagner.js"); var _wagnerJsDefault = parcelHelpers.interopDefault(_wagnerJs); var _wagner4Js = require("./wagner4.js"); @@ -116679,10 +117338,10 @@ var _wagner6Js = require("./wagner6.js"); var _wagner6JsDefault = parcelHelpers.interopDefault(_wagner6Js); var _wiechelJs = require("./wiechel.js"); var _wiechelJsDefault = parcelHelpers.interopDefault(_wiechelJs); -var _winkel3 = require("./winkel3"); -var _winkel3Default = parcelHelpers.interopDefault(_winkel3); +var _winkel3Js = require("./winkel3.js"); +var _winkel3JsDefault = parcelHelpers.interopDefault(_winkel3Js); -},{"./airy":false,"./aitoff":false,"./armadillo":false,"./august":false,"./baker":false,"./berghaus":false,"./bertin":false,"./boggs":false,"./bonne":false,"./bottomley":false,"./bromley":false,"./chamberlin":false,"./collignon":false,"./craig":false,"./craster":false,"./cylindricalEqualArea":false,"./cylindricalStereographic":false,"./eckert1.js":false,"./eckert2.js":false,"./eckert3.js":false,"./eckert4.js":false,"./eckert5.js":false,"./eckert6.js":false,"./eisenlohr.js":false,"./fahey.js":false,"./foucaut.js":false,"./foucautSinusoidal.js":false,"./gilbert.js":false,"./gingery.js":false,"./ginzburg4.js":false,"./ginzburg5.js":false,"./ginzburg6.js":false,"./ginzburg8.js":false,"./ginzburg9.js":false,"./gringorten.js":false,"./guyou.js":false,"./hammer.js":false,"./hammerRetroazimuthal.js":false,"./healpix.js":false,"./hill.js":false,"./homolosine.js":false,"./hufnagel.js":false,"./hyperelliptical":false,"./interrupted/index":false,"./interrupted/boggs":false,"./interrupted/homolosine":false,"./interrupted/mollweide":false,"./interrupted/mollweideHemispheres":false,"./interrupted/sinuMollweide":false,"./interrupted/sinusoidal":false,"./kavrayskiy7.js":false,"./lagrange.js":false,"./larrivee":false,"./laskowski":false,"./littrow.js":false,"./loximuthal.js":false,"./miller":false,"./modifiedStereographic":false,"./mollweide":"IWcRL","./mtFlatPolarParabolic":false,"./mtFlatPolarQuartic":false,"./mtFlatPolarSinusoidal":false,"./naturalEarth2":false,"./nellHammer":false,"./interrupted/quarticAuthalic":false,"./nicolosi":false,"./patterson":false,"./polyconic":false,"./polyhedral/index.js":false,"./polyhedral/butterfly.js":false,"./polyhedral/collignon.js":false,"./polyhedral/waterman.js":false,"./project/index":false,"./quincuncial/gringorten.js":false,"./quincuncial/peirce.js":false,"./quantize":false,"./quincuncial/index.js":false,"./rectangularPolyconic":false,"./robinson":false,"./satellite":false,"./sinuMollweide":false,"./sinusoidal":false,"./stitch":false,"./times":false,"./twoPointAzimuthal":false,"./twoPointEquidistant":false,"./vanDerGrinten":false,"./vanDerGrinten2":false,"./vanDerGrinten3":false,"./vanDerGrinten4":false,"./wagner.js":false,"./wagner4.js":false,"./wagner6.js":false,"./wiechel.js":false,"./winkel3":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"IWcRL":[function(require,module,exports) { +},{"./airy.js":false,"./aitoff.js":false,"./armadillo.js":false,"./august.js":false,"./baker.js":false,"./berghaus.js":false,"./bertin.js":false,"./boggs.js":false,"./bonne.js":false,"./bottomley.js":false,"./bromley.js":false,"./chamberlin.js":false,"./collignon.js":false,"./craig.js":false,"./craster.js":false,"./cylindricalEqualArea.js":false,"./cylindricalStereographic.js":false,"./eckert1.js":false,"./eckert2.js":false,"./eckert3.js":false,"./eckert4.js":false,"./eckert5.js":false,"./eckert6.js":false,"./eisenlohr.js":false,"./fahey.js":false,"./foucaut.js":false,"./foucautSinusoidal.js":false,"./gilbert.js":false,"./gingery.js":false,"./ginzburg4.js":false,"./ginzburg5.js":false,"./ginzburg6.js":false,"./ginzburg8.js":false,"./ginzburg9.js":false,"./gringorten.js":false,"./guyou.js":false,"./hammer.js":false,"./hammerRetroazimuthal.js":false,"./healpix.js":false,"./hill.js":false,"./homolosine.js":false,"./hufnagel.js":false,"./hyperelliptical.js":false,"./interrupted/index.js":false,"./interrupted/boggs.js":false,"./interrupted/homolosine.js":false,"./interrupted/mollweide.js":false,"./interrupted/mollweideHemispheres.js":false,"./interrupted/sinuMollweide.js":false,"./interrupted/sinusoidal.js":false,"./kavrayskiy7.js":false,"./lagrange.js":false,"./larrivee.js":false,"./laskowski.js":false,"./littrow.js":false,"./loximuthal.js":false,"./miller.js":false,"./modifiedStereographic.js":false,"./mollweide.js":"IWcRL","./mtFlatPolarParabolic.js":false,"./mtFlatPolarQuartic.js":false,"./mtFlatPolarSinusoidal.js":false,"./naturalEarth2.js":false,"./nellHammer.js":false,"./interrupted/quarticAuthalic.js":false,"./nicolosi.js":false,"./patterson.js":false,"./polyconic.js":false,"./polyhedral/index.js":false,"./polyhedral/butterfly.js":false,"./polyhedral/collignon.js":false,"./polyhedral/waterman.js":false,"./project/index.js":false,"./quincuncial/gringorten.js":false,"./quincuncial/peirce.js":false,"./quantize.js":false,"./quincuncial/index.js":false,"./rectangularPolyconic.js":false,"./robinson.js":false,"./satellite.js":false,"./sinuMollweide.js":false,"./sinusoidal.js":false,"./stitch.js":false,"./times.js":false,"./twoPointAzimuthal.js":false,"./twoPointEquidistant.js":false,"./vanDerGrinten.js":false,"./vanDerGrinten2.js":false,"./vanDerGrinten3.js":false,"./vanDerGrinten4.js":false,"./wagner.js":false,"./wagner4.js":false,"./wagner6.js":false,"./wiechel.js":false,"./winkel3.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"IWcRL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "mollweideBromleyTheta", ()=>mollweideBromleyTheta); @@ -118093,7 +118752,7 @@ function timerFlush() { ++frame; // Pretend we’ve set an alarm, if we haven’t already. var t = taskHead, e; while(t){ - if ((e = clockNow - t._time) >= 0) t._call.call(null, e); + if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e); t = t._next; } --frame; @@ -118383,7 +119042,7 @@ function setFields(node, fields, as) { for(let i = 0; i < n; ++i)t[as[i]] = node[fields[i]]; t[as[n]] = node.children ? node.children.length : 0; } -const Output = [ +const Output$3 = [ "x", "y", "r", @@ -118433,8 +119092,8 @@ Pack.Definition = { "name": "as", "type": "string", "array": true, - "length": Output.length, - "default": Output + "length": Output$3.length, + "default": Output$3 } ] }; @@ -118445,9 +119104,9 @@ Pack.Definition = { "size", "padding" ], - fields: Output + fields: Output$3 }); -const Output$1 = [ +const Output$2 = [ "x0", "y0", "x1", @@ -118498,8 +119157,8 @@ Partition.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$1.length, - "default": Output$1 + "length": Output$2.length, + "default": Output$2 } ] }; @@ -118510,7 +119169,7 @@ Partition.Definition = { "round", "padding" ], - fields: Output$1 + fields: Output$2 }); /** * Stratify a collection of tuples into a tree structure based on @@ -118557,7 +119216,7 @@ const Layouts = { tidy: (0, _d3Hierarchy.tree), cluster: (0, _d3Hierarchy.cluster) }; -const Output$2 = [ +const Output$1 = [ "x", "y", "depth", @@ -118616,8 +119275,8 @@ Tree.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$2.length, - "default": Output$2 + "length": Output$1.length, + "default": Output$1 } ] }; @@ -118633,7 +119292,7 @@ Tree.Definition = { "size", "nodeSize" ], - fields: Output$2 + fields: Output$1 }); /** * Generate tuples representing links between tree nodes. @@ -118687,7 +119346,7 @@ const Tiles = { squarify: (0, _d3Hierarchy.treemapSquarify), resquarify: (0, _d3Hierarchy.treemapResquarify) }; -const Output$3 = [ +const Output = [ "x0", "y0", "x1", @@ -118786,8 +119445,8 @@ Treemap.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$3.length, - "default": Output$3 + "length": Output.length, + "default": Output } ] }; @@ -118820,7 +119479,7 @@ Treemap.Definition = { "paddingBottom", "paddingLeft" ], - fields: Output$3 + fields: Output }); },{"vega-dataflow":"4kvYg","vega-util":"dPFAY","d3-hierarchy":"bkLr4","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bkLr4":[function(require,module,exports) { @@ -118828,6 +119487,7 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "cluster", ()=>(0, _clusterJsDefault.default)); parcelHelpers.export(exports, "hierarchy", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "Node", ()=>(0, _indexJs.Node)); parcelHelpers.export(exports, "pack", ()=>(0, _indexJsDefault1.default)); parcelHelpers.export(exports, "packSiblings", ()=>(0, _siblingsJsDefault.default)); parcelHelpers.export(exports, "packEnclose", ()=>(0, _encloseJsDefault.default)); @@ -119212,19 +119872,22 @@ exports.default = function*() { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"66RdA":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _siblingsJs = require("./siblings.js"); var _accessorsJs = require("../accessors.js"); var _constantJs = require("../constant.js"); var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); +var _siblingsJs = require("./siblings.js"); function defaultRadius(d) { return Math.sqrt(d.value); } exports.default = function() { var radius = null, dx = 1, dy = 1, padding = (0, _constantJs.constantZero); function pack(root) { + const random = (0, _lcgJsDefault.default)(); root.x = dx / 2, root.y = dy / 2; - if (radius) root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1)); - else root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren((0, _constantJs.constantZero), 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + if (radius) root.eachBefore(radiusLeaf(radius)).eachAfter(packChildrenRandom(padding, 0.5, random)).eachBefore(translateChild(1)); + else root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildrenRandom((0, _constantJs.constantZero), 1, random)).eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random)).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); return root; } pack.radius = function(x) { @@ -119246,12 +119909,12 @@ function radiusLeaf(radius) { if (!node.children) node.r = Math.max(0, +radius(node) || 0); }; } -function packChildren(padding, k) { +function packChildrenRandom(padding, k, random) { return function(node) { if (children = node.children) { var children, i, n = children.length, r = padding(node) * k || 0, e; if (r) for(i = 0; i < n; ++i)children[i].r += r; - e = (0, _siblingsJs.packEnclose)(children); + e = (0, _siblingsJs.packSiblingsRandom)(children, random); if (r) for(i = 0; i < n; ++i)children[i].r -= r; node.r = e + r; } @@ -119268,14 +119931,53 @@ function translateChild(k) { }; } -},{"./siblings.js":"46bgV","../accessors.js":"bsUy0","../constant.js":"e122v","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"46bgV":[function(require,module,exports) { +},{"../accessors.js":"bsUy0","../constant.js":"e122v","../lcg.js":"ioQI9","./siblings.js":"46bgV","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bsUy0":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "packEnclose", ()=>packEnclose); +parcelHelpers.export(exports, "optional", ()=>optional); +parcelHelpers.export(exports, "required", ()=>required); +function optional(f) { + return f == null ? null : required(f); +} +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"e122v":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "constantZero", ()=>constantZero); +function constantZero() { + return 0; +} +exports.default = function(x) { + return function() { + return x; + }; +}; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ioQI9":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a = 1664525; +const c = 1013904223; +const m = 4294967296; // 2^32 +exports.default = function() { + let s = 1; + return ()=>(s = (a * s + c) % m) / m; +}; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"46bgV":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "packSiblingsRandom", ()=>packSiblingsRandom); var _arrayJs = require("../array.js"); var _arrayJsDefault = parcelHelpers.interopDefault(_arrayJs); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); var _encloseJs = require("./enclose.js"); -var _encloseJsDefault = parcelHelpers.interopDefault(_encloseJs); function place(b, a, c) { var dx = b.x - a.x, x, a2, dy = b.y - a.y, y, b2, d2 = dx * dx + dy * dy; if (d2) { @@ -119310,7 +120012,7 @@ function Node(circle) { this.next = null; this.previous = null; } -function packEnclose(circles) { +function packSiblingsRandom(circles, random) { if (!(n = (circles = (0, _arrayJsDefault.default)(circles)).length)) return 0; var a, b, c, n, aa, ca, i, j, k, sj, sk; // Place the first circle. @@ -119359,17 +120061,17 @@ function packEnclose(circles) { b._ ], c = b; while((c = c.next) !== b)a.push(c._); - c = (0, _encloseJsDefault.default)(a); + c = (0, _encloseJs.packEncloseRandom)(a, random); // Translate the circles to put the enclosing circle around the origin. for(i = 0; i < n; ++i)a = circles[i], a.x -= c.x, a.y -= c.y; return c.r; } exports.default = function(circles) { - packEnclose(circles); + packSiblingsRandom(circles, (0, _lcgJsDefault.default)()); return circles; }; -},{"../array.js":"eKsOC","./enclose.js":"3Unie","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eKsOC":[function(require,module,exports) { +},{"../array.js":"eKsOC","../lcg.js":"ioQI9","./enclose.js":"3Unie","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eKsOC":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "shuffle", ()=>shuffle); @@ -119377,10 +120079,10 @@ exports.default = function(x) { return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like : Array.from(x); // Map, Set, iterable, string, or anything else }; -function shuffle(array) { - var m = array.length, t, i; +function shuffle(array, random) { + let m = array.length, t, i; while(m){ - i = Math.random() * m-- | 0; + i = random() * m-- | 0; t = array[m]; array[m] = array[i]; array[i] = t; @@ -119391,16 +120093,22 @@ function shuffle(array) { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3Unie":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "packEncloseRandom", ()=>packEncloseRandom); var _arrayJs = require("../array.js"); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); exports.default = function(circles) { - var i = 0, n = (circles = (0, _arrayJs.shuffle)(Array.from(circles))).length, B = [], p, e; + return packEncloseRandom(circles, (0, _lcgJsDefault.default)()); +}; +function packEncloseRandom(circles, random) { + var i = 0, n = (circles = (0, _arrayJs.shuffle)(Array.from(circles), random)).length, B = [], p, e; while(i < n){ p = circles[i]; if (e && enclosesWeak(e, p)) ++i; else e = encloseBasis(B = extendBasis(B, p)), i = 0; } return e; -}; +} function extendBasis(B, p) { var i, j; if (enclosesWeakAll(p, B)) return [ @@ -119464,7 +120172,7 @@ function encloseBasis2(a, b) { }; } function encloseBasis3(a, b, c) { - var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A = xb * xb + yb * yb - 1, B = 2 * (r1 + xa * xb + ya * yb), C = xa * xa + ya * ya - r1 * r1, r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A = xb * xb + yb * yb - 1, B = 2 * (r1 + xa * xb + ya * yb), C = xa * xa + ya * ya - r1 * r1, r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); return { x: x1 + xa + xb * r, y: y1 + ya + yb * r, @@ -119472,33 +120180,7 @@ function encloseBasis3(a, b, c) { }; } -},{"../array.js":"eKsOC","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bsUy0":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "optional", ()=>optional); -parcelHelpers.export(exports, "required", ()=>required); -function optional(f) { - return f == null ? null : required(f); -} -function required(f) { - if (typeof f !== "function") throw new Error; - return f; -} - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"e122v":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "constantZero", ()=>constantZero); -function constantZero() { - return 0; -} -exports.default = function(x) { - return function() { - return x; - }; -}; - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7ce19":[function(require,module,exports) { +},{"../array.js":"eKsOC","../lcg.js":"ioQI9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7ce19":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _roundJs = require("./treemap/round.js"); @@ -119571,7 +120253,7 @@ var _accessorsJs = require("./accessors.js"); var _indexJs = require("./hierarchy/index.js"); var preroot = { depth: -1 -}, ambiguous = {}; +}, ambiguous = {}, imputed = {}; function defaultId(d) { return d.id; } @@ -119579,16 +120261,29 @@ function defaultParentId(d) { return d.parentId; } exports.default = function() { - var id = defaultId, parentId = defaultParentId; + var id = defaultId, parentId = defaultParentId, path; function stratify(data) { - var nodes = Array.from(data), n = nodes.length, d, i, root, parent, node, nodeId, nodeKey, nodeByKey = new Map; - for(i = 0; i < n; ++i){ + var nodes = Array.from(data), currentId = id, currentParentId = parentId, n, d, i, root, parent, node, nodeId, nodeKey, nodeByKey = new Map; + if (path != null) { + const I = nodes.map((d, i)=>normalize(path(d, i, data))); + const P = I.map(parentof); + const S = new Set(I).add(""); + for (const i1 of P)if (!S.has(i1)) { + S.add(i1); + I.push(i1); + P.push(parentof(i1)); + nodes.push(imputed); + } + currentId = (_, i)=>I[i]; + currentParentId = (_, i)=>P[i]; + } + for(i = 0, n = nodes.length; i < n; ++i){ d = nodes[i], node = nodes[i] = new (0, _indexJs.Node)(d); - if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { + if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) { nodeKey = node.id = nodeId; nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); } - if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) node.parent = nodeId; + if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) node.parent = nodeId; } for(i = 0; i < n; ++i){ node = nodes[i]; @@ -119607,6 +120302,16 @@ exports.default = function() { } } if (!root) throw new Error("no root"); + // When imputing internal nodes, only introduce roots if needed. + // Then replace the imputed marker data with null. + if (path != null) { + while(root.data === imputed && root.children.length === 1)root = root.children[0], --n; + for(let i2 = nodes.length - 1; i2 >= 0; --i2){ + node = nodes[i2]; + if (node.data !== imputed) break; + node.data = null; + } + } root.parent = preroot; root.eachBefore(function(node) { node.depth = node.parent.depth + 1; @@ -119617,13 +120322,45 @@ exports.default = function() { return root; } stratify.id = function(x) { - return arguments.length ? (id = (0, _accessorsJs.required)(x), stratify) : id; + return arguments.length ? (id = (0, _accessorsJs.optional)(x), stratify) : id; }; stratify.parentId = function(x) { - return arguments.length ? (parentId = (0, _accessorsJs.required)(x), stratify) : parentId; + return arguments.length ? (parentId = (0, _accessorsJs.optional)(x), stratify) : parentId; + }; + stratify.path = function(x) { + return arguments.length ? (path = (0, _accessorsJs.optional)(x), stratify) : path; }; return stratify; }; +// To normalize a path, we coerce to a string, strip the trailing slash if any +// (as long as the trailing slash is not immediately preceded by another slash), +// and add leading slash if missing. +function normalize(path) { + path = `${path}`; + let i = path.length; + if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1); + return path[0] === "/" ? path : `/${path}`; +} +// Walk backwards to find the first slash that is not the leading slash, e.g.: +// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased +// because the id of the root must be a truthy value.) +function parentof(path) { + let i = path.length; + if (i < 2) return ""; + while(--i > 1)if (slash(path, i)) break; + return path.slice(0, i); +} +// Slashes can be escaped; to determine whether a slash is a path delimiter, we +// count the number of preceding backslashes escaping the forward slash: an odd +// number indicates an escaped forward slash. +function slash(path, i) { + if (path[i] === "/") { + let k = 0; + while(i > 0 && path[--i] === "\\")++k; + if ((k & 1) === 0) return true; + } + return false; +} },{"./accessors.js":"bsUy0","./hierarchy/index.js":"eiPwy","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"coCqL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -120040,13 +120777,11 @@ exports.default = function custom(ratio) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "label", ()=>Label); +var _vegaScenegraph = require("vega-scenegraph"); var _vegaCanvas = require("vega-canvas"); var _vegaDataflow = require("vega-dataflow"); -var _vegaScenegraph = require("vega-scenegraph"); var _vegaUtil = require("vega-util"); -const ALPHA_MASK = 0xff000000; // alpha value equivalent to opacity 0.0625 -const INSIDE_OPACITY_IN_ALPHA = 0x10000000; -const INSIDE_OPACITY = 0.0625; +const ALPHA_MASK = 0xff000000; function baseBitmaps($, data) { const bitmap = $.bitmap(); // when there is no base mark but data points are to be avoided (data || []).forEach((d)=>bitmap.set($(d.boundary[0]), $(d.boundary[3]))); @@ -120055,19 +120790,25 @@ function baseBitmaps($, data) { undefined ]; } -function markBitmaps($, avoidMarks, labelInside, isGroupArea) { +function markBitmaps($, baseMark, avoidMarks, labelInside, isGroupArea) { // create canvas - const width = $.width, height = $.height, border = labelInside || isGroupArea, context = (0, _vegaCanvas.canvas)(width, height).getContext("2d"); // render all marks to be avoided into canvas - avoidMarks.forEach((items)=>draw(context, items, border)); // get canvas buffer, create bitmaps - const buffer = new Uint32Array(context.getImageData(0, 0, width, height).data.buffer), layer1 = $.bitmap(), layer2 = border && $.bitmap(); // populate bitmap layers - let x, y, u, v, alpha; + const width = $.width, height = $.height, border = labelInside || isGroupArea, context = (0, _vegaCanvas.canvas)(width, height).getContext("2d"), baseMarkContext = (0, _vegaCanvas.canvas)(width, height).getContext("2d"), strokeContext = border && (0, _vegaCanvas.canvas)(width, height).getContext("2d"); // render all marks to be avoided into canvas + avoidMarks.forEach((items)=>draw(context, items, false)); + draw(baseMarkContext, baseMark, false); + if (border) draw(strokeContext, baseMark, true); + // get canvas buffer, create bitmaps + const buffer = getBuffer(context, width, height), baseMarkBuffer = getBuffer(baseMarkContext, width, height), strokeBuffer = border && getBuffer(strokeContext, width, height), layer1 = $.bitmap(), layer2 = border && $.bitmap(); // populate bitmap layers + let x, y, u, v, index, alpha, strokeAlpha, baseMarkAlpha; for(y = 0; y < height; ++y)for(x = 0; x < width; ++x){ - alpha = buffer[y * width + x] & ALPHA_MASK; - if (alpha) { + index = y * width + x; + alpha = buffer[index] & ALPHA_MASK; + baseMarkAlpha = baseMarkBuffer[index] & ALPHA_MASK; + strokeAlpha = border && strokeBuffer[index] & ALPHA_MASK; + if (alpha || strokeAlpha || baseMarkAlpha) { u = $(x); v = $(y); - if (!isGroupArea) layer1.set(u, v); // update interior bitmap - if (border && alpha ^ INSIDE_OPACITY_IN_ALPHA) layer2.set(u, v); // update border bitmap + if (!isGroupArea && (alpha || baseMarkAlpha)) layer1.set(u, v); // update interior bitmap + if (border && (alpha || strokeAlpha)) layer2.set(u, v); // update border bitmap } } return [ @@ -120075,6 +120816,9 @@ function markBitmaps($, avoidMarks, labelInside, isGroupArea) { layer2 ]; } +function getBuffer(context, width, height) { + return new Uint32Array(context.getImageData(0, 0, width, height).data.buffer); +} function draw(context, items, interior) { if (!items.length) return; const type = items[0].mark.marktype; @@ -120091,13 +120835,12 @@ function draw(context, items, interior) { * @returns prepared item */ function prepare(source) { const item = (0, _vegaDataflow.rederive)(source, {}); - if (item.stroke) item.strokeOpacity = 1; - if (item.fill) { - item.fillOpacity = INSIDE_OPACITY; - item.stroke = "#000"; - item.strokeOpacity = 1; - item.strokeWidth = 2; - } + if (item.stroke && item.strokeOpacity !== 0 || item.fill && item.fillOpacity !== 0) return { + ...item, + strokeOpacity: 1, + stroke: "#000", + fillOpacity: 0 + }; return item; } const DIV = 5, // bit shift from x, y index to bit vector array index @@ -120425,9 +121168,10 @@ const Aligns = [ function placeMarkLabel($, bitmaps, anchors, offsets) { const width = $.width, height = $.height, bm0 = bitmaps[0], bm1 = bitmaps[1], n = offsets.length; return function(d) { + var _d$textWidth; const boundary = d.boundary, textHeight = d.datum.fontSize; // can not be placed if the mark is not visible in the graph bound if (boundary[2] < 0 || boundary[5] < 0 || boundary[0] > width || boundary[3] > height) return false; - let textWidth = 0, dx, dy, isInside, sizeFactor, insideFactor, x1, x2, y1, y2, xc, yc, _x1, _x2, _y1, _y2; // for each anchor and offset + let textWidth = (_d$textWidth = d.textWidth) !== null && _d$textWidth !== void 0 ? _d$textWidth : 0, dx, dy, isInside, sizeFactor, insideFactor, x1, x2, y1, y2, xc, yc, _x1, _x2, _y1, _y2; // for each anchor and offset for(let i = 0; i < n; ++i){ dx = (anchors[i] & 0x3) - 1; dy = (anchors[i] >>> 0x2 & 0x3) - 1; @@ -120466,10 +121210,7 @@ function placeMarkLabel($, bitmaps, anchors, offsets) { }; } // Test if a label with the given dimensions can be added without overlap function test(_x1, _x2, _y1, _y2, bm0, bm1, x1, x2, y1, y2, boundary, isInside) { - return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 ? bm1.getRange(_x1, _y1, _x2, _y2) || !isInMarkBound(x1, y1, x2, y2, boundary) : bm0.getRange(_x1, _y1, _x2, _y2))); -} -function isInMarkBound(x1, y1, x2, y2, boundary) { - return boundary[0] <= x1 && x2 <= boundary[2] && boundary[3] <= y1 && y2 <= boundary[5]; + return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 || bm0).getRange(_x1, _y1, _x2, _y2)); } const TOP = 0x0, MIDDLE = 0x4, BOTTOM = 0x8, LEFT = 0x0, CENTER = 0x1, RIGHT = 0x2; // Mapping from text anchor to number representation const anchorCode = { @@ -120491,16 +121232,25 @@ const placeAreaLabel = { function labelLayout(texts, size, compare, offset, anchor, avoidMarks, avoidBaseMark, lineAnchor, markIndex, padding, method) { // early exit for empty data if (!texts.length) return texts; - const positions = Math.max(offset.length, anchor.length), offsets = getOffsets(offset, positions), anchors = getAnchors(anchor, positions), marktype = markType(texts[0].datum), grouptype = marktype === "group" && texts[0].datum.items[markIndex].marktype, isGroupArea = grouptype === "area", boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex), $ = scaler(size[0], size[1], padding), isNaiveGroupArea = isGroupArea && method === "naive"; // prepare text mark data for placing - const data = texts.map((d)=>({ + const positions = Math.max(offset.length, anchor.length), offsets = getOffsets(offset, positions), anchors = getAnchors(anchor, positions), marktype = markType(texts[0].datum), grouptype = marktype === "group" && texts[0].datum.items[markIndex].marktype, isGroupArea = grouptype === "area", boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex), infPadding = padding === null || padding === Infinity, isNaiveGroupArea = isGroupArea && method === "naive"; + let maxTextWidth = -1, maxTextHeight = -1; // prepare text mark data for placing + const data = texts.map((d)=>{ + const textWidth = infPadding ? (0, _vegaScenegraph.textMetrics).width(d, d.text) : undefined; + maxTextWidth = Math.max(maxTextWidth, textWidth); + maxTextHeight = Math.max(maxTextHeight, d.fontSize); + return { datum: d, opacity: 0, x: undefined, y: undefined, align: undefined, baseline: undefined, - boundary: boundary(d) - })); + boundary: boundary(d), + textWidth + }; + }); + padding = padding === null || padding === Infinity ? Math.max(maxTextWidth, maxTextHeight) + Math.max(...offset) : padding; + const $ = scaler(size[0], size[1], padding); let bitmaps; if (!isNaiveGroupArea) { // sort labels in priority order, if comparator is provided @@ -120512,11 +121262,8 @@ function labelLayout(texts, size, compare, offset, anchor, avoidMarks, avoidBase labelInside = anchors[i] === 0x5 || offsets[i] < 0; // extract data information from base mark when base mark is to be avoided // base mark is implicitly avoided if it is a group area - if (marktype && (avoidBaseMark || isGroupArea)) avoidMarks = [ - texts.map((d)=>d.datum) - ].concat(avoidMarks); - // generate bitmaps for layout calculation - bitmaps = avoidMarks.length ? markBitmaps($, avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data); + const baseMark = (marktype && avoidBaseMark || isGroupArea) && texts.map((d)=>d.datum); // generate bitmaps for layout calculation + bitmaps = avoidMarks.length || baseMark ? markBitmaps($, baseMark || [], avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data); } // generate label placement function const place = isGroupArea ? placeAreaLabel[method]($, bitmaps, avoidBaseMark, markIndex) : placeMarkLabel($, bitmaps, anchors, offsets); // place all labels data.forEach((d)=>d.opacity = +place(d)); @@ -120541,7 +121288,7 @@ function markType(item) { * Factory function for function for getting base mark boundary, depending * on mark and group type. When mark type is undefined, line or area: boundary * is the coordinate of each data point. When base mark is grouped line, - * boundary is either at the beginning or end of the line depending on the + * boundary is either at the start or end of the line depending on the * value of lineAnchor. Otherwise, use bounds of base mark. */ function markBoundary(marktype, grouptype, lineAnchor, markIndex) { const xy = (d)=>[ @@ -120601,8 +121348,9 @@ const Anchors = [ * The available options are 'top-left', 'left', 'bottom-left', 'top', * 'bottom', 'top-right', 'right', 'bottom-right', 'middle'. * @param {Array} [params.offset] - Label offsets (in pixels) from the base mark bounding box. - * This parameter is parallel to the list of anchor points. - * @param {number} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size. + * This parameter is parallel to the list of anchor points. + * @param {number | null} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size. + * If this parameter is null, a label may exceed the layout size without any boundary. * @param {string} [params.lineAnchor='end'] - For group line mark labels only, indicates the anchor * position for labels. One of 'start' or 'end'. * @param {string} [params.markIndex=0] - For group mark labels only, an index indicating @@ -120652,7 +121400,8 @@ Label.Definition = { { name: "padding", type: "number", - default: 0 + default: 0, + null: true }, { name: "lineAnchor", @@ -120702,7 +121451,7 @@ Label.Definition = { if (!(mod || pulse.changed(pulse.ADD_REM) || modp("sort"))) return; if (!_.size || _.size.length !== 2) (0, _vegaUtil.error)("Size parameter should be specified as a [width, height] array."); const as = _.as || Output; // run label layout - labelLayout(pulse.materialize(pulse.SOURCE).source, _.size, _.sort, (0, _vegaUtil.array)(_.offset || 1), (0, _vegaUtil.array)(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark === false ? false : true, _.lineAnchor || "end", _.markIndex || 0, _.padding || 0, _.method || "naive").forEach((l)=>{ + labelLayout(pulse.materialize(pulse.SOURCE).source || [], _.size, _.sort, (0, _vegaUtil.array)(_.offset == null ? 1 : _.offset), (0, _vegaUtil.array)(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark !== false, _.lineAnchor || "end", _.markIndex || 0, _.padding === undefined ? 0 : _.padding, _.method || "naive").forEach((l)=>{ // write layout results to data stream const t = l.datum; t[as[0]] = l.x; @@ -120715,7 +121464,7 @@ Label.Definition = { } }); -},{"vega-canvas":"7F0ce","vega-dataflow":"4kvYg","vega-scenegraph":"gIB0Z","vega-util":"dPFAY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kvZot":[function(require,module,exports) { +},{"vega-scenegraph":"gIB0Z","vega-canvas":"7F0ce","vega-dataflow":"4kvYg","vega-util":"dPFAY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kvZot":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "loess", ()=>Loess); @@ -121128,10 +121877,12 @@ class Delaunay { this.triangles = new Int32Array(3).fill(-1); this.halfedges = new Int32Array(3).fill(-1); this.triangles[0] = hull[0]; - this.triangles[1] = hull[1]; - this.triangles[2] = hull[1]; inedges[hull[0]] = 1; - if (hull.length === 2) inedges[hull[1]] = 0; + if (hull.length === 2) { + inedges[hull[1]] = 0; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + } } } voronoi(bounds) { @@ -121206,7 +121957,9 @@ class Delaunay { this.renderHull(context); return buffer && buffer.value(); } - renderPoints(context, r = 2) { + renderPoints(context, r) { + if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null; + r = r == undefined ? 2 : +r; const buffer = context == null ? context = new (0, _pathJsDefault.default) : undefined; const { points } = this; for(let i = 0, n = points.length; i < n; i += 2){ @@ -121278,6 +122031,7 @@ function* flatIterable(points, fx, fy, that) { },{"delaunator":"dz3p9","./path.js":"deeck","./polygon.js":"1aYy2","./voronoi.js":"2t78D","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dz3p9":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _robustPredicates = require("robust-predicates"); const EPSILON = Math.pow(2, -52); const EDGE_STACK = new Uint32Array(512); class Delaunator { @@ -121385,7 +122139,7 @@ class Delaunator { return; } // swap the order of the seed points for counter-clockwise orientation - if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { + if ((0, _robustPredicates.orient2d)(i0x, i0y, i1x, i1y, i2x, i2y) < 0) { const i8 = i1; const x1 = i1x; const y1 = i1y; @@ -121435,7 +122189,7 @@ class Delaunator { } start = hullPrev[start]; let e = start, q; - while(q = hullNext[e], !orient(x2, y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])){ + while(q = hullNext[e], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0){ e = q; if (e === start) { e = -1; @@ -121451,7 +122205,7 @@ class Delaunator { hullSize++; // walk forward through the hull, adding more triangles and flipping recursively let n1 = hullNext[e]; - while(q = hullNext[n1], orient(x2, y2, coords[2 * n1], coords[2 * n1 + 1], coords[2 * q], coords[2 * q + 1])){ + while(q = hullNext[n1], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * n1], coords[2 * n1 + 1], coords[2 * q], coords[2 * q + 1]) < 0){ t = this._addTriangle(n1, i10, q, hullTri[i10], -1, hullTri[n1]); hullTri[i10] = this._legalize(t + 2); hullNext[n1] = n1; // mark as removed @@ -121459,7 +122213,7 @@ class Delaunator { n1 = q; } // walk backward from the other side, adding more triangles and flipping - if (e === start) while(q = hullPrev[e], orient(x2, y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])){ + if (e === start) while(q = hullPrev[e], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0){ t = this._addTriangle(q, i10, e, -1, hullTri[e], hullTri[q]); this._legalize(t + 2); hullTri[q] = t; @@ -121579,17 +122333,6 @@ function dist(ax, ay, bx, by) { const dy = ay - by; return dx * dx + dy * dy; } -// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check -function orientIfSure(px, py, rx, ry, qx, qy) { - const l = (ry - py) * (qx - px); - const r = (rx - px) * (qy - py); - return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; -} -// a more robust orientation test that's stable in a given triangle (to fix robustness issues) -function orient(rx, ry, qx, qy, px, py) { - const sign = orientIfSure(px, py, rx, ry, qx, qy) || orientIfSure(rx, ry, qx, qy, px, py) || orientIfSure(qx, qy, px, py, rx, ry); - return sign < 0; -} function inCircle(ax, ay, bx, by, cx, cy, px, py) { const dx = ax - px; const dy = ay - py; @@ -121678,7 +122421,2058 @@ function defaultGetY(p) { return p[1]; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"deeck":[function(require,module,exports) { +},{"robust-predicates":"gcpO1","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gcpO1":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient2d", ()=>(0, _orient2DJs.orient2d)); +parcelHelpers.export(exports, "orient2dfast", ()=>(0, _orient2DJs.orient2dfast)); +parcelHelpers.export(exports, "orient3d", ()=>(0, _orient3DJs.orient3d)); +parcelHelpers.export(exports, "orient3dfast", ()=>(0, _orient3DJs.orient3dfast)); +parcelHelpers.export(exports, "incircle", ()=>(0, _incircleJs.incircle)); +parcelHelpers.export(exports, "incirclefast", ()=>(0, _incircleJs.incirclefast)); +parcelHelpers.export(exports, "insphere", ()=>(0, _insphereJs.insphere)); +parcelHelpers.export(exports, "inspherefast", ()=>(0, _insphereJs.inspherefast)); +var _orient2DJs = require("./esm/orient2d.js"); +var _orient3DJs = require("./esm/orient3d.js"); +var _incircleJs = require("./esm/incircle.js"); +var _insphereJs = require("./esm/insphere.js"); + +},{"./esm/orient2d.js":"gLWRJ","./esm/orient3d.js":"ea9Bc","./esm/incircle.js":"9jlrr","./esm/insphere.js":"258hF","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gLWRJ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient2d", ()=>orient2d); +parcelHelpers.export(exports, "orient2dfast", ()=>orient2dfast); +var _utilJs = require("./util.js"); +const ccwerrboundA = (3 + 16 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const ccwerrboundB = (2 + 12 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const ccwerrboundC = (9 + 64 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const B = (0, _utilJs.vec)(4); +const C1 = (0, _utilJs.vec)(8); +const C2 = (0, _utilJs.vec)(12); +const D = (0, _utilJs.vec)(16); +const u = (0, _utilJs.vec)(4); +function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) { + let acxtail, acytail, bcxtail, bcytail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + const acx = ax - cx; + const bcx = bx - cx; + const acy = ay - cy; + const bcy = by - cy; + s1 = acx * bcy; + c = (0, _utilJs.splitter) * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = (0, _utilJs.splitter) * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcx; + c = (0, _utilJs.splitter) * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = (0, _utilJs.splitter) * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + B[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + B[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + B[2] = _j - (u3 - bvirt) + (_i - bvirt); + B[3] = u3; + let det = (0, _utilJs.estimate)(4, B); + let errbound = ccwerrboundB * detsum; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - acx; + acxtail = ax - (acx + bvirt) + (bvirt - cx); + bvirt = bx - bcx; + bcxtail = bx - (bcx + bvirt) + (bvirt - cx); + bvirt = ay - acy; + acytail = ay - (acy + bvirt) + (bvirt - cy); + bvirt = by - bcy; + bcytail = by - (bcy + bvirt) + (bvirt - cy); + if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) return det; + errbound = ccwerrboundC * detsum + (0, _utilJs.resulterrbound) * Math.abs(det); + det += acx * bcytail + bcy * acxtail - (acy * bcxtail + bcx * acytail); + if (det >= errbound || -det >= errbound) return det; + s1 = acxtail * bcy; + c = (0, _utilJs.splitter) * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = (0, _utilJs.splitter) * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcx; + c = (0, _utilJs.splitter) * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = (0, _utilJs.splitter) * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C1len = (0, _utilJs.sum)(4, B, 4, u, C1); + s1 = acx * bcytail; + c = (0, _utilJs.splitter) * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = (0, _utilJs.splitter) * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcxtail; + c = (0, _utilJs.splitter) * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = (0, _utilJs.splitter) * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C2len = (0, _utilJs.sum)(C1len, C1, 4, u, C2); + s1 = acxtail * bcytail; + c = (0, _utilJs.splitter) * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = (0, _utilJs.splitter) * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcxtail; + c = (0, _utilJs.splitter) * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = (0, _utilJs.splitter) * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const Dlen = (0, _utilJs.sum)(C2len, C2, 4, u, D); + return D[Dlen - 1]; +} +function orient2d(ax, ay, bx, by, cx, cy) { + const detleft = (ay - cy) * (bx - cx); + const detright = (ax - cx) * (by - cy); + const det = detleft - detright; + if (detleft === 0 || detright === 0 || detleft > 0 !== detright > 0) return det; + const detsum = Math.abs(detleft + detright); + if (Math.abs(det) >= ccwerrboundA * detsum) return det; + return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum); +} +function orient2dfast(ax, ay, bx, by, cx, cy) { + return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy); +} + +},{"./util.js":"g1upN","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"g1upN":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "epsilon", ()=>epsilon); +parcelHelpers.export(exports, "splitter", ()=>splitter); +parcelHelpers.export(exports, "resulterrbound", ()=>resulterrbound); +// fast_expansion_sum_zeroelim routine from oritinal code +parcelHelpers.export(exports, "sum", ()=>sum); +parcelHelpers.export(exports, "sum_three", ()=>sum_three); +// scale_expansion_zeroelim routine from oritinal code +parcelHelpers.export(exports, "scale", ()=>scale); +parcelHelpers.export(exports, "negate", ()=>negate); +parcelHelpers.export(exports, "estimate", ()=>estimate); +parcelHelpers.export(exports, "vec", ()=>vec); +const epsilon = 1.1102230246251565e-16; +const splitter = 134217729; +const resulterrbound = (3 + 8 * epsilon) * epsilon; +function sum(elen, e, flen, f, h) { + let Q, Qnew, hh, bvirt; + let enow = e[0]; + let fnow = f[0]; + let eindex = 0; + let findex = 0; + if (fnow > enow === fnow > -enow) { + Q = enow; + enow = e[++eindex]; + } else { + Q = fnow; + fnow = f[++findex]; + } + let hindex = 0; + if (eindex < elen && findex < flen) { + if (fnow > enow === fnow > -enow) { + Qnew = enow + Q; + hh = Q - (Qnew - enow); + enow = e[++eindex]; + } else { + Qnew = fnow + Q; + hh = Q - (Qnew - fnow); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + while(eindex < elen && findex < flen){ + if (fnow > enow === fnow > -enow) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + } else { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + } + while(eindex < elen){ + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + while(findex < flen){ + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + if (Q !== 0 || hindex === 0) h[hindex++] = Q; + return hindex; +} +function sum_three(alen, a, blen, b, clen, c, tmp, out) { + return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out); +} +function scale(elen, e, b, h) { + let Q, sum, hh, product1, product0; + let bvirt, c, ahi, alo, bhi, blo; + c = splitter * b; + bhi = c - (c - b); + blo = b - bhi; + let enow = e[0]; + Q = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo); + let hindex = 0; + if (hh !== 0) h[hindex++] = hh; + for(let i = 1; i < elen; i++){ + enow = e[i]; + product1 = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo); + sum = Q + product0; + bvirt = sum - Q; + hh = Q - (sum - bvirt) + (product0 - bvirt); + if (hh !== 0) h[hindex++] = hh; + Q = product1 + sum; + hh = sum - (Q - product1); + if (hh !== 0) h[hindex++] = hh; + } + if (Q !== 0 || hindex === 0) h[hindex++] = Q; + return hindex; +} +function negate(elen, e) { + for(let i = 0; i < elen; i++)e[i] = -e[i]; + return elen; +} +function estimate(elen, e) { + let Q = e[0]; + for(let i = 1; i < elen; i++)Q += e[i]; + return Q; +} +function vec(n) { + return new Float64Array(n); +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ea9Bc":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient3d", ()=>orient3d); +parcelHelpers.export(exports, "orient3dfast", ()=>orient3dfast); +var _utilJs = require("./util.js"); +const o3derrboundA = (7 + 56 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const o3derrboundB = (3 + 28 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const o3derrboundC = (26 + 288 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const bc = (0, _utilJs.vec)(4); +const ca = (0, _utilJs.vec)(4); +const ab = (0, _utilJs.vec)(4); +const at_b = (0, _utilJs.vec)(4); +const at_c = (0, _utilJs.vec)(4); +const bt_c = (0, _utilJs.vec)(4); +const bt_a = (0, _utilJs.vec)(4); +const ct_a = (0, _utilJs.vec)(4); +const ct_b = (0, _utilJs.vec)(4); +const bct = (0, _utilJs.vec)(8); +const cat = (0, _utilJs.vec)(8); +const abt = (0, _utilJs.vec)(8); +const u = (0, _utilJs.vec)(4); +const _8 = (0, _utilJs.vec)(8); +const _8b = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(8); +const _12 = (0, _utilJs.vec)(12); +let fin = (0, _utilJs.vec)(192); +let fin2 = (0, _utilJs.vec)(192); +function finadd(finlen, alen, a) { + finlen = (0, _utilJs.sum)(finlen, fin, alen, a, fin2); + const tmp = fin; + fin = fin2; + fin2 = tmp; + return finlen; +} +function tailinit(xtail, ytail, ax, ay, bx, by, a, b) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate; + if (xtail === 0) { + if (ytail === 0) { + a[0] = 0; + b[0] = 0; + return 1; + } else { + negate = -ytail; + s1 = negate * ax; + c = (0, _utilJs.splitter) * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = (0, _utilJs.splitter) * ax; + bhi = c - (c - ax); + blo = ax - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + s1 = ytail * bx; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * bx; + bhi = c - (c - bx); + blo = bx - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } + } else if (ytail === 0) { + s1 = xtail * ay; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + negate = -xtail; + s1 = negate * by; + c = (0, _utilJs.splitter) * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } else { + s1 = xtail * ay; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ytail * ax; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * ax; + bhi = c - (c - ax); + blo = ax - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + a[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + a[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + a[2] = _j - (u3 - bvirt) + (_i - bvirt); + a[3] = u3; + s1 = ytail * bx; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * bx; + bhi = c - (c - bx); + blo = bx - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = xtail * by; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + b[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + b[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + b[2] = _j - (u3 - bvirt) + (_i - bvirt); + b[3] = u3; + return 4; + } +} +function tailadd(finlen, a, b, k, z) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3; + s1 = a * b; + c = (0, _utilJs.splitter) * a; + ahi = c - (c - a); + alo = a - ahi; + c = (0, _utilJs.splitter) * b; + bhi = c - (c - b); + blo = b - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + c = (0, _utilJs.splitter) * k; + bhi = c - (c - k); + blo = k - bhi; + _i = s0 * k; + c = (0, _utilJs.splitter) * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * k; + c = (0, _utilJs.splitter) * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + u[2] = _k - (u3 - _j); + u[3] = u3; + finlen = finadd(finlen, 4, u); + if (z !== 0) { + c = (0, _utilJs.splitter) * z; + bhi = c - (c - z); + blo = z - bhi; + _i = s0 * z; + c = (0, _utilJs.splitter) * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * z; + c = (0, _utilJs.splitter) * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + u[2] = _k - (u3 - _j); + u[3] = u3; + finlen = finadd(finlen, 4, u); + } + return finlen; +} +function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail; + let adytail, bdytail, cdytail; + let adztail, bdztail, cdztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3; + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + s1 = bdx * cdy; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.scale)(4, bc, adz, _8), _8, (0, _utilJs.scale)(4, ca, bdz, _8b), _8b, _16), _16, (0, _utilJs.scale)(4, ab, cdz, _8), _8, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = o3derrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + bvirt = az - adz; + adztail = az - (adz + bvirt) + (bvirt - dz); + bvirt = bz - bdz; + bdztail = bz - (bdz + bvirt) + (bvirt - dz); + bvirt = cz - cdz; + cdztail = cz - (cdz + bvirt) + (bvirt - dz); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0 && adztail === 0 && bdztail === 0 && cdztail === 0) return det; + errbound = o3derrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + det += adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) + bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) + cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx); + if (det >= errbound || -det >= errbound) return det; + const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c); + const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a); + const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b); + const bctlen = (0, _utilJs.sum)(bt_len, bt_c, ct_len, ct_b, bct); + finlen = finadd(finlen, (0, _utilJs.scale)(bctlen, bct, adz, _16), _16); + const catlen = (0, _utilJs.sum)(ct_len, ct_a, at_len, at_c, cat); + finlen = finadd(finlen, (0, _utilJs.scale)(catlen, cat, bdz, _16), _16); + const abtlen = (0, _utilJs.sum)(at_len, at_b, bt_len, bt_a, abt); + finlen = finadd(finlen, (0, _utilJs.scale)(abtlen, abt, cdz, _16), _16); + if (adztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, bc, adztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(bctlen, bct, adztail, _16), _16); + } + if (bdztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, ca, bdztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(catlen, cat, bdztail, _16), _16); + } + if (cdztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, ab, cdztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(abtlen, abt, cdztail, _16), _16); + } + if (adxtail !== 0) { + if (bdytail !== 0) finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail); + if (cdytail !== 0) finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail); + } + if (bdxtail !== 0) { + if (cdytail !== 0) finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail); + if (adytail !== 0) finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail); + } + if (cdxtail !== 0) { + if (adytail !== 0) finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail); + if (bdytail !== 0) finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail); + } + return fin[finlen - 1]; +} +function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady); + const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz); + const errbound = o3derrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent); +} +function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + return adx * (bdy * cdz - bdz * cdy) + bdx * (cdy * adz - cdz * ady) + cdx * (ady * bdz - adz * bdy); +} + +},{"./util.js":"g1upN","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9jlrr":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "incircle", ()=>incircle); +parcelHelpers.export(exports, "incirclefast", ()=>incirclefast); +var _utilJs = require("./util.js"); +const iccerrboundA = (10 + 96 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const iccerrboundB = (4 + 48 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const iccerrboundC = (44 + 576 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const bc = (0, _utilJs.vec)(4); +const ca = (0, _utilJs.vec)(4); +const ab = (0, _utilJs.vec)(4); +const aa = (0, _utilJs.vec)(4); +const bb = (0, _utilJs.vec)(4); +const cc = (0, _utilJs.vec)(4); +const u = (0, _utilJs.vec)(4); +const v = (0, _utilJs.vec)(4); +const axtbc = (0, _utilJs.vec)(8); +const aytbc = (0, _utilJs.vec)(8); +const bxtca = (0, _utilJs.vec)(8); +const bytca = (0, _utilJs.vec)(8); +const cxtab = (0, _utilJs.vec)(8); +const cytab = (0, _utilJs.vec)(8); +const abt = (0, _utilJs.vec)(8); +const bct = (0, _utilJs.vec)(8); +const cat = (0, _utilJs.vec)(8); +const abtt = (0, _utilJs.vec)(4); +const bctt = (0, _utilJs.vec)(4); +const catt = (0, _utilJs.vec)(4); +const _8 = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(16); +const _16b = (0, _utilJs.vec)(16); +const _16c = (0, _utilJs.vec)(16); +const _32 = (0, _utilJs.vec)(32); +const _32b = (0, _utilJs.vec)(32); +const _48 = (0, _utilJs.vec)(48); +const _64 = (0, _utilJs.vec)(64); +let fin = (0, _utilJs.vec)(1152); +let fin2 = (0, _utilJs.vec)(1152); +function finadd(finlen, a, alen) { + finlen = (0, _utilJs.sum)(finlen, fin, a, alen, fin2); + const tmp = fin; + fin = fin2; + fin2 = tmp; + return finlen; +} +function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail; + let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen; + let abtlen, bctlen, catlen; + let abttlen, bcttlen, cattlen; + let n1, n0; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + s1 = bdx * cdy; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, bc, adx, _8), _8, adx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32, (0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, ca, bdx, _8), _8, bdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64, (0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, ab, cdx, _8), _8, cdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = iccerrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) return det; + errbound = iccerrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + det += (adx * adx + ady * ady) * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx) + ((bdx * bdx + bdy * bdy) * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) + ((cdx * cdx + cdy * cdy) * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx)); + if (det >= errbound || -det >= errbound) return det; + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = adx * adx; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = ady * ady; + c = (0, _utilJs.splitter) * ady; + ahi = c - (c - ady); + alo = ady - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + aa[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + aa[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + aa[2] = _j - (u3 - bvirt) + (_i - bvirt); + aa[3] = u3; + } + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = bdx * bdx; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = bdy * bdy; + c = (0, _utilJs.splitter) * bdy; + ahi = c - (c - bdy); + alo = bdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + bb[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + bb[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + bb[2] = _j - (u3 - bvirt) + (_i - bvirt); + bb[3] = u3; + } + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = cdx * cdx; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = cdy * cdy; + c = (0, _utilJs.splitter) * cdy; + ahi = c - (c - cdy); + alo = cdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + cc[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + cc[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + cc[2] = _j - (u3 - bvirt) + (_i - bvirt); + cc[3] = u3; + } + if (adxtail !== 0) { + axtbclen = (0, _utilJs.scale)(4, bc, adxtail, axtbc); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(axtbclen, axtbc, 2 * adx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adxtail, _8), _8, bdy, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48); + } + if (adytail !== 0) { + aytbclen = (0, _utilJs.scale)(4, bc, adytail, aytbc); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(aytbclen, aytbc, 2 * ady, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, adytail, _8), _8, cdx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48); + } + if (bdxtail !== 0) { + bxtcalen = (0, _utilJs.scale)(4, ca, bdxtail, bxtca); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(bxtcalen, bxtca, 2 * bdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdxtail, _8), _8, cdy, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48); + } + if (bdytail !== 0) { + bytcalen = (0, _utilJs.scale)(4, ca, bdytail, bytca); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(bytcalen, bytca, 2 * bdy, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, bdytail, _8), _8, adx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48); + } + if (cdxtail !== 0) { + cxtablen = (0, _utilJs.scale)(4, ab, cdxtail, cxtab); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(cxtablen, cxtab, 2 * cdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdxtail, _8), _8, ady, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48); + } + if (cdytail !== 0) { + cytablen = (0, _utilJs.scale)(4, ab, cdytail, cytab); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(cytablen, cytab, 2 * cdy, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, cdytail, _8), _8, bdx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48); + } + if (adxtail !== 0 || adytail !== 0) { + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = bdxtail * cdy; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * cdytail; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + s1 = cdxtail * -bdy; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * -bdy; + bhi = c - (c - -bdy); + blo = -bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * -bdytail; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * -bdytail; + bhi = c - (c - -bdytail); + blo = -bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + bctlen = (0, _utilJs.sum)(4, u, 4, v, bct); + s1 = bdxtail * cdytail; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdxtail * bdytail; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bctt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bctt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bctt[2] = _j - (u3 - bvirt) + (_i - bvirt); + bctt[3] = u3; + bcttlen = 4; + } else { + bct[0] = 0; + bctlen = 1; + bctt[0] = 0; + bcttlen = 1; + } + if (adxtail !== 0) { + const len = (0, _utilJs.scale)(bctlen, bct, adxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(axtbclen, axtbc, adxtail, _16), _16, (0, _utilJs.scale)(len, _16c, 2 * adx, _32), _32, _48), _48); + const len2 = (0, _utilJs.scale)(bcttlen, bctt, adxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len2, _8, 2 * adx, _16), _16, (0, _utilJs.scale)(len2, _8, adxtail, _16b), _16b, (0, _utilJs.scale)(len, _16c, adxtail, _32), _32, _32b, _64), _64); + if (bdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adxtail, _8), _8, bdytail, _16), _16); + if (cdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, -adxtail, _8), _8, cdytail, _16), _16); + } + if (adytail !== 0) { + const len1 = (0, _utilJs.scale)(bctlen, bct, adytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(aytbclen, aytbc, adytail, _16), _16, (0, _utilJs.scale)(len1, _16c, 2 * ady, _32), _32, _48), _48); + const len21 = (0, _utilJs.scale)(bcttlen, bctt, adytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len21, _8, 2 * ady, _16), _16, (0, _utilJs.scale)(len21, _8, adytail, _16b), _16b, (0, _utilJs.scale)(len1, _16c, adytail, _32), _32, _32b, _64), _64); + } + } + if (bdxtail !== 0 || bdytail !== 0) { + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = cdxtail * ady; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * adytail; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + n1 = -cdy; + n0 = -cdytail; + s1 = adxtail * n1; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * n0; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + catlen = (0, _utilJs.sum)(4, u, 4, v, cat); + s1 = cdxtail * adytail; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adxtail * cdytail; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + catt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + catt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + catt[2] = _j - (u3 - bvirt) + (_i - bvirt); + catt[3] = u3; + cattlen = 4; + } else { + cat[0] = 0; + catlen = 1; + catt[0] = 0; + cattlen = 1; + } + if (bdxtail !== 0) { + const len3 = (0, _utilJs.scale)(catlen, cat, bdxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(bxtcalen, bxtca, bdxtail, _16), _16, (0, _utilJs.scale)(len3, _16c, 2 * bdx, _32), _32, _48), _48); + const len22 = (0, _utilJs.scale)(cattlen, catt, bdxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len22, _8, 2 * bdx, _16), _16, (0, _utilJs.scale)(len22, _8, bdxtail, _16b), _16b, (0, _utilJs.scale)(len3, _16c, bdxtail, _32), _32, _32b, _64), _64); + if (cdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdxtail, _8), _8, cdytail, _16), _16); + if (adytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, -bdxtail, _8), _8, adytail, _16), _16); + } + if (bdytail !== 0) { + const len4 = (0, _utilJs.scale)(catlen, cat, bdytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(bytcalen, bytca, bdytail, _16), _16, (0, _utilJs.scale)(len4, _16c, 2 * bdy, _32), _32, _48), _48); + const len23 = (0, _utilJs.scale)(cattlen, catt, bdytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len23, _8, 2 * bdy, _16), _16, (0, _utilJs.scale)(len23, _8, bdytail, _16b), _16b, (0, _utilJs.scale)(len4, _16c, bdytail, _32), _32, _32b, _64), _64); + } + } + if (cdxtail !== 0 || cdytail !== 0) { + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = adxtail * bdy; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * bdytail; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + n1 = -ady; + n0 = -adytail; + s1 = bdxtail * n1; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * n0; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + abtlen = (0, _utilJs.sum)(4, u, 4, v, abt); + s1 = adxtail * bdytail; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdxtail * adytail; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + abtt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + abtt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + abtt[2] = _j - (u3 - bvirt) + (_i - bvirt); + abtt[3] = u3; + abttlen = 4; + } else { + abt[0] = 0; + abtlen = 1; + abtt[0] = 0; + abttlen = 1; + } + if (cdxtail !== 0) { + const len5 = (0, _utilJs.scale)(abtlen, abt, cdxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(cxtablen, cxtab, cdxtail, _16), _16, (0, _utilJs.scale)(len5, _16c, 2 * cdx, _32), _32, _48), _48); + const len24 = (0, _utilJs.scale)(abttlen, abtt, cdxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len24, _8, 2 * cdx, _16), _16, (0, _utilJs.scale)(len24, _8, cdxtail, _16b), _16b, (0, _utilJs.scale)(len5, _16c, cdxtail, _32), _32, _32b, _64), _64); + if (adytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdxtail, _8), _8, adytail, _16), _16); + if (bdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, -cdxtail, _8), _8, bdytail, _16), _16); + } + if (cdytail !== 0) { + const len6 = (0, _utilJs.scale)(abtlen, abt, cdytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(cytablen, cytab, cdytail, _16), _16, (0, _utilJs.scale)(len6, _16c, 2 * cdy, _32), _32, _48), _48); + const len25 = (0, _utilJs.scale)(abttlen, abtt, cdytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len25, _8, 2 * cdy, _16), _16, (0, _utilJs.scale)(len25, _8, cdytail, _16b), _16b, (0, _utilJs.scale)(len6, _16c, cdytail, _32), _32, _32b, _64), _64); + } + } + return fin[finlen - 1]; +} +function incircle(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const alift = adx * adx + ady * ady; + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const blift = bdx * bdx + bdy * bdy; + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const clift = cdx * cdx + cdy * cdy; + const det = alift * (bdxcdy - cdxbdy) + blift * (cdxady - adxcdy) + clift * (adxbdy - bdxady); + const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift + (Math.abs(cdxady) + Math.abs(adxcdy)) * blift + (Math.abs(adxbdy) + Math.abs(bdxady)) * clift; + const errbound = iccerrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent); +} +function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const ady = ay - dy; + const bdx = bx - dx; + const bdy = by - dy; + const cdx = cx - dx; + const cdy = cy - dy; + const abdet = adx * bdy - bdx * ady; + const bcdet = bdx * cdy - cdx * bdy; + const cadet = cdx * ady - adx * cdy; + const alift = adx * adx + ady * ady; + const blift = bdx * bdx + bdy * bdy; + const clift = cdx * cdx + cdy * cdy; + return alift * bcdet + blift * cadet + clift * abdet; +} + +},{"./util.js":"g1upN","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"258hF":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "insphere", ()=>insphere); +parcelHelpers.export(exports, "inspherefast", ()=>inspherefast); +var _utilJs = require("./util.js"); +const isperrboundA = (16 + 224 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const isperrboundB = (5 + 72 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const isperrboundC = (71 + 1408 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const ab = (0, _utilJs.vec)(4); +const bc = (0, _utilJs.vec)(4); +const cd = (0, _utilJs.vec)(4); +const de = (0, _utilJs.vec)(4); +const ea = (0, _utilJs.vec)(4); +const ac = (0, _utilJs.vec)(4); +const bd = (0, _utilJs.vec)(4); +const ce = (0, _utilJs.vec)(4); +const da = (0, _utilJs.vec)(4); +const eb = (0, _utilJs.vec)(4); +const abc = (0, _utilJs.vec)(24); +const bcd = (0, _utilJs.vec)(24); +const cde = (0, _utilJs.vec)(24); +const dea = (0, _utilJs.vec)(24); +const eab = (0, _utilJs.vec)(24); +const abd = (0, _utilJs.vec)(24); +const bce = (0, _utilJs.vec)(24); +const cda = (0, _utilJs.vec)(24); +const deb = (0, _utilJs.vec)(24); +const eac = (0, _utilJs.vec)(24); +const adet = (0, _utilJs.vec)(1152); +const bdet = (0, _utilJs.vec)(1152); +const cdet = (0, _utilJs.vec)(1152); +const ddet = (0, _utilJs.vec)(1152); +const edet = (0, _utilJs.vec)(1152); +const abdet = (0, _utilJs.vec)(2304); +const cddet = (0, _utilJs.vec)(2304); +const cdedet = (0, _utilJs.vec)(3456); +const deter = (0, _utilJs.vec)(5760); +const _8 = (0, _utilJs.vec)(8); +const _8b = (0, _utilJs.vec)(8); +const _8c = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(16); +const _24 = (0, _utilJs.vec)(24); +const _48 = (0, _utilJs.vec)(48); +const _48b = (0, _utilJs.vec)(48); +const _96 = (0, _utilJs.vec)(96); +const _192 = (0, _utilJs.vec)(192); +const _384x = (0, _utilJs.vec)(384); +const _384y = (0, _utilJs.vec)(384); +const _384z = (0, _utilJs.vec)(384); +const _768 = (0, _utilJs.vec)(768); +function sum_three_scale(a, b, c, az, bz, cz, out) { + return (0, _utilJs.sum_three)((0, _utilJs.scale)(4, a, az, _8), _8, (0, _utilJs.scale)(4, b, bz, _8b), _8b, (0, _utilJs.scale)(4, c, cz, _8c), _8c, _16, out); +} +function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) { + const len = (0, _utilJs.sum)((0, _utilJs.sum)(alen, a, blen, b, _48), _48, (0, _utilJs.negate)((0, _utilJs.sum)(clen, c, dlen, d, _48b), _48b), _48b, _96); + return (0, _utilJs.sum_three)((0, _utilJs.scale)((0, _utilJs.scale)(len, _96, x, _192), _192, x, _384x), _384x, (0, _utilJs.scale)((0, _utilJs.scale)(len, _96, y, _192), _192, y, _384y), _384y, (0, _utilJs.scale)((0, _utilJs.scale)(len, _96, z, _192), _192, z, _384z), _384z, _768, out); +} +function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + s1 = ax * by; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ay; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + s1 = bx * cy; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * by; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cx * dy; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * cy; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + cd[2] = _j - (u3 - bvirt) + (_i - bvirt); + cd[3] = u3; + s1 = dx * ey; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * dy; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + de[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + de[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + de[2] = _j - (u3 - bvirt) + (_i - bvirt); + de[3] = u3; + s1 = ex * ay; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * ey; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ea[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ea[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ea[2] = _j - (u3 - bvirt) + (_i - bvirt); + ea[3] = u3; + s1 = ax * cy; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * ay; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ac[2] = _j - (u3 - bvirt) + (_i - bvirt); + ac[3] = u3; + s1 = bx * dy; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * by; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bd[2] = _j - (u3 - bvirt) + (_i - bvirt); + bd[3] = u3; + s1 = cx * ey; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * cy; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ce[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ce[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ce[2] = _j - (u3 - bvirt) + (_i - bvirt); + ce[3] = u3; + s1 = dx * ay; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * dy; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + da[2] = _j - (u3 - bvirt) + (_i - bvirt); + da[3] = u3; + s1 = ex * by; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ey; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + eb[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + eb[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + eb[2] = _j - (u3 - bvirt) + (_i - bvirt); + eb[3] = u3; + const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc); + const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd); + const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde); + const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea); + const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab); + const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd); + const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce); + const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda); + const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb); + const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac); + const deterlen = (0, _utilJs.sum_three)(liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet, liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet, (0, _utilJs.sum_three)(liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet, liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet, liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter); + return deter[deterlen - 1]; +} +const xdet = (0, _utilJs.vec)(96); +const ydet = (0, _utilJs.vec)(96); +const zdet = (0, _utilJs.vec)(96); +const fin = (0, _utilJs.vec)(1152); +function liftadapt(a, b, c, az, bz, cz, x, y, z, out) { + const len = sum_three_scale(a, b, c, az, bz, cz, _24); + return (0, _utilJs.sum_three)((0, _utilJs.scale)((0, _utilJs.scale)(len, _24, x, _48), _48, x, xdet), xdet, (0, _utilJs.scale)((0, _utilJs.scale)(len, _24, y, _48), _48, y, ydet), ydet, (0, _utilJs.scale)((0, _utilJs.scale)(len, _24, z, _48), _48, z, zdet), zdet, _192, out); +} +function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) { + let ab3, bc3, cd3, da3, ac3, bd3; + let aextail, bextail, cextail, dextail; + let aeytail, beytail, ceytail, deytail; + let aeztail, beztail, ceztail, deztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0; + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + s1 = aex * bey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bex * aey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + ab3 = _j + _i; + bvirt = ab3 - _j; + ab[2] = _j - (ab3 - bvirt) + (_i - bvirt); + ab[3] = ab3; + s1 = bex * cey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * bey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + bc3 = _j + _i; + bvirt = bc3 - _j; + bc[2] = _j - (bc3 - bvirt) + (_i - bvirt); + bc[3] = bc3; + s1 = cex * dey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * cey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + cd3 = _j + _i; + bvirt = cd3 - _j; + cd[2] = _j - (cd3 - bvirt) + (_i - bvirt); + cd[3] = cd3; + s1 = dex * aey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = aex * dey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + da3 = _j + _i; + bvirt = da3 - _j; + da[2] = _j - (da3 - bvirt) + (_i - bvirt); + da[3] = da3; + s1 = aex * cey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * aey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + ac3 = _j + _i; + bvirt = ac3 - _j; + ac[2] = _j - (ac3 - bvirt) + (_i - bvirt); + ac[3] = ac3; + s1 = bex * dey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * bey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + bd3 = _j + _i; + bvirt = bd3 - _j; + bd[2] = _j - (bd3 - bvirt) + (_i - bvirt); + bd[3] = bd3; + const finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.negate)(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet, liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet, (0, _utilJs.sum)((0, _utilJs.negate)(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet, liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = isperrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - aex; + aextail = ax - (aex + bvirt) + (bvirt - ex); + bvirt = ay - aey; + aeytail = ay - (aey + bvirt) + (bvirt - ey); + bvirt = az - aez; + aeztail = az - (aez + bvirt) + (bvirt - ez); + bvirt = bx - bex; + bextail = bx - (bex + bvirt) + (bvirt - ex); + bvirt = by - bey; + beytail = by - (bey + bvirt) + (bvirt - ey); + bvirt = bz - bez; + beztail = bz - (bez + bvirt) + (bvirt - ez); + bvirt = cx - cex; + cextail = cx - (cex + bvirt) + (bvirt - ex); + bvirt = cy - cey; + ceytail = cy - (cey + bvirt) + (bvirt - ey); + bvirt = cz - cez; + ceztail = cz - (cez + bvirt) + (bvirt - ez); + bvirt = dx - dex; + dextail = dx - (dex + bvirt) + (bvirt - ex); + bvirt = dy - dey; + deytail = dy - (dey + bvirt) + (bvirt - ey); + bvirt = dz - dez; + deztail = dz - (dez + bvirt) + (bvirt - ez); + if (aextail === 0 && aeytail === 0 && aeztail === 0 && bextail === 0 && beytail === 0 && beztail === 0 && cextail === 0 && ceytail === 0 && ceztail === 0 && dextail === 0 && deytail === 0 && deztail === 0) return det; + errbound = isperrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + const abeps = aex * beytail + bey * aextail - (aey * bextail + bex * aeytail); + const bceps = bex * ceytail + cey * bextail - (bey * cextail + cex * beytail); + const cdeps = cex * deytail + dey * cextail - (cey * dextail + dex * ceytail); + const daeps = dex * aeytail + aey * dextail - (dey * aextail + aex * deytail); + const aceps = aex * ceytail + cey * aextail - (aey * cextail + cex * aeytail); + const bdeps = bex * deytail + dey * bextail - (bey * dextail + dex * beytail); + det += (bex * bex + bey * bey + bez * bez) * (cez * daeps + dez * aceps + aez * cdeps + (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) * (aez * bceps - bez * aceps + cez * abeps + (aeztail * bc3 - beztail * ac3 + ceztail * ab3)) - ((aex * aex + aey * aey + aez * aez) * (bez * cdeps - cez * bdeps + dez * bceps + (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) * (dez * abeps + aez * bdeps + bez * daeps + (deztail * ab3 + aeztail * bd3 + beztail * da3))) + 2 * ((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) + (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3) - ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) + (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3))); + if (det >= errbound || -det >= errbound) return det; + return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez); +} +function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + const aexbey = aex * bey; + const bexaey = bex * aey; + const ab = aexbey - bexaey; + const bexcey = bex * cey; + const cexbey = cex * bey; + const bc = bexcey - cexbey; + const cexdey = cex * dey; + const dexcey = dex * cey; + const cd = cexdey - dexcey; + const dexaey = dex * aey; + const aexdey = aex * dey; + const da = dexaey - aexdey; + const aexcey = aex * cey; + const cexaey = cex * aey; + const ac = aexcey - cexaey; + const bexdey = bex * dey; + const dexbey = dex * bey; + const bd = bexdey - dexbey; + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + const det = clift * dab - dlift * abc + (alift * bcd - blift * cda); + const aezplus = Math.abs(aez); + const bezplus = Math.abs(bez); + const cezplus = Math.abs(cez); + const dezplus = Math.abs(dez); + const aexbeyplus = Math.abs(aexbey); + const bexaeyplus = Math.abs(bexaey); + const bexceyplus = Math.abs(bexcey); + const cexbeyplus = Math.abs(cexbey); + const cexdeyplus = Math.abs(cexdey); + const dexceyplus = Math.abs(dexcey); + const dexaeyplus = Math.abs(dexaey); + const aexdeyplus = Math.abs(aexdey); + const aexceyplus = Math.abs(aexcey); + const cexaeyplus = Math.abs(cexaey); + const bexdeyplus = Math.abs(bexdey); + const dexbeyplus = Math.abs(dexbey); + const permanent = ((cexdeyplus + dexceyplus) * bezplus + (dexbeyplus + bexdeyplus) * cezplus + (bexceyplus + cexbeyplus) * dezplus) * alift + ((dexaeyplus + aexdeyplus) * cezplus + (aexceyplus + cexaeyplus) * dezplus + (cexdeyplus + dexceyplus) * aezplus) * blift + ((aexbeyplus + bexaeyplus) * dezplus + (bexdeyplus + dexbeyplus) * aezplus + (dexaeyplus + aexdeyplus) * bezplus) * clift + ((bexceyplus + cexbeyplus) * aezplus + (cexaeyplus + aexceyplus) * bezplus + (aexbeyplus + bexaeyplus) * cezplus) * dlift; + const errbound = isperrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent); +} +function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) { + const aex = pax - pex; + const bex = pbx - pex; + const cex = pcx - pex; + const dex = pdx - pex; + const aey = pay - pey; + const bey = pby - pey; + const cey = pcy - pey; + const dey = pdy - pey; + const aez = paz - pez; + const bez = pbz - pez; + const cez = pcz - pez; + const dez = pdz - pez; + const ab = aex * bey - bex * aey; + const bc = bex * cey - cex * bey; + const cd = cex * dey - dex * cey; + const da = dex * aey - aex * dey; + const ac = aex * cey - cex * aey; + const bd = bex * dey - dex * bey; + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + return clift * dab - dlift * abc + (alift * bcd - blift * cda); +} + +},{"./util.js":"g1upN","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"deeck":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); const epsilon = 1e-6; @@ -121791,19 +124585,25 @@ class Voronoi { const dy = y2 - y1; const ex = x3 - x1; const ey = y3 - y1; - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; const ab = (dx * ey - dy * ex) * 2; - if (!ab) { + if (Math.abs(ab) < 1e-9) { // degenerate case (collinear diagram) - x = (x1 + x3) / 2 - 1e8 * ey; - y = (y1 + y3) / 2 + 1e8 * ex; - } else if (Math.abs(ab) < 1e-8) { // almost equal points (degenerate triangle) - x = (x1 + x3) / 2; - y = (y1 + y3) / 2; + // the circumcenter is at the infinity, in a + // direction that is: + // 1. orthogonal to the halfedge. + let a = 1e9; + // 2. points away from the center; since the list of triangles starts + // in the center, the first point of the first triangle + // will be our reference + const r = triangles[0] * 2; + a *= Math.sign((points[r] - x1) * ey - (points[r + 1] - y1) * ex); + x = (x1 + x3) / 2 - a * ey; + y = (y1 + y3) / 2 + a * ex; } else { const d = 1 / ab; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; x = x1 + (ey * bl - dy * cl) * d; y = y1 + (dx * cl - ex * bl) * d; } @@ -121946,7 +124746,7 @@ class Voronoi { let P = null; let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; let c0, c1 = this._regioncode(x1, y1); - let e0, e1; + let e0, e1 = 0; for(let j = 0; j < n; j += 2){ x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; c0 = c1, c1 = this._regioncode(x1, y1); @@ -122064,6 +124864,8 @@ class Voronoi { e0 = 5, x = this.xmin, y = this.ymin; break; // left } + // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are + // undefined, the conditional statement will be executed. if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) P.splice(j, 0, x, y), j += 2; } if (P.length > 4) for(let i1 = 0; i1 < P.length; i1 += 2){ @@ -123289,7 +126091,7 @@ function prevent(view, type) { function permit(view, key, type) { const rule = view._eventConfig && view._eventConfig[key]; if (rule === false || (0, _vegaUtil.isObject)(rule) && !rule[type]) { - view.warn(`Blocked ${key} ${type} event listener.`); + view.warn("Blocked ".concat(key, " ").concat(type, " event listener.")); return false; } return true; @@ -123638,7 +126440,7 @@ function lookup(view, el, clear) { } } if (el && clear) try { - el.innerHTML = ""; + el.textContent = ""; } catch (e) { el = null; view.error(e); @@ -124286,9 +127088,9 @@ function internalScaleFunctions(codegen, fnctx, visitors) { const ref = (arg)=>"_[" + (arg.type === (0, _vegaExpression.Literal) ? (0, _vegaUtil.stringValue)(ScalePrefix + arg.value) : (0, _vegaUtil.stringValue)(ScalePrefix) + "+" + codegen(arg)) + "]"; // define and return internal scale function code generators // these internal functions are called by mark encoders return { - _bandwidth: (args)=>`this.__bandwidth(${ref(args[0])})`, - _range: (args)=>`${ref(args[0])}.range()`, - _scale: (args)=>`${ref(args[0])}(${codegen(args[1])})` + _bandwidth: (args)=>"this.__bandwidth(".concat(ref(args[0]), ")"), + _range: (args)=>"".concat(ref(args[0]), ".range()"), + _scale: (args)=>"".concat(ref(args[0]), "(").concat(codegen(args[1]), ")") }; } function geoMethod(methodName, globalMethod) { @@ -124416,16 +127218,20 @@ function array(seq) { function sequence(seq) { return array(seq) || ((0, _vegaUtil.isString)(seq) ? seq : null); } -function join(seq, ...args) { +function join(seq) { + for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)args[_key - 1] = arguments[_key]; return array(seq).join(...args); } -function indexof(seq, ...args) { +function indexof(seq) { + for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++)args[_key2 - 1] = arguments[_key2]; return sequence(seq).indexOf(...args); } -function lastindexof(seq, ...args) { +function lastindexof(seq) { + for(var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++)args[_key3 - 1] = arguments[_key3]; return sequence(seq).lastIndexOf(...args); } -function slice(seq, ...args) { +function slice(seq) { + for(var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++)args[_key4 - 1] = arguments[_key4]; return sequence(seq).slice(...args); } function replace(str, pattern, repl) { @@ -124543,6 +127349,87 @@ function filter(opt) { } return p; } +/** + * Appends a new point to the lasso + * + * @param {*} lasso the lasso in pixel space + * @param {*} x the x coordinate in pixel space + * @param {*} y the y coordinate in pixel space + * @param {*} minDist the minimum distance, in pixels, that thenew point needs to be apart from the last point + * @returns a new array containing the lasso with the new point + */ function lassoAppend(lasso, x, y) { + let minDist = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5; + const last = lasso[lasso.length - 1]; // Add point to lasso if distance to last point exceed minDist or its the first point + if (last === undefined || Math.sqrt((last[0] - x) ** 2 + (last[1] - y) ** 2) > minDist) { + lasso.push([ + x, + y + ]); + return [ + ...lasso + ]; + } + return lasso; +} +/** + * Generates a svg path command which draws a lasso + * + * @param {*} lasso the lasso in pixel space in the form [[x,y], [x,y], ...] + * @returns the svg path command that draws the lasso + */ function lassoPath(lasso) { + return (lasso !== null && lasso !== void 0 ? lasso : []).reduce((svg, _ref, i)=>{ + let [x, y] = _ref; + return svg += i == 0 ? "M ".concat(x, ",").concat(y, " ") : i === lasso.length - 1 ? " Z" : "L ".concat(x, ",").concat(y, " "); + }, ""); +} +/** + * Inverts the lasso from pixel space to an array of vega scenegraph tuples + * + * @param {*} data the dataset + * @param {*} pixelLasso the lasso in pixel space, [[x,y], [x,y], ...] + * @param {*} unit the unit where the lasso is defined + * + * @returns an array of vega scenegraph tuples + */ function intersectLasso(markname, pixelLasso, unit) { + const { x , y , mark } = unit; + const bb = new (0, _vegaScenegraph.Bounds)().set(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER, Number.MIN_SAFE_INTEGER); // Get bounding box around lasso + for (const [px, py] of pixelLasso){ + if (px < bb.x1) bb.x1 = px; + if (px > bb.x2) bb.x2 = px; + if (py < bb.y1) bb.y1 = py; + if (py > bb.y2) bb.y2 = py; + } // Translate bb against unit coordinates + bb.translate(x, y); + const intersection = intersect([ + [ + bb.x1, + bb.y1 + ], + [ + bb.x2, + bb.y2 + ] + ], markname, mark); // Check every point against the lasso + return intersection.filter((tuple)=>pointInPolygon(tuple.x, tuple.y, pixelLasso)); +} +/** + * Performs a test if a point is inside a polygon based on the idea from + * https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html + * + * This method will not need the same start/end point since it wraps around the edges of the array + * + * @param {*} test a point to test against + * @param {*} polygon a polygon in the form [[x,y], [x,y], ...] + * @returns true if the point lies inside the polygon, false otherwise + */ function pointInPolygon(testx, testy, polygon) { + let intersections = 0; + for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){ + const [prevX, prevY] = polygon[j]; + const [x, y] = polygon[i]; // count intersections + if (y > testy != prevY > testy && testx < (prevX - x) * (testy - y) / (prevY - y) + x) intersections++; + } // point is in polygon if intersection count is odd + return intersections & 1; +} const functionContext = { random () { return (0, _vegaStatistics.random)(); @@ -124575,8 +127462,11 @@ const functionContext = { return _ != null && _ === _; }, toBoolean: (0, _vegaUtil.toBoolean), - toDate: (0, _vegaUtil.toDate), - toNumber: (0, _vegaUtil.toNumber), + toDate (_) { + return (0, _vegaUtil.toDate)(_); + }, + toNumber: // suppress extra arguments + (0, _vegaUtil.toNumber), toString: (0, _vegaUtil.toString), indexof, join, @@ -124623,7 +127513,10 @@ const functionContext = { warn, info, debug, - extent: (0, _vegaUtil.extent), + extent (_) { + return (0, _vegaUtil.extent)(_); + }, + // suppress extra arguments inScope, intersect, clampRange: (0, _vegaUtil.clampRange), @@ -124644,7 +127537,10 @@ const functionContext = { zoomPow: (0, _vegaUtil.zoomPow), zoomSymlog: (0, _vegaUtil.zoomSymlog), encode, - modify + modify, + lassoAppend, + lassoPath, + intersectLasso }; const eventFunctions = [ "view", @@ -124668,7 +127564,7 @@ const codegenParams = { "item" ], fieldvar: "datum", - globalvar: (id)=>`_[${(0, _vegaUtil.stringValue)(SignalPrefix + id)}]`, + globalvar: (id)=>"_[".concat((0, _vegaUtil.stringValue)(SignalPrefix + id), "]"), functions: buildFunctions, constants: (0, _vegaExpression.constants), visitors: astVisitors @@ -124739,7 +127635,7 @@ function parser(expr, scope) { }; } -},{"vega-util":"dPFAY","vega-expression":"ic0a8","d3-geo":"1UFrq","d3-color":"2I9cJ","vega-dataflow":"4kvYg","vega-scale":"evQIv","vega-scenegraph":"gIB0Z","vega-selections":"7uoGs","vega-statistics":"hZmG3","vega-time":"hDlOp","d3-array":"8JMcC","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ic0a8":[function(require,module,exports) { +},{"vega-util":"dPFAY","vega-expression":"kqWZH","d3-geo":"1UFrq","d3-color":"2I9cJ","vega-dataflow":"4kvYg","vega-scale":"evQIv","vega-scenegraph":"gIB0Z","vega-selections":"7uoGs","vega-statistics":"hZmG3","vega-time":"hDlOp","d3-array":"8JMcC","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kqWZH":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); @@ -126218,7 +129114,7 @@ function selectionVisitor(name, args, scope, params) { if (!(0, _vegaUtil.hasOwnProperty)(params, dataName)) params[dataName] = scope.getData(data).tuplesRef(); } -},{"d3-array":"hwjyc","vega-util":"dPFAY","vega-expression":"huXGR","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hwjyc":[function(require,module,exports) { +},{"d3-array":"hwjyc","vega-util":"dPFAY","vega-expression":"kqWZH","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hwjyc":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "bisect", ()=>(0, _bisectJsDefault.default)); @@ -126495,2959 +129391,2916 @@ function union(...others) { } exports.default = union; -},{"internmap":"13ksD","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"huXGR":[function(require,module,exports) { +},{"internmap":"13ksD","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"37uhx":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); -parcelHelpers.export(exports, "ArrayExpression", ()=>ArrayExpression); -parcelHelpers.export(exports, "BinaryExpression", ()=>BinaryExpression); -parcelHelpers.export(exports, "CallExpression", ()=>CallExpression); -parcelHelpers.export(exports, "ConditionalExpression", ()=>ConditionalExpression); -parcelHelpers.export(exports, "Identifier", ()=>Identifier); -parcelHelpers.export(exports, "Literal", ()=>Literal); -parcelHelpers.export(exports, "LogicalExpression", ()=>LogicalExpression); -parcelHelpers.export(exports, "MemberExpression", ()=>MemberExpression); -parcelHelpers.export(exports, "ObjectExpression", ()=>ObjectExpression); -parcelHelpers.export(exports, "Property", ()=>Property); -parcelHelpers.export(exports, "RawCode", ()=>RawCode); -parcelHelpers.export(exports, "UnaryExpression", ()=>UnaryExpression); -parcelHelpers.export(exports, "codegenExpression", ()=>codegen); -parcelHelpers.export(exports, "constants", ()=>Constants); -parcelHelpers.export(exports, "functions", ()=>Functions); -parcelHelpers.export(exports, "parseExpression", ()=>parser); +parcelHelpers.export(exports, "context", ()=>context); var _vegaUtil = require("vega-util"); -const RawCode = "RawCode"; -const Literal = "Literal"; -const Property = "Property"; -const Identifier = "Identifier"; -const ArrayExpression = "ArrayExpression"; -const BinaryExpression = "BinaryExpression"; -const CallExpression = "CallExpression"; -const ConditionalExpression = "ConditionalExpression"; -const LogicalExpression = "LogicalExpression"; -const MemberExpression = "MemberExpression"; -const ObjectExpression = "ObjectExpression"; -const UnaryExpression = "UnaryExpression"; -function ASTNode(type) { - this.type = type; +var _vegaDataflow = require("vega-dataflow"); +/** + * Parse a serialized dataflow specification. + */ function parse(spec) { + const ctx = this, operators = spec.operators || []; // parse background + if (spec.background) ctx.background = spec.background; + // parse event configuration + if (spec.eventConfig) ctx.eventConfig = spec.eventConfig; + // parse locale configuration + if (spec.locale) ctx.locale = spec.locale; + // parse operators + operators.forEach((entry)=>ctx.parseOperator(entry)); // parse operator parameters + operators.forEach((entry)=>ctx.parseOperatorParameters(entry)); // parse streams + (spec.streams || []).forEach((entry)=>ctx.parseStream(entry)); // parse updates + (spec.updates || []).forEach((entry)=>ctx.parseUpdate(entry)); + return ctx.resolve(); } -ASTNode.prototype.visit = function(visitor) { - let c, i, n; - if (visitor(this)) return 1; - for(c = children(this), i = 0, n = c.length; i < n; ++i){ - if (c[i].visit(visitor)) return 1; +const Skip = (0, _vegaUtil.toSet)([ + "rule" +]), Swap = (0, _vegaUtil.toSet)([ + "group", + "image", + "rect" +]); +function adjustSpatial(encode, marktype) { + let code = ""; + if (Skip[marktype]) return code; + if (encode.x2) { + if (encode.x) { + if (Swap[marktype]) code += "if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"; + code += "o.width=o.x2-o.x;"; + } else code += "o.x=o.x2-(o.width||0);"; } -}; -function children(node) { - switch(node.type){ - case ArrayExpression: - return node.elements; - case BinaryExpression: - case LogicalExpression: - return [ - node.left, - node.right - ]; - case CallExpression: - return [ - node.callee - ].concat(node.arguments); - case ConditionalExpression: - return [ - node.test, - node.consequent, - node.alternate - ]; - case MemberExpression: - return [ - node.object, - node.property - ]; - case ObjectExpression: - return node.properties; - case Property: - return [ - node.key, - node.value - ]; - case UnaryExpression: - return [ - node.argument - ]; - case Identifier: - case Literal: - case RawCode: - default: - return []; + if (encode.xc) code += "o.x=o.xc-(o.width||0)/2;"; + if (encode.y2) { + if (encode.y) { + if (Swap[marktype]) code += "if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"; + code += "o.height=o.y2-o.y;"; + } else code += "o.y=o.y2-(o.height||0);"; } + if (encode.yc) code += "o.y=o.yc-(o.height||0)/2;"; + return code; } -/* - The following expression parser is based on Esprima (http://esprima.org/). - Original header comment and license for Esprima is included here: - - Copyright (C) 2013 Ariya Hidayat - Copyright (C) 2013 Thaddee Tyl - Copyright (C) 2013 Mathias Bynens - Copyright (C) 2012 Ariya Hidayat - Copyright (C) 2012 Mathias Bynens - Copyright (C) 2012 Joost-Wim Boekesteijn - Copyright (C) 2012 Kris Kowal - Copyright (C) 2012 Yusuke Suzuki - Copyright (C) 2012 Arpad Borsos - Copyright (C) 2011 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ var TokenName, source, index, length, lookahead; -var TokenBooleanLiteral = 1, TokenEOF = 2, TokenIdentifier = 3, TokenKeyword = 4, TokenNullLiteral = 5, TokenNumericLiteral = 6, TokenPunctuator = 7, TokenStringLiteral = 8, TokenRegularExpression = 9; -TokenName = {}; -TokenName[TokenBooleanLiteral] = "Boolean"; -TokenName[TokenEOF] = ""; -TokenName[TokenIdentifier] = "Identifier"; -TokenName[TokenKeyword] = "Keyword"; -TokenName[TokenNullLiteral] = "Null"; -TokenName[TokenNumericLiteral] = "Numeric"; -TokenName[TokenPunctuator] = "Punctuator"; -TokenName[TokenStringLiteral] = "String"; -TokenName[TokenRegularExpression] = "RegularExpression"; -var SyntaxArrayExpression = "ArrayExpression", SyntaxBinaryExpression = "BinaryExpression", SyntaxCallExpression = "CallExpression", SyntaxConditionalExpression = "ConditionalExpression", SyntaxIdentifier = "Identifier", SyntaxLiteral = "Literal", SyntaxLogicalExpression = "LogicalExpression", SyntaxMemberExpression = "MemberExpression", SyntaxObjectExpression = "ObjectExpression", SyntaxProperty = "Property", SyntaxUnaryExpression = "UnaryExpression"; // Error messages should be identical to V8. -var MessageUnexpectedToken = "Unexpected token %0", MessageUnexpectedNumber = "Unexpected number", MessageUnexpectedString = "Unexpected string", MessageUnexpectedIdentifier = "Unexpected identifier", MessageUnexpectedReserved = "Unexpected reserved word", MessageUnexpectedEOS = "Unexpected end of input", MessageInvalidRegExp = "Invalid regular expression", MessageUnterminatedRegExp = "Invalid regular expression: missing /", MessageStrictOctalLiteral = "Octal literals are not allowed in strict mode.", MessageStrictDuplicateProperty = "Duplicate data property in object literal not allowed in strict mode"; -var ILLEGAL = "ILLEGAL", DISABLED = "Disabled."; // See also tools/generate-unicode-regex.py. -var RegexNonAsciiIdentifierStart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), // eslint-disable-next-line no-misleading-character-class -RegexNonAsciiIdentifierPart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"); // Ensure the condition is true, otherwise throw an error. -// This is only to have a better contract semantic, i.e. another safety net -// to catch a logic error. The condition shall be fulfilled in normal case. -// Do NOT use this to enforce a certain condition on any user input. -function assert(condition, message) { - /* istanbul ignore next */ if (!condition) throw new Error("ASSERT: " + message); +function canonicalType(type) { + return (type + "").toLowerCase(); } -function isDecimalDigit(ch) { - return ch >= 0x30 && ch <= 0x39; // 0..9 +function isOperator(type) { + return canonicalType(type) === "operator"; } -function isHexDigit(ch) { - return "0123456789abcdefABCDEF".indexOf(ch) >= 0; +function isCollect(type) { + return canonicalType(type) === "collect"; } -function isOctalDigit(ch) { - return "01234567".indexOf(ch) >= 0; -} // 7.2 White Space -function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [ - 0x1680, - 0x180E, - 0x2000, - 0x2001, - 0x2002, - 0x2003, - 0x2004, - 0x2005, - 0x2006, - 0x2007, - 0x2008, - 0x2009, - 0x200A, - 0x202F, - 0x205F, - 0x3000, - 0xFEFF - ].indexOf(ch) >= 0; -} // 7.3 Line Terminators -function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; -} // 7.6 Identifier Names and Identifiers -function isIdentifierStart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch)); +function expression(ctx, args, code) { + // wrap code in return statement if expression does not terminate + if (code[code.length - 1] !== ";") code = "return(" + code + ");"; + const fn = Function(...args.concat(code)); + return ctx && ctx.functions ? fn.bind(ctx.functions) : fn; +} // generate code for comparing a single field +function _compare(u, v, lt, gt) { + return "((u = ".concat(u, ") < (v = ").concat(v, ") || u == null) && v != null ? ").concat(lt, "\n : (u > v || v == null) && u != null ? ").concat(gt, "\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(lt, "\n : v !== v && u === u ? ").concat(gt, " : "); } -function isIdentifierPart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch >= 0x30 && ch <= 0x39 || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch)); -} // 7.6.1.1 Keywords -const keywords = { - "if": 1, - "in": 1, - "do": 1, - "var": 1, - "for": 1, - "new": 1, - "try": 1, - "let": 1, - "this": 1, - "else": 1, - "case": 1, - "void": 1, - "with": 1, - "enum": 1, - "while": 1, - "break": 1, - "catch": 1, - "throw": 1, - "const": 1, - "yield": 1, - "class": 1, - "super": 1, - "return": 1, - "typeof": 1, - "delete": 1, - "switch": 1, - "export": 1, - "import": 1, - "public": 1, - "static": 1, - "default": 1, - "finally": 1, - "extends": 1, - "package": 1, - "private": 1, - "function": 1, - "continue": 1, - "debugger": 1, - "interface": 1, - "protected": 1, - "instanceof": 1, - "implements": 1 -}; -function skipComment() { - while(index < length){ - const ch = source.charCodeAt(index); - if (isWhiteSpace(ch) || isLineTerminator(ch)) ++index; - else break; +var expressionCodegen = { + /** + * Parse an expression used to update an operator value. + */ operator: (ctx, expr)=>expression(ctx, [ + "_" + ], expr.code), + /** + * Parse an expression provided as an operator parameter value. + */ parameter: (ctx, expr)=>expression(ctx, [ + "datum", + "_" + ], expr.code), + /** + * Parse an expression applied to an event stream. + */ event: (ctx, expr)=>expression(ctx, [ + "event" + ], expr.code), + /** + * Parse an expression used to handle an event-driven operator update. + */ handler: (ctx, expr)=>{ + const code = "var datum=event.item&&event.item.datum;return ".concat(expr.code, ";"); + return expression(ctx, [ + "_", + "event" + ], code); + }, + /** + * Parse an expression that performs visual encoding. + */ encode: (ctx, encode)=>{ + const { marktype , channels } = encode; + let code = "var o=item,datum=o.datum,m=0,$;"; + for(const name in channels){ + const o = "o[" + (0, _vegaUtil.stringValue)(name) + "]"; + code += "$=".concat(channels[name].code, ";if(").concat(o, "!==$)").concat(o, "=$,m=1;"); + } + code += adjustSpatial(channels, marktype); + code += "return m;"; + return expression(ctx, [ + "item", + "_" + ], code); + }, + /** + * Optimized code generators for access and comparison. + */ codegen: { + get (path) { + const ref = "[".concat(path.map((0, _vegaUtil.stringValue)).join("]["), "]"); + const get = Function("_", "return _".concat(ref, ";")); + get.path = ref; + return get; + }, + comparator (fields, orders) { + let t; + const map = (f, i)=>{ + const o = orders[i]; + let u, v; + if (f.path) { + u = "a".concat(f.path); + v = "b".concat(f.path); + } else { + (t = t || {})["f" + i] = f; + u = "this.f".concat(i, "(a)"); + v = "this.f".concat(i, "(b)"); + } + return _compare(u, v, -o, o); + }; + const fn = Function("a", "b", "var u, v; return " + fields.map(map).join("") + "0;"); + return t ? fn.bind(t) : fn; + } } +}; +/** + * Parse a dataflow operator. + */ function parseOperator(spec) { + const ctx = this; + if (isOperator(spec.type) || !spec.type) ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null); + else ctx.transform(spec, spec.type); } -function scanHexEscape(prefix) { - var i, len, ch, code = 0; - len = prefix === "u" ? 4 : 2; - for(i = 0; i < len; ++i)if (index < length && isHexDigit(source[index])) { - ch = source[index++]; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } else throwError({}, MessageUnexpectedToken, ILLEGAL); - return String.fromCharCode(code); -} -function scanUnicodeCodePointEscape() { - var ch, code, cu1, cu2; - ch = source[index]; - code = 0; // At least, one hex digit is required. - if (ch === "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - while(index < length){ - ch = source[index++]; - if (!isHexDigit(ch)) break; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); +/** + * Parse and assign operator parameters. + */ function parseOperatorParameters(spec) { + const ctx = this; + if (spec.params) { + const op = ctx.get(spec.id); + if (!op) (0, _vegaUtil.error)("Invalid operator id: " + spec.id); + ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly)); } - if (code > 0x10FFFF || ch !== "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - // UTF-16 Encoding - if (code <= 0xFFFF) return String.fromCharCode(code); - cu1 = (code - 0x10000 >> 10) + 0xD800; - cu2 = (code - 0x10000 & 1023) + 0xDC00; - return String.fromCharCode(cu1, cu2); } -function getEscapedIdentifier() { - var ch, id; - ch = source.charCodeAt(index++); - id = String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierStart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id = ch; +/** + * Parse a set of operator parameters. + */ function parseParameters(spec, params) { + params = params || {}; + const ctx = this; + for(const key in spec){ + const value = spec[key]; + params[key] = (0, _vegaUtil.isArray)(value) ? value.map((v)=>parseParameter(v, ctx, params)) : parseParameter(value, ctx, params); } - while(index < length){ - ch = source.charCodeAt(index); - if (!isIdentifierPart(ch)) break; - ++index; - id += String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - id = id.substr(0, id.length - 1); - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierPart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id += ch; - } + return params; +} +/** + * Parse a single parameter. + */ function parseParameter(spec, ctx, params) { + if (!spec || !(0, _vegaUtil.isObject)(spec)) return spec; + for(let i = 0, n = PARSERS.length, p; i < n; ++i){ + p = PARSERS[i]; + if ((0, _vegaUtil.hasOwnProperty)(spec, p.key)) return p.parse(spec, ctx, params); } - return id; + return spec; } -function getIdentifier() { - var start, ch; - start = index++; - while(index < length){ - ch = source.charCodeAt(index); - if (ch === 0x5C) { - // Blackslash (U+005C) marks Unicode escape sequence. - index = start; - return getEscapedIdentifier(); - } - if (isIdentifierPart(ch)) ++index; - else break; +/** Reference parsers. */ var PARSERS = [ + { + key: "$ref", + parse: getOperator + }, + { + key: "$key", + parse: getKey + }, + { + key: "$expr", + parse: getExpression + }, + { + key: "$field", + parse: getField + }, + { + key: "$encode", + parse: getEncode + }, + { + key: "$compare", + parse: getCompare + }, + { + key: "$context", + parse: getContext + }, + { + key: "$subflow", + parse: getSubflow + }, + { + key: "$tupleid", + parse: getTupleId } - return source.slice(start, index); +]; +/** + * Resolve an operator reference. + */ function getOperator(_, ctx) { + return ctx.get(_.$ref) || (0, _vegaUtil.error)("Operator not defined: " + _.$ref); } -function scanIdentifier() { - var start, id, type; - start = index; // Backslash (U+005C) starts an escaped character. - id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character. - // Thus, it must be an identifier. - if (id.length === 1) type = TokenIdentifier; - else if (keywords.hasOwnProperty(id)) // eslint-disable-line no-prototype-builtins - type = TokenKeyword; - else if (id === "null") type = TokenNullLiteral; - else if (id === "true" || id === "false") type = TokenBooleanLiteral; - else type = TokenIdentifier; - return { - type: type, - value: id, - start: start, - end: index - }; -} // 7.7 Punctuators -function scanPunctuator() { - var start = index, code = source.charCodeAt(index), code2, ch1 = source[index], ch2, ch3, ch4; - switch(code){ - // Check for most common single-character punctuators. - case 0x2E: - case 0x28: - case 0x29: - case 0x3B: - case 0x2C: - case 0x7B: - case 0x7D: - case 0x5B: - case 0x5D: - case 0x3A: - case 0x3F: - case 0x7E: - // ~ - ++index; - return { - type: TokenPunctuator, - value: String.fromCharCode(code), - start: start, - end: index - }; - default: - code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator. - if (code2 === 0x3D) switch(code){ - case 0x2B: - case 0x2D: - case 0x2F: - case 0x3C: - case 0x3E: - case 0x5E: - case 0x7C: - case 0x25: - case 0x26: - case 0x2A: - // * - index += 2; - return { - type: TokenPunctuator, - value: String.fromCharCode(code) + String.fromCharCode(code2), - start: start, - end: index - }; - case 0x21: - case 0x3D: - // = - index += 2; // !== and === - if (source.charCodeAt(index) === 0x3D) ++index; - return { - type: TokenPunctuator, - value: source.slice(start, index), - start: start, - end: index - }; - } - } // 4-character punctuator: >>>= - ch4 = source.substr(index, 4); - if (ch4 === ">>>=") { - index += 4; - return { - type: TokenPunctuator, - value: ch4, - start: start, - end: index - }; - } // 3-character punctuators: === !== >>> <<= >>= - ch3 = ch4.substr(0, 3); - if (ch3 === ">>>" || ch3 === "<<=" || ch3 === ">>=") { - index += 3; - return { - type: TokenPunctuator, - value: ch3, - start: start, - end: index - }; - } // Other 2-character punctuators: ++ -- << >> && || - ch2 = ch3.substr(0, 2); - if (ch1 === ch2[1] && "+-<>&|".indexOf(ch1) >= 0 || ch2 === "=>") { - index += 2; - return { - type: TokenPunctuator, - value: ch2, - start: start, - end: index - }; - } - if (ch2 === "//") throwError({}, MessageUnexpectedToken, ILLEGAL); - // 1-character punctuators: < > = ! + - * % & | ^ / - if ("<>=!+-*%&|^/".indexOf(ch1) >= 0) { - ++index; - return { - type: TokenPunctuator, - value: ch1, - start: start, - end: index - }; - } - throwError({}, MessageUnexpectedToken, ILLEGAL); -} // 7.8.3 Numeric Literals -function scanHexLiteral(start) { - let number = ""; - while(index < length){ - if (!isHexDigit(source[index])) break; - number += source[index++]; - } - if (number.length === 0) throwError({}, MessageUnexpectedToken, ILLEGAL); - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt("0x" + number, 16), - start: start, - end: index - }; +/** + * Resolve an expression reference. + */ function getExpression(_, ctx, params) { + if (_.$params) // parse expression parameters + ctx.parseParameters(_.$params, params); + const k = "e:" + _.$expr.code + "_" + _.$name; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.accessor)(ctx.parameterExpression(_.$expr), _.$fields, _.$name)); } -function scanOctalLiteral(start) { - let number = "0" + source[index++]; - while(index < length){ - if (!isOctalDigit(source[index])) break; - number += source[index++]; - } - if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt(number, 8), - octal: true, - start: start, - end: index - }; +/** + * Resolve a key accessor reference. + */ function getKey(_, ctx) { + const k = "k:" + _.$key + "_" + !!_.$flat; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.key)(_.$key, _.$flat, ctx.expr.codegen)); } -function scanNumericLiteral() { - var number, start, ch; - ch = source[index]; - assert(isDecimalDigit(ch.charCodeAt(0)) || ch === ".", "Numeric literal must start with a decimal digit or a decimal point"); - start = index; - number = ""; - if (ch !== ".") { - number = source[index++]; - ch = source[index]; // Hex number starts with '0x'. - // Octal number starts with '0'. - if (number === "0") { - if (ch === "x" || ch === "X") { - ++index; - return scanHexLiteral(start); - } - if (isOctalDigit(ch)) return scanOctalLiteral(start); - // decimal number starts with '0' such as '09' is illegal. - if (ch && isDecimalDigit(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - } - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === ".") { - number += source[index++]; - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === "e" || ch === "E") { - number += source[index++]; - ch = source[index]; - if (ch === "+" || ch === "-") number += source[index++]; - if (isDecimalDigit(source.charCodeAt(index))) while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - else throwError({}, MessageUnexpectedToken, ILLEGAL); - } - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseFloat(number), - start: start, - end: index - }; -} // 7.8.4 String Literals -function scanStringLiteral() { - var str = "", quote, start, ch, code, octal = false; - quote = source[index]; - assert(quote === "'" || quote === '"', "String literal must starts with a quote"); - start = index; - ++index; - while(index < length){ - ch = source[index++]; - if (ch === quote) { - quote = ""; - break; - } else if (ch === "\\") { - ch = source[index++]; - if (!ch || !isLineTerminator(ch.charCodeAt(0))) switch(ch){ - case "u": - case "x": - if (source[index] === "{") { - ++index; - str += scanUnicodeCodePointEscape(); - } else str += scanHexEscape(ch); - break; - case "n": - str += "\n"; - break; - case "r": - str += "\r"; - break; - case "t": - str += " "; - break; - case "b": - str += "\b"; - break; - case "f": - str += "\f"; - break; - case "v": - str += "\v"; - break; - default: - if (isOctalDigit(ch)) { - code = "01234567".indexOf(ch); // \0 is not octal escape sequence - if (code !== 0) octal = true; - if (index < length && isOctalDigit(source[index])) { - octal = true; - code = code * 8 + "01234567".indexOf(source[index++]); // 3 digits are only allowed when string starts - // with 0, 1, 2, 3 - if ("0123".indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) code = code * 8 + "01234567".indexOf(source[index++]); - } - str += String.fromCharCode(code); - } else str += ch; - break; - } - else if (ch === "\r" && source[index] === "\n") ++index; - } else if (isLineTerminator(ch.charCodeAt(0))) break; - else str += ch; - } - if (quote !== "") throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenStringLiteral, - value: str, - octal: octal, - start: start, - end: index - }; +/** + * Resolve a field accessor reference. + */ function getField(_, ctx) { + if (!_.$field) return null; + const k = "f:" + _.$field + "_" + _.$name; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.field)(_.$field, _.$name, ctx.expr.codegen)); } -function testRegExp(pattern, flags) { - let tmp = pattern; - if (flags.indexOf("u") >= 0) // Replace each astral symbol and every Unicode code point - // escape sequence with a single ASCII symbol to avoid throwing on - // regular expressions that are only valid in combination with the - // `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it - // would be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, ($0, $1)=>{ - if (parseInt($1, 16) <= 0x10FFFF) return "x"; - throwError({}, MessageInvalidRegExp); - }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - // First, detect invalid regular expressions. - try { - new RegExp(tmp); - } catch (e) { - throwError({}, MessageInvalidRegExp); - } // Return a regular expression object for this pattern-flag pair, or - // `null` in case the current environment doesn't support the flags it - // uses. - try { - return new RegExp(pattern, flags); - } catch (exception) { - return null; - } +/** + * Resolve a comparator function reference. + */ function getCompare(_, ctx) { + // As of Vega 5.5.3, $tupleid sort is no longer used. + // Keep here for now for backwards compatibility. + const k = "c:" + _.$compare + "_" + _.$order, c = (0, _vegaUtil.array)(_.$compare).map((_)=>_ && _.$tupleid ? (0, _vegaDataflow.tupleid) : _); + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.compare)(c, _.$order, ctx.expr.codegen)); } -function scanRegExpBody() { - var ch, str, classMarker, terminated, body; - ch = source[index]; - assert(ch === "/", "Regular expression literal must start with a slash"); - str = source[index++]; - classMarker = false; - terminated = false; - while(index < length){ - ch = source[index++]; - str += ch; - if (ch === "\\") { - ch = source[index++]; // ECMA-262 7.8.5 - if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - str += ch; - } else if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - else if (classMarker) { - if (ch === "]") classMarker = false; - } else { - if (ch === "/") { - terminated = true; - break; - } else if (ch === "[") classMarker = true; - } +/** + * Resolve an encode operator reference. + */ function getEncode(_, ctx) { + const spec = _.$encode, encode = {}; + for(const name in spec){ + const enc = spec[name]; + encode[name] = (0, _vegaUtil.accessor)(ctx.encodeExpression(enc.$expr), enc.$fields); + encode[name].output = enc.$output; } - if (!terminated) throwError({}, MessageUnterminatedRegExp); - // Exclude leading and trailing slash. - body = str.substr(1, str.length - 2); - return { - value: body, - literal: str - }; + return encode; } -function scanRegExpFlags() { - var ch, str, flags; - str = ""; - flags = ""; - while(index < length){ - ch = source[index]; - if (!isIdentifierPart(ch.charCodeAt(0))) break; - ++index; - if (ch === "\\" && index < length) throwError({}, MessageUnexpectedToken, ILLEGAL); - else { - flags += ch; - str += ch; - } - } - if (flags.search(/[^gimuy]/g) >= 0) throwError({}, MessageInvalidRegExp, flags); - return { - value: flags, - literal: str - }; +/** + * Resolve a context reference. + */ function getContext(_, ctx) { + return ctx; } -function scanRegExp() { - var start, body, flags, value; - lookahead = null; - skipComment(); - start = index; - body = scanRegExpBody(); - flags = scanRegExpFlags(); - value = testRegExp(body.value, flags.value); - return { - literal: body.literal + flags.literal, - value: value, - regex: { - pattern: body.value, - flags: flags.value - }, - start: start, - end: index +/** + * Resolve a recursive subflow specification. + */ function getSubflow(_, ctx) { + const spec = _.$subflow; + return function(dataflow, key, parent) { + const subctx = ctx.fork().parse(spec), op = subctx.get(spec.operators[0].id), p = subctx.signals.parent; + if (p) p.set(parent); + op.detachSubflow = ()=>ctx.detach(subctx); + return op; }; } -function isIdentifierName(token) { - return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral; +/** + * Resolve a tuple id reference. + */ function getTupleId() { + return 0, _vegaDataflow.tupleid; } -function advance() { - skipComment(); - if (index >= length) return { - type: TokenEOF, - start: index, - end: index - }; - const ch = source.charCodeAt(index); - if (isIdentifierStart(ch)) return scanIdentifier(); - // Very common: ( and ) and ; - if (ch === 0x28 || ch === 0x29 || ch === 0x3B) return scanPunctuator(); - // String literal starts with single quote (U+0027) or double quote (U+0022). - if (ch === 0x27 || ch === 0x22) return scanStringLiteral(); - // Dot (.) U+002E can also start a floating-point number, hence the need - // to check the next character. - if (ch === 0x2E) { - if (isDecimalDigit(source.charCodeAt(index + 1))) return scanNumericLiteral(); - return scanPunctuator(); +/** + * Parse an event stream specification. + */ function parseStream(spec) { + var ctx = this, filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined, stream = spec.stream != null ? ctx.get(spec.stream) : undefined, args; + if (spec.source) stream = ctx.events(spec.source, spec.type, filter); + else if (spec.merge) { + args = spec.merge.map((_)=>ctx.get(_)); + stream = args[0].merge.apply(args[0], args.slice(1)); } - if (isDecimalDigit(ch)) return scanNumericLiteral(); - return scanPunctuator(); -} -function lex() { - const token = lookahead; - index = token.end; - lookahead = advance(); - index = token.end; - return token; -} -function peek() { - const pos = index; - lookahead = advance(); - index = pos; -} -function finishArrayExpression(elements) { - const node = new ASTNode(SyntaxArrayExpression); - node.elements = elements; - return node; + if (spec.between) { + args = spec.between.map((_)=>ctx.get(_)); + stream = stream.between(args[0], args[1]); + } + if (spec.filter) stream = stream.filter(filter); + if (spec.throttle != null) stream = stream.throttle(+spec.throttle); + if (spec.debounce != null) stream = stream.debounce(+spec.debounce); + if (stream == null) (0, _vegaUtil.error)("Invalid stream definition: " + JSON.stringify(spec)); + if (spec.consume) stream.consume(true); + ctx.stream(spec, stream); } -function finishBinaryExpression(operator, left, right) { - const node = new ASTNode(operator === "||" || operator === "&&" ? SyntaxLogicalExpression : SyntaxBinaryExpression); - node.operator = operator; - node.left = left; - node.right = right; - return node; +/** + * Parse an event-driven operator update. + */ function parseUpdate(spec) { + var ctx = this, srcid = (0, _vegaUtil.isObject)(srcid = spec.source) ? srcid.$ref : srcid, source = ctx.get(srcid), target = null, update = spec.update, params = undefined; + if (!source) (0, _vegaUtil.error)("Source not defined: " + spec.source); + target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target); + if (update && update.$expr) { + if (update.$params) params = ctx.parseParameters(update.$params); + update = ctx.handlerExpression(update.$expr); + } + ctx.update(spec, source, target, update, params); } -function finishCallExpression(callee, args) { - const node = new ASTNode(SyntaxCallExpression); - node.callee = callee; - node.arguments = args; - return node; +const SKIP = { + skip: true +}; +function getState(options) { + var ctx = this, state = {}; + if (options.signals) { + var signals = state.signals = {}; + Object.keys(ctx.signals).forEach((key)=>{ + const op = ctx.signals[key]; + if (options.signals(key, op)) signals[key] = op.value; + }); + } + if (options.data) { + var data = state.data = {}; + Object.keys(ctx.data).forEach((key)=>{ + const dataset = ctx.data[key]; + if (options.data(key, dataset)) data[key] = dataset.input.value; + }); + } + if (ctx.subcontext && options.recurse !== false) state.subcontext = ctx.subcontext.map((ctx)=>ctx.getState(options)); + return state; } -function finishConditionalExpression(test, consequent, alternate) { - const node = new ASTNode(SyntaxConditionalExpression); - node.test = test; - node.consequent = consequent; - node.alternate = alternate; - return node; +function setState(state) { + var ctx = this, df = ctx.dataflow, data = state.data, signals = state.signals; + Object.keys(signals || {}).forEach((key)=>{ + df.update(ctx.signals[key], signals[key], SKIP); + }); + Object.keys(data || {}).forEach((key)=>{ + df.pulse(ctx.data[key].input, df.changeset().remove((0, _vegaUtil.truthy)).insert(data[key])); + }); + (state.subcontext || []).forEach((substate, i)=>{ + const subctx = ctx.subcontext[i]; + if (subctx) subctx.setState(substate); + }); } -function finishIdentifier(name) { - const node = new ASTNode(SyntaxIdentifier); - node.name = name; - return node; +/** + * Context objects store the current parse state. + * Enables lookup of parsed operators, event streams, accessors, etc. + * Provides a 'fork' method for creating child contexts for subflows. + */ function context(df, transforms, functions, expr) { + return new Context(df, transforms, functions, expr); } -function finishLiteral(token) { - const node = new ASTNode(SyntaxLiteral); - node.value = token.value; - node.raw = source.slice(token.start, token.end); - if (token.regex) { - if (node.raw === "//") node.raw = "/(?:)/"; - node.regex = token.regex; +function Context(df, transforms, functions, expr) { + this.dataflow = df; + this.transforms = transforms; + this.events = df.events.bind(df); + this.expr = expr || expressionCodegen, this.signals = {}; + this.scales = {}; + this.nodes = {}; + this.data = {}; + this.fn = {}; + if (functions) { + this.functions = Object.create(functions); + this.functions.context = this; } - return node; -} -function finishMemberExpression(accessor, object, property) { - const node = new ASTNode(SyntaxMemberExpression); - node.computed = accessor === "["; - node.object = object; - node.property = property; - if (!node.computed) property.member = true; - return node; } -function finishObjectExpression(properties) { - const node = new ASTNode(SyntaxObjectExpression); - node.properties = properties; - return node; +function Subcontext(ctx) { + this.dataflow = ctx.dataflow; + this.transforms = ctx.transforms; + this.events = ctx.events; + this.expr = ctx.expr; + this.signals = Object.create(ctx.signals); + this.scales = Object.create(ctx.scales); + this.nodes = Object.create(ctx.nodes); + this.data = Object.create(ctx.data); + this.fn = Object.create(ctx.fn); + if (ctx.functions) { + this.functions = Object.create(ctx.functions); + this.functions.context = this; + } } -function finishProperty(kind, key, value) { - const node = new ASTNode(SyntaxProperty); - node.key = key; - node.value = value; - node.kind = kind; - return node; +Context.prototype = Subcontext.prototype = { + fork () { + const ctx = new Subcontext(this); + (this.subcontext || (this.subcontext = [])).push(ctx); + return ctx; + }, + detach (ctx) { + this.subcontext = this.subcontext.filter((c)=>c !== ctx); // disconnect all nodes in the subcontext + // wipe out targets first for better efficiency + const keys = Object.keys(ctx.nodes); + for (const key of keys)ctx.nodes[key]._targets = null; + for (const key1 of keys)ctx.nodes[key1].detach(); + ctx.nodes = null; + }, + get (id) { + return this.nodes[id]; + }, + set (id, node) { + return this.nodes[id] = node; + }, + add (spec, op) { + const ctx = this, df = ctx.dataflow, data = spec.value; + ctx.set(spec.id, op); + if (isCollect(spec.type) && data) { + if (data.$ingest) df.ingest(op, data.$ingest, data.$format); + else if (data.$request) df.preload(op, data.$request, data.$format); + else df.pulse(op, df.changeset().insert(data)); + } + if (spec.root) ctx.root = op; + if (spec.parent) { + let p = ctx.get(spec.parent.$ref); + if (p) { + df.connect(p, [ + op + ]); + op.targets().add(p); + } else (ctx.unresolved = ctx.unresolved || []).push(()=>{ + p = ctx.get(spec.parent.$ref); + df.connect(p, [ + op + ]); + op.targets().add(p); + }); + } + if (spec.signal) ctx.signals[spec.signal] = op; + if (spec.scale) ctx.scales[spec.scale] = op; + if (spec.data) for(const name in spec.data){ + const data1 = ctx.data[name] || (ctx.data[name] = {}); + spec.data[name].forEach((role)=>data1[role] = op); + } + }, + resolve () { + (this.unresolved || []).forEach((fn)=>fn()); + delete this.unresolved; + return this; + }, + operator (spec, update) { + this.add(spec, this.dataflow.add(spec.value, update)); + }, + transform (spec, type) { + this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)])); + }, + stream (spec, stream) { + this.set(spec.id, stream); + }, + update (spec, stream, target, update, params) { + this.dataflow.on(stream, target, update, params, spec.options); + }, + // expression parsing + operatorExpression (expr) { + return this.expr.operator(this, expr); + }, + parameterExpression (expr) { + return this.expr.parameter(this, expr); + }, + eventExpression (expr) { + return this.expr.event(this, expr); + }, + handlerExpression (expr) { + return this.expr.handler(this, expr); + }, + encodeExpression (encode) { + return this.expr.encode(this, encode); + }, + // parse methods + parse, + parseOperator, + parseOperatorParameters, + parseParameters, + parseStream, + parseUpdate, + // state methods + getState, + setState +}; + +},{"vega-util":"dPFAY","vega-dataflow":"4kvYg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"irqWQ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "AxisDomainRole", ()=>AxisDomainRole); +parcelHelpers.export(exports, "AxisGridRole", ()=>AxisGridRole); +parcelHelpers.export(exports, "AxisLabelRole", ()=>AxisLabelRole); +parcelHelpers.export(exports, "AxisRole", ()=>AxisRole); +parcelHelpers.export(exports, "AxisTickRole", ()=>AxisTickRole); +parcelHelpers.export(exports, "AxisTitleRole", ()=>AxisTitleRole); +parcelHelpers.export(exports, "DataScope", ()=>DataScope); +parcelHelpers.export(exports, "FrameRole", ()=>FrameRole); +parcelHelpers.export(exports, "LegendEntryRole", ()=>LegendEntryRole); +parcelHelpers.export(exports, "LegendLabelRole", ()=>LegendLabelRole); +parcelHelpers.export(exports, "LegendRole", ()=>LegendRole); +parcelHelpers.export(exports, "LegendSymbolRole", ()=>LegendSymbolRole); +parcelHelpers.export(exports, "LegendTitleRole", ()=>LegendTitleRole); +parcelHelpers.export(exports, "MarkRole", ()=>MarkRole); +parcelHelpers.export(exports, "Scope", ()=>Scope); +parcelHelpers.export(exports, "ScopeRole", ()=>ScopeRole); +parcelHelpers.export(exports, "config", ()=>defaults); +parcelHelpers.export(exports, "parse", ()=>parse); +parcelHelpers.export(exports, "signal", ()=>parseSignal); +parcelHelpers.export(exports, "signalUpdates", ()=>parseSignalUpdates); +parcelHelpers.export(exports, "stream", ()=>parseStream); +var _vegaUtil = require("vega-util"); +var _vegaFunctions = require("vega-functions"); +var _vegaEventSelector = require("vega-event-selector"); +var _vegaScale = require("vega-scale"); +var _vegaDataflow = require("vega-dataflow"); +function parseAutosize(spec) { + return (0, _vegaUtil.isObject)(spec) ? spec : { + type: spec || "pad" + }; } -function finishUnaryExpression(operator, argument) { - const node = new ASTNode(SyntaxUnaryExpression); - node.operator = operator; - node.argument = argument; - node.prefix = true; - return node; -} // Throw an exception -function throwError(token, messageFormat) { - var error, args = Array.prototype.slice.call(arguments, 2), msg = messageFormat.replace(/%(\d)/g, (whole, index)=>{ - assert(index < args.length, "Message reference must be in range"); - return args[index]; +const number = (_)=>+_ || 0; +const paddingObject = (_)=>({ + top: _, + bottom: _, + left: _, + right: _ }); - error = new Error(msg); - error.index = index; - error.description = msg; - throw error; -} // Throw an exception because of the token. -function throwUnexpected(token) { - if (token.type === TokenEOF) throwError(token, MessageUnexpectedEOS); - if (token.type === TokenNumericLiteral) throwError(token, MessageUnexpectedNumber); - if (token.type === TokenStringLiteral) throwError(token, MessageUnexpectedString); - if (token.type === TokenIdentifier) throwError(token, MessageUnexpectedIdentifier); - if (token.type === TokenKeyword) throwError(token, MessageUnexpectedReserved); - // BooleanLiteral, NullLiteral, or Punctuator. - throwError(token, MessageUnexpectedToken, token.value); -} // Expect the next token to match the specified punctuator. -// If not, an exception will be thrown. -function expect(value) { - const token = lex(); - if (token.type !== TokenPunctuator || token.value !== value) throwUnexpected(token); -} // Return true if the next token matches the specified punctuator. -function match(value) { - return lookahead.type === TokenPunctuator && lookahead.value === value; -} // Return true if the next token matches the specified keyword -function matchKeyword(keyword) { - return lookahead.type === TokenKeyword && lookahead.value === keyword; -} // 11.1.4 Array Initialiser -function parseArrayInitialiser() { - const elements = []; - index = lookahead.start; - expect("["); - while(!match("]"))if (match(",")) { - lex(); - elements.push(null); - } else { - elements.push(parseConditionalExpression()); - if (!match("]")) expect(","); - } - lex(); - return finishArrayExpression(elements); -} // 11.1.5 Object Initialiser -function parseObjectPropertyKey() { - index = lookahead.start; - const token = lex(); // Note: This function is called only from parseObjectProperty(), where - // EOF and Punctuator tokens are already filtered out. - if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) { - if (token.octal) throwError(token, MessageStrictOctalLiteral); - return finishLiteral(token); - } - return finishIdentifier(token.value); +function parsePadding(spec) { + return !(0, _vegaUtil.isObject)(spec) ? paddingObject(number(spec)) : spec.signal ? spec : { + top: number(spec.top), + bottom: number(spec.bottom), + left: number(spec.left), + right: number(spec.right) + }; } -function parseObjectProperty() { - var token, key, id, value; - index = lookahead.start; - token = lookahead; - if (token.type === TokenIdentifier) { - id = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", id, value); - } - if (token.type === TokenEOF || token.type === TokenPunctuator) throwUnexpected(token); - else { - key = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", key, value); - } +const encoder = (_)=>(0, _vegaUtil.isObject)(_) && !(0, _vegaUtil.isArray)(_) ? (0, _vegaUtil.extend)({}, _) : { + value: _ + }; +function addEncode(object, name, value, set) { + if (value != null) { + const isEncoder = (0, _vegaUtil.isObject)(value) && !(0, _vegaUtil.isArray)(value) || (0, _vegaUtil.isArray)(value) && value.length && (0, _vegaUtil.isObject)(value[0]); // Always assign signal to update, even if the signal is from the enter block + if (isEncoder) object.update[name] = value; + else object[set || "enter"][name] = { + value: value + }; + return 1; + } else return 0; } -function parseObjectInitialiser() { - var properties = [], property, name, key, map = {}, toString = String; - index = lookahead.start; - expect("{"); - while(!match("}")){ - property = parseObjectProperty(); - if (property.key.type === SyntaxIdentifier) name = property.key.name; - else name = toString(property.key.value); - key = "$" + name; - if (Object.prototype.hasOwnProperty.call(map, key)) throwError({}, MessageStrictDuplicateProperty); - else map[key] = true; - properties.push(property); - if (!match("}")) expect(","); +function addEncoders(object, enter, update) { + for(const name in enter)addEncode(object, name, enter[name]); + for(const name1 in update)addEncode(object, name1, update[name1], "update"); +} +function extendEncode(encode, extra, skip) { + for(const name in extra){ + if (skip && (0, _vegaUtil.hasOwnProperty)(skip, name)) continue; + encode[name] = (0, _vegaUtil.extend)(encode[name] || {}, extra[name]); } - expect("}"); - return finishObjectExpression(properties); -} // 11.1.6 The Grouping Operator -function parseGroupExpression() { - expect("("); - const expr = parseExpression(); - expect(")"); - return expr; -} // 11.1 Primary Expressions -const legalKeywords = { - "if": 1 -}; -function parsePrimaryExpression() { - var type, token, expr; - if (match("(")) return parseGroupExpression(); - if (match("[")) return parseArrayInitialiser(); - if (match("{")) return parseObjectInitialiser(); - type = lookahead.type; - index = lookahead.start; - if (type === TokenIdentifier || legalKeywords[lookahead.value]) expr = finishIdentifier(lex().value); - else if (type === TokenStringLiteral || type === TokenNumericLiteral) { - if (lookahead.octal) throwError(lookahead, MessageStrictOctalLiteral); - expr = finishLiteral(lex()); - } else if (type === TokenKeyword) throw new Error(DISABLED); - else if (type === TokenBooleanLiteral) { - token = lex(); - token.value = token.value === "true"; - expr = finishLiteral(token); - } else if (type === TokenNullLiteral) { - token = lex(); - token.value = null; - expr = finishLiteral(token); - } else if (match("/") || match("/=")) { - expr = finishLiteral(scanRegExp()); - peek(); - } else throwUnexpected(lex()); - return expr; -} // 11.2 Left-Hand-Side Expressions -function parseArguments() { - const args = []; - expect("("); - if (!match(")")) while(index < length){ - args.push(parseConditionalExpression()); - if (match(")")) break; - expect(","); + return encode; +} +function has(key, encode) { + return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]); +} +const MarkRole = "mark"; +const FrameRole = "frame"; +const ScopeRole = "scope"; +const AxisRole = "axis"; +const AxisDomainRole = "axis-domain"; +const AxisGridRole = "axis-grid"; +const AxisLabelRole = "axis-label"; +const AxisTickRole = "axis-tick"; +const AxisTitleRole = "axis-title"; +const LegendRole = "legend"; +const LegendBandRole = "legend-band"; +const LegendEntryRole = "legend-entry"; +const LegendGradientRole = "legend-gradient"; +const LegendLabelRole = "legend-label"; +const LegendSymbolRole = "legend-symbol"; +const LegendTitleRole = "legend-title"; +const TitleRole = "title"; +const TitleTextRole = "title-text"; +const TitleSubtitleRole = "title-subtitle"; +function applyDefaults(encode, type, role, style, config) { + const defaults = {}, enter = {}; + let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370) + key = "lineBreak"; + if (type === "text" && config[key] != null && !has(key, encode)) applyDefault(defaults, key, config[key]); + // ignore legend and axis roles + if (role == "legend" || String(role).startsWith("axis")) role = null; + // resolve mark config + props = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; + for(key in props){ + // do not apply defaults if relevant fields are defined + skip = has(key, encode) || (key === "fill" || key === "stroke") && (has("fill", encode) || has("stroke", encode)); + if (!skip) applyDefault(defaults, key, props[key]); + } // resolve styles, apply with increasing precedence + (0, _vegaUtil.array)(style).forEach((name)=>{ + const props = config.style && config.style[name]; + for(const key in props)if (!has(key, encode)) applyDefault(defaults, key, props[key]); + }); + encode = (0, _vegaUtil.extend)({}, encode); // defensive copy + for(key in defaults){ + props = defaults[key]; + if (props.signal) (update = update || {})[key] = props; + else enter[key] = props; } - expect(")"); - return args; + encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); + if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); + return encode; } -function parseNonComputedProperty() { - index = lookahead.start; - const token = lex(); - if (!isIdentifierName(token)) throwUnexpected(token); - return finishIdentifier(token.value); +function applyDefault(defaults, key, value) { + defaults[key] = value && value.signal ? { + signal: value.signal + } : { + value: value + }; } -function parseNonComputedMember() { - expect("."); - return parseNonComputedProperty(); +const scaleRef = (scale)=>(0, _vegaUtil.isString)(scale) ? (0, _vegaUtil.stringValue)(scale) : scale.signal ? `(${scale.signal})` : field(scale); +function entry$1(enc) { + if (enc.gradient != null) return gradient(enc); + let value = enc.signal ? `(${enc.signal})` : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? (0, _vegaUtil.stringValue)(enc.value) : undefined; + if (enc.scale != null) value = scale(enc, value); + if (value === undefined) value = null; + if (enc.exponent != null) value = `pow(${value},${property(enc.exponent)})`; + if (enc.mult != null) value += `*${property(enc.mult)}`; + if (enc.offset != null) value += `+${property(enc.offset)}`; + if (enc.round) value = `round(${value})`; + return value; } -function parseComputedMember() { - expect("["); - const expr = parseExpression(); - expect("]"); - return expr; +const _color = (type, x, y, z)=>`(${type}(${[ + x, + y, + z + ].map(entry$1).join(",")})+'')`; +function color(enc) { + return enc.c ? _color("hcl", enc.h, enc.c, enc.l) : enc.h || enc.s ? _color("hsl", enc.h, enc.s, enc.l) : enc.l || enc.a ? _color("lab", enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color("rgb", enc.r, enc.g, enc.b) : null; } -function parseLeftHandSideExpressionAllowCall() { - var expr, args, property; - expr = parsePrimaryExpression(); - for(;;){ - if (match(".")) { - property = parseNonComputedMember(); - expr = finishMemberExpression(".", expr, property); - } else if (match("(")) { - args = parseArguments(); - expr = finishCallExpression(expr, args); - } else if (match("[")) { - property = parseComputedMember(); - expr = finishMemberExpression("[", expr, property); - } else break; - } - return expr; -} // 11.3 Postfix Expressions -function parsePostfixExpression() { - const expr = parseLeftHandSideExpressionAllowCall(); - if (lookahead.type === TokenPunctuator) { - if (match("++") || match("--")) throw new Error(DISABLED); +function gradient(enc) { + // map undefined to null; expression lang does not allow undefined + const args = [ + enc.start, + enc.stop, + enc.count + ].map((_)=>_ == null ? null : (0, _vegaUtil.stringValue)(_)); // trim null inputs from the end + while(args.length && (0, _vegaUtil.peek)(args) == null)args.pop(); + args.unshift(scaleRef(enc.gradient)); + return `gradient(${args.join(",")})`; +} +function property(property) { + return (0, _vegaUtil.isObject)(property) ? "(" + entry$1(property) + ")" : property; +} +function field(ref) { + return resolveField((0, _vegaUtil.isObject)(ref) ? ref : { + datum: ref + }); +} +function resolveField(ref) { + let object, level, field; + if (ref.signal) { + object = "datum"; + field = ref.signal; + } else if (ref.group || ref.parent) { + level = Math.max(1, ref.level || 1); + object = "item"; + while(level-- > 0)object += ".mark.group"; + if (ref.parent) { + field = ref.parent; + object += ".datum"; + } else field = ref.group; + } else if (ref.datum) { + object = "datum"; + field = ref.datum; + } else (0, _vegaUtil.error)("Invalid field reference: " + (0, _vegaUtil.stringValue)(ref)); + if (!ref.signal) field = (0, _vegaUtil.isString)(field) ? (0, _vegaUtil.splitAccessPath)(field).map((0, _vegaUtil.stringValue)).join("][") : resolveField(field); + return object + "[" + field + "]"; +} +function scale(enc, value) { + const scale = scaleRef(enc.scale); + if (enc.range != null) // pull value from scale range + value = `lerp(_range(${scale}), ${+enc.range})`; + else { + // run value through scale and/or pull scale bandwidth + if (value !== undefined) value = `_scale(${scale}, ${value})`; + if (enc.band) { + value = (value ? value + "+" : "") + `_bandwidth(${scale})` + (+enc.band === 1 ? "" : "*" + property(enc.band)); + if (enc.extra) // include logic to handle extraneous elements + value = `(datum.extra ? _scale(${scale}, datum.extra.value) : ${value})`; + } + if (value == null) value = "0"; } - return expr; -} // 11.4 Unary Operators -function parseUnaryExpression() { - var token, expr; - if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) expr = parsePostfixExpression(); - else if (match("++") || match("--")) throw new Error(DISABLED); - else if (match("+") || match("-") || match("~") || match("!")) { - token = lex(); - expr = parseUnaryExpression(); - expr = finishUnaryExpression(token.value, expr); - } else if (matchKeyword("delete") || matchKeyword("void") || matchKeyword("typeof")) throw new Error(DISABLED); - else expr = parsePostfixExpression(); - return expr; + return value; } -function binaryPrecedence(token) { - let prec = 0; - if (token.type !== TokenPunctuator && token.type !== TokenKeyword) return 0; - switch(token.value){ - case "||": - prec = 1; - break; - case "&&": - prec = 2; - break; - case "|": - prec = 3; - break; - case "^": - prec = 4; - break; - case "&": - prec = 5; - break; - case "==": - case "!=": - case "===": - case "!==": - prec = 6; - break; - case "<": - case ">": - case "<=": - case ">=": - case "instanceof": - case "in": - prec = 7; - break; - case "<<": - case ">>": - case ">>>": - prec = 8; - break; - case "+": - case "-": - prec = 9; - break; - case "*": - case "/": - case "%": - prec = 11; - break; - } - return prec; -} // 11.5 Multiplicative Operators -// 11.6 Additive Operators -// 11.7 Bitwise Shift Operators -// 11.8 Relational Operators -// 11.9 Equality Operators -// 11.10 Binary Bitwise Operators -// 11.11 Binary Logical Operators -function parseBinaryExpression() { - var marker, markers, expr, token, prec, stack, right, operator, left, i; - marker = lookahead; - left = parseUnaryExpression(); - token = lookahead; - prec = binaryPrecedence(token); - if (prec === 0) return left; - token.prec = prec; - lex(); - markers = [ - marker, - lookahead - ]; - right = parseUnaryExpression(); - stack = [ - left, - token, - right - ]; - while((prec = binaryPrecedence(lookahead)) > 0){ - // Reduce: make a binary expression from the three topmost entries. - while(stack.length > 2 && prec <= stack[stack.length - 2].prec){ - right = stack.pop(); - operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - expr = finishBinaryExpression(operator, left, right); - stack.push(expr); - } // Shift. - token = lex(); - token.prec = prec; - stack.push(token); - markers.push(lookahead); - expr = parseUnaryExpression(); - stack.push(expr); - } // Final reduce to clean-up the stack. - i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while(i > 1){ - markers.pop(); - expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); - i -= 2; - } - return expr; -} // 11.12 Conditional Operator -function parseConditionalExpression() { - var expr, consequent, alternate; - expr = parseBinaryExpression(); - if (match("?")) { - lex(); - consequent = parseConditionalExpression(); - expect(":"); - alternate = parseConditionalExpression(); - expr = finishConditionalExpression(expr, consequent, alternate); - } - return expr; -} // 11.14 Comma Operator -function parseExpression() { - const expr = parseConditionalExpression(); - if (match(",")) throw new Error(DISABLED); // no sequence expressions - return expr; +function rule(enc) { + let code = ""; + enc.forEach((rule)=>{ + const value = entry$1(rule); + code += rule.test ? `(${rule.test})?${value}:` : value; + }); // if no else clause, terminate with null (#1366) + if ((0, _vegaUtil.peek)(code) === ":") code += "null"; + return code; } -function parser(code) { - source = code; - index = 0; - length = source.length; - lookahead = null; - peek(); - const expr = parseExpression(); - if (lookahead.type !== TokenEOF) throw new Error("Unexpect token after expression."); - return expr; +function parseEncode(encode, type, role, style, scope, params) { + const enc = {}; + params = params || {}; + params.encoders = { + $encode: enc + }; + encode = applyDefaults(encode, type, role, style, scope.config); + for(const key in encode)enc[key] = parseBlock(encode[key], type, params, scope); + return params; } -var Constants = { - NaN: "NaN", - E: "Math.E", - LN2: "Math.LN2", - LN10: "Math.LN10", - LOG2E: "Math.LOG2E", - LOG10E: "Math.LOG10E", - PI: "Math.PI", - SQRT1_2: "Math.SQRT1_2", - SQRT2: "Math.SQRT2", - MIN_VALUE: "Number.MIN_VALUE", - MAX_VALUE: "Number.MAX_VALUE" -}; -function Functions(codegen) { - function fncall(name, args, cast, type) { - let obj = codegen(args[0]); - if (cast) { - obj = cast + "(" + obj + ")"; - if (cast.lastIndexOf("new ", 0) === 0) obj = "(" + obj + ")"; - } - return obj + "." + name + (type < 0 ? "" : type === 0 ? "()" : "(" + args.slice(1).map(codegen).join(",") + ")"); - } - function fn(name, cast, type) { - return (args)=>fncall(name, args, cast, type); - } - const DATE = "new Date", STRING = "String", REGEXP = "RegExp"; +function parseBlock(block, marktype, params, scope) { + const channels = {}, fields = {}; + for(const name in block)if (block[name] != null) // skip any null entries + channels[name] = parse$1(expr(block[name]), scope, params, fields); return { - // MATH functions - isNaN: "Number.isNaN", - isFinite: "Number.isFinite", - abs: "Math.abs", - acos: "Math.acos", - asin: "Math.asin", - atan: "Math.atan", - atan2: "Math.atan2", - ceil: "Math.ceil", - cos: "Math.cos", - exp: "Math.exp", - floor: "Math.floor", - log: "Math.log", - max: "Math.max", - min: "Math.min", - pow: "Math.pow", - random: "Math.random", - round: "Math.round", - sin: "Math.sin", - sqrt: "Math.sqrt", - tan: "Math.tan", - clamp: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to clamp function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to clamp function."); - const a = args.map(codegen); - return "Math.max(" + a[1] + ", Math.min(" + a[2] + "," + a[0] + "))"; + $expr: { + marktype, + channels }, - // DATE functions - now: "Date.now", - utc: "Date.UTC", - datetime: DATE, - date: fn("getDate", DATE, 0), - day: fn("getDay", DATE, 0), - year: fn("getFullYear", DATE, 0), - month: fn("getMonth", DATE, 0), - hours: fn("getHours", DATE, 0), - minutes: fn("getMinutes", DATE, 0), - seconds: fn("getSeconds", DATE, 0), - milliseconds: fn("getMilliseconds", DATE, 0), - time: fn("getTime", DATE, 0), - timezoneoffset: fn("getTimezoneOffset", DATE, 0), - utcdate: fn("getUTCDate", DATE, 0), - utcday: fn("getUTCDay", DATE, 0), - utcyear: fn("getUTCFullYear", DATE, 0), - utcmonth: fn("getUTCMonth", DATE, 0), - utchours: fn("getUTCHours", DATE, 0), - utcminutes: fn("getUTCMinutes", DATE, 0), - utcseconds: fn("getUTCSeconds", DATE, 0), - utcmilliseconds: fn("getUTCMilliseconds", DATE, 0), - // sequence functions - length: fn("length", null, -1), - // STRING functions - parseFloat: "parseFloat", - parseInt: "parseInt", - upper: fn("toUpperCase", STRING, 0), - lower: fn("toLowerCase", STRING, 0), - substring: fn("substring", STRING), - split: fn("split", STRING), - trim: fn("trim", STRING, 0), - // REGEXP functions - regexp: REGEXP, - test: fn("test", REGEXP), - // Control Flow functions - if: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to if function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to if function."); - const a = args.map(codegen); - return "(" + a[0] + "?" + a[1] + ":" + a[2] + ")"; - } + $fields: Object.keys(fields), + $output: Object.keys(block) }; } -function stripQuotes(s) { - const n = s && s.length - 1; - return n && (s[0] === '"' && s[n] === '"' || s[0] === "'" && s[n] === "'") ? s.slice(1, -1) : s; +function expr(enc) { + return (0, _vegaUtil.isArray)(enc) ? rule(enc) : entry$1(enc); } -function codegen(opt) { - opt = opt || {}; - const allowed = opt.allowed ? (0, _vegaUtil.toSet)(opt.allowed) : {}, forbidden = opt.forbidden ? (0, _vegaUtil.toSet)(opt.forbidden) : {}, constants = opt.constants || Constants, functions = (opt.functions || Functions)(visit), globalvar = opt.globalvar, fieldvar = opt.fieldvar, outputGlobal = (0, _vegaUtil.isFunction)(globalvar) ? globalvar : (id)=>`${globalvar}["${id}"]`; - let globals = {}, fields = {}, memberDepth = 0; - function visit(ast) { - if ((0, _vegaUtil.isString)(ast)) return ast; - const generator = Generators[ast.type]; - if (generator == null) (0, _vegaUtil.error)("Unsupported type: " + ast.type); - return generator(ast); +function parse$1(code, scope, params, fields) { + const expr = (0, _vegaFunctions.parseExpression)(code, scope); + expr.$fields.forEach((name)=>fields[name] = 1); + (0, _vegaUtil.extend)(params, expr.$params); + return expr.$expr; +} +const OUTER = "outer", OUTER_INVALID = [ + "value", + "update", + "init", + "react", + "bind" +]; +function outerError(prefix, name) { + (0, _vegaUtil.error)(prefix + ' for "outer" push: ' + (0, _vegaUtil.stringValue)(name)); +} +function parseSignal(signal, scope) { + const name = signal.name; + if (signal.push === OUTER) { + // signal must already be defined, raise error if not + if (!scope.signals[name]) outerError("No prior signal definition", name); // signal push must not use properties reserved for standard definition + OUTER_INVALID.forEach((prop)=>{ + if (signal[prop] !== undefined) outerError("Invalid property ", prop); + }); + } else { + // define a new signal in the current scope + const op = scope.addSignal(name, signal.value); + if (signal.react === false) op.react = false; + if (signal.bind) scope.addBinding(name, signal.bind); } - const Generators = { - Literal: (n)=>n.raw, - Identifier: (n)=>{ - const id = n.name; - if (memberDepth > 0) return id; - else if ((0, _vegaUtil.hasOwnProperty)(forbidden, id)) return (0, _vegaUtil.error)("Illegal identifier: " + id); - else if ((0, _vegaUtil.hasOwnProperty)(constants, id)) return constants[id]; - else if ((0, _vegaUtil.hasOwnProperty)(allowed, id)) return id; - else { - globals[id] = 1; - return outputGlobal(id); - } - }, - MemberExpression: (n)=>{ - const d = !n.computed, o = visit(n.object); - if (d) memberDepth += 1; - const p = visit(n.property); - if (o === fieldvar) // strip quotes to sanitize field name (#1653) - fields[stripQuotes(p)] = 1; - if (d) memberDepth -= 1; - return o + (d ? "." + p : "[" + p + "]"); - }, - CallExpression: (n)=>{ - if (n.callee.type !== "Identifier") (0, _vegaUtil.error)("Illegal callee type: " + n.callee.type); - const callee = n.callee.name, args = n.arguments, fn = (0, _vegaUtil.hasOwnProperty)(functions, callee) && functions[callee]; - if (!fn) (0, _vegaUtil.error)("Unrecognized function: " + callee); - return (0, _vegaUtil.isFunction)(fn) ? fn(args) : fn + "(" + args.map(visit).join(",") + ")"; - }, - ArrayExpression: (n)=>"[" + n.elements.map(visit).join(",") + "]", - BinaryExpression: (n)=>"(" + visit(n.left) + " " + n.operator + " " + visit(n.right) + ")", - UnaryExpression: (n)=>"(" + n.operator + visit(n.argument) + ")", - ConditionalExpression: (n)=>"(" + visit(n.test) + "?" + visit(n.consequent) + ":" + visit(n.alternate) + ")", - LogicalExpression: (n)=>"(" + visit(n.left) + n.operator + visit(n.right) + ")", - ObjectExpression: (n)=>"{" + n.properties.map(visit).join(",") + "}", - Property: (n)=>{ - memberDepth += 1; - const k = visit(n.key); - memberDepth -= 1; - return k + ":" + visit(n.value); - } +} +function Entry(type, value, params, parent) { + this.id = -1; + this.type = type; + this.value = value; + this.params = params; + if (parent) this.parent = parent; +} +function entry(type, value, params, parent) { + return new Entry(type, value, params, parent); +} +function operator(value, params) { + return entry("operator", value, params); +} // ----- +function ref(op) { + const ref = { + $ref: op.id + }; // if operator not yet registered, cache ref to resolve later + if (op.id < 0) (op.refs = op.refs || []).push(ref); + return ref; +} +function fieldRef$1(field, name) { + return name ? { + $field: field, + $name: name + } : { + $field: field }; - function codegen(ast) { - const result = { - code: visit(ast), - globals: Object.keys(globals), - fields: Object.keys(fields) - }; - globals = {}; - fields = {}; - return result; - } - codegen.functions = functions; - codegen.constants = constants; - return codegen; } - -},{"vega-util":"dPFAY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"37uhx":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "context", ()=>context); -var _vegaUtil = require("vega-util"); -var _vegaDataflow = require("vega-dataflow"); -/** - * Parse a serialized dataflow specification. - */ function parse(spec) { - const ctx = this, operators = spec.operators || []; // parse background - if (spec.background) ctx.background = spec.background; - // parse event configuration - if (spec.eventConfig) ctx.eventConfig = spec.eventConfig; - // parse locale configuration - if (spec.locale) ctx.locale = spec.locale; - // parse operators - operators.forEach((entry)=>ctx.parseOperator(entry)); // parse operator parameters - operators.forEach((entry)=>ctx.parseOperatorParameters(entry)); // parse streams - (spec.streams || []).forEach((entry)=>ctx.parseStream(entry)); // parse updates - (spec.updates || []).forEach((entry)=>ctx.parseUpdate(entry)); - return ctx.resolve(); +const keyFieldRef = fieldRef$1("key"); +function compareRef(fields, orders) { + return { + $compare: fields, + $order: orders + }; } -const Skip = (0, _vegaUtil.toSet)([ - "rule" -]), Swap = (0, _vegaUtil.toSet)([ - "group", - "image", - "rect" -]); -function adjustSpatial(encode, marktype) { - let code = ""; - if (Skip[marktype]) return code; - if (encode.x2) { - if (encode.x) { - if (Swap[marktype]) code += "if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"; - code += "o.width=o.x2-o.x;"; - } else code += "o.x=o.x2-(o.width||0);"; - } - if (encode.xc) code += "o.x=o.xc-(o.width||0)/2;"; - if (encode.y2) { - if (encode.y) { - if (Swap[marktype]) code += "if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"; - code += "o.height=o.y2-o.y;"; - } else code += "o.y=o.y2-(o.height||0);"; +function keyRef(fields, flat) { + const ref = { + $key: fields + }; + if (flat) ref.$flat = true; + return ref; +} // ----- +const Ascending = "ascending"; +const Descending = "descending"; +function sortKey(sort) { + return !(0, _vegaUtil.isObject)(sort) ? "" : (sort.order === Descending ? "-" : "+") + aggrField(sort.op, sort.field); +} +function aggrField(op, field) { + return (op && op.signal ? "$" + op.signal : op || "") + (op && field ? "_" : "") + (field && field.signal ? "$" + field.signal : field || ""); +} // ----- +const Scope$1 = "scope"; +const View = "view"; +function isSignal(_) { + return _ && _.signal; +} +function isExpr$1(_) { + return _ && _.expr; +} +function hasSignal(_) { + if (isSignal(_)) return true; + if ((0, _vegaUtil.isObject)(_)) for(const key in _){ + if (hasSignal(_[key])) return true; } - if (encode.yc) code += "o.y=o.yc-(o.height||0)/2;"; - return code; + return false; } -function canonicalType(type) { - return (type + "").toLowerCase(); +function value(specValue, defaultValue) { + return specValue != null ? specValue : defaultValue; } -function isOperator(type) { - return canonicalType(type) === "operator"; +function deref(v) { + return v && v.signal || v; } -function isCollect(type) { - return canonicalType(type) === "collect"; +const Timer = "timer"; +function parseStream(stream, scope) { + const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : (0, _vegaUtil.error)("Invalid stream specification: " + (0, _vegaUtil.stringValue)(stream)); + return method(stream, scope); } -function expression(ctx, args, code) { - // wrap code in return statement if expression does not terminate - if (code[code.length - 1] !== ";") code = "return(" + code + ");"; - const fn = Function(...args.concat(code)); - return ctx && ctx.functions ? fn.bind(ctx.functions) : fn; -} // generate code for comparing a single field -function _compare(u, v, lt, gt) { - return "((u = ".concat(u, ") < (v = ").concat(v, ") || u == null) && v != null ? ").concat(lt, "\n : (u > v || v == null) && u != null ? ").concat(gt, "\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(lt, "\n : v !== v && u === u ? ").concat(gt, " : "); +function eventSource(source) { + return source === Scope$1 ? View : source || View; } -var expressionCodegen = { - /** - * Parse an expression used to update an operator value. - */ operator: (ctx, expr)=>expression(ctx, [ - "_" - ], expr.code), - /** - * Parse an expression provided as an operator parameter value. - */ parameter: (ctx, expr)=>expression(ctx, [ - "datum", - "_" - ], expr.code), - /** - * Parse an expression applied to an event stream. - */ event: (ctx, expr)=>expression(ctx, [ - "event" - ], expr.code), - /** - * Parse an expression used to handle an event-driven operator update. - */ handler: (ctx, expr)=>{ - const code = "var datum=event.item&&event.item.datum;return ".concat(expr.code, ";"); - return expression(ctx, [ - "_", - "event" - ], code); - }, - /** - * Parse an expression that performs visual encoding. - */ encode: (ctx, encode)=>{ - const { marktype , channels } = encode; - let code = "var o=item,datum=o.datum,m=0,$;"; - for(const name in channels){ - const o = "o[" + (0, _vegaUtil.stringValue)(name) + "]"; - code += "$=".concat(channels[name].code, ";if(").concat(o, "!==$)").concat(o, "=$,m=1;"); - } - code += adjustSpatial(channels, marktype); - code += "return m;"; - return expression(ctx, [ - "item", - "_" - ], code); - }, - /** - * Optimized code generators for access and comparison. - */ codegen: { - get (path) { - const ref = "[".concat(path.map((0, _vegaUtil.stringValue)).join("]["), "]"); - const get = Function("_", "return _".concat(ref, ";")); - get.path = ref; - return get; - }, - comparator (fields, orders) { - let t; - const map = (f, i)=>{ - const o = orders[i]; - let u, v; - if (f.path) { - u = "a".concat(f.path); - v = "b".concat(f.path); - } else { - (t = t || {})["f" + i] = f; - u = "this.f".concat(i, "(a)"); - v = "this.f".concat(i, "(b)"); - } - return _compare(u, v, -o, o); - }; - const fn = Function("a", "b", "var u, v; return " + fields.map(map).join("") + "0;"); - return t ? fn.bind(t) : fn; - } - } -}; -/** - * Parse a dataflow operator. - */ function parseOperator(spec) { - const ctx = this; - if (isOperator(spec.type) || !spec.type) ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null); - else ctx.transform(spec, spec.type); +function mergeStream(stream, scope) { + const list = stream.merge.map((s)=>parseStream(s, scope)), entry = streamParameters({ + merge: list + }, stream, scope); + return scope.addStream(entry).id; } -/** - * Parse and assign operator parameters. - */ function parseOperatorParameters(spec) { - const ctx = this; - if (spec.params) { - const op = ctx.get(spec.id); - if (!op) (0, _vegaUtil.error)("Invalid operator id: " + spec.id); - ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly)); - } +function nestedStream(stream, scope) { + const id = parseStream(stream.stream, scope), entry = streamParameters({ + stream: id + }, stream, scope); + return scope.addStream(entry).id; } -/** - * Parse a set of operator parameters. - */ function parseParameters(spec, params) { - params = params || {}; - const ctx = this; - for(const key in spec){ - const value = spec[key]; - params[key] = (0, _vegaUtil.isArray)(value) ? value.map((v)=>parseParameter(v, ctx, params)) : parseParameter(value, ctx, params); - } - return params; +function eventStream(stream, scope) { + let id; + if (stream.type === Timer) { + id = scope.event(Timer, stream.throttle); + stream = { + between: stream.between, + filter: stream.filter + }; + } else id = scope.event(eventSource(stream.source), stream.type); + const entry = streamParameters({ + stream: id + }, stream, scope); + return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id; } -/** - * Parse a single parameter. - */ function parseParameter(spec, ctx, params) { - if (!spec || !(0, _vegaUtil.isObject)(spec)) return spec; - for(let i = 0, n = PARSERS.length, p; i < n; ++i){ - p = PARSERS[i]; - if ((0, _vegaUtil.hasOwnProperty)(spec, p.key)) return p.parse(spec, ctx, params); +function streamParameters(entry, stream, scope) { + let param = stream.between; + if (param) { + if (param.length !== 2) (0, _vegaUtil.error)('Stream "between" parameter must have 2 entries: ' + (0, _vegaUtil.stringValue)(stream)); + entry.between = [ + parseStream(param[0], scope), + parseStream(param[1], scope) + ]; } - return spec; + param = stream.filter ? [].concat(stream.filter) : []; + if (stream.marktype || stream.markname || stream.markrole) // add filter for mark type, name and/or role + param.push(filterMark(stream.marktype, stream.markname, stream.markrole)); + if (stream.source === Scope$1) // add filter to limit events from sub-scope only + param.push("inScope(event.item)"); + if (param.length) entry.filter = (0, _vegaFunctions.parseExpression)("(" + param.join(")&&(") + ")", scope).$expr; + if ((param = stream.throttle) != null) entry.throttle = +param; + if ((param = stream.debounce) != null) entry.debounce = +param; + if (stream.consume) entry.consume = true; + return entry; } -/** Reference parsers. */ var PARSERS = [ - { - key: "$ref", - parse: getOperator - }, - { - key: "$key", - parse: getKey - }, - { - key: "$expr", - parse: getExpression - }, - { - key: "$field", - parse: getField - }, - { - key: "$encode", - parse: getEncode - }, - { - key: "$compare", - parse: getCompare - }, - { - key: "$context", - parse: getContext - }, - { - key: "$subflow", - parse: getSubflow - }, - { - key: "$tupleid", - parse: getTupleId +function filterMark(type, name, role) { + const item = "event.item"; + return item + (type && type !== "*" ? "&&" + item + ".mark.marktype==='" + type + "'" : "") + (role ? "&&" + item + ".mark.role==='" + role + "'" : "") + (name ? "&&" + item + ".mark.name==='" + name + "'" : ""); +} +const OP_VALUE_EXPR = { + code: "_.$value", + ast: { + type: "Identifier", + value: "value" } -]; -/** - * Resolve an operator reference. - */ function getOperator(_, ctx) { - return ctx.get(_.$ref) || (0, _vegaUtil.error)("Operator not defined: " + _.$ref); +}; +function parseUpdate(spec, scope, target) { + const encode = spec.encode, entry = { + target: target + }; + let events = spec.events, update = spec.update, sources = []; + if (!events) (0, _vegaUtil.error)("Signal update missing events specification."); + // interpret as an event selector string + if ((0, _vegaUtil.isString)(events)) events = (0, _vegaEventSelector.parseSelector)(events, scope.isSubscope() ? Scope$1 : View); + // separate event streams from signal updates + events = (0, _vegaUtil.array)(events).filter((s)=>s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners + if (sources.length > 1) sources = [ + mergeSources(sources) + ]; + // merge event streams, include as source + if (events.length) sources.push(events.length > 1 ? { + merge: events + } : events[0]); + if (encode != null) { + if (update) (0, _vegaUtil.error)("Signal encode and update are mutually exclusive."); + update = "encode(item()," + (0, _vegaUtil.stringValue)(encode) + ")"; + } // resolve update value + entry.update = (0, _vegaUtil.isString)(update) ? (0, _vegaFunctions.parseExpression)(update, scope) : update.expr != null ? (0, _vegaFunctions.parseExpression)(update.expr, scope) : update.value != null ? update.value : update.signal != null ? { + $expr: OP_VALUE_EXPR, + $params: { + $value: scope.signalRef(update.signal) + } + } : (0, _vegaUtil.error)("Invalid signal update specification."); + if (spec.force) entry.options = { + force: true + }; + sources.forEach((source)=>scope.addUpdate((0, _vegaUtil.extend)(streamSource(source, scope), entry))); } -/** - * Resolve an expression reference. - */ function getExpression(_, ctx, params) { - if (_.$params) // parse expression parameters - ctx.parseParameters(_.$params, params); - const k = "e:" + _.$expr.code + "_" + _.$name; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.accessor)(ctx.parameterExpression(_.$expr), _.$fields, _.$name)); +function streamSource(stream, scope) { + return { + source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope) + }; } -/** - * Resolve a key accessor reference. - */ function getKey(_, ctx) { - const k = "k:" + _.$key + "_" + !!_.$flat; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.key)(_.$key, _.$flat, ctx.expr.codegen)); +function mergeSources(sources) { + return { + signal: "[" + sources.map((s)=>s.scale ? 'scale("' + s.scale + '")' : s.signal) + "]" + }; } -/** - * Resolve a field accessor reference. - */ function getField(_, ctx) { - if (!_.$field) return null; - const k = "f:" + _.$field + "_" + _.$name; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.field)(_.$field, _.$name, ctx.expr.codegen)); +function parseSignalUpdates(signal, scope) { + const op = scope.getSignal(signal.name); + let expr = signal.update; + if (signal.init) { + if (expr) (0, _vegaUtil.error)("Signals can not include both init and update expressions."); + else { + expr = signal.init; + op.initonly = true; + } + } + if (expr) { + expr = (0, _vegaFunctions.parseExpression)(expr, scope); + op.update = expr.$expr; + op.params = expr.$params; + } + if (signal.on) signal.on.forEach((_)=>parseUpdate(_, scope, op.id)); } -/** - * Resolve a comparator function reference. - */ function getCompare(_, ctx) { - // As of Vega 5.5.3, $tupleid sort is no longer used. - // Keep here for now for backwards compatibility. - const k = "c:" + _.$compare + "_" + _.$order, c = (0, _vegaUtil.array)(_.$compare).map((_)=>_ && _.$tupleid ? (0, _vegaDataflow.tupleid) : _); - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.compare)(c, _.$order, ctx.expr.codegen)); +const transform = (name)=>(params, value, parent)=>entry(name, value, params || undefined, parent); +const Aggregate = transform("aggregate"); +const AxisTicks = transform("axisticks"); +const Bound = transform("bound"); +const Collect = transform("collect"); +const Compare = transform("compare"); +const DataJoin = transform("datajoin"); +const Encode = transform("encode"); +const Expression = transform("expression"); +const Facet = transform("facet"); +const Field = transform("field"); +const Key = transform("key"); +const LegendEntries = transform("legendentries"); +const Load = transform("load"); +const Mark = transform("mark"); +const MultiExtent = transform("multiextent"); +const MultiValues = transform("multivalues"); +const Overlap = transform("overlap"); +const Params = transform("params"); +const PreFacet = transform("prefacet"); +const Projection = transform("projection"); +const Proxy = transform("proxy"); +const Relay = transform("relay"); +const Render = transform("render"); +const Scale = transform("scale"); +const Sieve = transform("sieve"); +const SortItems = transform("sortitems"); +const ViewLayout = transform("viewlayout"); +const Values = transform("values"); +let FIELD_REF_ID = 0; +const MULTIDOMAIN_SORT_OPS = { + min: "min", + max: "max", + count: "sum" +}; +function initScale(spec, scope) { + const type = spec.type || "linear"; + if (!(0, _vegaScale.isValidScaleType)(type)) (0, _vegaUtil.error)("Unrecognized scale type: " + (0, _vegaUtil.stringValue)(type)); + scope.addScale(spec.name, { + type, + domain: undefined + }); } -/** - * Resolve an encode operator reference. - */ function getEncode(_, ctx) { - const spec = _.$encode, encode = {}; - for(const name in spec){ - const enc = spec[name]; - encode[name] = (0, _vegaUtil.accessor)(ctx.encodeExpression(enc.$expr), enc.$fields); - encode[name].output = enc.$output; +function parseScale(spec, scope) { + const params = scope.getScale(spec.name).params; + let key; + params.domain = parseScaleDomain(spec.domain, spec, scope); + if (spec.range != null) params.range = parseScaleRange(spec, scope, params); + if (spec.interpolate != null) parseScaleInterpolate(spec.interpolate, params); + if (spec.nice != null) params.nice = parseScaleNice(spec.nice); + if (spec.bins != null) params.bins = parseScaleBins(spec.bins, scope); + for(key in spec){ + if ((0, _vegaUtil.hasOwnProperty)(params, key) || key === "name") continue; + params[key] = parseLiteral(spec[key], scope); } - return encode; -} -/** - * Resolve a context reference. - */ function getContext(_, ctx) { - return ctx; } -/** - * Resolve a recursive subflow specification. - */ function getSubflow(_, ctx) { - const spec = _.$subflow; - return function(dataflow, key, parent) { - const subctx = ctx.fork().parse(spec), op = subctx.get(spec.operators[0].id), p = subctx.signals.parent; - if (p) p.set(parent); - op.detachSubflow = ()=>ctx.detach(subctx); - return op; - }; +function parseLiteral(v, scope) { + return !(0, _vegaUtil.isObject)(v) ? v : v.signal ? scope.signalRef(v.signal) : (0, _vegaUtil.error)("Unsupported object: " + (0, _vegaUtil.stringValue)(v)); } -/** - * Resolve a tuple id reference. - */ function getTupleId() { - return 0, _vegaDataflow.tupleid; +function parseArray(v, scope) { + return v.signal ? scope.signalRef(v.signal) : v.map((v)=>parseLiteral(v, scope)); } -/** - * Parse an event stream specification. - */ function parseStream(spec) { - var ctx = this, filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined, stream = spec.stream != null ? ctx.get(spec.stream) : undefined, args; - if (spec.source) stream = ctx.events(spec.source, spec.type, filter); - else if (spec.merge) { - args = spec.merge.map((_)=>ctx.get(_)); - stream = args[0].merge.apply(args[0], args.slice(1)); - } - if (spec.between) { - args = spec.between.map((_)=>ctx.get(_)); - stream = stream.between(args[0], args[1]); +function dataLookupError(name) { + (0, _vegaUtil.error)("Can not find data set: " + (0, _vegaUtil.stringValue)(name)); +} // -- SCALE DOMAIN ---- +function parseScaleDomain(domain, spec, scope) { + if (!domain) { + if (spec.domainMin != null || spec.domainMax != null) (0, _vegaUtil.error)("No scale domain defined for domainMin/domainMax to override."); + return; // default domain } - if (spec.filter) stream = stream.filter(filter); - if (spec.throttle != null) stream = stream.throttle(+spec.throttle); - if (spec.debounce != null) stream = stream.debounce(+spec.debounce); - if (stream == null) (0, _vegaUtil.error)("Invalid stream definition: " + JSON.stringify(spec)); - if (spec.consume) stream.consume(true); - ctx.stream(spec, stream); + return domain.signal ? scope.signalRef(domain.signal) : ((0, _vegaUtil.isArray)(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope); } -/** - * Parse an event-driven operator update. - */ function parseUpdate(spec) { - var ctx = this, srcid = (0, _vegaUtil.isObject)(srcid = spec.source) ? srcid.$ref : srcid, source = ctx.get(srcid), target = null, update = spec.update, params = undefined; - if (!source) (0, _vegaUtil.error)("Source not defined: " + spec.source); - target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target); - if (update && update.$expr) { - if (update.$params) params = ctx.parseParameters(update.$params); - update = ctx.handlerExpression(update.$expr); - } - ctx.update(spec, source, target, update, params); +function explicitDomain(domain, spec, scope) { + return domain.map((v)=>parseLiteral(v, scope)); } -const SKIP = { - skip: true -}; -function getState(options) { - var ctx = this, state = {}; - if (options.signals) { - var signals = state.signals = {}; - Object.keys(ctx.signals).forEach((key)=>{ - const op = ctx.signals[key]; - if (options.signals(key, op)) signals[key] = op.value; - }); - } - if (options.data) { - var data = state.data = {}; - Object.keys(ctx.data).forEach((key)=>{ - const dataset = ctx.data[key]; - if (options.data(key, dataset)) data[key] = dataset.input.value; - }); - } - if (ctx.subcontext && options.recurse !== false) state.subcontext = ctx.subcontext.map((ctx)=>ctx.getState(options)); - return state; +function singularDomain(domain, spec, scope) { + const data = scope.getData(domain.data); + if (!data) dataLookupError(domain.data); + return (0, _vegaScale.isDiscrete)(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : (0, _vegaScale.isQuantile)(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field); } -function setState(state) { - var ctx = this, df = ctx.dataflow, data = state.data, signals = state.signals; - Object.keys(signals || {}).forEach((key)=>{ - df.update(ctx.signals[key], signals[key], SKIP); - }); - Object.keys(data || {}).forEach((key)=>{ - df.pulse(ctx.data[key].input, df.changeset().remove((0, _vegaUtil.truthy)).insert(data[key])); - }); - (state.subcontext || []).forEach((substate, i)=>{ - const subctx = ctx.subcontext[i]; - if (subctx) subctx.setState(substate); - }); +function multipleDomain(domain, spec, scope) { + const data = domain.data, fields = domain.fields.reduce((dom, d)=>{ + d = (0, _vegaUtil.isString)(d) ? { + data: data, + field: d + } : (0, _vegaUtil.isArray)(d) || d.signal ? fieldRef(d, scope) : d; + dom.push(d); + return dom; + }, []); + return ((0, _vegaScale.isDiscrete)(spec.type) ? ordinalMultipleDomain : (0, _vegaScale.isQuantile)(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields); } -/** - * Context objects store the current parse state. - * Enables lookup of parsed operators, event streams, accessors, etc. - * Provides a 'fork' method for creating child contexts for subflows. - */ function context(df, transforms, functions, expr) { - return new Context(df, transforms, functions, expr); +function fieldRef(data, scope) { + const name = "_:vega:_" + FIELD_REF_ID++, coll = Collect({}); + if ((0, _vegaUtil.isArray)(data)) coll.value = { + $ingest: data + }; + else if (data.signal) { + const code = "setdata(" + (0, _vegaUtil.stringValue)(name) + "," + data.signal + ")"; + coll.params.input = scope.signalRef(code); + } + scope.addDataPipeline(name, [ + coll, + Sieve({}) + ]); + return { + data: name, + field: "data" + }; } -function Context(df, transforms, functions, expr) { - this.dataflow = df; - this.transforms = transforms; - this.events = df.events.bind(df); - this.expr = expr || expressionCodegen, this.signals = {}; - this.scales = {}; - this.nodes = {}; - this.data = {}; - this.fn = {}; - if (functions) { - this.functions = Object.create(functions); - this.functions.context = this; +function ordinalMultipleDomain(domain, scope, fields) { + const sort = parseSort(domain.sort, true); + let a, v; // get value counts for each domain field + const counts = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.countsRef(scope, f.field, sort); + }); // aggregate the results from each domain field + const p = { + groupby: keyFieldRef, + pulse: counts + }; + if (sort) { + a = sort.op || "count"; + v = sort.field ? aggrField(a, sort.field) : "count"; + p.ops = [ + MULTIDOMAIN_SORT_OPS[a] + ]; + p.fields = [ + scope.fieldRef(v) + ]; + p.as = [ + v + ]; } + a = scope.add(Aggregate(p)); // collect aggregate output + const c = scope.add(Collect({ + pulse: ref(a) + })); // extract values for combined domain + v = scope.add(Values({ + field: keyFieldRef, + sort: scope.sortRef(sort), + pulse: ref(c) + })); + return ref(v); } -function Subcontext(ctx) { - this.dataflow = ctx.dataflow; - this.transforms = ctx.transforms; - this.events = ctx.events; - this.expr = ctx.expr; - this.signals = Object.create(ctx.signals); - this.scales = Object.create(ctx.scales); - this.nodes = Object.create(ctx.nodes); - this.data = Object.create(ctx.data); - this.fn = Object.create(ctx.fn); - if (ctx.functions) { - this.functions = Object.create(ctx.functions); - this.functions.context = this; +function parseSort(sort, multidomain) { + if (sort) { + if (!sort.field && !sort.op) { + if ((0, _vegaUtil.isObject)(sort)) sort.field = "key"; + else sort = { + field: "key" + }; + } else if (!sort.field && sort.op !== "count") (0, _vegaUtil.error)("No field provided for sort aggregate op: " + sort.op); + else if (multidomain && sort.field) { + if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) (0, _vegaUtil.error)("Multiple domain scales can not be sorted using " + sort.op); + } } + return sort; } -Context.prototype = Subcontext.prototype = { - fork () { - const ctx = new Subcontext(this); - (this.subcontext || (this.subcontext = [])).push(ctx); - return ctx; - }, - detach (ctx) { - this.subcontext = this.subcontext.filter((c)=>c !== ctx); // disconnect all nodes in the subcontext - // wipe out targets first for better efficiency - const keys = Object.keys(ctx.nodes); - for (const key of keys)ctx.nodes[key]._targets = null; - for (const key1 of keys)ctx.nodes[key1].detach(); - ctx.nodes = null; - }, - get (id) { - return this.nodes[id]; - }, - set (id, node) { - return this.nodes[id] = node; - }, - add (spec, op) { - const ctx = this, df = ctx.dataflow, data = spec.value; - ctx.set(spec.id, op); - if (isCollect(spec.type) && data) { - if (data.$ingest) df.ingest(op, data.$ingest, data.$format); - else if (data.$request) df.preload(op, data.$request, data.$format); - else df.pulse(op, df.changeset().insert(data)); - } - if (spec.root) ctx.root = op; - if (spec.parent) { - let p = ctx.get(spec.parent.$ref); - if (p) { - df.connect(p, [ - op - ]); - op.targets().add(p); - } else (ctx.unresolved = ctx.unresolved || []).push(()=>{ - p = ctx.get(spec.parent.$ref); - df.connect(p, [ - op - ]); - op.targets().add(p); - }); - } - if (spec.signal) ctx.signals[spec.signal] = op; - if (spec.scale) ctx.scales[spec.scale] = op; - if (spec.data) for(const name in spec.data){ - const data1 = ctx.data[name] || (ctx.data[name] = {}); - spec.data[name].forEach((role)=>data1[role] = op); - } - }, - resolve () { - (this.unresolved || []).forEach((fn)=>fn()); - delete this.unresolved; - return this; - }, - operator (spec, update) { - this.add(spec, this.dataflow.add(spec.value, update)); - }, - transform (spec, type) { - this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)])); - }, - stream (spec, stream) { - this.set(spec.id, stream); - }, - update (spec, stream, target, update, params) { - this.dataflow.on(stream, target, update, params, spec.options); - }, - // expression parsing - operatorExpression (expr) { - return this.expr.operator(this, expr); - }, - parameterExpression (expr) { - return this.expr.parameter(this, expr); - }, - eventExpression (expr) { - return this.expr.event(this, expr); - }, - handlerExpression (expr) { - return this.expr.handler(this, expr); - }, - encodeExpression (encode) { - return this.expr.encode(this, encode); - }, - // parse methods - parse, - parseOperator, - parseOperatorParameters, - parseParameters, - parseStream, - parseUpdate, - // state methods - getState, - setState -}; - -},{"vega-util":"dPFAY","vega-dataflow":"4kvYg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"irqWQ":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "AxisDomainRole", ()=>AxisDomainRole); -parcelHelpers.export(exports, "AxisGridRole", ()=>AxisGridRole); -parcelHelpers.export(exports, "AxisLabelRole", ()=>AxisLabelRole); -parcelHelpers.export(exports, "AxisRole", ()=>AxisRole); -parcelHelpers.export(exports, "AxisTickRole", ()=>AxisTickRole); -parcelHelpers.export(exports, "AxisTitleRole", ()=>AxisTitleRole); -parcelHelpers.export(exports, "DataScope", ()=>DataScope); -parcelHelpers.export(exports, "FrameRole", ()=>FrameRole); -parcelHelpers.export(exports, "LegendEntryRole", ()=>LegendEntryRole); -parcelHelpers.export(exports, "LegendLabelRole", ()=>LegendLabelRole); -parcelHelpers.export(exports, "LegendRole", ()=>LegendRole); -parcelHelpers.export(exports, "LegendSymbolRole", ()=>LegendSymbolRole); -parcelHelpers.export(exports, "LegendTitleRole", ()=>LegendTitleRole); -parcelHelpers.export(exports, "MarkRole", ()=>MarkRole); -parcelHelpers.export(exports, "Scope", ()=>Scope); -parcelHelpers.export(exports, "ScopeRole", ()=>ScopeRole); -parcelHelpers.export(exports, "config", ()=>defaults); -parcelHelpers.export(exports, "parse", ()=>parse); -parcelHelpers.export(exports, "signal", ()=>parseSignal); -parcelHelpers.export(exports, "signalUpdates", ()=>parseSignalUpdates); -parcelHelpers.export(exports, "stream", ()=>parseStream); -var _vegaUtil = require("vega-util"); -var _vegaFunctions = require("vega-functions"); -var _vegaEventSelector = require("vega-event-selector"); -var _vegaScale = require("vega-scale"); -var _vegaDataflow = require("vega-dataflow"); -function parseAutosize(spec) { - return (0, _vegaUtil.isObject)(spec) ? spec : { - type: spec || "pad" - }; -} -const number = (_)=>+_ || 0; -const paddingObject = (_)=>({ - top: _, - bottom: _, - left: _, - right: _ - }); -function parsePadding(spec) { - return !(0, _vegaUtil.isObject)(spec) ? paddingObject(number(spec)) : spec.signal ? spec : { - top: number(spec.top), - bottom: number(spec.bottom), - left: number(spec.left), - right: number(spec.right) - }; -} -const encoder = (_)=>(0, _vegaUtil.isObject)(_) && !(0, _vegaUtil.isArray)(_) ? (0, _vegaUtil.extend)({}, _) : { - value: _ - }; -function addEncode(object, name, value, set) { - if (value != null) { - const isEncoder = (0, _vegaUtil.isObject)(value) && !(0, _vegaUtil.isArray)(value) || (0, _vegaUtil.isArray)(value) && value.length && (0, _vegaUtil.isObject)(value[0]); // Always assign signal to update, even if the signal is from the enter block - if (isEncoder) object.update[name] = value; - else object[set || "enter"][name] = { - value: value - }; - return 1; - } else return 0; -} -function addEncoders(object, enter, update) { - for(const name in enter)addEncode(object, name, enter[name]); - for(const name1 in update)addEncode(object, name1, update[name1], "update"); -} -function extendEncode(encode, extra, skip) { - for(const name in extra){ - if (skip && (0, _vegaUtil.hasOwnProperty)(skip, name)) continue; - encode[name] = (0, _vegaUtil.extend)(encode[name] || {}, extra[name]); - } - return encode; -} -function has(key, encode) { - return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]); +function quantileMultipleDomain(domain, scope, fields) { + // get value arrays for each domain field + const values = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.domainRef(scope, f.field); + }); // combine value arrays + return ref(scope.add(MultiValues({ + values: values + }))); } -const MarkRole = "mark"; -const FrameRole = "frame"; -const ScopeRole = "scope"; -const AxisRole = "axis"; -const AxisDomainRole = "axis-domain"; -const AxisGridRole = "axis-grid"; -const AxisLabelRole = "axis-label"; -const AxisTickRole = "axis-tick"; -const AxisTitleRole = "axis-title"; -const LegendRole = "legend"; -const LegendBandRole = "legend-band"; -const LegendEntryRole = "legend-entry"; -const LegendGradientRole = "legend-gradient"; -const LegendLabelRole = "legend-label"; -const LegendSymbolRole = "legend-symbol"; -const LegendTitleRole = "legend-title"; -const TitleRole = "title"; -const TitleTextRole = "title-text"; -const TitleSubtitleRole = "title-subtitle"; -function applyDefaults(encode, type, role, style, config) { - const defaults = {}, enter = {}; - let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370) - key = "lineBreak"; - if (type === "text" && config[key] != null && !has(key, encode)) applyDefault(defaults, key, config[key]); - // ignore legend and axis roles - if (role == "legend" || String(role).startsWith("axis")) role = null; - // resolve mark config - props = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; - for(key in props){ - // do not apply defaults if relevant fields are defined - skip = has(key, encode) || (key === "fill" || key === "stroke") && (has("fill", encode) || has("stroke", encode)); - if (!skip) applyDefault(defaults, key, props[key]); - } // resolve styles, apply with increasing precedence - (0, _vegaUtil.array)(style).forEach((name)=>{ - const props = config.style && config.style[name]; - for(const key in props)if (!has(key, encode)) applyDefault(defaults, key, props[key]); - }); - encode = (0, _vegaUtil.extend)({}, encode); // defensive copy - for(key in defaults){ - props = defaults[key]; - if (props.signal) (update = update || {})[key] = props; - else enter[key] = props; - } - encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); - if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); - return encode; +function numericMultipleDomain(domain, scope, fields) { + // get extents for each domain field + const extents = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.extentRef(scope, f.field); + }); // combine extents + return ref(scope.add(MultiExtent({ + extents: extents + }))); +} // -- SCALE BINS ----- +function parseScaleBins(v, scope) { + return v.signal || (0, _vegaUtil.isArray)(v) ? parseArray(v, scope) : scope.objectProperty(v); +} // -- SCALE NICE ----- +function parseScaleNice(nice) { + return (0, _vegaUtil.isObject)(nice) ? { + interval: parseLiteral(nice.interval), + step: parseLiteral(nice.step) + } : parseLiteral(nice); +} // -- SCALE INTERPOLATION ----- +function parseScaleInterpolate(interpolate, params) { + params.interpolate = parseLiteral(interpolate.type || interpolate); + if (interpolate.gamma != null) params.interpolateGamma = parseLiteral(interpolate.gamma); +} // -- SCALE RANGE ----- +function parseScaleRange(spec, scope, params) { + const config = scope.config.range; + let range = spec.range; + if (range.signal) return scope.signalRef(range.signal); + else if ((0, _vegaUtil.isString)(range)) { + if (config && (0, _vegaUtil.hasOwnProperty)(config, range)) { + spec = (0, _vegaUtil.extend)({}, spec, { + range: config[range] + }); + return parseScaleRange(spec, scope, params); + } else if (range === "width") range = [ + 0, + { + signal: "width" + } + ]; + else if (range === "height") range = (0, _vegaScale.isDiscrete)(spec.type) ? [ + 0, + { + signal: "height" + } + ] : [ + { + signal: "height" + }, + 0 + ]; + else (0, _vegaUtil.error)("Unrecognized scale range value: " + (0, _vegaUtil.stringValue)(range)); + } else if (range.scheme) { + params.scheme = (0, _vegaUtil.isArray)(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope); + if (range.extent) params.schemeExtent = parseArray(range.extent, scope); + if (range.count) params.schemeCount = parseLiteral(range.count, scope); + return; + } else if (range.step) { + params.rangeStep = parseLiteral(range.step, scope); + return; + } else if ((0, _vegaScale.isDiscrete)(spec.type) && !(0, _vegaUtil.isArray)(range)) return parseScaleDomain(range, spec, scope); + else if (!(0, _vegaUtil.isArray)(range)) (0, _vegaUtil.error)("Unsupported range type: " + (0, _vegaUtil.stringValue)(range)); + return range.map((v)=>((0, _vegaUtil.isArray)(v) ? parseArray : parseLiteral)(v, scope)); } -function applyDefault(defaults, key, value) { - defaults[key] = value && value.signal ? { - signal: value.signal - } : { - value: value - }; +function parseProjection(proj, scope) { + const config = scope.config.projection || {}, params = {}; + for(const name in proj){ + if (name === "name") continue; + params[name] = parseParameter$1(proj[name], name, scope); + } // apply projection defaults from config + for(const name1 in config)if (params[name1] == null) params[name1] = parseParameter$1(config[name1], name1, scope); + scope.addProjection(proj.name, params); } -const scaleRef = (scale)=>(0, _vegaUtil.isString)(scale) ? (0, _vegaUtil.stringValue)(scale) : scale.signal ? `(${scale.signal})` : field(scale); -function entry$1(enc) { - if (enc.gradient != null) return gradient(enc); - let value = enc.signal ? `(${enc.signal})` : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? (0, _vegaUtil.stringValue)(enc.value) : undefined; - if (enc.scale != null) value = scale(enc, value); - if (value === undefined) value = null; - if (enc.exponent != null) value = `pow(${value},${property(enc.exponent)})`; - if (enc.mult != null) value += `*${property(enc.mult)}`; - if (enc.offset != null) value += `+${property(enc.offset)}`; - if (enc.round) value = `round(${value})`; - return value; +function parseParameter$1(_, name, scope) { + return (0, _vegaUtil.isArray)(_) ? _.map((_)=>parseParameter$1(_, name, scope)) : !(0, _vegaUtil.isObject)(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === "fit" ? _ : (0, _vegaUtil.error)("Unsupported parameter object: " + (0, _vegaUtil.stringValue)(_)); } -const _color = (type, x, y, z)=>`(${type}(${[ - x, - y, - z - ].map(entry$1).join(",")})+'')`; -function color(enc) { - return enc.c ? _color("hcl", enc.h, enc.c, enc.l) : enc.h || enc.s ? _color("hsl", enc.h, enc.s, enc.l) : enc.l || enc.a ? _color("lab", enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color("rgb", enc.r, enc.g, enc.b) : null; +const Top = "top"; +const Left = "left"; +const Right = "right"; +const Bottom = "bottom"; +const Center = "center"; +const Vertical = "vertical"; +const Start = "start"; +const Middle = "middle"; +const End = "end"; +const Index = "index"; +const Label = "label"; +const Offset = "offset"; +const Perc = "perc"; +const Perc2 = "perc2"; +const Value = "value"; +const GuideLabelStyle = "guide-label"; +const GuideTitleStyle = "guide-title"; +const GroupTitleStyle = "group-title"; +const GroupSubtitleStyle = "group-subtitle"; +const Symbols = "symbol"; +const Gradient = "gradient"; +const Discrete = "discrete"; +const Size = "size"; +const Shape = "shape"; +const Fill = "fill"; +const Stroke = "stroke"; +const StrokeWidth = "strokeWidth"; +const StrokeDash = "strokeDash"; +const Opacity = "opacity"; // Encoding channels supported by legends +// In priority order of 'canonical' scale +const LegendScales = [ + Size, + Shape, + Fill, + Stroke, + StrokeWidth, + StrokeDash, + Opacity +]; +const Skip = { + name: 1, + style: 1, + interactive: 1 +}; +const zero = { + value: 0 +}; +const one = { + value: 1 +}; +const GroupMark = "group"; +const RectMark = "rect"; +const RuleMark = "rule"; +const SymbolMark = "symbol"; +const TextMark = "text"; +function guideGroup(mark) { + mark.type = GroupMark; + mark.interactive = mark.interactive || false; + return mark; } -function gradient(enc) { - // map undefined to null; expression lang does not allow undefined - const args = [ - enc.start, - enc.stop, - enc.count - ].map((_)=>_ == null ? null : (0, _vegaUtil.stringValue)(_)); // trim null inputs from the end - while(args.length && (0, _vegaUtil.peek)(args) == null)args.pop(); - args.unshift(scaleRef(enc.gradient)); - return `gradient(${args.join(",")})`; +function lookup(spec, config) { + const _ = (name, dflt)=>value(spec[name], value(config[name], dflt)); + _.isVertical = (s)=>Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection)); + _.gradientLength = ()=>value(spec.gradientLength, config.gradientLength || config.gradientWidth); + _.gradientThickness = ()=>value(spec.gradientThickness, config.gradientThickness || config.gradientHeight); + _.entryColumns = ()=>value(spec.columns, value(config.columns, +_.isVertical(true))); + return _; } -function property(property) { - return (0, _vegaUtil.isObject)(property) ? "(" + entry$1(property) + ")" : property; +function getEncoding(name, encode) { + const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]); + return v && v.signal ? v : v ? v.value : null; } -function field(ref) { - return resolveField((0, _vegaUtil.isObject)(ref) ? ref : { - datum: ref - }); +function getStyle(name, scope, style) { + const s = scope.config.style[style]; + return s && s[name]; } -function resolveField(ref) { - let object, level, field; - if (ref.signal) { - object = "datum"; - field = ref.signal; - } else if (ref.group || ref.parent) { - level = Math.max(1, ref.level || 1); - object = "item"; - while(level-- > 0)object += ".mark.group"; - if (ref.parent) { - field = ref.parent; - object += ".datum"; - } else field = ref.group; - } else if (ref.datum) { - object = "datum"; - field = ref.datum; - } else (0, _vegaUtil.error)("Invalid field reference: " + (0, _vegaUtil.stringValue)(ref)); - if (!ref.signal) field = (0, _vegaUtil.isString)(field) ? (0, _vegaUtil.splitAccessPath)(field).map((0, _vegaUtil.stringValue)).join("][") : resolveField(field); - return object + "[" + field + "]"; +function anchorExpr(s, e, m) { + return `item.anchor === '${Start}' ? ${s} : item.anchor === '${End}' ? ${e} : ${m}`; } -function scale(enc, value) { - const scale = scaleRef(enc.scale); - if (enc.range != null) // pull value from scale range - value = `lerp(_range(${scale}), ${+enc.range})`; - else { - // run value through scale and/or pull scale bandwidth - if (value !== undefined) value = `_scale(${scale}, ${value})`; - if (enc.band) { - value = (value ? value + "+" : "") + `_bandwidth(${scale})` + (+enc.band === 1 ? "" : "*" + property(enc.band)); - if (enc.extra) // include logic to handle extraneous elements - value = `(datum.extra ? _scale(${scale}, datum.extra.value) : ${value})`; - } - if (value == null) value = "0"; +const alignExpr$1 = anchorExpr((0, _vegaUtil.stringValue)(Left), (0, _vegaUtil.stringValue)(Right), (0, _vegaUtil.stringValue)(Center)); +function tickBand(_) { + const v = _("tickBand"); + let offset = _("tickOffset"), band, extra; + if (!v) { + // if no tick band entry, fall back on other properties + band = _("bandPosition"); + extra = _("tickExtra"); + } else if (v.signal) { + // if signal, augment code to interpret values + band = { + signal: `(${v.signal}) === 'extent' ? 1 : 0.5` + }; + extra = { + signal: `(${v.signal}) === 'extent'` + }; + if (!(0, _vegaUtil.isObject)(offset)) offset = { + signal: `(${v.signal}) === 'extent' ? 0 : ${offset}` + }; + } else if (v === "extent") { + // if constant, simply set values + band = 1; + extra = true; + offset = 0; + } else { + band = 0.5; + extra = false; } - return value; -} -function rule(enc) { - let code = ""; - enc.forEach((rule)=>{ - const value = entry$1(rule); - code += rule.test ? `(${rule.test})?${value}:` : value; - }); // if no else clause, terminate with null (#1366) - if ((0, _vegaUtil.peek)(code) === ":") code += "null"; - return code; -} -function parseEncode(encode, type, role, style, scope, params) { - const enc = {}; - params = params || {}; - params.encoders = { - $encode: enc - }; - encode = applyDefaults(encode, type, role, style, scope.config); - for(const key in encode)enc[key] = parseBlock(encode[key], type, params, scope); - return params; -} -function parseBlock(block, marktype, params, scope) { - const channels = {}, fields = {}; - for(const name in block)if (block[name] != null) // skip any null entries - channels[name] = parse$1(expr(block[name]), scope, params, fields); return { - $expr: { - marktype, - channels - }, - $fields: Object.keys(fields), - $output: Object.keys(block) + extra, + band, + offset }; } -function expr(enc) { - return (0, _vegaUtil.isArray)(enc) ? rule(enc) : entry$1(enc); +function extendOffset(value, offset) { + return !offset ? value : !value ? offset : !(0, _vegaUtil.isObject)(value) ? { + value, + offset + } : Object.assign({}, value, { + offset: extendOffset(value.offset, offset) + }); } -function parse$1(code, scope, params, fields) { - const expr = (0, _vegaFunctions.parseExpression)(code, scope); - expr.$fields.forEach((name)=>fields[name] = 1); - (0, _vegaUtil.extend)(params, expr.$params); - return expr.$expr; +function guideMark(mark, extras) { + if (extras) { + mark.name = extras.name; + mark.style = extras.style || mark.style; + mark.interactive = !!extras.interactive; + mark.encode = extendEncode(mark.encode, extras, Skip); + } else mark.interactive = false; + return mark; } -const OUTER = "outer", OUTER_INVALID = [ - "value", - "update", - "init", - "react", - "bind" -]; -function outerError(prefix, name) { - (0, _vegaUtil.error)(prefix + ' for "outer" push: ' + (0, _vegaUtil.stringValue)(name)); -} -function parseSignal(signal, scope) { - const name = signal.name; - if (signal.push === OUTER) { - // signal must already be defined, raise error if not - if (!scope.signals[name]) outerError("No prior signal definition", name); // signal push must not use properties reserved for standard definition - OUTER_INVALID.forEach((prop)=>{ - if (signal[prop] !== undefined) outerError("Invalid property ", prop); - }); +function legendGradient(spec, scale, config, userEncode) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); + let enter, start, stop, width, height; + if (vertical) { + start = [ + 0, + 1 + ]; + stop = [ + 0, + 0 + ]; + width = thickness; + height = length; } else { - // define a new signal in the current scope - const op = scope.addSignal(name, signal.value); - if (signal.react === false) op.react = false; - if (signal.bind) scope.addBinding(name, signal.bind); + start = [ + 0, + 0 + ]; + stop = [ + 1, + 0 + ]; + width = length; + height = thickness; } -} -function Entry(type, value, params, parent) { - this.id = -1; - this.type = type; - this.value = value; - this.params = params; - if (parent) this.parent = parent; -} -function entry(type, value, params, parent) { - return new Entry(type, value, params, parent); -} -function operator(value, params) { - return entry("operator", value, params); -} // ----- -function ref(op) { - const ref = { - $ref: op.id - }; // if operator not yet registered, cache ref to resolve later - if (op.id < 0) (op.refs = op.refs || []).push(ref); - return ref; -} -function fieldRef$1(field, name) { - return name ? { - $field: field, - $name: name - } : { - $field: field + const encode = { + enter: enter = { + opacity: zero, + x: zero, + y: zero, + width: encoder(width), + height: encoder(height) + }, + update: (0, _vegaUtil.extend)({}, enter, { + opacity: one, + fill: { + gradient: scale, + start: start, + stop: stop + } + }), + exit: { + opacity: zero + } }; + addEncoders(encode, { + stroke: _("gradientStrokeColor"), + strokeWidth: _("gradientStrokeWidth") + }, { + // update + opacity: _("gradientOpacity") + }); + return guideMark({ + type: RectMark, + role: LegendGradientRole, + encode + }, userEncode); } -const keyFieldRef = fieldRef$1("key"); -function compareRef(fields, orders) { - return { - $compare: fields, - $order: orders +function legendGradientDiscrete(spec, scale, config, userEncode, dataRef) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); + let u, v, uu, vv, adjust = ""; + vertical ? (u = "y", uu = "y2", v = "x", vv = "width", adjust = "1-") : (u = "x", uu = "x2", v = "y", vv = "height"); + const enter = { + opacity: zero, + fill: { + scale: scale, + field: Value + } }; -} -function keyRef(fields, flat) { - const ref = { - $key: fields + enter[u] = { + signal: adjust + "datum." + Perc, + mult: length }; - if (flat) ref.$flat = true; - return ref; -} // ----- -const Ascending = "ascending"; -const Descending = "descending"; -function sortKey(sort) { - return !(0, _vegaUtil.isObject)(sort) ? "" : (sort.order === Descending ? "-" : "+") + aggrField(sort.op, sort.field); -} -function aggrField(op, field) { - return (op && op.signal ? "$" + op.signal : op || "") + (op && field ? "_" : "") + (field && field.signal ? "$" + field.signal : field || ""); -} // ----- -const Scope$1 = "scope"; -const View = "view"; -function isSignal(_) { - return _ && _.signal; -} -function isExpr$1(_) { - return _ && _.expr; -} -function hasSignal(_) { - if (isSignal(_)) return true; - if ((0, _vegaUtil.isObject)(_)) for(const key in _){ - if (hasSignal(_[key])) return true; - } - return false; -} -function value(specValue, defaultValue) { - return specValue != null ? specValue : defaultValue; -} -function deref(v) { - return v && v.signal || v; -} -const Timer = "timer"; -function parseStream(stream, scope) { - const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : (0, _vegaUtil.error)("Invalid stream specification: " + (0, _vegaUtil.stringValue)(stream)); - return method(stream, scope); -} -function eventSource(source) { - return source === Scope$1 ? View : source || View; -} -function mergeStream(stream, scope) { - const list = stream.merge.map((s)=>parseStream(s, scope)), entry = streamParameters({ - merge: list - }, stream, scope); - return scope.addStream(entry).id; -} -function nestedStream(stream, scope) { - const id = parseStream(stream.stream, scope), entry = streamParameters({ - stream: id - }, stream, scope); - return scope.addStream(entry).id; + enter[v] = zero; + enter[uu] = { + signal: adjust + "datum." + Perc2, + mult: length + }; + enter[vv] = encoder(thickness); + const encode = { + enter: enter, + update: (0, _vegaUtil.extend)({}, enter, { + opacity: one + }), + exit: { + opacity: zero + } + }; + addEncoders(encode, { + stroke: _("gradientStrokeColor"), + strokeWidth: _("gradientStrokeWidth") + }, { + // update + opacity: _("gradientOpacity") + }); + return guideMark({ + type: RectMark, + role: LegendBandRole, + key: Value, + from: dataRef, + encode + }, userEncode); } -function eventStream(stream, scope) { - let id; - if (stream.type === Timer) { - id = scope.event(Timer, stream.throttle); - stream = { - between: stream.between, - filter: stream.filter +const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; +function legendGradientLabels(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); + let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; + const encode = { + enter: enter = { + opacity: zero + }, + update: update = { + opacity: one, + text: { + field: Label + } + }, + exit: { + opacity: zero + } + }; + addEncoders(encode, { + fill: _("labelColor"), + fillOpacity: _("labelOpacity"), + font: _("labelFont"), + fontSize: _("labelFontSize"), + fontStyle: _("labelFontStyle"), + fontWeight: _("labelFontWeight"), + limit: value(spec.labelLimit, config.gradientLabelLimit) + }); + if (vertical) { + enter.align = { + value: "left" }; - } else id = scope.event(eventSource(stream.source), stream.type); - const entry = streamParameters({ - stream: id - }, stream, scope); - return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id; -} -function streamParameters(entry, stream, scope) { - let param = stream.between; - if (param) { - if (param.length !== 2) (0, _vegaUtil.error)('Stream "between" parameter must have 2 entries: ' + (0, _vegaUtil.stringValue)(stream)); - entry.between = [ - parseStream(param[0], scope), - parseStream(param[1], scope) - ]; + enter.baseline = update.baseline = { + signal: baselineExpr + }; + u = "y"; + v = "x"; + adjust = "1-"; + } else { + enter.align = update.align = { + signal: alignExpr + }; + enter.baseline = { + value: "top" + }; + u = "x"; + v = "y"; } - param = stream.filter ? [].concat(stream.filter) : []; - if (stream.marktype || stream.markname || stream.markrole) // add filter for mark type, name and/or role - param.push(filterMark(stream.marktype, stream.markname, stream.markrole)); - if (stream.source === Scope$1) // add filter to limit events from sub-scope only - param.push("inScope(event.item)"); - if (param.length) entry.filter = (0, _vegaFunctions.parseExpression)("(" + param.join(")&&(") + ")", scope).$expr; - if ((param = stream.throttle) != null) entry.throttle = +param; - if ((param = stream.debounce) != null) entry.debounce = +param; - if (stream.consume) entry.consume = true; - return entry; -} -function filterMark(type, name, role) { - const item = "event.item"; - return item + (type && type !== "*" ? "&&" + item + ".mark.marktype==='" + type + "'" : "") + (role ? "&&" + item + ".mark.role==='" + role + "'" : "") + (name ? "&&" + item + ".mark.name==='" + name + "'" : ""); + enter[u] = update[u] = { + signal: adjust + "datum." + Perc, + mult: length + }; + enter[v] = update[v] = thickness; + thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; + overlap = overlap ? { + separation: _("labelSeparation"), + method: overlap, + order: "datum." + Index + } : undefined; // type, role, style, key, dataRef, encode, extras + return guideMark({ + type: TextMark, + role: LegendLabelRole, + style: GuideLabelStyle, + key: Value, + from: dataRef, + encode, + overlap + }, userEncode); } -const OP_VALUE_EXPR = { - code: "_.$value", - ast: { - type: "Identifier", - value: "value" +function legendSymbolGroups(spec, config, userEncode, dataRef, columns) { + const _ = lookup(spec, config), entries = userEncode.entries, interactive = !!(entries && entries.interactive), name = entries ? entries.name : undefined, height = _("clipHeight"), symbolOffset = _("symbolOffset"), valueRef = { + data: "value" + }, xSignal = `(${columns}) ? datum.${Offset} : datum.${Size}`, yEncode = height ? encoder(height) : { + field: Size + }, index = `datum.${Index}`, ncols = `max(1, ${columns})`; + let encode, enter, update, nrows, sort; + yEncode.mult = 0.5; // -- LEGEND SYMBOLS -- + encode = { + enter: enter = { + opacity: zero, + x: { + signal: xSignal, + mult: 0.5, + offset: symbolOffset + }, + y: yEncode + }, + update: update = { + opacity: one, + x: enter.x, + y: enter.y + }, + exit: { + opacity: zero + } + }; + let baseFill = null, baseStroke = null; + if (!spec.fill) { + baseFill = config.symbolBaseFillColor; + baseStroke = config.symbolBaseStrokeColor; } -}; -function parseUpdate(spec, scope, target) { - const encode = spec.encode, entry = { - target: target + addEncoders(encode, { + fill: _("symbolFillColor", baseFill), + shape: _("symbolType"), + size: _("symbolSize"), + stroke: _("symbolStrokeColor", baseStroke), + strokeDash: _("symbolDash"), + strokeDashOffset: _("symbolDashOffset"), + strokeWidth: _("symbolStrokeWidth") + }, { + // update + opacity: _("symbolOpacity") + }); + LegendScales.forEach((scale)=>{ + if (spec[scale]) update[scale] = enter[scale] = { + scale: spec[scale], + field: Value + }; + }); + const symbols = guideMark({ + type: SymbolMark, + role: LegendSymbolRole, + key: Value, + from: valueRef, + clip: height ? true : undefined, + encode + }, userEncode.symbols); // -- LEGEND LABELS -- + const labelOffset = encoder(symbolOffset); + labelOffset.offset = _("labelOffset"); + encode = { + enter: enter = { + opacity: zero, + x: { + signal: xSignal, + offset: labelOffset + }, + y: yEncode + }, + update: update = { + opacity: one, + text: { + field: Label + }, + x: enter.x, + y: enter.y + }, + exit: { + opacity: zero + } }; - let events = spec.events, update = spec.update, sources = []; - if (!events) (0, _vegaUtil.error)("Signal update missing events specification."); - // interpret as an event selector string - if ((0, _vegaUtil.isString)(events)) events = (0, _vegaEventSelector.parseSelector)(events, scope.isSubscope() ? Scope$1 : View); - // separate event streams from signal updates - events = (0, _vegaUtil.array)(events).filter((s)=>s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners - if (sources.length > 1) sources = [ - mergeSources(sources) - ]; - // merge event streams, include as source - if (events.length) sources.push(events.length > 1 ? { - merge: events - } : events[0]); - if (encode != null) { - if (update) (0, _vegaUtil.error)("Signal encode and update are mutually exclusive."); - update = "encode(item()," + (0, _vegaUtil.stringValue)(encode) + ")"; - } // resolve update value - entry.update = (0, _vegaUtil.isString)(update) ? (0, _vegaFunctions.parseExpression)(update, scope) : update.expr != null ? (0, _vegaFunctions.parseExpression)(update.expr, scope) : update.value != null ? update.value : update.signal != null ? { - $expr: OP_VALUE_EXPR, - $params: { - $value: scope.signalRef(update.signal) + addEncoders(encode, { + align: _("labelAlign"), + baseline: _("labelBaseline"), + fill: _("labelColor"), + fillOpacity: _("labelOpacity"), + font: _("labelFont"), + fontSize: _("labelFontSize"), + fontStyle: _("labelFontStyle"), + fontWeight: _("labelFontWeight"), + limit: _("labelLimit") + }); + const labels = guideMark({ + type: TextMark, + role: LegendLabelRole, + style: GuideLabelStyle, + key: Value, + from: valueRef, + encode + }, userEncode.labels); // -- LEGEND ENTRY GROUPS -- + encode = { + enter: { + noBound: { + value: !height + }, + // ignore width/height in bounds calc + width: zero, + height: height ? encoder(height) : zero, + opacity: zero + }, + exit: { + opacity: zero + }, + update: update = { + opacity: one, + row: { + signal: null + }, + column: { + signal: null + } + } + }; // annotate and sort groups to ensure correct ordering + if (_.isVertical(true)) { + nrows = `ceil(item.mark.items.length / ${ncols})`; + update.row.signal = `${index}%${nrows}`; + update.column.signal = `floor(${index} / ${nrows})`; + sort = { + field: [ + "row", + index + ] + }; + } else { + update.row.signal = `floor(${index} / ${ncols})`; + update.column.signal = `${index} % ${ncols}`; + sort = { + field: index + }; + } // handle zero column case (implies infinite columns) + update.column.signal = `(${columns})?${update.column.signal}:${index}`; // facet legend entries into sub-groups + dataRef = { + facet: { + data: dataRef, + name: "value", + groupby: Index } - } : (0, _vegaUtil.error)("Invalid signal update specification."); - if (spec.force) entry.options = { - force: true }; - sources.forEach((source)=>scope.addUpdate((0, _vegaUtil.extend)(streamSource(source, scope), entry))); + return guideGroup({ + role: ScopeRole, + from: dataRef, + encode: extendEncode(encode, entries, Skip), + marks: [ + symbols, + labels + ], + name, + interactive, + sort + }); } -function streamSource(stream, scope) { +function legendSymbolLayout(spec, config) { + const _ = lookup(spec, config); // layout parameters for legend entries return { - source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope) + align: _("gridAlign"), + columns: _.entryColumns(), + center: { + row: true, + column: false + }, + padding: { + row: _("rowPadding"), + column: _("columnPadding") + } }; } -function mergeSources(sources) { - return { - signal: "[" + sources.map((s)=>s.scale ? 'scale("' + s.scale + '")' : s.signal) + "]" +const isL = 'item.orient === "left"', isR = 'item.orient === "right"', isLR = `(${isL} || ${isR})`, isVG = `datum.vgrad && ${isLR}`, baseline = anchorExpr('"top"', '"bottom"', '"middle"'), alignFlip = anchorExpr('"right"', '"left"', '"center"'), exprAlign = `datum.vgrad && ${isR} ? (${alignFlip}) : (${isLR} && !(datum.vgrad && ${isL})) ? "left" : ${alignExpr$1}`, exprAnchor = `item._anchor || (${isLR} ? "middle" : "start")`, exprAngle = `${isVG} ? (${isL} ? -90 : 90) : 0`, exprBaseline = `${isLR} ? (datum.vgrad ? (${isR} ? "bottom" : "top") : ${baseline}) : "top"`; +function legendTitle(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config); + const encode = { + enter: { + opacity: zero + }, + update: { + opacity: one, + x: { + field: { + group: "padding" + } + }, + y: { + field: { + group: "padding" + } + } + }, + exit: { + opacity: zero + } }; + addEncoders(encode, { + orient: _("titleOrient"), + _anchor: _("titleAnchor"), + anchor: { + signal: exprAnchor + }, + angle: { + signal: exprAngle + }, + align: { + signal: exprAlign + }, + baseline: { + signal: exprBaseline + }, + text: spec.title, + fill: _("titleColor"), + fillOpacity: _("titleOpacity"), + font: _("titleFont"), + fontSize: _("titleFontSize"), + fontStyle: _("titleFontStyle"), + fontWeight: _("titleFontWeight"), + limit: _("titleLimit"), + lineHeight: _("titleLineHeight") + }, { + // require update + align: _("titleAlign"), + baseline: _("titleBaseline") + }); + return guideMark({ + type: TextMark, + role: LegendTitleRole, + style: GuideTitleStyle, + from: dataRef, + encode + }, userEncode); } -function parseSignalUpdates(signal, scope) { - const op = scope.getSignal(signal.name); - let expr = signal.update; - if (signal.init) { - if (expr) (0, _vegaUtil.error)("Signals can not include both init and update expressions."); - else { - expr = signal.init; - op.initonly = true; - } - } - if (expr) { - expr = (0, _vegaFunctions.parseExpression)(expr, scope); - op.update = expr.$expr; - op.params = expr.$params; +function clip(clip, scope) { + let expr; + if ((0, _vegaUtil.isObject)(clip)) { + if (clip.signal) expr = clip.signal; + else if (clip.path) expr = "pathShape(" + param(clip.path) + ")"; + else if (clip.sphere) expr = "geoShape(" + param(clip.sphere) + ', {type: "Sphere"})'; } - if (signal.on) signal.on.forEach((_)=>parseUpdate(_, scope, op.id)); + return expr ? scope.signalRef(expr) : !!clip; } -const transform = (name)=>(params, value, parent)=>entry(name, value, params || undefined, parent); -const Aggregate = transform("aggregate"); -const AxisTicks = transform("axisticks"); -const Bound = transform("bound"); -const Collect = transform("collect"); -const Compare = transform("compare"); -const DataJoin = transform("datajoin"); -const Encode = transform("encode"); -const Expression = transform("expression"); -const Facet = transform("facet"); -const Field = transform("field"); -const Key = transform("key"); -const LegendEntries = transform("legendentries"); -const Load = transform("load"); -const Mark = transform("mark"); -const MultiExtent = transform("multiextent"); -const MultiValues = transform("multivalues"); -const Overlap = transform("overlap"); -const Params = transform("params"); -const PreFacet = transform("prefacet"); -const Projection = transform("projection"); -const Proxy = transform("proxy"); -const Relay = transform("relay"); -const Render = transform("render"); -const Scale = transform("scale"); -const Sieve = transform("sieve"); -const SortItems = transform("sortitems"); -const ViewLayout = transform("viewlayout"); -const Values = transform("values"); -let FIELD_REF_ID = 0; -const MULTIDOMAIN_SORT_OPS = { - min: "min", - max: "max", - count: "sum" -}; -function initScale(spec, scope) { - const type = spec.type || "linear"; - if (!(0, _vegaScale.isValidScaleType)(type)) (0, _vegaUtil.error)("Unrecognized scale type: " + (0, _vegaUtil.stringValue)(type)); - scope.addScale(spec.name, { - type, - domain: undefined - }); +function param(value) { + return (0, _vegaUtil.isObject)(value) && value.signal ? value.signal : (0, _vegaUtil.stringValue)(value); } -function parseScale(spec, scope) { - const params = scope.getScale(spec.name).params; - let key; - params.domain = parseScaleDomain(spec.domain, spec, scope); - if (spec.range != null) params.range = parseScaleRange(spec, scope, params); - if (spec.interpolate != null) parseScaleInterpolate(spec.interpolate, params); - if (spec.nice != null) params.nice = parseScaleNice(spec.nice); - if (spec.bins != null) params.bins = parseScaleBins(spec.bins, scope); - for(key in spec){ - if ((0, _vegaUtil.hasOwnProperty)(params, key) || key === "name") continue; - params[key] = parseLiteral(spec[key], scope); - } +function getRole(spec) { + const role = spec.role || ""; + return !role.indexOf("axis") || !role.indexOf("legend") || !role.indexOf("title") ? role : spec.type === GroupMark ? ScopeRole : role || MarkRole; } -function parseLiteral(v, scope) { - return !(0, _vegaUtil.isObject)(v) ? v : v.signal ? scope.signalRef(v.signal) : (0, _vegaUtil.error)("Unsupported object: " + (0, _vegaUtil.stringValue)(v)); +function definition(spec) { + return { + marktype: spec.type, + name: spec.name || undefined, + role: spec.role || getRole(spec), + zindex: +spec.zindex || undefined, + aria: spec.aria, + description: spec.description + }; } -function parseArray(v, scope) { - return v.signal ? scope.signalRef(v.signal) : v.map((v)=>parseLiteral(v, scope)); +function interactive(spec, scope) { + return spec && spec.signal ? scope.signalRef(spec.signal) : spec === false ? false : true; } -function dataLookupError(name) { - (0, _vegaUtil.error)("Can not find data set: " + (0, _vegaUtil.stringValue)(name)); -} // -- SCALE DOMAIN ---- -function parseScaleDomain(domain, spec, scope) { - if (!domain) { - if (spec.domainMin != null || spec.domainMax != null) (0, _vegaUtil.error)("No scale domain defined for domainMin/domainMax to override."); - return; // default domain +/** + * Parse a data transform specification. + */ function parseTransform(spec, scope) { + const def = (0, _vegaDataflow.definition)(spec.type); + if (!def) (0, _vegaUtil.error)("Unrecognized transform type: " + (0, _vegaUtil.stringValue)(spec.type)); + const t = entry(def.type.toLowerCase(), null, parseParameters(def, spec, scope)); + if (spec.signal) scope.addSignal(spec.signal, scope.proxy(t)); + t.metadata = def.metadata || {}; + return t; +} +/** + * Parse all parameters of a data transform. + */ function parseParameters(def, spec, scope) { + const params = {}, n = def.params.length; + for(let i = 0; i < n; ++i){ + const pdef = def.params[i]; + params[pdef.name] = parseParameter(pdef, spec, scope); } - return domain.signal ? scope.signalRef(domain.signal) : ((0, _vegaUtil.isArray)(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope); + return params; } -function explicitDomain(domain, spec, scope) { - return domain.map((v)=>parseLiteral(v, scope)); +/** + * Parse a data transform parameter. + */ function parseParameter(def, spec, scope) { + const type = def.type, value = spec[def.name]; + if (type === "index") return parseIndexParameter(def, spec, scope); + else if (value === undefined) { + if (def.required) (0, _vegaUtil.error)("Missing required " + (0, _vegaUtil.stringValue)(spec.type) + " parameter: " + (0, _vegaUtil.stringValue)(def.name)); + return; + } else if (type === "param") return parseSubParameters(def, spec, scope); + else if (type === "projection") return scope.projectionRef(spec[def.name]); + return def.array && !isSignal(value) ? value.map((v)=>parameterValue(def, v, scope)) : parameterValue(def, value, scope); } -function singularDomain(domain, spec, scope) { - const data = scope.getData(domain.data); - if (!data) dataLookupError(domain.data); - return (0, _vegaScale.isDiscrete)(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : (0, _vegaScale.isQuantile)(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field); +/** + * Parse a single parameter value. + */ function parameterValue(def, value, scope) { + const type = def.type; + if (isSignal(value)) return isExpr(type) ? (0, _vegaUtil.error)("Expression references can not be signals.") : isField(type) ? scope.fieldRef(value) : isCompare(type) ? scope.compareRef(value) : scope.signalRef(value.signal); + else { + const expr = def.expr || isField(type); + return expr && outerExpr(value) ? scope.exprRef(value.expr, value.as) : expr && outerField(value) ? fieldRef$1(value.field, value.as) : isExpr(type) ? (0, _vegaFunctions.parseExpression)(value, scope) : isData(type) ? ref(scope.getData(value).values) : isField(type) ? fieldRef$1(value) : isCompare(type) ? scope.compareRef(value) : value; + } } -function multipleDomain(domain, spec, scope) { - const data = domain.data, fields = domain.fields.reduce((dom, d)=>{ - d = (0, _vegaUtil.isString)(d) ? { - data: data, - field: d - } : (0, _vegaUtil.isArray)(d) || d.signal ? fieldRef(d, scope) : d; - dom.push(d); - return dom; - }, []); - return ((0, _vegaScale.isDiscrete)(spec.type) ? ordinalMultipleDomain : (0, _vegaScale.isQuantile)(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields); +/** + * Parse parameter for accessing an index of another data set. + */ function parseIndexParameter(def, spec, scope) { + if (!(0, _vegaUtil.isString)(spec.from)) (0, _vegaUtil.error)('Lookup "from" parameter must be a string literal.'); + return scope.getData(spec.from).lookupRef(scope, spec.key); } -function fieldRef(data, scope) { - const name = "_:vega:_" + FIELD_REF_ID++, coll = Collect({}); - if ((0, _vegaUtil.isArray)(data)) coll.value = { - $ingest: data - }; - else if (data.signal) { - const code = "setdata(" + (0, _vegaUtil.stringValue)(name) + "," + data.signal + ")"; - coll.params.input = scope.signalRef(code); - } - scope.addDataPipeline(name, [ - coll, - Sieve({}) - ]); +/** + * Parse a parameter that contains one or more sub-parameter objects. + */ function parseSubParameters(def, spec, scope) { + const value = spec[def.name]; + if (def.array) { + if (!(0, _vegaUtil.isArray)(value)) // signals not allowed! + (0, _vegaUtil.error)("Expected an array of sub-parameters. Instead: " + (0, _vegaUtil.stringValue)(value)); + return value.map((v)=>parseSubParameter(def, v, scope)); + } else return parseSubParameter(def, value, scope); +} +/** + * Parse a sub-parameter object. + */ function parseSubParameter(def, value, scope) { + const n = def.params.length; + let pdef; // loop over defs to find matching key + for(let i = 0; i < n; ++i){ + pdef = def.params[i]; + for(const k in pdef.key)if (pdef.key[k] !== value[k]) { + pdef = null; + break; + } + if (pdef) break; + } // raise error if matching key not found + if (!pdef) (0, _vegaUtil.error)("Unsupported parameter: " + (0, _vegaUtil.stringValue)(value)); // parse params, create Params transform, return ref + const params = (0, _vegaUtil.extend)(parseParameters(pdef, value, scope), pdef.key); + return ref(scope.add(Params(params))); +} // -- Utilities ----- +const outerExpr = (_)=>_ && _.expr; +const outerField = (_)=>_ && _.field; +const isData = (_)=>_ === "data"; +const isExpr = (_)=>_ === "expr"; +const isField = (_)=>_ === "field"; +const isCompare = (_)=>_ === "compare"; +function parseData$1(from, group, scope) { + let facet, key, op, dataRef, parent; // if no source data, generate singleton datum + if (!from) dataRef = ref(scope.add(Collect(null, [ + {} + ]))); + else if (facet = from.facet) { + if (!group) (0, _vegaUtil.error)("Only group marks can be faceted."); // use pre-faceted source data, if available + if (facet.field != null) dataRef = parent = getDataRef(facet, scope); + else { + // generate facet aggregates if no direct data specification + if (!from.data) { + op = parseTransform((0, _vegaUtil.extend)({ + type: "aggregate", + groupby: (0, _vegaUtil.array)(facet.groupby) + }, facet.aggregate), scope); + op.params.key = scope.keyRef(facet.groupby); + op.params.pulse = getDataRef(facet, scope); + dataRef = parent = ref(scope.add(op)); + } else parent = ref(scope.getData(from.data).aggregate); + key = scope.keyRef(facet.groupby, true); + } + } // if not yet defined, get source data reference + if (!dataRef) dataRef = getDataRef(from, scope); return { - data: name, - field: "data" + key: key, + pulse: dataRef, + parent: parent }; } -function ordinalMultipleDomain(domain, scope, fields) { - const sort = parseSort(domain.sort, true); - let a, v; // get value counts for each domain field - const counts = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.countsRef(scope, f.field, sort); - }); // aggregate the results from each domain field - const p = { - groupby: keyFieldRef, - pulse: counts - }; - if (sort) { - a = sort.op || "count"; - v = sort.field ? aggrField(a, sort.field) : "count"; +function getDataRef(from, scope) { + return from.$ref ? from : from.data && from.data.$ref ? from.data : ref(scope.getData(from.data).output); +} +function DataScope(scope, input, output, values, aggr) { + this.scope = scope; // parent scope object + this.input = input; // first operator in pipeline (tuple input) + this.output = output; // last operator in pipeline (tuple output) + this.values = values; // operator for accessing tuples (but not tuple flow) + // last aggregate in transform pipeline + this.aggregate = aggr; // lookup table of field indices + this.index = {}; +} +DataScope.fromEntries = function(scope, entries) { + const n = entries.length, values = entries[n - 1], output = entries[n - 2]; + let input = entries[0], aggr = null, i = 1; + if (input && input.type === "load") input = entries[1]; + // add operator entries to this scope, wire up pulse chain + scope.add(entries[0]); + for(; i < n; ++i){ + entries[i].params.pulse = ref(entries[i - 1]); + scope.add(entries[i]); + if (entries[i].type === "aggregate") aggr = entries[i]; + } + return new DataScope(scope, input, output, values, aggr); +}; +function fieldKey(field) { + return (0, _vegaUtil.isString)(field) ? field : null; +} +function addSortField(scope, p, sort) { + const as = aggrField(sort.op, sort.field); + let s; + if (p.ops) for(let i = 0, n = p.as.length; i < n; ++i){ + if (p.as[i] === as) return; + } + else { p.ops = [ - MULTIDOMAIN_SORT_OPS[a] + "count" ]; p.fields = [ - scope.fieldRef(v) + null ]; p.as = [ - v + "count" ]; } - a = scope.add(Aggregate(p)); // collect aggregate output - const c = scope.add(Collect({ - pulse: ref(a) - })); // extract values for combined domain - v = scope.add(Values({ - field: keyFieldRef, - sort: scope.sortRef(sort), - pulse: ref(c) - })); - return ref(v); + if (sort.op) { + p.ops.push((s = sort.op.signal) ? scope.signalRef(s) : sort.op); + p.fields.push(scope.fieldRef(sort.field)); + p.as.push(as); + } } -function parseSort(sort, multidomain) { - if (sort) { - if (!sort.field && !sort.op) { - if ((0, _vegaUtil.isObject)(sort)) sort.field = "key"; - else sort = { - field: "key" - }; - } else if (!sort.field && sort.op !== "count") (0, _vegaUtil.error)("No field provided for sort aggregate op: " + sort.op); - else if (multidomain && sort.field) { - if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) (0, _vegaUtil.error)("Multiple domain scales can not be sorted using " + sort.op); +function cache(scope, ds, name, optype, field, counts, index) { + const cache = ds[name] || (ds[name] = {}), sort = sortKey(counts); + let k = fieldKey(field), v, op; + if (k != null) { + scope = ds.scope; + k = k + (sort ? "|" + sort : ""); + v = cache[k]; + } + if (!v) { + const params = counts ? { + field: keyFieldRef, + pulse: ds.countsRef(scope, field, counts) + } : { + field: scope.fieldRef(field), + pulse: ref(ds.output) + }; + if (sort) params.sort = scope.sortRef(counts); + op = scope.add(entry(optype, undefined, params)); + if (index) ds.index[field] = op; + v = ref(op); + if (k != null) cache[k] = v; + } + return v; +} +DataScope.prototype = { + countsRef (scope, field, sort) { + const ds = this, cache = ds.counts || (ds.counts = {}), k = fieldKey(field); + let v, a, p; + if (k != null) { + scope = ds.scope; + v = cache[k]; } + if (!v) { + p = { + groupby: scope.fieldRef(field, "key"), + pulse: ref(ds.output) + }; + if (sort && sort.field) addSortField(scope, p, sort); + a = scope.add(Aggregate(p)); + v = scope.add(Collect({ + pulse: ref(a) + })); + v = { + agg: a, + ref: ref(v) + }; + if (k != null) cache[k] = v; + } else if (sort && sort.field) addSortField(scope, v.agg.params, sort); + return v.ref; + }, + tuplesRef () { + return ref(this.values); + }, + extentRef (scope, field) { + return cache(scope, this, "extent", "extent", field, false); + }, + domainRef (scope, field) { + return cache(scope, this, "domain", "values", field, false); + }, + valuesRef (scope, field, sort) { + return cache(scope, this, "vals", "values", field, sort || true); + }, + lookupRef (scope, field) { + return cache(scope, this, "lookup", "tupleindex", field, false); + }, + indataRef (scope, field) { + return cache(scope, this, "indata", "tupleindex", field, true, true); } - return sort; +}; +function parseFacet(spec, scope, group) { + const facet = spec.from.facet, name = facet.name, data = getDataRef(facet, scope); + let op; + if (!facet.name) (0, _vegaUtil.error)("Facet must have a name: " + (0, _vegaUtil.stringValue)(facet)); + if (!facet.data) (0, _vegaUtil.error)("Facet must reference a data set: " + (0, _vegaUtil.stringValue)(facet)); + if (facet.field) op = scope.add(PreFacet({ + field: scope.fieldRef(facet.field), + pulse: data + })); + else if (facet.groupby) op = scope.add(Facet({ + key: scope.keyRef(facet.groupby), + group: ref(scope.proxy(group.parent)), + pulse: data + })); + else (0, _vegaUtil.error)("Facet must specify groupby or field: " + (0, _vegaUtil.stringValue)(facet)); + // initialize facet subscope + const subscope = scope.fork(), source = subscope.add(Collect()), values = subscope.add(Sieve({ + pulse: ref(source) + })); + subscope.addData(name, new DataScope(subscope, source, source, values)); + subscope.addSignal("parent", null); // parse faceted subflow + op.params.subflow = { + $subflow: subscope.parse(spec).toRuntime() + }; } -function quantileMultipleDomain(domain, scope, fields) { - // get value arrays for each domain field - const values = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.domainRef(scope, f.field); - }); // combine value arrays - return ref(scope.add(MultiValues({ - values: values - }))); +function parseSubflow(spec, scope, input) { + const op = scope.add(PreFacet({ + pulse: input.pulse + })), subscope = scope.fork(); + subscope.add(Sieve()); + subscope.addSignal("parent", null); // parse group mark subflow + op.params.subflow = { + $subflow: subscope.parse(spec).toRuntime() + }; } -function numericMultipleDomain(domain, scope, fields) { - // get extents for each domain field - const extents = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.extentRef(scope, f.field); - }); // combine extents - return ref(scope.add(MultiExtent({ - extents: extents - }))); -} // -- SCALE BINS ----- -function parseScaleBins(v, scope) { - return v.signal || (0, _vegaUtil.isArray)(v) ? parseArray(v, scope) : scope.objectProperty(v); -} // -- SCALE NICE ----- -function parseScaleNice(nice) { - return (0, _vegaUtil.isObject)(nice) ? { - interval: parseLiteral(nice.interval), - step: parseLiteral(nice.step) - } : parseLiteral(nice); -} // -- SCALE INTERPOLATION ----- -function parseScaleInterpolate(interpolate, params) { - params.interpolate = parseLiteral(interpolate.type || interpolate); - if (interpolate.gamma != null) params.interpolateGamma = parseLiteral(interpolate.gamma); -} // -- SCALE RANGE ----- -function parseScaleRange(spec, scope, params) { - const config = scope.config.range; - let range = spec.range; - if (range.signal) return scope.signalRef(range.signal); - else if ((0, _vegaUtil.isString)(range)) { - if (config && (0, _vegaUtil.hasOwnProperty)(config, range)) { - spec = (0, _vegaUtil.extend)({}, spec, { - range: config[range] - }); - return parseScaleRange(spec, scope, params); - } else if (range === "width") range = [ - 0, - { - signal: "width" - } - ]; - else if (range === "height") range = (0, _vegaScale.isDiscrete)(spec.type) ? [ - 0, - { - signal: "height" - } - ] : [ - { - signal: "height" - }, - 0 - ]; - else (0, _vegaUtil.error)("Unrecognized scale range value: " + (0, _vegaUtil.stringValue)(range)); - } else if (range.scheme) { - params.scheme = (0, _vegaUtil.isArray)(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope); - if (range.extent) params.schemeExtent = parseArray(range.extent, scope); - if (range.count) params.schemeCount = parseLiteral(range.count, scope); - return; - } else if (range.step) { - params.rangeStep = parseLiteral(range.step, scope); - return; - } else if ((0, _vegaScale.isDiscrete)(spec.type) && !(0, _vegaUtil.isArray)(range)) return parseScaleDomain(range, spec, scope); - else if (!(0, _vegaUtil.isArray)(range)) (0, _vegaUtil.error)("Unsupported range type: " + (0, _vegaUtil.stringValue)(range)); - return range.map((v)=>((0, _vegaUtil.isArray)(v) ? parseArray : parseLiteral)(v, scope)); +function parseTrigger(spec, scope, name) { + const remove = spec.remove, insert = spec.insert, toggle = spec.toggle, modify = spec.modify, values = spec.values, op = scope.add(operator()); + const update = "if(" + spec.trigger + ',modify("' + name + '",' + [ + insert, + remove, + toggle, + modify, + values + ].map((_)=>_ == null ? "null" : _).join(",") + "),0)"; + const expr = (0, _vegaFunctions.parseExpression)(update, scope); + op.update = expr.$expr; + op.params = expr.$params; } -function parseProjection(proj, scope) { - const config = scope.config.projection || {}, params = {}; - for(const name in proj){ - if (name === "name") continue; - params[name] = parseParameter$1(proj[name], name, scope); - } // apply projection defaults from config - for(const name1 in config)if (params[name1] == null) params[name1] = parseParameter$1(config[name1], name1, scope); - scope.addProjection(proj.name, params); +function parseMark(spec, scope) { + const role = getRole(spec), group = spec.type === GroupMark, facet = spec.from && spec.from.facet, overlap = spec.overlap; + let layout = spec.layout || role === ScopeRole || role === FrameRole, ops, op, store, enc, name, layoutRef, boundRef; + const nested = role === MarkRole || layout || facet; // resolve input data + const input = parseData$1(spec.from, group, scope); // data join to map tuples to visual items + op = scope.add(DataJoin({ + key: input.key || (spec.key ? fieldRef$1(spec.key) : undefined), + pulse: input.pulse, + clean: !group + })); + const joinRef = ref(op); // collect visual items + op = store = scope.add(Collect({ + pulse: joinRef + })); // connect visual items to scenegraph + op = scope.add(Mark({ + markdef: definition(spec), + interactive: interactive(spec.interactive, scope), + clip: clip(spec.clip, scope), + context: { + $context: true + }, + groups: scope.lookup(), + parent: scope.signals.parent ? scope.signalRef("parent") : null, + index: scope.markpath(), + pulse: ref(op) + })); + const markRef = ref(op); // add visual encoders + op = enc = scope.add(Encode(parseEncode(spec.encode, spec.type, role, spec.style, scope, { + mod: false, + pulse: markRef + }))); // monitor parent marks to propagate changes + op.params.parent = scope.encode(); // add post-encoding transforms, if defined + if (spec.transform) spec.transform.forEach((_)=>{ + const tx = parseTransform(_, scope), md = tx.metadata; + if (md.generates || md.changes) (0, _vegaUtil.error)("Mark transforms should not generate new data."); + if (!md.nomod) enc.params.mod = true; // update encode mod handling + tx.params.pulse = ref(op); + scope.add(op = tx); + }); + // if item sort specified, perform post-encoding + if (spec.sort) op = scope.add(SortItems({ + sort: scope.compareRef(spec.sort), + pulse: ref(op) + })); + const encodeRef = ref(op); // add view layout operator if needed + if (facet || layout) { + layout = scope.add(ViewLayout({ + layout: scope.objectProperty(spec.layout), + legends: scope.legends, + mark: markRef, + pulse: encodeRef + })); + layoutRef = ref(layout); + } // compute bounding boxes + const bound = scope.add(Bound({ + mark: markRef, + pulse: layoutRef || encodeRef + })); + boundRef = ref(bound); // if group mark, recurse to parse nested content + if (group) { + // juggle layout & bounds to ensure they run *after* any faceting transforms + if (nested) { + ops = scope.operators; + ops.pop(); + if (layout) ops.pop(); + } + scope.pushState(encodeRef, layoutRef || boundRef, joinRef); + facet ? parseFacet(spec, scope, input) // explicit facet + : nested ? parseSubflow(spec, scope, input) // standard mark group + : scope.parse(spec); // guide group, we can avoid nested scopes + scope.popState(); + if (nested) { + if (layout) ops.push(layout); + ops.push(bound); + } + } // if requested, add overlap removal transform + if (overlap) boundRef = parseOverlap(overlap, boundRef, scope); + // render / sieve items + const render = scope.add(Render({ + pulse: boundRef + })), sieve = scope.add(Sieve({ + pulse: ref(render) + }, undefined, scope.parent())); // if mark is named, make accessible as reactive geometry + // add trigger updates if defined + if (spec.name != null) { + name = spec.name; + scope.addData(name, new DataScope(scope, store, render, sieve)); + if (spec.on) spec.on.forEach((on)=>{ + if (on.insert || on.remove || on.toggle) (0, _vegaUtil.error)("Marks only support modify triggers."); + parseTrigger(on, scope, name); + }); + } } -function parseParameter$1(_, name, scope) { - return (0, _vegaUtil.isArray)(_) ? _.map((_)=>parseParameter$1(_, name, scope)) : !(0, _vegaUtil.isObject)(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === "fit" ? _ : (0, _vegaUtil.error)("Unsupported parameter object: " + (0, _vegaUtil.stringValue)(_)); +function parseOverlap(overlap, source, scope) { + const method = overlap.method, bound = overlap.bound, sep = overlap.separation; + const params = { + separation: isSignal(sep) ? scope.signalRef(sep.signal) : sep, + method: isSignal(method) ? scope.signalRef(method.signal) : method, + pulse: source + }; + if (overlap.order) params.sort = scope.compareRef({ + field: overlap.order + }); + if (bound) { + const tol = bound.tolerance; + params.boundTolerance = isSignal(tol) ? scope.signalRef(tol.signal) : +tol; + params.boundScale = scope.scaleRef(bound.scale); + params.boundOrient = bound.orient; + } + return ref(scope.add(Overlap(params))); } -const Top = "top"; -const Left = "left"; -const Right = "right"; -const Bottom = "bottom"; -const Center = "center"; -const Vertical = "vertical"; -const Start = "start"; -const Middle = "middle"; -const End = "end"; -const Index = "index"; -const Label = "label"; -const Offset = "offset"; -const Perc = "perc"; -const Perc2 = "perc2"; -const Value = "value"; -const GuideLabelStyle = "guide-label"; -const GuideTitleStyle = "guide-title"; -const GroupTitleStyle = "group-title"; -const GroupSubtitleStyle = "group-subtitle"; -const Symbols = "symbol"; -const Gradient = "gradient"; -const Discrete = "discrete"; -const Size = "size"; -const Shape = "shape"; -const Fill = "fill"; -const Stroke = "stroke"; -const StrokeWidth = "strokeWidth"; -const StrokeDash = "strokeDash"; -const Opacity = "opacity"; // Encoding channels supported by legends -// In priority order of 'canonical' scale -const LegendScales = [ - Size, - Shape, - Fill, - Stroke, - StrokeWidth, - StrokeDash, - Opacity -]; -const Skip = { - name: 1, - style: 1, - interactive: 1 -}; -const zero = { - value: 0 -}; -const one = { - value: 1 -}; -const GroupMark = "group"; -const RectMark = "rect"; -const RuleMark = "rule"; -const SymbolMark = "symbol"; -const TextMark = "text"; -function guideGroup(mark) { - mark.type = GroupMark; - mark.interactive = mark.interactive || false; - return mark; +function parseLegend(spec, scope) { + const config = scope.config.legend, encode = spec.encode || {}, _ = lookup(spec, config), legendEncode = encode.legend || {}, name = legendEncode.name || undefined, interactive = legendEncode.interactive, style = legendEncode.style, scales = {}; + let scale = 0, entryLayout, params, children; // resolve scales and 'canonical' scale name + LegendScales.forEach((s)=>spec[s] ? (scales[s] = spec[s], scale = scale || spec[s]) : 0); + if (!scale) (0, _vegaUtil.error)("Missing valid scale for legend."); // resolve legend type (symbol, gradient, or discrete gradient) + const type = legendType(spec, scope.scaleType(scale)); // single-element data source for legend group + const datum = { + title: spec.title != null, + scales: scales, + type: type, + vgrad: type !== "symbol" && _.isVertical() + }; + const dataRef = ref(scope.add(Collect(null, [ + datum + ]))); // encoding properties for legend entry sub-group + const entryEncode = { + enter: { + x: { + value: 0 + }, + y: { + value: 0 + } + } + }; // data source for legend values + const entryRef = ref(scope.add(LegendEntries(params = { + type: type, + scale: scope.scaleRef(scale), + count: scope.objectProperty(_("tickCount")), + limit: scope.property(_("symbolLimit")), + values: scope.objectProperty(spec.values), + minstep: scope.property(spec.tickMinStep), + formatType: scope.property(spec.formatType), + formatSpecifier: scope.property(spec.format) + }))); // continuous gradient legend + if (type === Gradient) { + children = [ + legendGradient(spec, scale, config, encode.gradient), + legendGradientLabels(spec, config, encode.labels, entryRef) + ]; // adjust default tick count based on the gradient length + params.count = params.count || scope.signalRef(`max(2,2*floor((${deref(_.gradientLength())})/100))`); + } else if (type === Discrete) children = [ + legendGradientDiscrete(spec, scale, config, encode.gradient, entryRef), + legendGradientLabels(spec, config, encode.labels, entryRef) + ]; + else { + // determine legend symbol group layout + entryLayout = legendSymbolLayout(spec, config); + children = [ + legendSymbolGroups(spec, config, encode, entryRef, deref(entryLayout.columns)) + ]; // pass symbol size information to legend entry generator + params.size = sizeExpression(spec, scope, children[0].marks); + } // generate legend marks + children = [ + guideGroup({ + role: LegendEntryRole, + from: dataRef, + encode: entryEncode, + marks: children, + layout: entryLayout, + interactive + }) + ]; // include legend title if defined + if (datum.title) children.push(legendTitle(spec, config, encode.title, dataRef)); + // parse legend specification + return parseMark(guideGroup({ + role: LegendRole, + from: dataRef, + encode: extendEncode(buildLegendEncode(_, spec, config), legendEncode, Skip), + marks: children, + aria: _("aria"), + description: _("description"), + zindex: _("zindex"), + name, + interactive, + style + }), scope); } -function lookup(spec, config) { - const _ = (name, dflt)=>value(spec[name], value(config[name], dflt)); - _.isVertical = (s)=>Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection)); - _.gradientLength = ()=>value(spec.gradientLength, config.gradientLength || config.gradientWidth); - _.gradientThickness = ()=>value(spec.gradientThickness, config.gradientThickness || config.gradientHeight); - _.entryColumns = ()=>value(spec.columns, value(config.columns, +_.isVertical(true))); - return _; +function legendType(spec, scaleType) { + let type = spec.type || Symbols; + if (!spec.type && scaleCount(spec) === 1 && (spec.fill || spec.stroke)) type = (0, _vegaScale.isContinuous)(scaleType) ? Gradient : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Symbols; + return type !== Gradient ? type : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Gradient; } -function getEncoding(name, encode) { - const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]); - return v && v.signal ? v : v ? v.value : null; +function scaleCount(spec) { + return LegendScales.reduce((count, type)=>count + (spec[type] ? 1 : 0), 0); } -function getStyle(name, scope, style) { - const s = scope.config.style[style]; - return s && s[name]; +function buildLegendEncode(_, spec, config) { + const encode = { + enter: {}, + update: {} + }; + addEncoders(encode, { + orient: _("orient"), + offset: _("offset"), + padding: _("padding"), + titlePadding: _("titlePadding"), + cornerRadius: _("cornerRadius"), + fill: _("fillColor"), + stroke: _("strokeColor"), + strokeWidth: config.strokeWidth, + strokeDash: config.strokeDash, + x: _("legendX"), + y: _("legendY"), + // accessibility support + format: spec.format, + formatType: spec.formatType + }); + return encode; } -function anchorExpr(s, e, m) { - return `item.anchor === '${Start}' ? ${s} : item.anchor === '${End}' ? ${e} : ${m}`; +function sizeExpression(spec, scope, marks) { + const size = deref(getChannel("size", spec, marks)), strokeWidth = deref(getChannel("strokeWidth", spec, marks)), fontSize = deref(getFontSize(marks[1].encode, scope, GuideLabelStyle)); + return (0, _vegaFunctions.parseExpression)(`max(ceil(sqrt(${size})+${strokeWidth}),${fontSize})`, scope); } -const alignExpr$1 = anchorExpr((0, _vegaUtil.stringValue)(Left), (0, _vegaUtil.stringValue)(Right), (0, _vegaUtil.stringValue)(Center)); -function tickBand(_) { - const v = _("tickBand"); - let offset = _("tickOffset"), band, extra; - if (!v) { - // if no tick band entry, fall back on other properties - band = _("bandPosition"); - extra = _("tickExtra"); - } else if (v.signal) { - // if signal, augment code to interpret values - band = { - signal: `(${v.signal}) === 'extent' ? 1 : 0.5` - }; - extra = { - signal: `(${v.signal}) === 'extent'` - }; - if (!(0, _vegaUtil.isObject)(offset)) offset = { - signal: `(${v.signal}) === 'extent' ? 0 : ${offset}` - }; - } else if (v === "extent") { - // if constant, simply set values - band = 1; - extra = true; - offset = 0; - } else { - band = 0.5; - extra = false; - } - return { - extra, - band, - offset - }; +function getChannel(name, spec, marks) { + return spec[name] ? `scale("${spec[name]}",datum)` : getEncoding(name, marks[0].encode); } -function extendOffset(value, offset) { - return !offset ? value : !value ? offset : !(0, _vegaUtil.isObject)(value) ? { - value, - offset - } : Object.assign({}, value, { - offset: extendOffset(value.offset, offset) - }); +function getFontSize(encode, scope, style) { + return getEncoding("fontSize", encode) || getStyle("fontSize", scope, style); } -function guideMark(mark, extras) { - if (extras) { - mark.name = extras.name; - mark.style = extras.style || mark.style; - mark.interactive = !!extras.interactive; - mark.encode = extendEncode(mark.encode, extras, Skip); - } else mark.interactive = false; - return mark; +const angleExpr = `item.orient==="${Left}"?-90:item.orient==="${Right}"?90:0`; +function parseTitle(spec, scope) { + spec = (0, _vegaUtil.isString)(spec) ? { + text: spec + } : spec; + const _ = lookup(spec, scope.config.title), encode = spec.encode || {}, userEncode = encode.group || {}, name = userEncode.name || undefined, interactive = userEncode.interactive, style = userEncode.style, children = []; // single-element data source for group title + const datum = {}, dataRef = ref(scope.add(Collect(null, [ + datum + ]))); // include title text + children.push(buildTitle(spec, _, titleEncode(spec), dataRef)); // include subtitle text + if (spec.subtitle) children.push(buildSubTitle(spec, _, encode.subtitle, dataRef)); + // parse title specification + return parseMark(guideGroup({ + role: TitleRole, + from: dataRef, + encode: groupEncode(_, userEncode), + marks: children, + aria: _("aria"), + description: _("description"), + zindex: _("zindex"), + name, + interactive, + style + }), scope); +} // provide backwards-compatibility for title custom encode; +// the top-level encode block has been *deprecated*. +function titleEncode(spec) { + const encode = spec.encode; + return encode && encode.title || (0, _vegaUtil.extend)({ + name: spec.name, + interactive: spec.interactive, + style: spec.style + }, encode); } -function legendGradient(spec, scale, config, userEncode) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); - let enter, start, stop, width, height; - if (vertical) { - start = [ - 0, - 1 - ]; - stop = [ - 0, - 0 - ]; - width = thickness; - height = length; - } else { - start = [ - 0, - 0 - ]; - stop = [ - 1, - 0 - ]; - width = length; - height = thickness; - } +function groupEncode(_, userEncode) { const encode = { - enter: enter = { - opacity: zero, - x: zero, - y: zero, - width: encoder(width), - height: encoder(height) + enter: {}, + update: {} + }; + addEncoders(encode, { + orient: _("orient"), + anchor: _("anchor"), + align: { + signal: alignExpr$1 }, - update: (0, _vegaUtil.extend)({}, enter, { - opacity: one, - fill: { - gradient: scale, - start: start, - stop: stop + angle: { + signal: angleExpr + }, + limit: _("limit"), + frame: _("frame"), + offset: _("offset") || 0, + padding: _("subtitlePadding") + }); + return extendEncode(encode, userEncode, Skip); +} +function buildTitle(spec, _, userEncode, dataRef) { + const zero = { + value: 0 + }, text = spec.text, encode = { + enter: { + opacity: zero + }, + update: { + opacity: { + value: 1 } - }), + }, exit: { opacity: zero } }; addEncoders(encode, { - stroke: _("gradientStrokeColor"), - strokeWidth: _("gradientStrokeWidth") - }, { - // update - opacity: _("gradientOpacity") + text: text, + align: { + signal: "item.mark.group.align" + }, + angle: { + signal: "item.mark.group.angle" + }, + limit: { + signal: "item.mark.group.limit" + }, + baseline: "top", + dx: _("dx"), + dy: _("dy"), + fill: _("color"), + font: _("font"), + fontSize: _("fontSize"), + fontStyle: _("fontStyle"), + fontWeight: _("fontWeight"), + lineHeight: _("lineHeight") + }, { + // update + align: _("align"), + angle: _("angle"), + baseline: _("baseline") }); return guideMark({ - type: RectMark, - role: LegendGradientRole, + type: TextMark, + role: TitleTextRole, + style: GroupTitleStyle, + from: dataRef, encode }, userEncode); } -function legendGradientDiscrete(spec, scale, config, userEncode, dataRef) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); - let u, v, uu, vv, adjust = ""; - vertical ? (u = "y", uu = "y2", v = "x", vv = "width", adjust = "1-") : (u = "x", uu = "x2", v = "y", vv = "height"); - const enter = { - opacity: zero, - fill: { - scale: scale, - field: Value - } - }; - enter[u] = { - signal: adjust + "datum." + Perc, - mult: length - }; - enter[v] = zero; - enter[uu] = { - signal: adjust + "datum." + Perc2, - mult: length - }; - enter[vv] = encoder(thickness); - const encode = { - enter: enter, - update: (0, _vegaUtil.extend)({}, enter, { - opacity: one - }), +function buildSubTitle(spec, _, userEncode, dataRef) { + const zero = { + value: 0 + }, text = spec.subtitle, encode = { + enter: { + opacity: zero + }, + update: { + opacity: { + value: 1 + } + }, exit: { opacity: zero } }; addEncoders(encode, { - stroke: _("gradientStrokeColor"), - strokeWidth: _("gradientStrokeWidth") + text: text, + align: { + signal: "item.mark.group.align" + }, + angle: { + signal: "item.mark.group.angle" + }, + limit: { + signal: "item.mark.group.limit" + }, + baseline: "top", + dx: _("dx"), + dy: _("dy"), + fill: _("subtitleColor"), + font: _("subtitleFont"), + fontSize: _("subtitleFontSize"), + fontStyle: _("subtitleFontStyle"), + fontWeight: _("subtitleFontWeight"), + lineHeight: _("subtitleLineHeight") }, { // update - opacity: _("gradientOpacity") + align: _("align"), + angle: _("angle"), + baseline: _("baseline") }); return guideMark({ - type: RectMark, - role: LegendBandRole, - key: Value, + type: TextMark, + role: TitleSubtitleRole, + style: GroupSubtitleStyle, from: dataRef, encode }, userEncode); } -const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; -function legendGradientLabels(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); - let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; +function parseData(data, scope) { + const transforms = []; + if (data.transform) data.transform.forEach((tx)=>{ + transforms.push(parseTransform(tx, scope)); + }); + if (data.on) data.on.forEach((on)=>{ + parseTrigger(on, scope, data.name); + }); + scope.addDataPipeline(data.name, analyze(data, scope, transforms)); +} +/** + * Analyze a data pipeline, add needed operators. + */ function analyze(data, scope, ops) { + const output = []; + let source = null, modify = false, generate = false, upstream, i, n, t, m; + if (data.values) { + // hard-wired input data set + if (isSignal(data.values) || hasSignal(data.format)) { + // if either values is signal or format has signal, use dynamic loader + output.push(load(scope, data)); + output.push(source = collect()); + } else // otherwise, ingest upon dataflow init + output.push(source = collect({ + $ingest: data.values, + $format: data.format + })); + } else if (data.url) { + // load data from external source + if (hasSignal(data.url) || hasSignal(data.format)) { + // if either url or format has signal, use dynamic loader + output.push(load(scope, data)); + output.push(source = collect()); + } else // otherwise, request load upon dataflow init + output.push(source = collect({ + $request: data.url, + $format: data.format + })); + } else if (data.source) { + // derives from one or more other data sets + source = upstream = (0, _vegaUtil.array)(data.source).map((d)=>ref(scope.getData(d).output)); + output.push(null); // populate later + } // scan data transforms, add collectors as needed + for(i = 0, n = ops.length; i < n; ++i){ + t = ops[i]; + m = t.metadata; + if (!source && !m.source) output.push(source = collect()); + output.push(t); + if (m.generates) generate = true; + if (m.modifies && !generate) modify = true; + if (m.source) source = t; + else if (m.changes) source = null; + } + if (upstream) { + n = upstream.length - 1; + output[0] = Relay({ + derive: modify, + pulse: n ? upstream : upstream[0] + }); + if (modify || n) // collect derived and multi-pulse tuples + output.splice(1, 0, collect()); + } + if (!source) output.push(collect()); + output.push(Sieve({})); + return output; +} +function collect(values) { + const s = Collect({}, values); + s.metadata = { + source: true + }; + return s; +} +function load(scope, data) { + return Load({ + url: data.url ? scope.property(data.url) : undefined, + async: data.async ? scope.property(data.async) : undefined, + values: data.values ? scope.property(data.values) : undefined, + format: scope.objectProperty(data.format) + }); +} +const isX = (orient)=>orient === Bottom || orient === Top; // get sign coefficient based on axis orient +const getSign = (orient, a, b)=>isSignal(orient) ? ifLeftTopExpr(orient.signal, a, b) : orient === Left || orient === Top ? a : b; // condition on axis x-direction +const ifX = (orient, a, b)=>isSignal(orient) ? ifXEnc(orient.signal, a, b) : isX(orient) ? a : b; // condition on axis y-direction +const ifY = (orient, a, b)=>isSignal(orient) ? ifYEnc(orient.signal, a, b) : isX(orient) ? b : a; +const ifTop = (orient, a, b)=>isSignal(orient) ? ifTopExpr(orient.signal, a, b) : orient === Top ? { + value: a + } : { + value: b + }; +const ifRight = (orient, a, b)=>isSignal(orient) ? ifRightExpr(orient.signal, a, b) : orient === Right ? { + value: a + } : { + value: b + }; +const ifXEnc = ($orient, a, b)=>ifEnc(`${$orient} === '${Top}' || ${$orient} === '${Bottom}'`, a, b); +const ifYEnc = ($orient, a, b)=>ifEnc(`${$orient} !== '${Top}' && ${$orient} !== '${Bottom}'`, a, b); +const ifLeftTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Left}' || ${$orient} === '${Top}'`, a, b); +const ifTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Top}'`, a, b); +const ifRightExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Right}'`, a, b); +const ifEnc = (test, a, b)=>{ + // ensure inputs are encoder objects (or null) + a = a != null ? encoder(a) : a; + b = b != null ? encoder(b) : b; + if (isSimple(a) && isSimple(b)) { + // if possible generate simple signal expression + a = a ? a.signal || (0, _vegaUtil.stringValue)(a.value) : null; + b = b ? b.signal || (0, _vegaUtil.stringValue)(b.value) : null; + return { + signal: `${test} ? (${a}) : (${b})` + }; + } else // otherwise generate rule set + return [ + (0, _vegaUtil.extend)({ + test + }, a) + ].concat(b || []); +}; +const isSimple = (enc)=>enc == null || Object.keys(enc).length === 1; +const ifExpr = (test, a, b)=>({ + signal: `${test} ? (${toExpr(a)}) : (${toExpr(b)})` + }); +const ifOrient = ($orient, t, b, l, r)=>({ + signal: (l != null ? `${$orient} === '${Left}' ? (${toExpr(l)}) : ` : "") + (b != null ? `${$orient} === '${Bottom}' ? (${toExpr(b)}) : ` : "") + (r != null ? `${$orient} === '${Right}' ? (${toExpr(r)}) : ` : "") + (t != null ? `${$orient} === '${Top}' ? (${toExpr(t)}) : ` : "") + "(null)" + }); +const toExpr = (v)=>isSignal(v) ? v.signal : v == null ? null : (0, _vegaUtil.stringValue)(v); +const mult = (sign, value)=>value === 0 ? 0 : isSignal(sign) ? { + signal: `(${sign.signal}) * ${value}` + } : { + value: sign * value + }; +const patch = (value, base)=>{ + const s = value.signal; + return s && s.endsWith("(null)") ? { + signal: s.slice(0, -6) + base.signal + } : value; +}; +function fallback(prop, config, axisConfig, style) { + let styleProp; + if (config && (0, _vegaUtil.hasOwnProperty)(config, prop)) return config[prop]; + else if ((0, _vegaUtil.hasOwnProperty)(axisConfig, prop)) return axisConfig[prop]; + else if (prop.startsWith("title")) { + switch(prop){ + case "titleColor": + styleProp = "fill"; + break; + case "titleFont": + case "titleFontSize": + case "titleFontWeight": + styleProp = prop[5].toLowerCase() + prop.slice(6); + } + return style[GuideTitleStyle][styleProp]; + } else if (prop.startsWith("label")) { + switch(prop){ + case "labelColor": + styleProp = "fill"; + break; + case "labelFont": + case "labelFontSize": + styleProp = prop[5].toLowerCase() + prop.slice(6); + } + return style[GuideLabelStyle][styleProp]; + } + return null; +} +function keys(objects) { + const map = {}; + for (const obj of objects){ + if (!obj) continue; + for(const key in obj)map[key] = 1; + } + return Object.keys(map); +} +function axisConfig(spec, scope) { + var config = scope.config, style = config.style, axis = config.axis, band = scope.scaleType(spec.scale) === "band" && config.axisBand, orient = spec.orient, xy, or, key; + if (isSignal(orient)) { + const xyKeys = keys([ + config.axisX, + config.axisY + ]), orientKeys = keys([ + config.axisTop, + config.axisBottom, + config.axisLeft, + config.axisRight + ]); + xy = {}; + for (key of xyKeys)xy[key] = ifX(orient, fallback(key, config.axisX, axis, style), fallback(key, config.axisY, axis, style)); + or = {}; + for (key of orientKeys)or[key] = ifOrient(orient.signal, fallback(key, config.axisTop, axis, style), fallback(key, config.axisBottom, axis, style), fallback(key, config.axisLeft, axis, style), fallback(key, config.axisRight, axis, style)); + } else { + xy = orient === Top || orient === Bottom ? config.axisX : config.axisY; + or = config["axis" + orient[0].toUpperCase() + orient.slice(1)]; + } + const result = xy || or || band ? (0, _vegaUtil.extend)({}, axis, xy, or, band) : axis; + return result; +} +function axisDomain(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), orient = spec.orient; + let enter, update; const encode = { enter: enter = { opacity: zero }, update: update = { - opacity: one, - text: { - field: Label - } + opacity: one }, exit: { opacity: zero } }; addEncoders(encode, { - fill: _("labelColor"), - fillOpacity: _("labelOpacity"), - font: _("labelFont"), - fontSize: _("labelFontSize"), - fontStyle: _("labelFontStyle"), - fontWeight: _("labelFontWeight"), - limit: value(spec.labelLimit, config.gradientLabelLimit) + stroke: _("domainColor"), + strokeCap: _("domainCap"), + strokeDash: _("domainDash"), + strokeDashOffset: _("domainDashOffset"), + strokeWidth: _("domainWidth"), + strokeOpacity: _("domainOpacity") }); - if (vertical) { - enter.align = { - value: "left" - }; - enter.baseline = update.baseline = { - signal: baselineExpr - }; - u = "y"; - v = "x"; - adjust = "1-"; - } else { - enter.align = update.align = { - signal: alignExpr - }; - enter.baseline = { - value: "top" - }; - u = "x"; - v = "y"; - } - enter[u] = update[u] = { - signal: adjust + "datum." + Perc, - mult: length - }; - enter[v] = update[v] = thickness; - thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; - overlap = overlap ? { - separation: _("labelSeparation"), - method: overlap, - order: "datum." + Index - } : undefined; // type, role, style, key, dataRef, encode, extras + const pos0 = position(spec, 0); + const pos1 = position(spec, 1); + enter.x = update.x = ifX(orient, pos0, zero); + enter.x2 = update.x2 = ifX(orient, pos1); + enter.y = update.y = ifY(orient, pos0, zero); + enter.y2 = update.y2 = ifY(orient, pos1); return guideMark({ - type: TextMark, - role: LegendLabelRole, - style: GuideLabelStyle, - key: Value, + type: RuleMark, + role: AxisDomainRole, from: dataRef, - encode, - overlap + encode }, userEncode); } -function legendSymbolGroups(spec, config, userEncode, dataRef, columns) { - const _ = lookup(spec, config), entries = userEncode.entries, interactive = !!(entries && entries.interactive), name = entries ? entries.name : undefined, height = _("clipHeight"), symbolOffset = _("symbolOffset"), valueRef = { - data: "value" - }, xSignal = `(${columns}) ? datum.${Offset} : datum.${Size}`, yEncode = height ? encoder(height) : { - field: Size - }, index = `datum.${Index}`, ncols = `max(1, ${columns})`; - let encode, enter, update, nrows, sort; - yEncode.mult = 0.5; // -- LEGEND SYMBOLS -- - encode = { +function position(spec, pos) { + return { + scale: spec.scale, + range: pos + }; +} +function axisGrid(spec, config, userEncode, dataRef, band) { + const _ = lookup(spec, config), orient = spec.orient, vscale = spec.gridScale, sign = getSign(orient, 1, -1), offset = offsetValue(spec.offset, sign); + let enter, exit, update; + const encode = { enter: enter = { - opacity: zero, - x: { - signal: xSignal, - mult: 0.5, - offset: symbolOffset - }, - y: yEncode + opacity: zero }, update: update = { - opacity: one, - x: enter.x, - y: enter.y + opacity: one }, - exit: { + exit: exit = { opacity: zero } }; - let baseFill = null, baseStroke = null; - if (!spec.fill) { - baseFill = config.symbolBaseFillColor; - baseStroke = config.symbolBaseStrokeColor; - } addEncoders(encode, { - fill: _("symbolFillColor", baseFill), - shape: _("symbolType"), - size: _("symbolSize"), - stroke: _("symbolStrokeColor", baseStroke), - strokeDash: _("symbolDash"), - strokeDashOffset: _("symbolDashOffset"), - strokeWidth: _("symbolStrokeWidth") + stroke: _("gridColor"), + strokeCap: _("gridCap"), + strokeDash: _("gridDash"), + strokeDashOffset: _("gridDashOffset"), + strokeOpacity: _("gridOpacity"), + strokeWidth: _("gridWidth") + }); + const tickPos = { + scale: spec.scale, + field: Value, + band: band.band, + extra: band.extra, + offset: band.offset, + round: _("tickRound") + }; + const sz = ifX(orient, { + signal: "height" }, { - // update - opacity: _("symbolOpacity") + signal: "width" }); - LegendScales.forEach((scale)=>{ - if (spec[scale]) update[scale] = enter[scale] = { - scale: spec[scale], - field: Value - }; + const gridStart = vscale ? { + scale: vscale, + range: 0, + mult: sign, + offset: offset + } : { + value: 0, + offset: offset + }; + const gridEnd = vscale ? { + scale: vscale, + range: 1, + mult: sign, + offset: offset + } : (0, _vegaUtil.extend)(sz, { + mult: sign, + offset: offset }); - const symbols = guideMark({ - type: SymbolMark, - role: LegendSymbolRole, + enter.x = update.x = ifX(orient, tickPos, gridStart); + enter.y = update.y = ifY(orient, tickPos, gridStart); + enter.x2 = update.x2 = ifY(orient, gridEnd); + enter.y2 = update.y2 = ifX(orient, gridEnd); + exit.x = ifX(orient, tickPos); + exit.y = ifY(orient, tickPos); + return guideMark({ + type: RuleMark, + role: AxisGridRole, key: Value, - from: valueRef, - clip: height ? true : undefined, + from: dataRef, encode - }, userEncode.symbols); // -- LEGEND LABELS -- - const labelOffset = encoder(symbolOffset); - labelOffset.offset = _("labelOffset"); - encode = { + }, userEncode); +} +function offsetValue(offset, sign) { + if (sign === 1) ; + else if (!(0, _vegaUtil.isObject)(offset)) offset = isSignal(sign) ? { + signal: `(${sign.signal}) * (${offset || 0})` + } : sign * (offset || 0); + else { + let entry = offset = (0, _vegaUtil.extend)({}, offset); + while(entry.mult != null)if (!(0, _vegaUtil.isObject)(entry.mult)) { + entry.mult = isSignal(sign) // no offset if sign === 1 + ? { + signal: `(${entry.mult}) * (${sign.signal})` + } : entry.mult * sign; + return offset; + } else entry = entry.mult = (0, _vegaUtil.extend)({}, entry.mult); + entry.mult = sign; + } + return offset; +} +function axisTicks(spec, config, userEncode, dataRef, size, band) { + const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); + let enter, exit, update; + const encode = { enter: enter = { - opacity: zero, - x: { - signal: xSignal, - offset: labelOffset - }, - y: yEncode + opacity: zero }, update: update = { - opacity: one, - text: { - field: Label - }, - x: enter.x, - y: enter.y + opacity: one }, - exit: { + exit: exit = { opacity: zero } }; addEncoders(encode, { - align: _("labelAlign"), - baseline: _("labelBaseline"), + stroke: _("tickColor"), + strokeCap: _("tickCap"), + strokeDash: _("tickDash"), + strokeDashOffset: _("tickDashOffset"), + strokeOpacity: _("tickOpacity"), + strokeWidth: _("tickWidth") + }); + const tickSize = encoder(size); + tickSize.mult = sign; + const tickPos = { + scale: spec.scale, + field: Value, + band: band.band, + extra: band.extra, + offset: band.offset, + round: _("tickRound") + }; + update.y = enter.y = ifX(orient, zero, tickPos); + update.y2 = enter.y2 = ifX(orient, tickSize); + exit.x = ifX(orient, tickPos); + update.x = enter.x = ifY(orient, zero, tickPos); + update.x2 = enter.x2 = ifY(orient, tickSize); + exit.y = ifY(orient, tickPos); + return guideMark({ + type: RuleMark, + role: AxisTickRole, + key: Value, + from: dataRef, + encode + }, userEncode); +} +function flushExpr(scale, threshold, a, b, c) { + return { + signal: 'flush(range("' + scale + '"), ' + 'scale("' + scale + '", datum.value), ' + threshold + "," + a + "," + b + "," + c + ")" + }; +} +function axisLabels(spec, config, userEncode, dataRef, size, band) { + const _ = lookup(spec, config), orient = spec.orient, scale = spec.scale, sign = getSign(orient, -1, 1), flush = deref(_("labelFlush")), flushOffset = deref(_("labelFlushOffset")), labelAlign = _("labelAlign"), labelBaseline = _("labelBaseline"); + let flushOn = flush === 0 || !!flush, update; + const tickSize = encoder(size); + tickSize.mult = sign; + tickSize.offset = encoder(_("labelPadding") || 0); + tickSize.offset.mult = sign; + const tickPos = { + scale: scale, + field: Value, + band: 0.5, + offset: extendOffset(band.offset, _("labelOffset")) + }; + const align = ifX(orient, flushOn ? flushExpr(scale, flush, '"left"', '"right"', '"center"') : { + value: "center" + }, ifRight(orient, "left", "right")); + const baseline = ifX(orient, ifTop(orient, "bottom", "top"), flushOn ? flushExpr(scale, flush, '"top"', '"bottom"', '"middle"') : { + value: "middle" + }); + const offsetExpr = flushExpr(scale, flush, `-(${flushOffset})`, flushOffset, 0); + flushOn = flushOn && flushOffset; + const enter = { + opacity: zero, + x: ifX(orient, tickPos, tickSize), + y: ifY(orient, tickPos, tickSize) + }; + const encode = { + enter: enter, + update: update = { + opacity: one, + text: { + field: Label + }, + x: enter.x, + y: enter.y, + align, + baseline + }, + exit: { + opacity: zero, + x: enter.x, + y: enter.y + } + }; + addEncoders(encode, { + dx: !labelAlign && flushOn ? ifX(orient, offsetExpr) : null, + dy: !labelBaseline && flushOn ? ifY(orient, offsetExpr) : null + }); + addEncoders(encode, { + angle: _("labelAngle"), fill: _("labelColor"), fillOpacity: _("labelOpacity"), font: _("labelFont"), fontSize: _("labelFontSize"), - fontStyle: _("labelFontStyle"), fontWeight: _("labelFontWeight"), - limit: _("labelLimit") + fontStyle: _("labelFontStyle"), + limit: _("labelLimit"), + lineHeight: _("labelLineHeight") + }, { + align: labelAlign, + baseline: labelBaseline }); - const labels = guideMark({ + const bound = _("labelBound"); + let overlap = _("labelOverlap"); // if overlap method or bound defined, request label overlap removal + overlap = overlap || bound ? { + separation: _("labelSeparation"), + method: overlap, + order: "datum.index", + bound: bound ? { + scale, + orient, + tolerance: bound + } : null + } : undefined; + if (update.align !== align) update.align = patch(update.align, align); + if (update.baseline !== baseline) update.baseline = patch(update.baseline, baseline); + return guideMark({ type: TextMark, - role: LegendLabelRole, + role: AxisLabelRole, style: GuideLabelStyle, key: Value, - from: valueRef, - encode - }, userEncode.labels); // -- LEGEND ENTRY GROUPS -- - encode = { - enter: { - noBound: { - value: !height - }, - // ignore width/height in bounds calc - width: zero, - height: height ? encoder(height) : zero, - opacity: zero - }, - exit: { - opacity: zero - }, - update: update = { - opacity: one, - row: { - signal: null - }, - column: { - signal: null - } - } - }; // annotate and sort groups to ensure correct ordering - if (_.isVertical(true)) { - nrows = `ceil(item.mark.items.length / ${ncols})`; - update.row.signal = `${index}%${nrows}`; - update.column.signal = `floor(${index} / ${nrows})`; - sort = { - field: [ - "row", - index - ] - }; - } else { - update.row.signal = `floor(${index} / ${ncols})`; - update.column.signal = `${index} % ${ncols}`; - sort = { - field: index - }; - } // handle zero column case (implies infinite columns) - update.column.signal = `(${columns})?${update.column.signal}:${index}`; // facet legend entries into sub-groups - dataRef = { - facet: { - data: dataRef, - name: "value", - groupby: Index - } - }; - return guideGroup({ - role: ScopeRole, from: dataRef, - encode: extendEncode(encode, entries, Skip), - marks: [ - symbols, - labels - ], - name, - interactive, - sort - }); -} -function legendSymbolLayout(spec, config) { - const _ = lookup(spec, config); // layout parameters for legend entries - return { - align: _("gridAlign"), - columns: _.entryColumns(), - center: { - row: true, - column: false - }, - padding: { - row: _("rowPadding"), - column: _("columnPadding") - } - }; + encode, + overlap + }, userEncode); } -const isL = 'item.orient === "left"', isR = 'item.orient === "right"', isLR = `(${isL} || ${isR})`, isVG = `datum.vgrad && ${isLR}`, baseline = anchorExpr('"top"', '"bottom"', '"middle"'), alignFlip = anchorExpr('"right"', '"left"', '"center"'), exprAlign = `datum.vgrad && ${isR} ? (${alignFlip}) : (${isLR} && !(datum.vgrad && ${isL})) ? "left" : ${alignExpr$1}`, exprAnchor = `item._anchor || (${isLR} ? "middle" : "start")`, exprAngle = `${isVG} ? (${isL} ? -90 : 90) : 0`, exprBaseline = `${isLR} ? (datum.vgrad ? (${isR} ? "bottom" : "top") : ${baseline}) : "top"`; -function legendTitle(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config); +function axisTitle(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); + let enter, update; const encode = { - enter: { - opacity: zero - }, - update: { - opacity: one, - x: { - field: { - group: "padding" - } - }, - y: { - field: { - group: "padding" - } + enter: enter = { + opacity: zero, + anchor: encoder(_("titleAnchor", null)), + align: { + signal: alignExpr$1 } }, + update: update = (0, _vegaUtil.extend)({}, enter, { + opacity: one, + text: encoder(spec.title) + }), exit: { opacity: zero } }; + const titlePos = { + signal: `lerp(range("${spec.scale}"), ${anchorExpr(0, 1, 0.5)})` + }; + update.x = ifX(orient, titlePos); + update.y = ifY(orient, titlePos); + enter.angle = ifX(orient, zero, mult(sign, 90)); + enter.baseline = ifX(orient, ifTop(orient, Bottom, Top), { + value: Bottom + }); + update.angle = enter.angle; + update.baseline = enter.baseline; addEncoders(encode, { - orient: _("titleOrient"), - _anchor: _("titleAnchor"), - anchor: { - signal: exprAnchor - }, - angle: { - signal: exprAngle - }, - align: { - signal: exprAlign - }, - baseline: { - signal: exprBaseline - }, - text: spec.title, fill: _("titleColor"), fillOpacity: _("titleOpacity"), font: _("titleFont"), @@ -129459,3355 +132312,765 @@ function legendTitle(spec, config, userEncode, dataRef) { }, { // require update align: _("titleAlign"), + angle: _("titleAngle"), baseline: _("titleBaseline") }); + autoLayout(_, orient, encode, userEncode); + encode.update.align = patch(encode.update.align, enter.align); + encode.update.angle = patch(encode.update.angle, enter.angle); + encode.update.baseline = patch(encode.update.baseline, enter.baseline); return guideMark({ type: TextMark, - role: LegendTitleRole, + role: AxisTitleRole, style: GuideTitleStyle, from: dataRef, encode }, userEncode); } -function clip(clip, scope) { - let expr; - if ((0, _vegaUtil.isObject)(clip)) { - if (clip.signal) expr = clip.signal; - else if (clip.path) expr = "pathShape(" + param(clip.path) + ")"; - else if (clip.sphere) expr = "geoShape(" + param(clip.sphere) + ', {type: "Sphere"})'; - } - return expr ? scope.signalRef(expr) : !!clip; -} -function param(value) { - return (0, _vegaUtil.isObject)(value) && value.signal ? value.signal : (0, _vegaUtil.stringValue)(value); -} -function getRole(spec) { - const role = spec.role || ""; - return !role.indexOf("axis") || !role.indexOf("legend") || !role.indexOf("title") ? role : spec.type === GroupMark ? ScopeRole : role || MarkRole; +function autoLayout(_, orient, encode, userEncode) { + const auto = (value, dim)=>value != null ? (encode.update[dim] = patch(encoder(value), encode.update[dim]), false) : !has(dim, userEncode) ? true : false; + const autoY = auto(_("titleX"), "x"), autoX = auto(_("titleY"), "y"); + encode.enter.auto = autoX === autoY ? encoder(autoX) : ifX(orient, encoder(autoX), encoder(autoY)); } -function definition(spec) { - return { - marktype: spec.type, - name: spec.name || undefined, - role: spec.role || getRole(spec), - zindex: +spec.zindex || undefined, - aria: spec.aria, - description: spec.description +function parseAxis(spec, scope) { + const config = axisConfig(spec, scope), encode = spec.encode || {}, axisEncode = encode.axis || {}, name = axisEncode.name || undefined, interactive = axisEncode.interactive, style = axisEncode.style, _ = lookup(spec, config), band = tickBand(_); // single-element data source for axis group + const datum = { + scale: spec.scale, + ticks: !!_("ticks"), + labels: !!_("labels"), + grid: !!_("grid"), + domain: !!_("domain"), + title: spec.title != null }; + const dataRef = ref(scope.add(Collect({}, [ + datum + ]))); // data source for axis ticks + const ticksRef = ref(scope.add(AxisTicks({ + scale: scope.scaleRef(spec.scale), + extra: scope.property(band.extra), + count: scope.objectProperty(spec.tickCount), + values: scope.objectProperty(spec.values), + minstep: scope.property(spec.tickMinStep), + formatType: scope.property(spec.formatType), + formatSpecifier: scope.property(spec.format) + }))); // generate axis marks + const children = []; + let size; // include axis gridlines if requested + if (datum.grid) children.push(axisGrid(spec, config, encode.grid, ticksRef, band)); + // include axis ticks if requested + if (datum.ticks) { + size = _("tickSize"); + children.push(axisTicks(spec, config, encode.ticks, ticksRef, size, band)); + } // include axis labels if requested + if (datum.labels) { + size = datum.ticks ? size : 0; + children.push(axisLabels(spec, config, encode.labels, ticksRef, size, band)); + } // include axis domain path if requested + if (datum.domain) children.push(axisDomain(spec, config, encode.domain, dataRef)); + // include axis title if defined + if (datum.title) children.push(axisTitle(spec, config, encode.title, dataRef)); + // parse axis specification + return parseMark(guideGroup({ + role: AxisRole, + from: dataRef, + encode: extendEncode(buildAxisEncode(_, spec), axisEncode, Skip), + marks: children, + aria: _("aria"), + description: _("description"), + zindex: _("zindex"), + name, + interactive, + style + }), scope); } -function interactive(spec, scope) { - return spec && spec.signal ? scope.signalRef(spec.signal) : spec === false ? false : true; -} -/** - * Parse a data transform specification. - */ function parseTransform(spec, scope) { - const def = (0, _vegaDataflow.definition)(spec.type); - if (!def) (0, _vegaUtil.error)("Unrecognized transform type: " + (0, _vegaUtil.stringValue)(spec.type)); - const t = entry(def.type.toLowerCase(), null, parseParameters(def, spec, scope)); - if (spec.signal) scope.addSignal(spec.signal, scope.proxy(t)); - t.metadata = def.metadata || {}; - return t; +function buildAxisEncode(_, spec) { + const encode = { + enter: {}, + update: {} + }; + addEncoders(encode, { + orient: _("orient"), + offset: _("offset") || 0, + position: value(spec.position, 0), + titlePadding: _("titlePadding"), + minExtent: _("minExtent"), + maxExtent: _("maxExtent"), + range: { + signal: `abs(span(range("${spec.scale}")))` + }, + translate: _("translate"), + // accessibility support + format: spec.format, + formatType: spec.formatType + }); + return encode; } -/** - * Parse all parameters of a data transform. - */ function parseParameters(def, spec, scope) { - const params = {}, n = def.params.length; - for(let i = 0; i < n; ++i){ - const pdef = def.params[i]; - params[pdef.name] = parseParameter(pdef, spec, scope); - } - return params; +function parseScope(spec, scope, preprocessed) { + const signals = (0, _vegaUtil.array)(spec.signals), scales = (0, _vegaUtil.array)(spec.scales); // parse signal definitions, if not already preprocessed + if (!preprocessed) signals.forEach((_)=>parseSignal(_, scope)); // parse cartographic projection definitions + (0, _vegaUtil.array)(spec.projections).forEach((_)=>parseProjection(_, scope)); // initialize scale references + scales.forEach((_)=>initScale(_, scope)); // parse data sources + (0, _vegaUtil.array)(spec.data).forEach((_)=>parseData(_, scope)); // parse scale definitions + scales.forEach((_)=>parseScale(_, scope)); // parse signal updates + (preprocessed || signals).forEach((_)=>parseSignalUpdates(_, scope)); // parse axis definitions + (0, _vegaUtil.array)(spec.axes).forEach((_)=>parseAxis(_, scope)); // parse mark definitions + (0, _vegaUtil.array)(spec.marks).forEach((_)=>parseMark(_, scope)); // parse legend definitions + (0, _vegaUtil.array)(spec.legends).forEach((_)=>parseLegend(_, scope)); // parse title, if defined + if (spec.title) parseTitle(spec.title, scope); // parse collected lambda (anonymous) expressions + scope.parseLambdas(); + return scope; } -/** - * Parse a data transform parameter. - */ function parseParameter(def, spec, scope) { - const type = def.type, value = spec[def.name]; - if (type === "index") return parseIndexParameter(def, spec, scope); - else if (value === undefined) { - if (def.required) (0, _vegaUtil.error)("Missing required " + (0, _vegaUtil.stringValue)(spec.type) + " parameter: " + (0, _vegaUtil.stringValue)(def.name)); - return; - } else if (type === "param") return parseSubParameters(def, spec, scope); - else if (type === "projection") return scope.projectionRef(spec[def.name]); - return def.array && !isSignal(value) ? value.map((v)=>parameterValue(def, v, scope)) : parameterValue(def, value, scope); +const rootEncode = (spec)=>extendEncode({ + enter: { + x: { + value: 0 + }, + y: { + value: 0 + } + }, + update: { + width: { + signal: "width" + }, + height: { + signal: "height" + } + } + }, spec); +function parseView(spec, scope) { + const config = scope.config; // add scenegraph root + const root = ref(scope.root = scope.add(operator())); // parse top-level signal definitions + const signals = collectSignals(spec, config); + signals.forEach((_)=>parseSignal(_, scope)); // assign description, event, legend, and locale configuration + scope.description = spec.description || config.description; + scope.eventConfig = config.events; + scope.legends = scope.objectProperty(config.legend && config.legend.layout); + scope.locale = config.locale; // store root group item + const input = scope.add(Collect()); // encode root group item + const encode = scope.add(Encode(parseEncode(rootEncode(spec.encode), GroupMark, FrameRole, spec.style, scope, { + pulse: ref(input) + }))); // perform view layout + const parent = scope.add(ViewLayout({ + layout: scope.objectProperty(spec.layout), + legends: scope.legends, + autosize: scope.signalRef("autosize"), + mark: root, + pulse: ref(encode) + })); + scope.operators.pop(); // parse remainder of specification + scope.pushState(ref(encode), ref(parent), null); + parseScope(spec, scope, signals); + scope.operators.push(parent); // bound / render / sieve root item + let op = scope.add(Bound({ + mark: root, + pulse: ref(parent) + })); + op = scope.add(Render({ + pulse: ref(op) + })); + op = scope.add(Sieve({ + pulse: ref(op) + })); // track metadata for root item + scope.addData("root", new DataScope(scope, input, input, op)); + return scope; } -/** - * Parse a single parameter value. - */ function parameterValue(def, value, scope) { - const type = def.type; - if (isSignal(value)) return isExpr(type) ? (0, _vegaUtil.error)("Expression references can not be signals.") : isField(type) ? scope.fieldRef(value) : isCompare(type) ? scope.compareRef(value) : scope.signalRef(value.signal); - else { - const expr = def.expr || isField(type); - return expr && outerExpr(value) ? scope.exprRef(value.expr, value.as) : expr && outerField(value) ? fieldRef$1(value.field, value.as) : isExpr(type) ? (0, _vegaFunctions.parseExpression)(value, scope) : isData(type) ? ref(scope.getData(value).values) : isField(type) ? fieldRef$1(value) : isCompare(type) ? scope.compareRef(value) : value; - } +function signalObject(name, value) { + return value && value.signal ? { + name, + update: value.signal + } : { + name, + value + }; } /** - * Parse parameter for accessing an index of another data set. - */ function parseIndexParameter(def, spec, scope) { - if (!(0, _vegaUtil.isString)(spec.from)) (0, _vegaUtil.error)('Lookup "from" parameter must be a string literal.'); - return scope.getData(spec.from).lookupRef(scope, spec.key); + * Collect top-level signals, merging values as needed. Signals + * defined in the config signals arrays are added only if that + * signal is not explicitly defined in the specification. + * Built-in signals (autosize, background, padding, width, height) + * receive special treatment. They are initialized using the + * top-level spec property, or, if undefined in the spec, using + * the corresponding top-level config property. If this property + * is a signal reference object, the signal expression maps to the + * signal 'update' property. If the spec's top-level signal array + * contains an entry that matches a built-in signal, that entry + * will be merged with the built-in specification, potentially + * overwriting existing 'value' or 'update' properties. + */ function collectSignals(spec, config) { + const _ = (name)=>value(spec[name], config[name]), signals = [ + signalObject("background", _("background")), + signalObject("autosize", parseAutosize(_("autosize"))), + signalObject("padding", parsePadding(_("padding"))), + signalObject("width", _("width") || 0), + signalObject("height", _("height") || 0) + ], pre = signals.reduce((p, s)=>(p[s.name] = s, p), {}), map = {}; // add spec signal array + (0, _vegaUtil.array)(spec.signals).forEach((s)=>{ + if ((0, _vegaUtil.hasOwnProperty)(pre, s.name)) // merge if built-in signal + s = (0, _vegaUtil.extend)(pre[s.name], s); + else // otherwise add to signal list + signals.push(s); + map[s.name] = s; + }); // add config signal array + (0, _vegaUtil.array)(config.signals).forEach((s)=>{ + if (!(0, _vegaUtil.hasOwnProperty)(map, s.name) && !(0, _vegaUtil.hasOwnProperty)(pre, s.name)) // add to signal list if not already defined + signals.push(s); + }); + return signals; } -/** - * Parse a parameter that contains one or more sub-parameter objects. - */ function parseSubParameters(def, spec, scope) { - const value = spec[def.name]; - if (def.array) { - if (!(0, _vegaUtil.isArray)(value)) // signals not allowed! - (0, _vegaUtil.error)("Expected an array of sub-parameters. Instead: " + (0, _vegaUtil.stringValue)(value)); - return value.map((v)=>parseSubParameter(def, v, scope)); - } else return parseSubParameter(def, value, scope); -} -/** - * Parse a sub-parameter object. - */ function parseSubParameter(def, value, scope) { - const n = def.params.length; - let pdef; // loop over defs to find matching key - for(let i = 0; i < n; ++i){ - pdef = def.params[i]; - for(const k in pdef.key)if (pdef.key[k] !== value[k]) { - pdef = null; - break; - } - if (pdef) break; - } // raise error if matching key not found - if (!pdef) (0, _vegaUtil.error)("Unsupported parameter: " + (0, _vegaUtil.stringValue)(value)); // parse params, create Params transform, return ref - const params = (0, _vegaUtil.extend)(parseParameters(pdef, value, scope), pdef.key); - return ref(scope.add(Params(params))); -} // -- Utilities ----- -const outerExpr = (_)=>_ && _.expr; -const outerField = (_)=>_ && _.field; -const isData = (_)=>_ === "data"; -const isExpr = (_)=>_ === "expr"; -const isField = (_)=>_ === "field"; -const isCompare = (_)=>_ === "compare"; -function parseData$1(from, group, scope) { - let facet, key, op, dataRef, parent; // if no source data, generate singleton datum - if (!from) dataRef = ref(scope.add(Collect(null, [ - {} - ]))); - else if (facet = from.facet) { - if (!group) (0, _vegaUtil.error)("Only group marks can be faceted."); // use pre-faceted source data, if available - if (facet.field != null) dataRef = parent = getDataRef(facet, scope); - else { - // generate facet aggregates if no direct data specification - if (!from.data) { - op = parseTransform((0, _vegaUtil.extend)({ - type: "aggregate", - groupby: (0, _vegaUtil.array)(facet.groupby) - }, facet.aggregate), scope); - op.params.key = scope.keyRef(facet.groupby); - op.params.pulse = getDataRef(facet, scope); - dataRef = parent = ref(scope.add(op)); - } else parent = ref(scope.getData(from.data).aggregate); - key = scope.keyRef(facet.groupby, true); - } - } // if not yet defined, get source data reference - if (!dataRef) dataRef = getDataRef(from, scope); - return { - key: key, - pulse: dataRef, - parent: parent - }; -} -function getDataRef(from, scope) { - return from.$ref ? from : from.data && from.data.$ref ? from.data : ref(scope.getData(from.data).output); -} -function DataScope(scope, input, output, values, aggr) { - this.scope = scope; // parent scope object - this.input = input; // first operator in pipeline (tuple input) - this.output = output; // last operator in pipeline (tuple output) - this.values = values; // operator for accessing tuples (but not tuple flow) - // last aggregate in transform pipeline - this.aggregate = aggr; // lookup table of field indices - this.index = {}; -} -DataScope.fromEntries = function(scope, entries) { - const n = entries.length, values = entries[n - 1], output = entries[n - 2]; - let input = entries[0], aggr = null, i = 1; - if (input && input.type === "load") input = entries[1]; - // add operator entries to this scope, wire up pulse chain - scope.add(entries[0]); - for(; i < n; ++i){ - entries[i].params.pulse = ref(entries[i - 1]); - scope.add(entries[i]); - if (entries[i].type === "aggregate") aggr = entries[i]; - } - return new DataScope(scope, input, output, values, aggr); -}; -function fieldKey(field) { - return (0, _vegaUtil.isString)(field) ? field : null; -} -function addSortField(scope, p, sort) { - const as = aggrField(sort.op, sort.field); - let s; - if (p.ops) for(let i = 0, n = p.as.length; i < n; ++i){ - if (p.as[i] === as) return; - } - else { - p.ops = [ - "count" - ]; - p.fields = [ - null - ]; - p.as = [ - "count" - ]; - } - if (sort.op) { - p.ops.push((s = sort.op.signal) ? scope.signalRef(s) : sort.op); - p.fields.push(scope.fieldRef(sort.field)); - p.as.push(as); - } +function Scope(config, options) { + this.config = config || {}; + this.options = options || {}; + this.bindings = []; + this.field = {}; + this.signals = {}; + this.lambdas = {}; + this.scales = {}; + this.events = {}; + this.data = {}; + this.streams = []; + this.updates = []; + this.operators = []; + this.eventConfig = null; + this.locale = null; + this._id = 0; + this._subid = 0; + this._nextsub = [ + 0 + ]; + this._parent = []; + this._encode = []; + this._lookup = []; + this._markpath = []; } -function cache(scope, ds, name, optype, field, counts, index) { - const cache = ds[name] || (ds[name] = {}), sort = sortKey(counts); - let k = fieldKey(field), v, op; - if (k != null) { - scope = ds.scope; - k = k + (sort ? "|" + sort : ""); - v = cache[k]; - } - if (!v) { - const params = counts ? { - field: keyFieldRef, - pulse: ds.countsRef(scope, field, counts) - } : { - field: scope.fieldRef(field), - pulse: ref(ds.output) - }; - if (sort) params.sort = scope.sortRef(counts); - op = scope.add(entry(optype, undefined, params)); - if (index) ds.index[field] = op; - v = ref(op); - if (k != null) cache[k] = v; - } - return v; +function Subscope(scope) { + this.config = scope.config; + this.options = scope.options; + this.legends = scope.legends; + this.field = Object.create(scope.field); + this.signals = Object.create(scope.signals); + this.lambdas = Object.create(scope.lambdas); + this.scales = Object.create(scope.scales); + this.events = Object.create(scope.events); + this.data = Object.create(scope.data); + this.streams = []; + this.updates = []; + this.operators = []; + this._id = 0; + this._subid = ++scope._nextsub[0]; + this._nextsub = scope._nextsub; + this._parent = scope._parent.slice(); + this._encode = scope._encode.slice(); + this._lookup = scope._lookup.slice(); + this._markpath = scope._markpath; } -DataScope.prototype = { - countsRef (scope, field, sort) { - const ds = this, cache = ds.counts || (ds.counts = {}), k = fieldKey(field); - let v, a, p; - if (k != null) { - scope = ds.scope; - v = cache[k]; - } - if (!v) { - p = { - groupby: scope.fieldRef(field, "key"), - pulse: ref(ds.output) - }; - if (sort && sort.field) addSortField(scope, p, sort); - a = scope.add(Aggregate(p)); - v = scope.add(Collect({ - pulse: ref(a) - })); - v = { - agg: a, - ref: ref(v) - }; - if (k != null) cache[k] = v; - } else if (sort && sort.field) addSortField(scope, v.agg.params, sort); - return v.ref; +Scope.prototype = Subscope.prototype = { + parse (spec) { + return parseScope(spec, this); }, - tuplesRef () { - return ref(this.values); + fork () { + return new Subscope(this); }, - extentRef (scope, field) { - return cache(scope, this, "extent", "extent", field, false); + isSubscope () { + return this._subid > 0; }, - domainRef (scope, field) { - return cache(scope, this, "domain", "values", field, false); + toRuntime () { + this.finish(); + return { + description: this.description, + operators: this.operators, + streams: this.streams, + updates: this.updates, + bindings: this.bindings, + eventConfig: this.eventConfig, + locale: this.locale + }; }, - valuesRef (scope, field, sort) { - return cache(scope, this, "vals", "values", field, sort || true); + id () { + return (this._subid ? this._subid + ":" : 0) + this._id++; }, - lookupRef (scope, field) { - return cache(scope, this, "lookup", "tupleindex", field, false); + add (op) { + this.operators.push(op); + op.id = this.id(); // if pre-registration references exist, resolve them now + if (op.refs) { + op.refs.forEach((ref)=>{ + ref.$ref = op.id; + }); + op.refs = null; + } + return op; }, - indataRef (scope, field) { - return cache(scope, this, "indata", "tupleindex", field, true, true); - } -}; -function parseFacet(spec, scope, group) { - const facet = spec.from.facet, name = facet.name, data = getDataRef(facet, scope); - let op; - if (!facet.name) (0, _vegaUtil.error)("Facet must have a name: " + (0, _vegaUtil.stringValue)(facet)); - if (!facet.data) (0, _vegaUtil.error)("Facet must reference a data set: " + (0, _vegaUtil.stringValue)(facet)); - if (facet.field) op = scope.add(PreFacet({ - field: scope.fieldRef(facet.field), - pulse: data - })); - else if (facet.groupby) op = scope.add(Facet({ - key: scope.keyRef(facet.groupby), - group: ref(scope.proxy(group.parent)), - pulse: data - })); - else (0, _vegaUtil.error)("Facet must specify groupby or field: " + (0, _vegaUtil.stringValue)(facet)); - // initialize facet subscope - const subscope = scope.fork(), source = subscope.add(Collect()), values = subscope.add(Sieve({ - pulse: ref(source) - })); - subscope.addData(name, new DataScope(subscope, source, source, values)); - subscope.addSignal("parent", null); // parse faceted subflow - op.params.subflow = { - $subflow: subscope.parse(spec).toRuntime() - }; -} -function parseSubflow(spec, scope, input) { - const op = scope.add(PreFacet({ - pulse: input.pulse - })), subscope = scope.fork(); - subscope.add(Sieve()); - subscope.addSignal("parent", null); // parse group mark subflow - op.params.subflow = { - $subflow: subscope.parse(spec).toRuntime() - }; -} -function parseTrigger(spec, scope, name) { - const remove = spec.remove, insert = spec.insert, toggle = spec.toggle, modify = spec.modify, values = spec.values, op = scope.add(operator()); - const update = "if(" + spec.trigger + ',modify("' + name + '",' + [ - insert, - remove, - toggle, - modify, - values - ].map((_)=>_ == null ? "null" : _).join(",") + "),0)"; - const expr = (0, _vegaFunctions.parseExpression)(update, scope); - op.update = expr.$expr; - op.params = expr.$params; -} -function parseMark(spec, scope) { - const role = getRole(spec), group = spec.type === GroupMark, facet = spec.from && spec.from.facet, overlap = spec.overlap; - let layout = spec.layout || role === ScopeRole || role === FrameRole, ops, op, store, enc, name, layoutRef, boundRef; - const nested = role === MarkRole || layout || facet; // resolve input data - const input = parseData$1(spec.from, group, scope); // data join to map tuples to visual items - op = scope.add(DataJoin({ - key: input.key || (spec.key ? fieldRef$1(spec.key) : undefined), - pulse: input.pulse, - clean: !group - })); - const joinRef = ref(op); // collect visual items - op = store = scope.add(Collect({ - pulse: joinRef - })); // connect visual items to scenegraph - op = scope.add(Mark({ - markdef: definition(spec), - interactive: interactive(spec.interactive, scope), - clip: clip(spec.clip, scope), - context: { - $context: true - }, - groups: scope.lookup(), - parent: scope.signals.parent ? scope.signalRef("parent") : null, - index: scope.markpath(), - pulse: ref(op) - })); - const markRef = ref(op); // add visual encoders - op = enc = scope.add(Encode(parseEncode(spec.encode, spec.type, role, spec.style, scope, { - mod: false, - pulse: markRef - }))); // monitor parent marks to propagate changes - op.params.parent = scope.encode(); // add post-encoding transforms, if defined - if (spec.transform) spec.transform.forEach((_)=>{ - const tx = parseTransform(_, scope), md = tx.metadata; - if (md.generates || md.changes) (0, _vegaUtil.error)("Mark transforms should not generate new data."); - if (!md.nomod) enc.params.mod = true; // update encode mod handling - tx.params.pulse = ref(op); - scope.add(op = tx); - }); - // if item sort specified, perform post-encoding - if (spec.sort) op = scope.add(SortItems({ - sort: scope.compareRef(spec.sort), - pulse: ref(op) - })); - const encodeRef = ref(op); // add view layout operator if needed - if (facet || layout) { - layout = scope.add(ViewLayout({ - layout: scope.objectProperty(spec.layout), - legends: scope.legends, - mark: markRef, - pulse: encodeRef + proxy (op) { + const vref = op instanceof Entry ? ref(op) : op; + return this.add(Proxy({ + value: vref })); - layoutRef = ref(layout); - } // compute bounding boxes - const bound = scope.add(Bound({ - mark: markRef, - pulse: layoutRef || encodeRef - })); - boundRef = ref(bound); // if group mark, recurse to parse nested content - if (group) { - // juggle layout & bounds to ensure they run *after* any faceting transforms - if (nested) { - ops = scope.operators; - ops.pop(); - if (layout) ops.pop(); + }, + addStream (stream) { + this.streams.push(stream); + stream.id = this.id(); + return stream; + }, + addUpdate (update) { + this.updates.push(update); + return update; + }, + // Apply metadata + finish () { + let name, ds; // annotate root + if (this.root) this.root.root = true; // annotate signals + for(name in this.signals)this.signals[name].signal = name; + // annotate scales + for(name in this.scales)this.scales[name].scale = name; + // annotate data sets + function annotate(op, name, type) { + let data, list; + if (op) { + data = op.data || (op.data = {}); + list = data[name] || (data[name] = []); + list.push(type); + } } - scope.pushState(encodeRef, layoutRef || boundRef, joinRef); - facet ? parseFacet(spec, scope, input) // explicit facet - : nested ? parseSubflow(spec, scope, input) // standard mark group - : scope.parse(spec); // guide group, we can avoid nested scopes - scope.popState(); - if (nested) { - if (layout) ops.push(layout); - ops.push(bound); + for(name in this.data){ + ds = this.data[name]; + annotate(ds.input, name, "input"); + annotate(ds.output, name, "output"); + annotate(ds.values, name, "values"); + for(const field in ds.index)annotate(ds.index[field], name, "index:" + field); } - } // if requested, add overlap removal transform - if (overlap) boundRef = parseOverlap(overlap, boundRef, scope); - // render / sieve items - const render = scope.add(Render({ - pulse: boundRef - })), sieve = scope.add(Sieve({ - pulse: ref(render) - }, undefined, scope.parent())); // if mark is named, make accessible as reactive geometry - // add trigger updates if defined - if (spec.name != null) { - name = spec.name; - scope.addData(name, new DataScope(scope, store, render, sieve)); - if (spec.on) spec.on.forEach((on)=>{ - if (on.insert || on.remove || on.toggle) (0, _vegaUtil.error)("Marks only support modify triggers."); - parseTrigger(on, scope, name); - }); - } -} -function parseOverlap(overlap, source, scope) { - const method = overlap.method, bound = overlap.bound, sep = overlap.separation; - const params = { - separation: isSignal(sep) ? scope.signalRef(sep.signal) : sep, - method: isSignal(method) ? scope.signalRef(method.signal) : method, - pulse: source - }; - if (overlap.order) params.sort = scope.compareRef({ - field: overlap.order - }); - if (bound) { - const tol = bound.tolerance; - params.boundTolerance = isSignal(tol) ? scope.signalRef(tol.signal) : +tol; - params.boundScale = scope.scaleRef(bound.scale); - params.boundOrient = bound.orient; - } - return ref(scope.add(Overlap(params))); -} -function parseLegend(spec, scope) { - const config = scope.config.legend, encode = spec.encode || {}, _ = lookup(spec, config), legendEncode = encode.legend || {}, name = legendEncode.name || undefined, interactive = legendEncode.interactive, style = legendEncode.style, scales = {}; - let scale = 0, entryLayout, params, children; // resolve scales and 'canonical' scale name - LegendScales.forEach((s)=>spec[s] ? (scales[s] = spec[s], scale = scale || spec[s]) : 0); - if (!scale) (0, _vegaUtil.error)("Missing valid scale for legend."); // resolve legend type (symbol, gradient, or discrete gradient) - const type = legendType(spec, scope.scaleType(scale)); // single-element data source for legend group - const datum = { - title: spec.title != null, - scales: scales, - type: type, - vgrad: type !== "symbol" && _.isVertical() - }; - const dataRef = ref(scope.add(Collect(null, [ - datum - ]))); // encoding properties for legend entry sub-group - const entryEncode = { - enter: { - x: { - value: 0 - }, - y: { - value: 0 - } + return this; + }, + // ---- + pushState (encode, parent, lookup) { + this._encode.push(ref(this.add(Sieve({ + pulse: encode + })))); + this._parent.push(parent); + this._lookup.push(lookup ? ref(this.proxy(lookup)) : null); + this._markpath.push(-1); + }, + popState () { + this._encode.pop(); + this._parent.pop(); + this._lookup.pop(); + this._markpath.pop(); + }, + parent () { + return (0, _vegaUtil.peek)(this._parent); + }, + encode () { + return (0, _vegaUtil.peek)(this._encode); + }, + lookup () { + return (0, _vegaUtil.peek)(this._lookup); + }, + markpath () { + const p = this._markpath; + return ++p[p.length - 1]; + }, + // ---- + fieldRef (field, name) { + if ((0, _vegaUtil.isString)(field)) return fieldRef$1(field, name); + if (!field.signal) (0, _vegaUtil.error)("Unsupported field reference: " + (0, _vegaUtil.stringValue)(field)); + const s = field.signal; + let f = this.field[s]; + if (!f) { + const params = { + name: this.signalRef(s) + }; + if (name) params.as = name; + this.field[s] = f = ref(this.add(Field(params))); } - }; // data source for legend values - const entryRef = ref(scope.add(LegendEntries(params = { - type: type, - scale: scope.scaleRef(scale), - count: scope.objectProperty(_("tickCount")), - limit: scope.property(_("symbolLimit")), - values: scope.objectProperty(spec.values), - minstep: scope.property(spec.tickMinStep), - formatType: scope.property(spec.formatType), - formatSpecifier: scope.property(spec.format) - }))); // continuous gradient legend - if (type === Gradient) { - children = [ - legendGradient(spec, scale, config, encode.gradient), - legendGradientLabels(spec, config, encode.labels, entryRef) - ]; // adjust default tick count based on the gradient length - params.count = params.count || scope.signalRef(`max(2,2*floor((${deref(_.gradientLength())})/100))`); - } else if (type === Discrete) children = [ - legendGradientDiscrete(spec, scale, config, encode.gradient, entryRef), - legendGradientLabels(spec, config, encode.labels, entryRef) - ]; - else { - // determine legend symbol group layout - entryLayout = legendSymbolLayout(spec, config); - children = [ - legendSymbolGroups(spec, config, encode, entryRef, deref(entryLayout.columns)) - ]; // pass symbol size information to legend entry generator - params.size = sizeExpression(spec, scope, children[0].marks); - } // generate legend marks - children = [ - guideGroup({ - role: LegendEntryRole, - from: dataRef, - encode: entryEncode, - marks: children, - layout: entryLayout, - interactive - }) - ]; // include legend title if defined - if (datum.title) children.push(legendTitle(spec, config, encode.title, dataRef)); - // parse legend specification - return parseMark(guideGroup({ - role: LegendRole, - from: dataRef, - encode: extendEncode(buildLegendEncode(_, spec, config), legendEncode, Skip), - marks: children, - aria: _("aria"), - description: _("description"), - zindex: _("zindex"), - name, - interactive, - style - }), scope); -} -function legendType(spec, scaleType) { - let type = spec.type || Symbols; - if (!spec.type && scaleCount(spec) === 1 && (spec.fill || spec.stroke)) type = (0, _vegaScale.isContinuous)(scaleType) ? Gradient : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Symbols; - return type !== Gradient ? type : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Gradient; -} -function scaleCount(spec) { - return LegendScales.reduce((count, type)=>count + (spec[type] ? 1 : 0), 0); -} -function buildLegendEncode(_, spec, config) { - const encode = { - enter: {}, - update: {} - }; - addEncoders(encode, { - orient: _("orient"), - offset: _("offset"), - padding: _("padding"), - titlePadding: _("titlePadding"), - cornerRadius: _("cornerRadius"), - fill: _("fillColor"), - stroke: _("strokeColor"), - strokeWidth: config.strokeWidth, - strokeDash: config.strokeDash, - x: _("legendX"), - y: _("legendY"), - // accessibility support - format: spec.format, - formatType: spec.formatType - }); - return encode; -} -function sizeExpression(spec, scope, marks) { - const size = deref(getChannel("size", spec, marks)), strokeWidth = deref(getChannel("strokeWidth", spec, marks)), fontSize = deref(getFontSize(marks[1].encode, scope, GuideLabelStyle)); - return (0, _vegaFunctions.parseExpression)(`max(ceil(sqrt(${size})+${strokeWidth}),${fontSize})`, scope); -} -function getChannel(name, spec, marks) { - return spec[name] ? `scale("${spec[name]}",datum)` : getEncoding(name, marks[0].encode); -} -function getFontSize(encode, scope, style) { - return getEncoding("fontSize", encode) || getStyle("fontSize", scope, style); -} -const angleExpr = `item.orient==="${Left}"?-90:item.orient==="${Right}"?90:0`; -function parseTitle(spec, scope) { - spec = (0, _vegaUtil.isString)(spec) ? { - text: spec - } : spec; - const _ = lookup(spec, scope.config.title), encode = spec.encode || {}, userEncode = encode.group || {}, name = userEncode.name || undefined, interactive = userEncode.interactive, style = userEncode.style, children = []; // single-element data source for group title - const datum = {}, dataRef = ref(scope.add(Collect(null, [ - datum - ]))); // include title text - children.push(buildTitle(spec, _, titleEncode(spec), dataRef)); // include subtitle text - if (spec.subtitle) children.push(buildSubTitle(spec, _, encode.subtitle, dataRef)); - // parse title specification - return parseMark(guideGroup({ - role: TitleRole, - from: dataRef, - encode: groupEncode(_, userEncode), - marks: children, - aria: _("aria"), - description: _("description"), - zindex: _("zindex"), - name, - interactive, - style - }), scope); -} // provide backwards-compatibility for title custom encode; -// the top-level encode block has been *deprecated*. -function titleEncode(spec) { - const encode = spec.encode; - return encode && encode.title || (0, _vegaUtil.extend)({ - name: spec.name, - interactive: spec.interactive, - style: spec.style - }, encode); -} -function groupEncode(_, userEncode) { - const encode = { - enter: {}, - update: {} - }; - addEncoders(encode, { - orient: _("orient"), - anchor: _("anchor"), - align: { - signal: alignExpr$1 - }, - angle: { - signal: angleExpr - }, - limit: _("limit"), - frame: _("frame"), - offset: _("offset") || 0, - padding: _("subtitlePadding") - }); - return extendEncode(encode, userEncode, Skip); -} -function buildTitle(spec, _, userEncode, dataRef) { - const zero = { - value: 0 - }, text = spec.text, encode = { - enter: { - opacity: zero - }, - update: { - opacity: { - value: 1 - } - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - text: text, - align: { - signal: "item.mark.group.align" - }, - angle: { - signal: "item.mark.group.angle" - }, - limit: { - signal: "item.mark.group.limit" - }, - baseline: "top", - dx: _("dx"), - dy: _("dy"), - fill: _("color"), - font: _("font"), - fontSize: _("fontSize"), - fontStyle: _("fontStyle"), - fontWeight: _("fontWeight"), - lineHeight: _("lineHeight") - }, { - // update - align: _("align"), - angle: _("angle"), - baseline: _("baseline") - }); - return guideMark({ - type: TextMark, - role: TitleTextRole, - style: GroupTitleStyle, - from: dataRef, - encode - }, userEncode); -} -function buildSubTitle(spec, _, userEncode, dataRef) { - const zero = { - value: 0 - }, text = spec.subtitle, encode = { - enter: { - opacity: zero - }, - update: { - opacity: { - value: 1 - } - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - text: text, - align: { - signal: "item.mark.group.align" - }, - angle: { - signal: "item.mark.group.angle" - }, - limit: { - signal: "item.mark.group.limit" - }, - baseline: "top", - dx: _("dx"), - dy: _("dy"), - fill: _("subtitleColor"), - font: _("subtitleFont"), - fontSize: _("subtitleFontSize"), - fontStyle: _("subtitleFontStyle"), - fontWeight: _("subtitleFontWeight"), - lineHeight: _("subtitleLineHeight") - }, { - // update - align: _("align"), - angle: _("angle"), - baseline: _("baseline") - }); - return guideMark({ - type: TextMark, - role: TitleSubtitleRole, - style: GroupSubtitleStyle, - from: dataRef, - encode - }, userEncode); -} -function parseData(data, scope) { - const transforms = []; - if (data.transform) data.transform.forEach((tx)=>{ - transforms.push(parseTransform(tx, scope)); - }); - if (data.on) data.on.forEach((on)=>{ - parseTrigger(on, scope, data.name); - }); - scope.addDataPipeline(data.name, analyze(data, scope, transforms)); -} -/** - * Analyze a data pipeline, add needed operators. - */ function analyze(data, scope, ops) { - const output = []; - let source = null, modify = false, generate = false, upstream, i, n, t, m; - if (data.values) { - // hard-wired input data set - if (isSignal(data.values) || hasSignal(data.format)) { - // if either values is signal or format has signal, use dynamic loader - output.push(load(scope, data)); - output.push(source = collect()); - } else // otherwise, ingest upon dataflow init - output.push(source = collect({ - $ingest: data.values, - $format: data.format - })); - } else if (data.url) { - // load data from external source - if (hasSignal(data.url) || hasSignal(data.format)) { - // if either url or format has signal, use dynamic loader - output.push(load(scope, data)); - output.push(source = collect()); - } else // otherwise, request load upon dataflow init - output.push(source = collect({ - $request: data.url, - $format: data.format - })); - } else if (data.source) { - // derives from one or more other data sets - source = upstream = (0, _vegaUtil.array)(data.source).map((d)=>ref(scope.getData(d).output)); - output.push(null); // populate later - } // scan data transforms, add collectors as needed - for(i = 0, n = ops.length; i < n; ++i){ - t = ops[i]; - m = t.metadata; - if (!source && !m.source) output.push(source = collect()); - output.push(t); - if (m.generates) generate = true; - if (m.modifies && !generate) modify = true; - if (m.source) source = t; - else if (m.changes) source = null; - } - if (upstream) { - n = upstream.length - 1; - output[0] = Relay({ - derive: modify, - pulse: n ? upstream : upstream[0] - }); - if (modify || n) // collect derived and multi-pulse tuples - output.splice(1, 0, collect()); - } - if (!source) output.push(collect()); - output.push(Sieve({})); - return output; -} -function collect(values) { - const s = Collect({}, values); - s.metadata = { - source: true - }; - return s; -} -function load(scope, data) { - return Load({ - url: data.url ? scope.property(data.url) : undefined, - async: data.async ? scope.property(data.async) : undefined, - values: data.values ? scope.property(data.values) : undefined, - format: scope.objectProperty(data.format) - }); -} -const isX = (orient)=>orient === Bottom || orient === Top; // get sign coefficient based on axis orient -const getSign = (orient, a, b)=>isSignal(orient) ? ifLeftTopExpr(orient.signal, a, b) : orient === Left || orient === Top ? a : b; // condition on axis x-direction -const ifX = (orient, a, b)=>isSignal(orient) ? ifXEnc(orient.signal, a, b) : isX(orient) ? a : b; // condition on axis y-direction -const ifY = (orient, a, b)=>isSignal(orient) ? ifYEnc(orient.signal, a, b) : isX(orient) ? b : a; -const ifTop = (orient, a, b)=>isSignal(orient) ? ifTopExpr(orient.signal, a, b) : orient === Top ? { - value: a - } : { - value: b - }; -const ifRight = (orient, a, b)=>isSignal(orient) ? ifRightExpr(orient.signal, a, b) : orient === Right ? { - value: a - } : { - value: b - }; -const ifXEnc = ($orient, a, b)=>ifEnc(`${$orient} === '${Top}' || ${$orient} === '${Bottom}'`, a, b); -const ifYEnc = ($orient, a, b)=>ifEnc(`${$orient} !== '${Top}' && ${$orient} !== '${Bottom}'`, a, b); -const ifLeftTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Left}' || ${$orient} === '${Top}'`, a, b); -const ifTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Top}'`, a, b); -const ifRightExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Right}'`, a, b); -const ifEnc = (test, a, b)=>{ - // ensure inputs are encoder objects (or null) - a = a != null ? encoder(a) : a; - b = b != null ? encoder(b) : b; - if (isSimple(a) && isSimple(b)) { - // if possible generate simple signal expression - a = a ? a.signal || (0, _vegaUtil.stringValue)(a.value) : null; - b = b ? b.signal || (0, _vegaUtil.stringValue)(b.value) : null; - return { - signal: `${test} ? (${a}) : (${b})` - }; - } else // otherwise generate rule set - return [ - (0, _vegaUtil.extend)({ - test - }, a) - ].concat(b || []); -}; -const isSimple = (enc)=>enc == null || Object.keys(enc).length === 1; -const ifExpr = (test, a, b)=>({ - signal: `${test} ? (${toExpr(a)}) : (${toExpr(b)})` - }); -const ifOrient = ($orient, t, b, l, r)=>({ - signal: (l != null ? `${$orient} === '${Left}' ? (${toExpr(l)}) : ` : "") + (b != null ? `${$orient} === '${Bottom}' ? (${toExpr(b)}) : ` : "") + (r != null ? `${$orient} === '${Right}' ? (${toExpr(r)}) : ` : "") + (t != null ? `${$orient} === '${Top}' ? (${toExpr(t)}) : ` : "") + "(null)" - }); -const toExpr = (v)=>isSignal(v) ? v.signal : v == null ? null : (0, _vegaUtil.stringValue)(v); -const mult = (sign, value)=>value === 0 ? 0 : isSignal(sign) ? { - signal: `(${sign.signal}) * ${value}` - } : { - value: sign * value - }; -const patch = (value, base)=>{ - const s = value.signal; - return s && s.endsWith("(null)") ? { - signal: s.slice(0, -6) + base.signal - } : value; -}; -function fallback(prop, config, axisConfig, style) { - let styleProp; - if (config && (0, _vegaUtil.hasOwnProperty)(config, prop)) return config[prop]; - else if ((0, _vegaUtil.hasOwnProperty)(axisConfig, prop)) return axisConfig[prop]; - else if (prop.startsWith("title")) { - switch(prop){ - case "titleColor": - styleProp = "fill"; - break; - case "titleFont": - case "titleFontSize": - case "titleFontWeight": - styleProp = prop[5].toLowerCase() + prop.slice(6); - } - return style[GuideTitleStyle][styleProp]; - } else if (prop.startsWith("label")) { - switch(prop){ - case "labelColor": - styleProp = "fill"; - break; - case "labelFont": - case "labelFontSize": - styleProp = prop[5].toLowerCase() + prop.slice(6); - } - return style[GuideLabelStyle][styleProp]; - } - return null; -} -function keys(objects) { - const map = {}; - for (const obj of objects){ - if (!obj) continue; - for(const key in obj)map[key] = 1; - } - return Object.keys(map); -} -function axisConfig(spec, scope) { - var config = scope.config, style = config.style, axis = config.axis, band = scope.scaleType(spec.scale) === "band" && config.axisBand, orient = spec.orient, xy, or, key; - if (isSignal(orient)) { - const xyKeys = keys([ - config.axisX, - config.axisY - ]), orientKeys = keys([ - config.axisTop, - config.axisBottom, - config.axisLeft, - config.axisRight - ]); - xy = {}; - for (key of xyKeys)xy[key] = ifX(orient, fallback(key, config.axisX, axis, style), fallback(key, config.axisY, axis, style)); - or = {}; - for (key of orientKeys)or[key] = ifOrient(orient.signal, fallback(key, config.axisTop, axis, style), fallback(key, config.axisBottom, axis, style), fallback(key, config.axisLeft, axis, style), fallback(key, config.axisRight, axis, style)); - } else { - xy = orient === Top || orient === Bottom ? config.axisX : config.axisY; - or = config["axis" + orient[0].toUpperCase() + orient.slice(1)]; - } - const result = xy || or || band ? (0, _vegaUtil.extend)({}, axis, xy, or, band) : axis; - return result; -} -function axisDomain(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), orient = spec.orient; - let enter, update; - const encode = { - enter: enter = { - opacity: zero - }, - update: update = { - opacity: one - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("domainColor"), - strokeCap: _("domainCap"), - strokeDash: _("domainDash"), - strokeDashOffset: _("domainDashOffset"), - strokeWidth: _("domainWidth"), - strokeOpacity: _("domainOpacity") - }); - const pos0 = position(spec, 0); - const pos1 = position(spec, 1); - enter.x = update.x = ifX(orient, pos0, zero); - enter.x2 = update.x2 = ifX(orient, pos1); - enter.y = update.y = ifY(orient, pos0, zero); - enter.y2 = update.y2 = ifY(orient, pos1); - return guideMark({ - type: RuleMark, - role: AxisDomainRole, - from: dataRef, - encode - }, userEncode); -} -function position(spec, pos) { - return { - scale: spec.scale, - range: pos - }; -} -function axisGrid(spec, config, userEncode, dataRef, band) { - const _ = lookup(spec, config), orient = spec.orient, vscale = spec.gridScale, sign = getSign(orient, 1, -1), offset = offsetValue(spec.offset, sign); - let enter, exit, update; - const encode = { - enter: enter = { - opacity: zero - }, - update: update = { - opacity: one - }, - exit: exit = { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("gridColor"), - strokeCap: _("gridCap"), - strokeDash: _("gridDash"), - strokeDashOffset: _("gridDashOffset"), - strokeOpacity: _("gridOpacity"), - strokeWidth: _("gridWidth") - }); - const tickPos = { - scale: spec.scale, - field: Value, - band: band.band, - extra: band.extra, - offset: band.offset, - round: _("tickRound") - }; - const sz = ifX(orient, { - signal: "height" - }, { - signal: "width" - }); - const gridStart = vscale ? { - scale: vscale, - range: 0, - mult: sign, - offset: offset - } : { - value: 0, - offset: offset - }; - const gridEnd = vscale ? { - scale: vscale, - range: 1, - mult: sign, - offset: offset - } : (0, _vegaUtil.extend)(sz, { - mult: sign, - offset: offset - }); - enter.x = update.x = ifX(orient, tickPos, gridStart); - enter.y = update.y = ifY(orient, tickPos, gridStart); - enter.x2 = update.x2 = ifY(orient, gridEnd); - enter.y2 = update.y2 = ifX(orient, gridEnd); - exit.x = ifX(orient, tickPos); - exit.y = ifY(orient, tickPos); - return guideMark({ - type: RuleMark, - role: AxisGridRole, - key: Value, - from: dataRef, - encode - }, userEncode); -} -function offsetValue(offset, sign) { - if (sign === 1) ; - else if (!(0, _vegaUtil.isObject)(offset)) offset = isSignal(sign) ? { - signal: `(${sign.signal}) * (${offset || 0})` - } : sign * (offset || 0); - else { - let entry = offset = (0, _vegaUtil.extend)({}, offset); - while(entry.mult != null)if (!(0, _vegaUtil.isObject)(entry.mult)) { - entry.mult = isSignal(sign) // no offset if sign === 1 - ? { - signal: `(${entry.mult}) * (${sign.signal})` - } : entry.mult * sign; - return offset; - } else entry = entry.mult = (0, _vegaUtil.extend)({}, entry.mult); - entry.mult = sign; - } - return offset; -} -function axisTicks(spec, config, userEncode, dataRef, size, band) { - const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); - let enter, exit, update; - const encode = { - enter: enter = { - opacity: zero - }, - update: update = { - opacity: one - }, - exit: exit = { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("tickColor"), - strokeCap: _("tickCap"), - strokeDash: _("tickDash"), - strokeDashOffset: _("tickDashOffset"), - strokeOpacity: _("tickOpacity"), - strokeWidth: _("tickWidth") - }); - const tickSize = encoder(size); - tickSize.mult = sign; - const tickPos = { - scale: spec.scale, - field: Value, - band: band.band, - extra: band.extra, - offset: band.offset, - round: _("tickRound") - }; - update.y = enter.y = ifX(orient, zero, tickPos); - update.y2 = enter.y2 = ifX(orient, tickSize); - exit.x = ifX(orient, tickPos); - update.x = enter.x = ifY(orient, zero, tickPos); - update.x2 = enter.x2 = ifY(orient, tickSize); - exit.y = ifY(orient, tickPos); - return guideMark({ - type: RuleMark, - role: AxisTickRole, - key: Value, - from: dataRef, - encode - }, userEncode); -} -function flushExpr(scale, threshold, a, b, c) { - return { - signal: 'flush(range("' + scale + '"), ' + 'scale("' + scale + '", datum.value), ' + threshold + "," + a + "," + b + "," + c + ")" - }; -} -function axisLabels(spec, config, userEncode, dataRef, size, band) { - const _ = lookup(spec, config), orient = spec.orient, scale = spec.scale, sign = getSign(orient, -1, 1), flush = deref(_("labelFlush")), flushOffset = deref(_("labelFlushOffset")), labelAlign = _("labelAlign"), labelBaseline = _("labelBaseline"); - let flushOn = flush === 0 || !!flush, update; - const tickSize = encoder(size); - tickSize.mult = sign; - tickSize.offset = encoder(_("labelPadding") || 0); - tickSize.offset.mult = sign; - const tickPos = { - scale: scale, - field: Value, - band: 0.5, - offset: extendOffset(band.offset, _("labelOffset")) - }; - const align = ifX(orient, flushOn ? flushExpr(scale, flush, '"left"', '"right"', '"center"') : { - value: "center" - }, ifRight(orient, "left", "right")); - const baseline = ifX(orient, ifTop(orient, "bottom", "top"), flushOn ? flushExpr(scale, flush, '"top"', '"bottom"', '"middle"') : { - value: "middle" - }); - const offsetExpr = flushExpr(scale, flush, `-(${flushOffset})`, flushOffset, 0); - flushOn = flushOn && flushOffset; - const enter = { - opacity: zero, - x: ifX(orient, tickPos, tickSize), - y: ifY(orient, tickPos, tickSize) - }; - const encode = { - enter: enter, - update: update = { - opacity: one, - text: { - field: Label - }, - x: enter.x, - y: enter.y, - align, - baseline - }, - exit: { - opacity: zero, - x: enter.x, - y: enter.y - } - }; - addEncoders(encode, { - dx: !labelAlign && flushOn ? ifX(orient, offsetExpr) : null, - dy: !labelBaseline && flushOn ? ifY(orient, offsetExpr) : null - }); - addEncoders(encode, { - angle: _("labelAngle"), - fill: _("labelColor"), - fillOpacity: _("labelOpacity"), - font: _("labelFont"), - fontSize: _("labelFontSize"), - fontWeight: _("labelFontWeight"), - fontStyle: _("labelFontStyle"), - limit: _("labelLimit"), - lineHeight: _("labelLineHeight") - }, { - align: labelAlign, - baseline: labelBaseline - }); - const bound = _("labelBound"); - let overlap = _("labelOverlap"); // if overlap method or bound defined, request label overlap removal - overlap = overlap || bound ? { - separation: _("labelSeparation"), - method: overlap, - order: "datum.index", - bound: bound ? { - scale, - orient, - tolerance: bound - } : null - } : undefined; - if (update.align !== align) update.align = patch(update.align, align); - if (update.baseline !== baseline) update.baseline = patch(update.baseline, baseline); - return guideMark({ - type: TextMark, - role: AxisLabelRole, - style: GuideLabelStyle, - key: Value, - from: dataRef, - encode, - overlap - }, userEncode); -} -function axisTitle(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); - let enter, update; - const encode = { - enter: enter = { - opacity: zero, - anchor: encoder(_("titleAnchor", null)), - align: { - signal: alignExpr$1 - } - }, - update: update = (0, _vegaUtil.extend)({}, enter, { - opacity: one, - text: encoder(spec.title) - }), - exit: { - opacity: zero - } - }; - const titlePos = { - signal: `lerp(range("${spec.scale}"), ${anchorExpr(0, 1, 0.5)})` - }; - update.x = ifX(orient, titlePos); - update.y = ifY(orient, titlePos); - enter.angle = ifX(orient, zero, mult(sign, 90)); - enter.baseline = ifX(orient, ifTop(orient, Bottom, Top), { - value: Bottom - }); - update.angle = enter.angle; - update.baseline = enter.baseline; - addEncoders(encode, { - fill: _("titleColor"), - fillOpacity: _("titleOpacity"), - font: _("titleFont"), - fontSize: _("titleFontSize"), - fontStyle: _("titleFontStyle"), - fontWeight: _("titleFontWeight"), - limit: _("titleLimit"), - lineHeight: _("titleLineHeight") - }, { - // require update - align: _("titleAlign"), - angle: _("titleAngle"), - baseline: _("titleBaseline") - }); - autoLayout(_, orient, encode, userEncode); - encode.update.align = patch(encode.update.align, enter.align); - encode.update.angle = patch(encode.update.angle, enter.angle); - encode.update.baseline = patch(encode.update.baseline, enter.baseline); - return guideMark({ - type: TextMark, - role: AxisTitleRole, - style: GuideTitleStyle, - from: dataRef, - encode - }, userEncode); -} -function autoLayout(_, orient, encode, userEncode) { - const auto = (value, dim)=>value != null ? (encode.update[dim] = patch(encoder(value), encode.update[dim]), false) : !has(dim, userEncode) ? true : false; - const autoY = auto(_("titleX"), "x"), autoX = auto(_("titleY"), "y"); - encode.enter.auto = autoX === autoY ? encoder(autoX) : ifX(orient, encoder(autoX), encoder(autoY)); -} -function parseAxis(spec, scope) { - const config = axisConfig(spec, scope), encode = spec.encode || {}, axisEncode = encode.axis || {}, name = axisEncode.name || undefined, interactive = axisEncode.interactive, style = axisEncode.style, _ = lookup(spec, config), band = tickBand(_); // single-element data source for axis group - const datum = { - scale: spec.scale, - ticks: !!_("ticks"), - labels: !!_("labels"), - grid: !!_("grid"), - domain: !!_("domain"), - title: spec.title != null - }; - const dataRef = ref(scope.add(Collect({}, [ - datum - ]))); // data source for axis ticks - const ticksRef = ref(scope.add(AxisTicks({ - scale: scope.scaleRef(spec.scale), - extra: scope.property(band.extra), - count: scope.objectProperty(spec.tickCount), - values: scope.objectProperty(spec.values), - minstep: scope.property(spec.tickMinStep), - formatType: scope.property(spec.formatType), - formatSpecifier: scope.property(spec.format) - }))); // generate axis marks - const children = []; - let size; // include axis gridlines if requested - if (datum.grid) children.push(axisGrid(spec, config, encode.grid, ticksRef, band)); - // include axis ticks if requested - if (datum.ticks) { - size = _("tickSize"); - children.push(axisTicks(spec, config, encode.ticks, ticksRef, size, band)); - } // include axis labels if requested - if (datum.labels) { - size = datum.ticks ? size : 0; - children.push(axisLabels(spec, config, encode.labels, ticksRef, size, band)); - } // include axis domain path if requested - if (datum.domain) children.push(axisDomain(spec, config, encode.domain, dataRef)); - // include axis title if defined - if (datum.title) children.push(axisTitle(spec, config, encode.title, dataRef)); - // parse axis specification - return parseMark(guideGroup({ - role: AxisRole, - from: dataRef, - encode: extendEncode(buildAxisEncode(_, spec), axisEncode, Skip), - marks: children, - aria: _("aria"), - description: _("description"), - zindex: _("zindex"), - name, - interactive, - style - }), scope); -} -function buildAxisEncode(_, spec) { - const encode = { - enter: {}, - update: {} - }; - addEncoders(encode, { - orient: _("orient"), - offset: _("offset") || 0, - position: value(spec.position, 0), - titlePadding: _("titlePadding"), - minExtent: _("minExtent"), - maxExtent: _("maxExtent"), - range: { - signal: `abs(span(range("${spec.scale}")))` - }, - translate: _("translate"), - // accessibility support - format: spec.format, - formatType: spec.formatType - }); - return encode; -} -function parseScope(spec, scope, preprocessed) { - const signals = (0, _vegaUtil.array)(spec.signals), scales = (0, _vegaUtil.array)(spec.scales); // parse signal definitions, if not already preprocessed - if (!preprocessed) signals.forEach((_)=>parseSignal(_, scope)); // parse cartographic projection definitions - (0, _vegaUtil.array)(spec.projections).forEach((_)=>parseProjection(_, scope)); // initialize scale references - scales.forEach((_)=>initScale(_, scope)); // parse data sources - (0, _vegaUtil.array)(spec.data).forEach((_)=>parseData(_, scope)); // parse scale definitions - scales.forEach((_)=>parseScale(_, scope)); // parse signal updates - (preprocessed || signals).forEach((_)=>parseSignalUpdates(_, scope)); // parse axis definitions - (0, _vegaUtil.array)(spec.axes).forEach((_)=>parseAxis(_, scope)); // parse mark definitions - (0, _vegaUtil.array)(spec.marks).forEach((_)=>parseMark(_, scope)); // parse legend definitions - (0, _vegaUtil.array)(spec.legends).forEach((_)=>parseLegend(_, scope)); // parse title, if defined - if (spec.title) parseTitle(spec.title, scope); // parse collected lambda (anonymous) expressions - scope.parseLambdas(); - return scope; -} -const rootEncode = (spec)=>extendEncode({ - enter: { - x: { - value: 0 - }, - y: { - value: 0 - } - }, - update: { - width: { - signal: "width" - }, - height: { - signal: "height" - } - } - }, spec); -function parseView(spec, scope) { - const config = scope.config; // add scenegraph root - const root = ref(scope.root = scope.add(operator())); // parse top-level signal definitions - const signals = collectSignals(spec, config); - signals.forEach((_)=>parseSignal(_, scope)); // assign description, event, legend, and locale configuration - scope.description = spec.description || config.description; - scope.eventConfig = config.events; - scope.legends = scope.objectProperty(config.legend && config.legend.layout); - scope.locale = config.locale; // store root group item - const input = scope.add(Collect()); // encode root group item - const encode = scope.add(Encode(parseEncode(rootEncode(spec.encode), GroupMark, FrameRole, spec.style, scope, { - pulse: ref(input) - }))); // perform view layout - const parent = scope.add(ViewLayout({ - layout: scope.objectProperty(spec.layout), - legends: scope.legends, - autosize: scope.signalRef("autosize"), - mark: root, - pulse: ref(encode) - })); - scope.operators.pop(); // parse remainder of specification - scope.pushState(ref(encode), ref(parent), null); - parseScope(spec, scope, signals); - scope.operators.push(parent); // bound / render / sieve root item - let op = scope.add(Bound({ - mark: root, - pulse: ref(parent) - })); - op = scope.add(Render({ - pulse: ref(op) - })); - op = scope.add(Sieve({ - pulse: ref(op) - })); // track metadata for root item - scope.addData("root", new DataScope(scope, input, input, op)); - return scope; -} -function signalObject(name, value) { - return value && value.signal ? { - name, - update: value.signal - } : { - name, - value - }; -} -/** - * Collect top-level signals, merging values as needed. Signals - * defined in the config signals arrays are added only if that - * signal is not explicitly defined in the specification. - * Built-in signals (autosize, background, padding, width, height) - * receive special treatment. They are initialized using the - * top-level spec property, or, if undefined in the spec, using - * the corresponding top-level config property. If this property - * is a signal reference object, the signal expression maps to the - * signal 'update' property. If the spec's top-level signal array - * contains an entry that matches a built-in signal, that entry - * will be merged with the built-in specification, potentially - * overwriting existing 'value' or 'update' properties. - */ function collectSignals(spec, config) { - const _ = (name)=>value(spec[name], config[name]), signals = [ - signalObject("background", _("background")), - signalObject("autosize", parseAutosize(_("autosize"))), - signalObject("padding", parsePadding(_("padding"))), - signalObject("width", _("width") || 0), - signalObject("height", _("height") || 0) - ], pre = signals.reduce((p, s)=>(p[s.name] = s, p), {}), map = {}; // add spec signal array - (0, _vegaUtil.array)(spec.signals).forEach((s)=>{ - if ((0, _vegaUtil.hasOwnProperty)(pre, s.name)) // merge if built-in signal - s = (0, _vegaUtil.extend)(pre[s.name], s); - else // otherwise add to signal list - signals.push(s); - map[s.name] = s; - }); // add config signal array - (0, _vegaUtil.array)(config.signals).forEach((s)=>{ - if (!(0, _vegaUtil.hasOwnProperty)(map, s.name) && !(0, _vegaUtil.hasOwnProperty)(pre, s.name)) // add to signal list if not already defined - signals.push(s); - }); - return signals; -} -function Scope(config, options) { - this.config = config || {}; - this.options = options || {}; - this.bindings = []; - this.field = {}; - this.signals = {}; - this.lambdas = {}; - this.scales = {}; - this.events = {}; - this.data = {}; - this.streams = []; - this.updates = []; - this.operators = []; - this.eventConfig = null; - this.locale = null; - this._id = 0; - this._subid = 0; - this._nextsub = [ - 0 - ]; - this._parent = []; - this._encode = []; - this._lookup = []; - this._markpath = []; -} -function Subscope(scope) { - this.config = scope.config; - this.options = scope.options; - this.legends = scope.legends; - this.field = Object.create(scope.field); - this.signals = Object.create(scope.signals); - this.lambdas = Object.create(scope.lambdas); - this.scales = Object.create(scope.scales); - this.events = Object.create(scope.events); - this.data = Object.create(scope.data); - this.streams = []; - this.updates = []; - this.operators = []; - this._id = 0; - this._subid = ++scope._nextsub[0]; - this._nextsub = scope._nextsub; - this._parent = scope._parent.slice(); - this._encode = scope._encode.slice(); - this._lookup = scope._lookup.slice(); - this._markpath = scope._markpath; -} -Scope.prototype = Subscope.prototype = { - parse (spec) { - return parseScope(spec, this); - }, - fork () { - return new Subscope(this); - }, - isSubscope () { - return this._subid > 0; - }, - toRuntime () { - this.finish(); - return { - description: this.description, - operators: this.operators, - streams: this.streams, - updates: this.updates, - bindings: this.bindings, - eventConfig: this.eventConfig, - locale: this.locale - }; - }, - id () { - return (this._subid ? this._subid + ":" : 0) + this._id++; - }, - add (op) { - this.operators.push(op); - op.id = this.id(); // if pre-registration references exist, resolve them now - if (op.refs) { - op.refs.forEach((ref)=>{ - ref.$ref = op.id; - }); - op.refs = null; - } - return op; - }, - proxy (op) { - const vref = op instanceof Entry ? ref(op) : op; - return this.add(Proxy({ - value: vref - })); - }, - addStream (stream) { - this.streams.push(stream); - stream.id = this.id(); - return stream; - }, - addUpdate (update) { - this.updates.push(update); - return update; - }, - // Apply metadata - finish () { - let name, ds; // annotate root - if (this.root) this.root.root = true; // annotate signals - for(name in this.signals)this.signals[name].signal = name; - // annotate scales - for(name in this.scales)this.scales[name].scale = name; - // annotate data sets - function annotate(op, name, type) { - let data, list; - if (op) { - data = op.data || (op.data = {}); - list = data[name] || (data[name] = []); - list.push(type); - } - } - for(name in this.data){ - ds = this.data[name]; - annotate(ds.input, name, "input"); - annotate(ds.output, name, "output"); - annotate(ds.values, name, "values"); - for(const field in ds.index)annotate(ds.index[field], name, "index:" + field); - } - return this; - }, - // ---- - pushState (encode, parent, lookup) { - this._encode.push(ref(this.add(Sieve({ - pulse: encode - })))); - this._parent.push(parent); - this._lookup.push(lookup ? ref(this.proxy(lookup)) : null); - this._markpath.push(-1); - }, - popState () { - this._encode.pop(); - this._parent.pop(); - this._lookup.pop(); - this._markpath.pop(); - }, - parent () { - return (0, _vegaUtil.peek)(this._parent); - }, - encode () { - return (0, _vegaUtil.peek)(this._encode); - }, - lookup () { - return (0, _vegaUtil.peek)(this._lookup); - }, - markpath () { - const p = this._markpath; - return ++p[p.length - 1]; - }, - // ---- - fieldRef (field, name) { - if ((0, _vegaUtil.isString)(field)) return fieldRef$1(field, name); - if (!field.signal) (0, _vegaUtil.error)("Unsupported field reference: " + (0, _vegaUtil.stringValue)(field)); - const s = field.signal; - let f = this.field[s]; - if (!f) { - const params = { - name: this.signalRef(s) - }; - if (name) params.as = name; - this.field[s] = f = ref(this.add(Field(params))); - } - return f; - }, - compareRef (cmp) { - let signal = false; - const check = (_)=>isSignal(_) ? (signal = true, this.signalRef(_.signal)) : isExpr$1(_) ? (signal = true, this.exprRef(_.expr)) : _; - const fields = (0, _vegaUtil.array)(cmp.field).map(check), orders = (0, _vegaUtil.array)(cmp.order).map(check); - return signal ? ref(this.add(Compare({ - fields: fields, - orders: orders - }))) : compareRef(fields, orders); - }, - keyRef (fields, flat) { - let signal = false; - const check = (_)=>isSignal(_) ? (signal = true, ref(sig[_.signal])) : _; - const sig = this.signals; - fields = (0, _vegaUtil.array)(fields).map(check); - return signal ? ref(this.add(Key({ - fields: fields, - flat: flat - }))) : keyRef(fields, flat); - }, - sortRef (sort) { - if (!sort) return sort; // including id ensures stable sorting - const a = aggrField(sort.op, sort.field), o = sort.order || Ascending; - return o.signal ? ref(this.add(Compare({ - fields: a, - orders: this.signalRef(o.signal) - }))) : compareRef(a, o); - }, - // ---- - event (source, type) { - const key = source + ":" + type; - if (!this.events[key]) { - const id = this.id(); - this.streams.push({ - id: id, - source: source, - type: type - }); - this.events[key] = id; - } - return this.events[key]; - }, - // ---- - hasOwnSignal (name) { - return (0, _vegaUtil.hasOwnProperty)(this.signals, name); - }, - addSignal (name, value) { - if (this.hasOwnSignal(name)) (0, _vegaUtil.error)("Duplicate signal name: " + (0, _vegaUtil.stringValue)(name)); - const op = value instanceof Entry ? value : this.add(operator(value)); - return this.signals[name] = op; - }, - getSignal (name) { - if (!this.signals[name]) (0, _vegaUtil.error)("Unrecognized signal name: " + (0, _vegaUtil.stringValue)(name)); - return this.signals[name]; - }, - signalRef (s) { - if (this.signals[s]) return ref(this.signals[s]); - else if (!(0, _vegaUtil.hasOwnProperty)(this.lambdas, s)) this.lambdas[s] = this.add(operator(null)); - return ref(this.lambdas[s]); - }, - parseLambdas () { - const code = Object.keys(this.lambdas); - for(let i = 0, n = code.length; i < n; ++i){ - const s = code[i], e = (0, _vegaFunctions.parseExpression)(s, this), op = this.lambdas[s]; - op.params = e.$params; - op.update = e.$expr; - } - }, - property (spec) { - return spec && spec.signal ? this.signalRef(spec.signal) : spec; - }, - objectProperty (spec) { - return !spec || !(0, _vegaUtil.isObject)(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec)); - }, - exprRef (code, name) { - const params = { - expr: (0, _vegaFunctions.parseExpression)(code, this) - }; - if (name) params.expr.$name = name; - return ref(this.add(Expression(params))); - }, - addBinding (name, bind) { - if (!this.bindings) (0, _vegaUtil.error)("Nested signals do not support binding: " + (0, _vegaUtil.stringValue)(name)); - this.bindings.push((0, _vegaUtil.extend)({ - signal: name - }, bind)); - }, - // ---- - addScaleProj (name, transform) { - if ((0, _vegaUtil.hasOwnProperty)(this.scales, name)) (0, _vegaUtil.error)("Duplicate scale or projection name: " + (0, _vegaUtil.stringValue)(name)); - this.scales[name] = this.add(transform); - }, - addScale (name, params) { - this.addScaleProj(name, Scale(params)); - }, - addProjection (name, params) { - this.addScaleProj(name, Projection(params)); - }, - getScale (name) { - if (!this.scales[name]) (0, _vegaUtil.error)("Unrecognized scale name: " + (0, _vegaUtil.stringValue)(name)); - return this.scales[name]; - }, - scaleRef (name) { - return ref(this.getScale(name)); - }, - scaleType (name) { - return this.getScale(name).params.type; - }, - projectionRef (name) { - return this.scaleRef(name); - }, - projectionType (name) { - return this.scaleType(name); - }, - // ---- - addData (name, dataScope) { - if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.data[name] = dataScope; - }, - getData (name) { - if (!this.data[name]) (0, _vegaUtil.error)("Undefined data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.data[name]; - }, - addDataPipeline (name, entries) { - if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.addData(name, DataScope.fromEntries(this, entries)); - } -}; -function propertyLambda(spec) { - return ((0, _vegaUtil.isArray)(spec) ? arrayLambda : objectLambda)(spec); -} -function arrayLambda(array) { - const n = array.length; - let code = "["; - for(let i = 0; i < n; ++i){ - const value = array[i]; - code += (i > 0 ? "," : "") + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); - } - return code + "]"; -} -function objectLambda(obj) { - let code = "{", i = 0, key, value; - for(key in obj){ - value = obj[key]; - code += (++i > 1 ? "," : "") + (0, _vegaUtil.stringValue)(key) + ":" + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); - } - return code + "}"; -} -/** - * Standard configuration defaults for Vega specification parsing. - * Users can provide their own (sub-)set of these default values - * by passing in a config object to the top-level parse method. - */ function defaults() { - const defaultFont = "sans-serif", defaultSymbolSize = 30, defaultStrokeWidth = 2, defaultColor = "#4c78a8", black = "#000", gray = "#888", lightGray = "#ddd"; - return { - // default visualization description - description: "Vega visualization", - // default padding around visualization - padding: 0, - // default for automatic sizing; options: 'none', 'pad', 'fit' - // or provide an object (e.g., {'type': 'pad', 'resize': true}) - autosize: "pad", - // default view background color - // covers the entire view component - background: null, - // default event handling configuration - // preventDefault for view-sourced event types except 'wheel' - events: { - defaults: { - allow: [ - "wheel" - ] - } - }, - // defaults for top-level group marks - // accepts mark properties (fill, stroke, etc) - // covers the data rectangle within group width/height - group: null, - // defaults for basic mark types - // each subset accepts mark properties (fill, stroke, etc) - mark: null, - arc: { - fill: defaultColor - }, - area: { - fill: defaultColor - }, - image: null, - line: { - stroke: defaultColor, - strokeWidth: defaultStrokeWidth - }, - path: { - stroke: defaultColor - }, - rect: { - fill: defaultColor - }, - rule: { - stroke: black - }, - shape: { - stroke: defaultColor - }, - symbol: { - fill: defaultColor, - size: 64 - }, - text: { - fill: black, - font: defaultFont, - fontSize: 11 - }, - trail: { - fill: defaultColor, - size: defaultStrokeWidth - }, - // style definitions - style: { - // axis & legend labels - "guide-label": { - fill: black, - font: defaultFont, - fontSize: 10 - }, - // axis & legend titles - "guide-title": { - fill: black, - font: defaultFont, - fontSize: 11, - fontWeight: "bold" - }, - // headers, including chart title - "group-title": { - fill: black, - font: defaultFont, - fontSize: 13, - fontWeight: "bold" - }, - // chart subtitle - "group-subtitle": { - fill: black, - font: defaultFont, - fontSize: 12 - }, - // defaults for styled point marks in Vega-Lite - point: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth, - shape: "circle" - }, - circle: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth - }, - square: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth, - shape: "square" - }, - // defaults for styled group marks in Vega-Lite - cell: { - fill: "transparent", - stroke: lightGray - } - }, - // defaults for title - title: { - orient: "top", - anchor: "middle", - offset: 4, - subtitlePadding: 3 - }, - // defaults for axes - axis: { - minExtent: 0, - maxExtent: 200, - bandPosition: 0.5, - domain: true, - domainWidth: 1, - domainColor: gray, - grid: false, - gridWidth: 1, - gridColor: lightGray, - labels: true, - labelAngle: 0, - labelLimit: 180, - labelOffset: 0, - labelPadding: 2, - ticks: true, - tickColor: gray, - tickOffset: 0, - tickRound: true, - tickSize: 5, - tickWidth: 1, - titlePadding: 4 - }, - // correction for centering bias - axisBand: { - tickOffset: -0.5 - }, - // defaults for cartographic projection - projection: { - type: "mercator" - }, - // defaults for legends - legend: { - orient: "right", - padding: 0, - gridAlign: "each", - columnPadding: 10, - rowPadding: 2, - symbolDirection: "vertical", - gradientDirection: "vertical", - gradientLength: 200, - gradientThickness: 16, - gradientStrokeColor: lightGray, - gradientStrokeWidth: 0, - gradientLabelOffset: 2, - labelAlign: "left", - labelBaseline: "middle", - labelLimit: 160, - labelOffset: 4, - labelOverlap: true, - symbolLimit: 30, - symbolType: "circle", - symbolSize: 100, - symbolOffset: 0, - symbolStrokeWidth: 1.5, - symbolBaseFillColor: "transparent", - symbolBaseStrokeColor: gray, - titleLimit: 180, - titleOrient: "top", - titlePadding: 5, - layout: { - offset: 18, - direction: "horizontal", - left: { - direction: "vertical" - }, - right: { - direction: "vertical" - } - } - }, - // defaults for scale ranges - range: { - category: { - scheme: "tableau10" - }, - ordinal: { - scheme: "blues" - }, - heatmap: { - scheme: "yellowgreenblue" - }, - ramp: { - scheme: "blues" - }, - diverging: { - scheme: "blueorange", - extent: [ - 1, - 0 - ] - }, - symbol: [ - "circle", - "square", - "triangle-up", - "cross", - "diamond", - "triangle-right", - "triangle-down", - "triangle-left" - ] - } - }; -} -function parse(spec, config, options) { - if (!(0, _vegaUtil.isObject)(spec)) (0, _vegaUtil.error)("Input Vega specification must be an object."); - config = (0, _vegaUtil.mergeConfig)(defaults(), config, spec.config); - return parseView(spec, new Scope(config, options)).toRuntime(); -} - -},{"vega-util":"dPFAY","vega-functions":"92bWe","vega-event-selector":"lNasS","vega-scale":"evQIv","vega-dataflow":"4kvYg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lNasS":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "parseSelector", ()=>eventSelector); -const VIEW = "view", LBRACK = "[", RBRACK = "]", LBRACE = "{", RBRACE = "}", COLON = ":", COMMA = ",", NAME = "@", GT = ">", ILLEGAL = /[[\]{}]/, DEFAULT_MARKS = { - "*": 1, - arc: 1, - area: 1, - group: 1, - image: 1, - line: 1, - path: 1, - rect: 1, - rule: 1, - shape: 1, - symbol: 1, - text: 1, - trail: 1 -}; -let DEFAULT_SOURCE, MARKS; -/** - * Parse an event selector string. - * Returns an array of event stream definitions. - */ function eventSelector(selector, source, marks) { - DEFAULT_SOURCE = source || VIEW; - MARKS = marks || DEFAULT_MARKS; - return parseMerge(selector.trim()).map(parseSelector); -} -function isMarkType(type) { - return MARKS[type]; -} -function find(s, i, endChar, pushChar, popChar) { - const n = s.length; - let count = 0, c; - for(; i < n; ++i){ - c = s[i]; - if (!count && c === endChar) return i; - else if (popChar && popChar.indexOf(c) >= 0) --count; - else if (pushChar && pushChar.indexOf(c) >= 0) ++count; - } - return i; -} -function parseMerge(s) { - const output = [], n = s.length; - let start = 0, i = 0; - while(i < n){ - i = find(s, i, COMMA, LBRACK + LBRACE, RBRACK + RBRACE); - output.push(s.substring(start, i).trim()); - start = ++i; - } - if (output.length === 0) throw "Empty event selector: " + s; - return output; -} -function parseSelector(s) { - return s[0] === "[" ? parseBetween(s) : parseStream(s); -} -function parseBetween(s) { - const n = s.length; - let i = 1, b; - i = find(s, i, RBRACK, LBRACK, RBRACK); - if (i === n) throw "Empty between selector: " + s; - b = parseMerge(s.substring(1, i)); - if (b.length !== 2) throw "Between selector must have two elements: " + s; - s = s.slice(i + 1).trim(); - if (s[0] !== GT) throw "Expected '>' after between selector: " + s; - b = b.map(parseSelector); - const stream = parseSelector(s.slice(1).trim()); - if (stream.between) return { - between: b, - stream: stream - }; - else stream.between = b; - return stream; -} -function parseStream(s) { - const stream = { - source: DEFAULT_SOURCE - }, source = []; - let throttle = [ - 0, - 0 - ], markname = 0, start = 0, n = s.length, i = 0, j, filter; // extract throttle from end - if (s[n - 1] === RBRACE) { - i = s.lastIndexOf(LBRACE); - if (i >= 0) { - try { - throttle = parseThrottle(s.substring(i + 1, n - 1)); - } catch (e) { - throw "Invalid throttle specification: " + s; - } - s = s.slice(0, i).trim(); - n = s.length; - } else throw "Unmatched right brace: " + s; - i = 0; - } - if (!n) throw s; // set name flag based on first char - if (s[0] === NAME) markname = ++i; // extract first part of multi-part stream selector - j = find(s, i, COLON); - if (j < n) { - source.push(s.substring(start, j).trim()); - start = i = ++j; - } // extract remaining part of stream selector - i = find(s, i, LBRACK); - if (i === n) source.push(s.substring(start, n).trim()); - else { - source.push(s.substring(start, i).trim()); - filter = []; - start = ++i; - if (start === n) throw "Unmatched left bracket: " + s; - } // extract filters - while(i < n){ - i = find(s, i, RBRACK); - if (i === n) throw "Unmatched left bracket: " + s; - filter.push(s.substring(start, i).trim()); - if (i < n - 1 && s[++i] !== LBRACK) throw "Expected left bracket: " + s; - start = ++i; - } // marshall event stream specification - if (!(n = source.length) || ILLEGAL.test(source[n - 1])) throw "Invalid event selector: " + s; - if (n > 1) { - stream.type = source[1]; - if (markname) stream.markname = source[0].slice(1); - else if (isMarkType(source[0])) stream.marktype = source[0]; - else stream.source = source[0]; - } else stream.type = source[0]; - if (stream.type.slice(-1) === "!") { - stream.consume = true; - stream.type = stream.type.slice(0, -1); - } - if (filter != null) stream.filter = filter; - if (throttle[0]) stream.throttle = throttle[0]; - if (throttle[1]) stream.debounce = throttle[1]; - return stream; -} -function parseThrottle(s) { - const a = s.split(COMMA); - if (!s.length || a.length > 2) throw s; - return a.map((_)=>{ - const x = +_; - if (x !== x) throw s; - return x; - }); -} - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kqWZH":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); -parcelHelpers.export(exports, "ArrayExpression", ()=>ArrayExpression); -parcelHelpers.export(exports, "BinaryExpression", ()=>BinaryExpression); -parcelHelpers.export(exports, "CallExpression", ()=>CallExpression); -parcelHelpers.export(exports, "ConditionalExpression", ()=>ConditionalExpression); -parcelHelpers.export(exports, "Identifier", ()=>Identifier); -parcelHelpers.export(exports, "Literal", ()=>Literal); -parcelHelpers.export(exports, "LogicalExpression", ()=>LogicalExpression); -parcelHelpers.export(exports, "MemberExpression", ()=>MemberExpression); -parcelHelpers.export(exports, "ObjectExpression", ()=>ObjectExpression); -parcelHelpers.export(exports, "Property", ()=>Property); -parcelHelpers.export(exports, "RawCode", ()=>RawCode); -parcelHelpers.export(exports, "UnaryExpression", ()=>UnaryExpression); -parcelHelpers.export(exports, "codegen", ()=>codegen); -parcelHelpers.export(exports, "constants", ()=>Constants); -parcelHelpers.export(exports, "functions", ()=>Functions); -parcelHelpers.export(exports, "parse", ()=>parser); -var _vegaUtil = require("vega-util"); -const RawCode = "RawCode"; -const Literal = "Literal"; -const Property = "Property"; -const Identifier = "Identifier"; -const ArrayExpression = "ArrayExpression"; -const BinaryExpression = "BinaryExpression"; -const CallExpression = "CallExpression"; -const ConditionalExpression = "ConditionalExpression"; -const LogicalExpression = "LogicalExpression"; -const MemberExpression = "MemberExpression"; -const ObjectExpression = "ObjectExpression"; -const UnaryExpression = "UnaryExpression"; -function ASTNode(type) { - this.type = type; -} -ASTNode.prototype.visit = function(visitor) { - let c, i, n; - if (visitor(this)) return 1; - for(c = children(this), i = 0, n = c.length; i < n; ++i){ - if (c[i].visit(visitor)) return 1; - } -}; -function children(node) { - switch(node.type){ - case ArrayExpression: - return node.elements; - case BinaryExpression: - case LogicalExpression: - return [ - node.left, - node.right - ]; - case CallExpression: - return [ - node.callee - ].concat(node.arguments); - case ConditionalExpression: - return [ - node.test, - node.consequent, - node.alternate - ]; - case MemberExpression: - return [ - node.object, - node.property - ]; - case ObjectExpression: - return node.properties; - case Property: - return [ - node.key, - node.value - ]; - case UnaryExpression: - return [ - node.argument - ]; - case Identifier: - case Literal: - case RawCode: - default: - return []; - } -} -/* - The following expression parser is based on Esprima (http://esprima.org/). - Original header comment and license for Esprima is included here: - - Copyright (C) 2013 Ariya Hidayat - Copyright (C) 2013 Thaddee Tyl - Copyright (C) 2013 Mathias Bynens - Copyright (C) 2012 Ariya Hidayat - Copyright (C) 2012 Mathias Bynens - Copyright (C) 2012 Joost-Wim Boekesteijn - Copyright (C) 2012 Kris Kowal - Copyright (C) 2012 Yusuke Suzuki - Copyright (C) 2012 Arpad Borsos - Copyright (C) 2011 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ var TokenName, source, index, length, lookahead; -var TokenBooleanLiteral = 1, TokenEOF = 2, TokenIdentifier = 3, TokenKeyword = 4, TokenNullLiteral = 5, TokenNumericLiteral = 6, TokenPunctuator = 7, TokenStringLiteral = 8, TokenRegularExpression = 9; -TokenName = {}; -TokenName[TokenBooleanLiteral] = "Boolean"; -TokenName[TokenEOF] = ""; -TokenName[TokenIdentifier] = "Identifier"; -TokenName[TokenKeyword] = "Keyword"; -TokenName[TokenNullLiteral] = "Null"; -TokenName[TokenNumericLiteral] = "Numeric"; -TokenName[TokenPunctuator] = "Punctuator"; -TokenName[TokenStringLiteral] = "String"; -TokenName[TokenRegularExpression] = "RegularExpression"; -var SyntaxArrayExpression = "ArrayExpression", SyntaxBinaryExpression = "BinaryExpression", SyntaxCallExpression = "CallExpression", SyntaxConditionalExpression = "ConditionalExpression", SyntaxIdentifier = "Identifier", SyntaxLiteral = "Literal", SyntaxLogicalExpression = "LogicalExpression", SyntaxMemberExpression = "MemberExpression", SyntaxObjectExpression = "ObjectExpression", SyntaxProperty = "Property", SyntaxUnaryExpression = "UnaryExpression"; // Error messages should be identical to V8. -var MessageUnexpectedToken = "Unexpected token %0", MessageUnexpectedNumber = "Unexpected number", MessageUnexpectedString = "Unexpected string", MessageUnexpectedIdentifier = "Unexpected identifier", MessageUnexpectedReserved = "Unexpected reserved word", MessageUnexpectedEOS = "Unexpected end of input", MessageInvalidRegExp = "Invalid regular expression", MessageUnterminatedRegExp = "Invalid regular expression: missing /", MessageStrictOctalLiteral = "Octal literals are not allowed in strict mode.", MessageStrictDuplicateProperty = "Duplicate data property in object literal not allowed in strict mode"; -var ILLEGAL = "ILLEGAL", DISABLED = "Disabled."; // See also tools/generate-unicode-regex.py. -var RegexNonAsciiIdentifierStart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), // eslint-disable-next-line no-misleading-character-class -RegexNonAsciiIdentifierPart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"); // Ensure the condition is true, otherwise throw an error. -// This is only to have a better contract semantic, i.e. another safety net -// to catch a logic error. The condition shall be fulfilled in normal case. -// Do NOT use this to enforce a certain condition on any user input. -function assert(condition, message) { - /* istanbul ignore next */ if (!condition) throw new Error("ASSERT: " + message); -} -function isDecimalDigit(ch) { - return ch >= 0x30 && ch <= 0x39; // 0..9 -} -function isHexDigit(ch) { - return "0123456789abcdefABCDEF".indexOf(ch) >= 0; -} -function isOctalDigit(ch) { - return "01234567".indexOf(ch) >= 0; -} // 7.2 White Space -function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [ - 0x1680, - 0x180E, - 0x2000, - 0x2001, - 0x2002, - 0x2003, - 0x2004, - 0x2005, - 0x2006, - 0x2007, - 0x2008, - 0x2009, - 0x200A, - 0x202F, - 0x205F, - 0x3000, - 0xFEFF - ].indexOf(ch) >= 0; -} // 7.3 Line Terminators -function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; -} // 7.6 Identifier Names and Identifiers -function isIdentifierStart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch)); -} -function isIdentifierPart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch >= 0x30 && ch <= 0x39 || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch)); -} // 7.6.1.1 Keywords -const keywords = { - "if": 1, - "in": 1, - "do": 1, - "var": 1, - "for": 1, - "new": 1, - "try": 1, - "let": 1, - "this": 1, - "else": 1, - "case": 1, - "void": 1, - "with": 1, - "enum": 1, - "while": 1, - "break": 1, - "catch": 1, - "throw": 1, - "const": 1, - "yield": 1, - "class": 1, - "super": 1, - "return": 1, - "typeof": 1, - "delete": 1, - "switch": 1, - "export": 1, - "import": 1, - "public": 1, - "static": 1, - "default": 1, - "finally": 1, - "extends": 1, - "package": 1, - "private": 1, - "function": 1, - "continue": 1, - "debugger": 1, - "interface": 1, - "protected": 1, - "instanceof": 1, - "implements": 1 -}; -function skipComment() { - while(index < length){ - const ch = source.charCodeAt(index); - if (isWhiteSpace(ch) || isLineTerminator(ch)) ++index; - else break; - } -} -function scanHexEscape(prefix) { - var i, len, ch, code = 0; - len = prefix === "u" ? 4 : 2; - for(i = 0; i < len; ++i)if (index < length && isHexDigit(source[index])) { - ch = source[index++]; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } else throwError({}, MessageUnexpectedToken, ILLEGAL); - return String.fromCharCode(code); -} -function scanUnicodeCodePointEscape() { - var ch, code, cu1, cu2; - ch = source[index]; - code = 0; // At least, one hex digit is required. - if (ch === "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - while(index < length){ - ch = source[index++]; - if (!isHexDigit(ch)) break; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } - if (code > 0x10FFFF || ch !== "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - // UTF-16 Encoding - if (code <= 0xFFFF) return String.fromCharCode(code); - cu1 = (code - 0x10000 >> 10) + 0xD800; - cu2 = (code - 0x10000 & 1023) + 0xDC00; - return String.fromCharCode(cu1, cu2); -} -function getEscapedIdentifier() { - var ch, id; - ch = source.charCodeAt(index++); - id = String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierStart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id = ch; - } - while(index < length){ - ch = source.charCodeAt(index); - if (!isIdentifierPart(ch)) break; - ++index; - id += String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - id = id.substr(0, id.length - 1); - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierPart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id += ch; - } - } - return id; -} -function getIdentifier() { - var start, ch; - start = index++; - while(index < length){ - ch = source.charCodeAt(index); - if (ch === 0x5C) { - // Blackslash (U+005C) marks Unicode escape sequence. - index = start; - return getEscapedIdentifier(); - } - if (isIdentifierPart(ch)) ++index; - else break; - } - return source.slice(start, index); -} -function scanIdentifier() { - var start, id, type; - start = index; // Backslash (U+005C) starts an escaped character. - id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character. - // Thus, it must be an identifier. - if (id.length === 1) type = TokenIdentifier; - else if (keywords.hasOwnProperty(id)) // eslint-disable-line no-prototype-builtins - type = TokenKeyword; - else if (id === "null") type = TokenNullLiteral; - else if (id === "true" || id === "false") type = TokenBooleanLiteral; - else type = TokenIdentifier; - return { - type: type, - value: id, - start: start, - end: index - }; -} // 7.7 Punctuators -function scanPunctuator() { - var start = index, code = source.charCodeAt(index), code2, ch1 = source[index], ch2, ch3, ch4; - switch(code){ - // Check for most common single-character punctuators. - case 0x2E: - case 0x28: - case 0x29: - case 0x3B: - case 0x2C: - case 0x7B: - case 0x7D: - case 0x5B: - case 0x5D: - case 0x3A: - case 0x3F: - case 0x7E: - // ~ - ++index; - return { - type: TokenPunctuator, - value: String.fromCharCode(code), - start: start, - end: index - }; - default: - code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator. - if (code2 === 0x3D) switch(code){ - case 0x2B: - case 0x2D: - case 0x2F: - case 0x3C: - case 0x3E: - case 0x5E: - case 0x7C: - case 0x25: - case 0x26: - case 0x2A: - // * - index += 2; - return { - type: TokenPunctuator, - value: String.fromCharCode(code) + String.fromCharCode(code2), - start: start, - end: index - }; - case 0x21: - case 0x3D: - // = - index += 2; // !== and === - if (source.charCodeAt(index) === 0x3D) ++index; - return { - type: TokenPunctuator, - value: source.slice(start, index), - start: start, - end: index - }; - } - } // 4-character punctuator: >>>= - ch4 = source.substr(index, 4); - if (ch4 === ">>>=") { - index += 4; - return { - type: TokenPunctuator, - value: ch4, - start: start, - end: index - }; - } // 3-character punctuators: === !== >>> <<= >>= - ch3 = ch4.substr(0, 3); - if (ch3 === ">>>" || ch3 === "<<=" || ch3 === ">>=") { - index += 3; - return { - type: TokenPunctuator, - value: ch3, - start: start, - end: index - }; - } // Other 2-character punctuators: ++ -- << >> && || - ch2 = ch3.substr(0, 2); - if (ch1 === ch2[1] && "+-<>&|".indexOf(ch1) >= 0 || ch2 === "=>") { - index += 2; - return { - type: TokenPunctuator, - value: ch2, - start: start, - end: index - }; - } - if (ch2 === "//") throwError({}, MessageUnexpectedToken, ILLEGAL); - // 1-character punctuators: < > = ! + - * % & | ^ / - if ("<>=!+-*%&|^/".indexOf(ch1) >= 0) { - ++index; - return { - type: TokenPunctuator, - value: ch1, - start: start, - end: index - }; - } - throwError({}, MessageUnexpectedToken, ILLEGAL); -} // 7.8.3 Numeric Literals -function scanHexLiteral(start) { - let number = ""; - while(index < length){ - if (!isHexDigit(source[index])) break; - number += source[index++]; - } - if (number.length === 0) throwError({}, MessageUnexpectedToken, ILLEGAL); - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt("0x" + number, 16), - start: start, - end: index - }; -} -function scanOctalLiteral(start) { - let number = "0" + source[index++]; - while(index < length){ - if (!isOctalDigit(source[index])) break; - number += source[index++]; - } - if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt(number, 8), - octal: true, - start: start, - end: index - }; -} -function scanNumericLiteral() { - var number, start, ch; - ch = source[index]; - assert(isDecimalDigit(ch.charCodeAt(0)) || ch === ".", "Numeric literal must start with a decimal digit or a decimal point"); - start = index; - number = ""; - if (ch !== ".") { - number = source[index++]; - ch = source[index]; // Hex number starts with '0x'. - // Octal number starts with '0'. - if (number === "0") { - if (ch === "x" || ch === "X") { - ++index; - return scanHexLiteral(start); - } - if (isOctalDigit(ch)) return scanOctalLiteral(start); - // decimal number starts with '0' such as '09' is illegal. - if (ch && isDecimalDigit(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - } - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === ".") { - number += source[index++]; - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === "e" || ch === "E") { - number += source[index++]; - ch = source[index]; - if (ch === "+" || ch === "-") number += source[index++]; - if (isDecimalDigit(source.charCodeAt(index))) while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - else throwError({}, MessageUnexpectedToken, ILLEGAL); - } - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseFloat(number), - start: start, - end: index - }; -} // 7.8.4 String Literals -function scanStringLiteral() { - var str = "", quote, start, ch, code, octal = false; - quote = source[index]; - assert(quote === "'" || quote === '"', "String literal must starts with a quote"); - start = index; - ++index; - while(index < length){ - ch = source[index++]; - if (ch === quote) { - quote = ""; - break; - } else if (ch === "\\") { - ch = source[index++]; - if (!ch || !isLineTerminator(ch.charCodeAt(0))) switch(ch){ - case "u": - case "x": - if (source[index] === "{") { - ++index; - str += scanUnicodeCodePointEscape(); - } else str += scanHexEscape(ch); - break; - case "n": - str += "\n"; - break; - case "r": - str += "\r"; - break; - case "t": - str += " "; - break; - case "b": - str += "\b"; - break; - case "f": - str += "\f"; - break; - case "v": - str += "\v"; - break; - default: - if (isOctalDigit(ch)) { - code = "01234567".indexOf(ch); // \0 is not octal escape sequence - if (code !== 0) octal = true; - if (index < length && isOctalDigit(source[index])) { - octal = true; - code = code * 8 + "01234567".indexOf(source[index++]); // 3 digits are only allowed when string starts - // with 0, 1, 2, 3 - if ("0123".indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) code = code * 8 + "01234567".indexOf(source[index++]); - } - str += String.fromCharCode(code); - } else str += ch; - break; - } - else if (ch === "\r" && source[index] === "\n") ++index; - } else if (isLineTerminator(ch.charCodeAt(0))) break; - else str += ch; - } - if (quote !== "") throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenStringLiteral, - value: str, - octal: octal, - start: start, - end: index - }; -} -function testRegExp(pattern, flags) { - let tmp = pattern; - if (flags.indexOf("u") >= 0) // Replace each astral symbol and every Unicode code point - // escape sequence with a single ASCII symbol to avoid throwing on - // regular expressions that are only valid in combination with the - // `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it - // would be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, ($0, $1)=>{ - if (parseInt($1, 16) <= 0x10FFFF) return "x"; - throwError({}, MessageInvalidRegExp); - }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - // First, detect invalid regular expressions. - try { - new RegExp(tmp); - } catch (e) { - throwError({}, MessageInvalidRegExp); - } // Return a regular expression object for this pattern-flag pair, or - // `null` in case the current environment doesn't support the flags it - // uses. - try { - return new RegExp(pattern, flags); - } catch (exception) { - return null; - } -} -function scanRegExpBody() { - var ch, str, classMarker, terminated, body; - ch = source[index]; - assert(ch === "/", "Regular expression literal must start with a slash"); - str = source[index++]; - classMarker = false; - terminated = false; - while(index < length){ - ch = source[index++]; - str += ch; - if (ch === "\\") { - ch = source[index++]; // ECMA-262 7.8.5 - if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - str += ch; - } else if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - else if (classMarker) { - if (ch === "]") classMarker = false; - } else { - if (ch === "/") { - terminated = true; - break; - } else if (ch === "[") classMarker = true; - } - } - if (!terminated) throwError({}, MessageUnterminatedRegExp); - // Exclude leading and trailing slash. - body = str.substr(1, str.length - 2); - return { - value: body, - literal: str - }; -} -function scanRegExpFlags() { - var ch, str, flags; - str = ""; - flags = ""; - while(index < length){ - ch = source[index]; - if (!isIdentifierPart(ch.charCodeAt(0))) break; - ++index; - if (ch === "\\" && index < length) throwError({}, MessageUnexpectedToken, ILLEGAL); - else { - flags += ch; - str += ch; - } - } - if (flags.search(/[^gimuy]/g) >= 0) throwError({}, MessageInvalidRegExp, flags); - return { - value: flags, - literal: str - }; -} -function scanRegExp() { - var start, body, flags, value; - lookahead = null; - skipComment(); - start = index; - body = scanRegExpBody(); - flags = scanRegExpFlags(); - value = testRegExp(body.value, flags.value); - return { - literal: body.literal + flags.literal, - value: value, - regex: { - pattern: body.value, - flags: flags.value - }, - start: start, - end: index - }; -} -function isIdentifierName(token) { - return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral; -} -function advance() { - skipComment(); - if (index >= length) return { - type: TokenEOF, - start: index, - end: index - }; - const ch = source.charCodeAt(index); - if (isIdentifierStart(ch)) return scanIdentifier(); - // Very common: ( and ) and ; - if (ch === 0x28 || ch === 0x29 || ch === 0x3B) return scanPunctuator(); - // String literal starts with single quote (U+0027) or double quote (U+0022). - if (ch === 0x27 || ch === 0x22) return scanStringLiteral(); - // Dot (.) U+002E can also start a floating-point number, hence the need - // to check the next character. - if (ch === 0x2E) { - if (isDecimalDigit(source.charCodeAt(index + 1))) return scanNumericLiteral(); - return scanPunctuator(); - } - if (isDecimalDigit(ch)) return scanNumericLiteral(); - return scanPunctuator(); -} -function lex() { - const token = lookahead; - index = token.end; - lookahead = advance(); - index = token.end; - return token; -} -function peek() { - const pos = index; - lookahead = advance(); - index = pos; -} -function finishArrayExpression(elements) { - const node = new ASTNode(SyntaxArrayExpression); - node.elements = elements; - return node; -} -function finishBinaryExpression(operator, left, right) { - const node = new ASTNode(operator === "||" || operator === "&&" ? SyntaxLogicalExpression : SyntaxBinaryExpression); - node.operator = operator; - node.left = left; - node.right = right; - return node; -} -function finishCallExpression(callee, args) { - const node = new ASTNode(SyntaxCallExpression); - node.callee = callee; - node.arguments = args; - return node; -} -function finishConditionalExpression(test, consequent, alternate) { - const node = new ASTNode(SyntaxConditionalExpression); - node.test = test; - node.consequent = consequent; - node.alternate = alternate; - return node; -} -function finishIdentifier(name) { - const node = new ASTNode(SyntaxIdentifier); - node.name = name; - return node; -} -function finishLiteral(token) { - const node = new ASTNode(SyntaxLiteral); - node.value = token.value; - node.raw = source.slice(token.start, token.end); - if (token.regex) { - if (node.raw === "//") node.raw = "/(?:)/"; - node.regex = token.regex; - } - return node; -} -function finishMemberExpression(accessor, object, property) { - const node = new ASTNode(SyntaxMemberExpression); - node.computed = accessor === "["; - node.object = object; - node.property = property; - if (!node.computed) property.member = true; - return node; -} -function finishObjectExpression(properties) { - const node = new ASTNode(SyntaxObjectExpression); - node.properties = properties; - return node; -} -function finishProperty(kind, key, value) { - const node = new ASTNode(SyntaxProperty); - node.key = key; - node.value = value; - node.kind = kind; - return node; -} -function finishUnaryExpression(operator, argument) { - const node = new ASTNode(SyntaxUnaryExpression); - node.operator = operator; - node.argument = argument; - node.prefix = true; - return node; -} // Throw an exception -function throwError(token, messageFormat) { - var error, args = Array.prototype.slice.call(arguments, 2), msg = messageFormat.replace(/%(\d)/g, (whole, index)=>{ - assert(index < args.length, "Message reference must be in range"); - return args[index]; - }); - error = new Error(msg); - error.index = index; - error.description = msg; - throw error; -} // Throw an exception because of the token. -function throwUnexpected(token) { - if (token.type === TokenEOF) throwError(token, MessageUnexpectedEOS); - if (token.type === TokenNumericLiteral) throwError(token, MessageUnexpectedNumber); - if (token.type === TokenStringLiteral) throwError(token, MessageUnexpectedString); - if (token.type === TokenIdentifier) throwError(token, MessageUnexpectedIdentifier); - if (token.type === TokenKeyword) throwError(token, MessageUnexpectedReserved); - // BooleanLiteral, NullLiteral, or Punctuator. - throwError(token, MessageUnexpectedToken, token.value); -} // Expect the next token to match the specified punctuator. -// If not, an exception will be thrown. -function expect(value) { - const token = lex(); - if (token.type !== TokenPunctuator || token.value !== value) throwUnexpected(token); -} // Return true if the next token matches the specified punctuator. -function match(value) { - return lookahead.type === TokenPunctuator && lookahead.value === value; -} // Return true if the next token matches the specified keyword -function matchKeyword(keyword) { - return lookahead.type === TokenKeyword && lookahead.value === keyword; -} // 11.1.4 Array Initialiser -function parseArrayInitialiser() { - const elements = []; - index = lookahead.start; - expect("["); - while(!match("]"))if (match(",")) { - lex(); - elements.push(null); - } else { - elements.push(parseConditionalExpression()); - if (!match("]")) expect(","); - } - lex(); - return finishArrayExpression(elements); -} // 11.1.5 Object Initialiser -function parseObjectPropertyKey() { - index = lookahead.start; - const token = lex(); // Note: This function is called only from parseObjectProperty(), where - // EOF and Punctuator tokens are already filtered out. - if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) { - if (token.octal) throwError(token, MessageStrictOctalLiteral); - return finishLiteral(token); - } - return finishIdentifier(token.value); -} -function parseObjectProperty() { - var token, key, id, value; - index = lookahead.start; - token = lookahead; - if (token.type === TokenIdentifier) { - id = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", id, value); - } - if (token.type === TokenEOF || token.type === TokenPunctuator) throwUnexpected(token); - else { - key = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", key, value); - } -} -function parseObjectInitialiser() { - var properties = [], property, name, key, map = {}, toString = String; - index = lookahead.start; - expect("{"); - while(!match("}")){ - property = parseObjectProperty(); - if (property.key.type === SyntaxIdentifier) name = property.key.name; - else name = toString(property.key.value); - key = "$" + name; - if (Object.prototype.hasOwnProperty.call(map, key)) throwError({}, MessageStrictDuplicateProperty); - else map[key] = true; - properties.push(property); - if (!match("}")) expect(","); - } - expect("}"); - return finishObjectExpression(properties); -} // 11.1.6 The Grouping Operator -function parseGroupExpression() { - expect("("); - const expr = parseExpression(); - expect(")"); - return expr; -} // 11.1 Primary Expressions -const legalKeywords = { - "if": 1 -}; -function parsePrimaryExpression() { - var type, token, expr; - if (match("(")) return parseGroupExpression(); - if (match("[")) return parseArrayInitialiser(); - if (match("{")) return parseObjectInitialiser(); - type = lookahead.type; - index = lookahead.start; - if (type === TokenIdentifier || legalKeywords[lookahead.value]) expr = finishIdentifier(lex().value); - else if (type === TokenStringLiteral || type === TokenNumericLiteral) { - if (lookahead.octal) throwError(lookahead, MessageStrictOctalLiteral); - expr = finishLiteral(lex()); - } else if (type === TokenKeyword) throw new Error(DISABLED); - else if (type === TokenBooleanLiteral) { - token = lex(); - token.value = token.value === "true"; - expr = finishLiteral(token); - } else if (type === TokenNullLiteral) { - token = lex(); - token.value = null; - expr = finishLiteral(token); - } else if (match("/") || match("/=")) { - expr = finishLiteral(scanRegExp()); - peek(); - } else throwUnexpected(lex()); - return expr; -} // 11.2 Left-Hand-Side Expressions -function parseArguments() { - const args = []; - expect("("); - if (!match(")")) while(index < length){ - args.push(parseConditionalExpression()); - if (match(")")) break; - expect(","); - } - expect(")"); - return args; -} -function parseNonComputedProperty() { - index = lookahead.start; - const token = lex(); - if (!isIdentifierName(token)) throwUnexpected(token); - return finishIdentifier(token.value); -} -function parseNonComputedMember() { - expect("."); - return parseNonComputedProperty(); -} -function parseComputedMember() { - expect("["); - const expr = parseExpression(); - expect("]"); - return expr; -} -function parseLeftHandSideExpressionAllowCall() { - var expr, args, property; - expr = parsePrimaryExpression(); - for(;;){ - if (match(".")) { - property = parseNonComputedMember(); - expr = finishMemberExpression(".", expr, property); - } else if (match("(")) { - args = parseArguments(); - expr = finishCallExpression(expr, args); - } else if (match("[")) { - property = parseComputedMember(); - expr = finishMemberExpression("[", expr, property); - } else break; - } - return expr; -} // 11.3 Postfix Expressions -function parsePostfixExpression() { - const expr = parseLeftHandSideExpressionAllowCall(); - if (lookahead.type === TokenPunctuator) { - if (match("++") || match("--")) throw new Error(DISABLED); - } - return expr; -} // 11.4 Unary Operators -function parseUnaryExpression() { - var token, expr; - if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) expr = parsePostfixExpression(); - else if (match("++") || match("--")) throw new Error(DISABLED); - else if (match("+") || match("-") || match("~") || match("!")) { - token = lex(); - expr = parseUnaryExpression(); - expr = finishUnaryExpression(token.value, expr); - } else if (matchKeyword("delete") || matchKeyword("void") || matchKeyword("typeof")) throw new Error(DISABLED); - else expr = parsePostfixExpression(); - return expr; -} -function binaryPrecedence(token) { - let prec = 0; - if (token.type !== TokenPunctuator && token.type !== TokenKeyword) return 0; - switch(token.value){ - case "||": - prec = 1; - break; - case "&&": - prec = 2; - break; - case "|": - prec = 3; - break; - case "^": - prec = 4; - break; - case "&": - prec = 5; - break; - case "==": - case "!=": - case "===": - case "!==": - prec = 6; - break; - case "<": - case ">": - case "<=": - case ">=": - case "instanceof": - case "in": - prec = 7; - break; - case "<<": - case ">>": - case ">>>": - prec = 8; - break; - case "+": - case "-": - prec = 9; - break; - case "*": - case "/": - case "%": - prec = 11; - break; - } - return prec; -} // 11.5 Multiplicative Operators -// 11.6 Additive Operators -// 11.7 Bitwise Shift Operators -// 11.8 Relational Operators -// 11.9 Equality Operators -// 11.10 Binary Bitwise Operators -// 11.11 Binary Logical Operators -function parseBinaryExpression() { - var marker, markers, expr, token, prec, stack, right, operator, left, i; - marker = lookahead; - left = parseUnaryExpression(); - token = lookahead; - prec = binaryPrecedence(token); - if (prec === 0) return left; - token.prec = prec; - lex(); - markers = [ - marker, - lookahead - ]; - right = parseUnaryExpression(); - stack = [ - left, - token, - right - ]; - while((prec = binaryPrecedence(lookahead)) > 0){ - // Reduce: make a binary expression from the three topmost entries. - while(stack.length > 2 && prec <= stack[stack.length - 2].prec){ - right = stack.pop(); - operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - expr = finishBinaryExpression(operator, left, right); - stack.push(expr); - } // Shift. - token = lex(); - token.prec = prec; - stack.push(token); - markers.push(lookahead); - expr = parseUnaryExpression(); - stack.push(expr); - } // Final reduce to clean-up the stack. - i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while(i > 1){ - markers.pop(); - expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); - i -= 2; - } - return expr; -} // 11.12 Conditional Operator -function parseConditionalExpression() { - var expr, consequent, alternate; - expr = parseBinaryExpression(); - if (match("?")) { - lex(); - consequent = parseConditionalExpression(); - expect(":"); - alternate = parseConditionalExpression(); - expr = finishConditionalExpression(expr, consequent, alternate); + return f; + }, + compareRef (cmp) { + let signal = false; + const check = (_)=>isSignal(_) ? (signal = true, this.signalRef(_.signal)) : isExpr$1(_) ? (signal = true, this.exprRef(_.expr)) : _; + const fields = (0, _vegaUtil.array)(cmp.field).map(check), orders = (0, _vegaUtil.array)(cmp.order).map(check); + return signal ? ref(this.add(Compare({ + fields: fields, + orders: orders + }))) : compareRef(fields, orders); + }, + keyRef (fields, flat) { + let signal = false; + const check = (_)=>isSignal(_) ? (signal = true, ref(sig[_.signal])) : _; + const sig = this.signals; + fields = (0, _vegaUtil.array)(fields).map(check); + return signal ? ref(this.add(Key({ + fields: fields, + flat: flat + }))) : keyRef(fields, flat); + }, + sortRef (sort) { + if (!sort) return sort; // including id ensures stable sorting + const a = aggrField(sort.op, sort.field), o = sort.order || Ascending; + return o.signal ? ref(this.add(Compare({ + fields: a, + orders: this.signalRef(o.signal) + }))) : compareRef(a, o); + }, + // ---- + event (source, type) { + const key = source + ":" + type; + if (!this.events[key]) { + const id = this.id(); + this.streams.push({ + id: id, + source: source, + type: type + }); + this.events[key] = id; + } + return this.events[key]; + }, + // ---- + hasOwnSignal (name) { + return (0, _vegaUtil.hasOwnProperty)(this.signals, name); + }, + addSignal (name, value) { + if (this.hasOwnSignal(name)) (0, _vegaUtil.error)("Duplicate signal name: " + (0, _vegaUtil.stringValue)(name)); + const op = value instanceof Entry ? value : this.add(operator(value)); + return this.signals[name] = op; + }, + getSignal (name) { + if (!this.signals[name]) (0, _vegaUtil.error)("Unrecognized signal name: " + (0, _vegaUtil.stringValue)(name)); + return this.signals[name]; + }, + signalRef (s) { + if (this.signals[s]) return ref(this.signals[s]); + else if (!(0, _vegaUtil.hasOwnProperty)(this.lambdas, s)) this.lambdas[s] = this.add(operator(null)); + return ref(this.lambdas[s]); + }, + parseLambdas () { + const code = Object.keys(this.lambdas); + for(let i = 0, n = code.length; i < n; ++i){ + const s = code[i], e = (0, _vegaFunctions.parseExpression)(s, this), op = this.lambdas[s]; + op.params = e.$params; + op.update = e.$expr; + } + }, + property (spec) { + return spec && spec.signal ? this.signalRef(spec.signal) : spec; + }, + objectProperty (spec) { + return !spec || !(0, _vegaUtil.isObject)(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec)); + }, + exprRef (code, name) { + const params = { + expr: (0, _vegaFunctions.parseExpression)(code, this) + }; + if (name) params.expr.$name = name; + return ref(this.add(Expression(params))); + }, + addBinding (name, bind) { + if (!this.bindings) (0, _vegaUtil.error)("Nested signals do not support binding: " + (0, _vegaUtil.stringValue)(name)); + this.bindings.push((0, _vegaUtil.extend)({ + signal: name + }, bind)); + }, + // ---- + addScaleProj (name, transform) { + if ((0, _vegaUtil.hasOwnProperty)(this.scales, name)) (0, _vegaUtil.error)("Duplicate scale or projection name: " + (0, _vegaUtil.stringValue)(name)); + this.scales[name] = this.add(transform); + }, + addScale (name, params) { + this.addScaleProj(name, Scale(params)); + }, + addProjection (name, params) { + this.addScaleProj(name, Projection(params)); + }, + getScale (name) { + if (!this.scales[name]) (0, _vegaUtil.error)("Unrecognized scale name: " + (0, _vegaUtil.stringValue)(name)); + return this.scales[name]; + }, + scaleRef (name) { + return ref(this.getScale(name)); + }, + scaleType (name) { + return this.getScale(name).params.type; + }, + projectionRef (name) { + return this.scaleRef(name); + }, + projectionType (name) { + return this.scaleType(name); + }, + // ---- + addData (name, dataScope) { + if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.data[name] = dataScope; + }, + getData (name) { + if (!this.data[name]) (0, _vegaUtil.error)("Undefined data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.data[name]; + }, + addDataPipeline (name, entries) { + if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.addData(name, DataScope.fromEntries(this, entries)); } - return expr; -} // 11.14 Comma Operator -function parseExpression() { - const expr = parseConditionalExpression(); - if (match(",")) throw new Error(DISABLED); // no sequence expressions - return expr; -} -function parser(code) { - source = code; - index = 0; - length = source.length; - lookahead = null; - peek(); - const expr = parseExpression(); - if (lookahead.type !== TokenEOF) throw new Error("Unexpect token after expression."); - return expr; -} -var Constants = { - NaN: "NaN", - E: "Math.E", - LN2: "Math.LN2", - LN10: "Math.LN10", - LOG2E: "Math.LOG2E", - LOG10E: "Math.LOG10E", - PI: "Math.PI", - SQRT1_2: "Math.SQRT1_2", - SQRT2: "Math.SQRT2", - MIN_VALUE: "Number.MIN_VALUE", - MAX_VALUE: "Number.MAX_VALUE" }; -function Functions(codegen) { - function fncall(name, args, cast, type) { - let obj = codegen(args[0]); - if (cast) { - obj = cast + "(" + obj + ")"; - if (cast.lastIndexOf("new ", 0) === 0) obj = "(" + obj + ")"; - } - return obj + "." + name + (type < 0 ? "" : type === 0 ? "()" : "(" + args.slice(1).map(codegen).join(",") + ")"); +function propertyLambda(spec) { + return ((0, _vegaUtil.isArray)(spec) ? arrayLambda : objectLambda)(spec); +} +function arrayLambda(array) { + const n = array.length; + let code = "["; + for(let i = 0; i < n; ++i){ + const value = array[i]; + code += (i > 0 ? "," : "") + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); } - function fn(name, cast, type) { - return (args)=>fncall(name, args, cast, type); + return code + "]"; +} +function objectLambda(obj) { + let code = "{", i = 0, key, value; + for(key in obj){ + value = obj[key]; + code += (++i > 1 ? "," : "") + (0, _vegaUtil.stringValue)(key) + ":" + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); } - const DATE = "new Date", STRING = "String", REGEXP = "RegExp"; + return code + "}"; +} +/** + * Standard configuration defaults for Vega specification parsing. + * Users can provide their own (sub-)set of these default values + * by passing in a config object to the top-level parse method. + */ function defaults() { + const defaultFont = "sans-serif", defaultSymbolSize = 30, defaultStrokeWidth = 2, defaultColor = "#4c78a8", black = "#000", gray = "#888", lightGray = "#ddd"; return { - // MATH functions - isNaN: "Number.isNaN", - isFinite: "Number.isFinite", - abs: "Math.abs", - acos: "Math.acos", - asin: "Math.asin", - atan: "Math.atan", - atan2: "Math.atan2", - ceil: "Math.ceil", - cos: "Math.cos", - exp: "Math.exp", - floor: "Math.floor", - log: "Math.log", - max: "Math.max", - min: "Math.min", - pow: "Math.pow", - random: "Math.random", - round: "Math.round", - sin: "Math.sin", - sqrt: "Math.sqrt", - tan: "Math.tan", - clamp: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to clamp function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to clamp function."); - const a = args.map(codegen); - return "Math.max(" + a[1] + ", Math.min(" + a[2] + "," + a[0] + "))"; + // default visualization description + description: "Vega visualization", + // default padding around visualization + padding: 0, + // default for automatic sizing; options: 'none', 'pad', 'fit' + // or provide an object (e.g., {'type': 'pad', 'resize': true}) + autosize: "pad", + // default view background color + // covers the entire view component + background: null, + // default event handling configuration + // preventDefault for view-sourced event types except 'wheel' + events: { + defaults: { + allow: [ + "wheel" + ] + } }, - // DATE functions - now: "Date.now", - utc: "Date.UTC", - datetime: DATE, - date: fn("getDate", DATE, 0), - day: fn("getDay", DATE, 0), - year: fn("getFullYear", DATE, 0), - month: fn("getMonth", DATE, 0), - hours: fn("getHours", DATE, 0), - minutes: fn("getMinutes", DATE, 0), - seconds: fn("getSeconds", DATE, 0), - milliseconds: fn("getMilliseconds", DATE, 0), - time: fn("getTime", DATE, 0), - timezoneoffset: fn("getTimezoneOffset", DATE, 0), - utcdate: fn("getUTCDate", DATE, 0), - utcday: fn("getUTCDay", DATE, 0), - utcyear: fn("getUTCFullYear", DATE, 0), - utcmonth: fn("getUTCMonth", DATE, 0), - utchours: fn("getUTCHours", DATE, 0), - utcminutes: fn("getUTCMinutes", DATE, 0), - utcseconds: fn("getUTCSeconds", DATE, 0), - utcmilliseconds: fn("getUTCMilliseconds", DATE, 0), - // sequence functions - length: fn("length", null, -1), - // STRING functions - parseFloat: "parseFloat", - parseInt: "parseInt", - upper: fn("toUpperCase", STRING, 0), - lower: fn("toLowerCase", STRING, 0), - substring: fn("substring", STRING), - split: fn("split", STRING), - trim: fn("trim", STRING, 0), - // REGEXP functions - regexp: REGEXP, - test: fn("test", REGEXP), - // Control Flow functions - if: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to if function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to if function."); - const a = args.map(codegen); - return "(" + a[0] + "?" + a[1] + ":" + a[2] + ")"; - } - }; -} -function stripQuotes(s) { - const n = s && s.length - 1; - return n && (s[0] === '"' && s[n] === '"' || s[0] === "'" && s[n] === "'") ? s.slice(1, -1) : s; -} -function codegen(opt) { - opt = opt || {}; - const allowed = opt.allowed ? (0, _vegaUtil.toSet)(opt.allowed) : {}, forbidden = opt.forbidden ? (0, _vegaUtil.toSet)(opt.forbidden) : {}, constants = opt.constants || Constants, functions = (opt.functions || Functions)(visit), globalvar = opt.globalvar, fieldvar = opt.fieldvar, outputGlobal = (0, _vegaUtil.isFunction)(globalvar) ? globalvar : (id)=>"".concat(globalvar, '["').concat(id, '"]'); - let globals = {}, fields = {}, memberDepth = 0; - function visit(ast) { - if ((0, _vegaUtil.isString)(ast)) return ast; - const generator = Generators[ast.type]; - if (generator == null) (0, _vegaUtil.error)("Unsupported type: " + ast.type); - return generator(ast); - } - const Generators = { - Literal: (n)=>n.raw, - Identifier: (n)=>{ - const id = n.name; - if (memberDepth > 0) return id; - else if ((0, _vegaUtil.hasOwnProperty)(forbidden, id)) return (0, _vegaUtil.error)("Illegal identifier: " + id); - else if ((0, _vegaUtil.hasOwnProperty)(constants, id)) return constants[id]; - else if ((0, _vegaUtil.hasOwnProperty)(allowed, id)) return id; - else { - globals[id] = 1; - return outputGlobal(id); + // defaults for top-level group marks + // accepts mark properties (fill, stroke, etc) + // covers the data rectangle within group width/height + group: null, + // defaults for basic mark types + // each subset accepts mark properties (fill, stroke, etc) + mark: null, + arc: { + fill: defaultColor + }, + area: { + fill: defaultColor + }, + image: null, + line: { + stroke: defaultColor, + strokeWidth: defaultStrokeWidth + }, + path: { + stroke: defaultColor + }, + rect: { + fill: defaultColor + }, + rule: { + stroke: black + }, + shape: { + stroke: defaultColor + }, + symbol: { + fill: defaultColor, + size: 64 + }, + text: { + fill: black, + font: defaultFont, + fontSize: 11 + }, + trail: { + fill: defaultColor, + size: defaultStrokeWidth + }, + // style definitions + style: { + // axis & legend labels + "guide-label": { + fill: black, + font: defaultFont, + fontSize: 10 + }, + // axis & legend titles + "guide-title": { + fill: black, + font: defaultFont, + fontSize: 11, + fontWeight: "bold" + }, + // headers, including chart title + "group-title": { + fill: black, + font: defaultFont, + fontSize: 13, + fontWeight: "bold" + }, + // chart subtitle + "group-subtitle": { + fill: black, + font: defaultFont, + fontSize: 12 + }, + // defaults for styled point marks in Vega-Lite + point: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth, + shape: "circle" + }, + circle: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth + }, + square: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth, + shape: "square" + }, + // defaults for styled group marks in Vega-Lite + cell: { + fill: "transparent", + stroke: lightGray } }, - MemberExpression: (n)=>{ - const d = !n.computed, o = visit(n.object); - if (d) memberDepth += 1; - const p = visit(n.property); - if (o === fieldvar) // strip quotes to sanitize field name (#1653) - fields[stripQuotes(p)] = 1; - if (d) memberDepth -= 1; - return o + (d ? "." + p : "[" + p + "]"); + // defaults for title + title: { + orient: "top", + anchor: "middle", + offset: 4, + subtitlePadding: 3 }, - CallExpression: (n)=>{ - if (n.callee.type !== "Identifier") (0, _vegaUtil.error)("Illegal callee type: " + n.callee.type); - const callee = n.callee.name, args = n.arguments, fn = (0, _vegaUtil.hasOwnProperty)(functions, callee) && functions[callee]; - if (!fn) (0, _vegaUtil.error)("Unrecognized function: " + callee); - return (0, _vegaUtil.isFunction)(fn) ? fn(args) : fn + "(" + args.map(visit).join(",") + ")"; + // defaults for axes + axis: { + minExtent: 0, + maxExtent: 200, + bandPosition: 0.5, + domain: true, + domainWidth: 1, + domainColor: gray, + grid: false, + gridWidth: 1, + gridColor: lightGray, + labels: true, + labelAngle: 0, + labelLimit: 180, + labelOffset: 0, + labelPadding: 2, + ticks: true, + tickColor: gray, + tickOffset: 0, + tickRound: true, + tickSize: 5, + tickWidth: 1, + titlePadding: 4 }, - ArrayExpression: (n)=>"[" + n.elements.map(visit).join(",") + "]", - BinaryExpression: (n)=>"(" + visit(n.left) + " " + n.operator + " " + visit(n.right) + ")", - UnaryExpression: (n)=>"(" + n.operator + visit(n.argument) + ")", - ConditionalExpression: (n)=>"(" + visit(n.test) + "?" + visit(n.consequent) + ":" + visit(n.alternate) + ")", - LogicalExpression: (n)=>"(" + visit(n.left) + n.operator + visit(n.right) + ")", - ObjectExpression: (n)=>"{" + n.properties.map(visit).join(",") + "}", - Property: (n)=>{ - memberDepth += 1; - const k = visit(n.key); - memberDepth -= 1; - return k + ":" + visit(n.value); + // correction for centering bias + axisBand: { + tickOffset: -0.5 + }, + // defaults for cartographic projection + projection: { + type: "mercator" + }, + // defaults for legends + legend: { + orient: "right", + padding: 0, + gridAlign: "each", + columnPadding: 10, + rowPadding: 2, + symbolDirection: "vertical", + gradientDirection: "vertical", + gradientLength: 200, + gradientThickness: 16, + gradientStrokeColor: lightGray, + gradientStrokeWidth: 0, + gradientLabelOffset: 2, + labelAlign: "left", + labelBaseline: "middle", + labelLimit: 160, + labelOffset: 4, + labelOverlap: true, + symbolLimit: 30, + symbolType: "circle", + symbolSize: 100, + symbolOffset: 0, + symbolStrokeWidth: 1.5, + symbolBaseFillColor: "transparent", + symbolBaseStrokeColor: gray, + titleLimit: 180, + titleOrient: "top", + titlePadding: 5, + layout: { + offset: 18, + direction: "horizontal", + left: { + direction: "vertical" + }, + right: { + direction: "vertical" + } + } + }, + // defaults for scale ranges + range: { + category: { + scheme: "tableau10" + }, + ordinal: { + scheme: "blues" + }, + heatmap: { + scheme: "yellowgreenblue" + }, + ramp: { + scheme: "blues" + }, + diverging: { + scheme: "blueorange", + extent: [ + 1, + 0 + ] + }, + symbol: [ + "circle", + "square", + "triangle-up", + "cross", + "diamond", + "triangle-right", + "triangle-down", + "triangle-left" + ] } }; - function codegen(ast) { - const result = { - code: visit(ast), - globals: Object.keys(globals), - fields: Object.keys(fields) - }; - globals = {}; - fields = {}; - return result; - } - codegen.functions = functions; - codegen.constants = constants; - return codegen; +} +function parse(spec, config, options) { + if (!(0, _vegaUtil.isObject)(spec)) (0, _vegaUtil.error)("Input Vega specification must be an object."); + config = (0, _vegaUtil.mergeConfig)(defaults(), config, spec.config); + return parseView(spec, new Scope(config, options)).toRuntime(); } -},{"vega-util":"dPFAY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kbnnw":[function(require,module,exports) { +},{"vega-util":"dPFAY","vega-functions":"92bWe","vega-event-selector":"kbnnw","vega-scale":"evQIv","vega-dataflow":"4kvYg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kbnnw":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "selector", ()=>eventSelector); +parcelHelpers.export(exports, "parseSelector", ()=>eventSelector); const VIEW = "view", LBRACK = "[", RBRACK = "]", LBRACE = "{", RBRACE = "}", COLON = ":", COMMA = ",", NAME = "@", GT = ">", ILLEGAL = /[[\]{}]/, DEFAULT_MARKS = { "*": 1, arc: 1, diff --git a/docs/tests/v4/es6/js/sanddance-test-es6.js b/docs/tests/v4/es6/js/sanddance-test-es6.js index 484da8f9d..537103fb4 100644 --- a/docs/tests/v4/es6/js/sanddance-test-es6.js +++ b/docs/tests/v4/es6/js/sanddance-test-es6.js @@ -216,9 +216,9 @@ parcelHelpers.export(exports, "timeFormatLocale", ()=>(0, _vegaFormat.timeFormat parcelHelpers.export(exports, "expressionFunction", ()=>(0, _vegaFunctions.expressionFunction)); parcelHelpers.export(exports, "parse", ()=>(0, _vegaParser.parse)); parcelHelpers.export(exports, "runtimeContext", ()=>(0, _vegaRuntime.context)); -parcelHelpers.export(exports, "codegenExpression", ()=>(0, _vegaExpression.codegen)); -parcelHelpers.export(exports, "parseExpression", ()=>(0, _vegaExpression.parse)); -parcelHelpers.export(exports, "parseSelector", ()=>(0, _vegaEventSelector.selector)); +parcelHelpers.export(exports, "codegenExpression", ()=>(0, _vegaExpression.codegenExpression)); +parcelHelpers.export(exports, "parseExpression", ()=>(0, _vegaExpression.parseExpression)); +parcelHelpers.export(exports, "parseSelector", ()=>(0, _vegaEventSelector.parseSelector)); parcelHelpers.export(exports, "version", ()=>version); var _vegaUtil = require("vega-util"); var _vegaDataflow = require("vega-dataflow"); @@ -251,90 +251,9 @@ var _vegaParser = require("vega-parser"); var _vegaRuntime = require("vega-runtime"); var _vegaExpression = require("vega-expression"); var _vegaEventSelector = require("vega-event-selector"); -var name = "vega"; -var version$1 = "5.20.2"; -var description = "The Vega visualization grammar."; -var keywords = [ - "vega", - "visualization", - "interaction", - "dataflow", - "library", - "data", - "d3" -]; -var license = "BSD-3-Clause"; -var author = "UW Interactive Data Lab (http://idl.cs.washington.edu)"; -var main = "build/vega-node.js"; -var module = "build/vega.module.js"; -var unpkg = "build/vega.min.js"; -var jsdelivr = "build/vega.min.js"; -var types = "index.d.ts"; -var repository = "vega/vega"; -var scripts = { - bundle: "rollup -c --config-bundle", - prebuild: "rimraf build && rimraf build-es5", - build: "rollup -c --config-core --config-bundle --config-ie", - postbuild: "node schema-copy", - pretest: "yarn build --config-test", - test: "TZ=America/Los_Angeles tape 'test/**/*-test.js'", - prepublishOnly: "yarn test && yarn build", - postpublish: "./schema-deploy.sh" -}; -var dependencies = { - "vega-crossfilter": "~4.0.5", - "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", - "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", - "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", - "vega-wordcloud": "~4.1.3" -}; -var devDependencies = { - "vega-schema": "*" -}; -var gitHead = "e251dbc61ab6645689d9f349e7dd9d15ddb85bce"; -var pkg = { - name: name, - version: version$1, - description: description, - keywords: keywords, - license: license, - author: author, - main: main, - module: module, - unpkg: unpkg, - jsdelivr: jsdelivr, - types: types, - repository: repository, - scripts: scripts, - dependencies: dependencies, - devDependencies: devDependencies, - gitHead: gitHead -}; +var version = "5.22.1"; // -- Transforms ----- (0, _vegaUtil.extend)((0, _vegaDataflow.transforms), _vegaTransforms, _vegaViewTransforms, _vegaEncode, _vegaGeo, _vegaForce, _vegaLabel, _vegaHierarchy, _vegaRegression, _vegaVoronoi, _vegaWordcloud, _vegaCrossfilter); // -- Exports ----- -const version = pkg.version; },{"vega-util":"bApja","vega-dataflow":"3NitK","vega-transforms":"gA9mK","vega-view-transforms":"i63Ad","vega-encode":"fpesP","vega-geo":"3rF9B","vega-force":"4JCry","vega-hierarchy":"lserr","vega-label":"lZyUZ","vega-regression":"elv3U","vega-voronoi":"96rkJ","vega-wordcloud":"7Z7Aq","vega-crossfilter":"8iEZv","vega-statistics":"5ncfv","vega-time":"27kpp","vega-loader":"gmbOr","vega-scenegraph":"jattk","vega-scale":"bEydG","vega-projection":"4wv4C","vega-view":"cGC2i","vega-format":"47kOt","vega-functions":"iuqsd","vega-parser":"hsy9Z","vega-runtime":"k7ppL","vega-expression":"2l1no","vega-event-selector":"gXMNx","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bApja":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -506,7 +425,7 @@ const Error$1 = 1; const Warn = 2; const Info = 3; const Debug = 4; -function logger(_, method) { +function logger(_, method, handler = log$1) { let level = _ || None; return { level (_) { @@ -516,19 +435,19 @@ function logger(_, method) { } else return level; }, error () { - if (level >= Error$1) log$1(method || "error", "ERROR", arguments); + if (level >= Error$1) handler(method || "error", "ERROR", arguments); return this; }, warn () { - if (level >= Warn) log$1(method || "warn", "WARN", arguments); + if (level >= Warn) handler(method || "warn", "WARN", arguments); return this; }, info () { - if (level >= Info) log$1(method || "log", "INFO", arguments); + if (level >= Info) handler(method || "log", "INFO", arguments); return this; }, debug () { - if (level >= Debug) log$1(method || "log", "DEBUG", arguments); + if (level >= Debug) handler(method || "log", "DEBUG", arguments); return this; } }; @@ -4034,6 +3953,9 @@ parcelHelpers.export(exports, "bisectLeft", ()=>(0, _bisectJs.bisectLeft)); parcelHelpers.export(exports, "bisectCenter", ()=>(0, _bisectJs.bisectCenter)); parcelHelpers.export(exports, "ascending", ()=>(0, _ascendingJsDefault.default)); parcelHelpers.export(exports, "bisector", ()=>(0, _bisectorJsDefault.default)); +parcelHelpers.export(exports, "blur", ()=>(0, _blurJs.blur)); +parcelHelpers.export(exports, "blur2", ()=>(0, _blurJs.blur2)); +parcelHelpers.export(exports, "blurImage", ()=>(0, _blurJs.blurImage)); parcelHelpers.export(exports, "count", ()=>(0, _countJsDefault.default)); parcelHelpers.export(exports, "cross", ()=>(0, _crossJsDefault.default)); parcelHelpers.export(exports, "cumsum", ()=>(0, _cumsumJsDefault.default)); @@ -4044,6 +3966,8 @@ parcelHelpers.export(exports, "Adder", ()=>(0, _fsumJs.Adder)); parcelHelpers.export(exports, "fsum", ()=>(0, _fsumJs.fsum)); parcelHelpers.export(exports, "fcumsum", ()=>(0, _fsumJs.fcumsum)); parcelHelpers.export(exports, "group", ()=>(0, _groupJsDefault.default)); +parcelHelpers.export(exports, "flatGroup", ()=>(0, _groupJs.flatGroup)); +parcelHelpers.export(exports, "flatRollup", ()=>(0, _groupJs.flatRollup)); parcelHelpers.export(exports, "groups", ()=>(0, _groupJs.groups)); parcelHelpers.export(exports, "index", ()=>(0, _groupJs.index)); parcelHelpers.export(exports, "indexes", ()=>(0, _groupJs.indexes)); @@ -4060,16 +3984,20 @@ parcelHelpers.export(exports, "max", ()=>(0, _maxJsDefault.default)); parcelHelpers.export(exports, "maxIndex", ()=>(0, _maxIndexJsDefault.default)); parcelHelpers.export(exports, "mean", ()=>(0, _meanJsDefault.default)); parcelHelpers.export(exports, "median", ()=>(0, _medianJsDefault.default)); +parcelHelpers.export(exports, "medianIndex", ()=>(0, _medianJs.medianIndex)); parcelHelpers.export(exports, "merge", ()=>(0, _mergeJsDefault.default)); parcelHelpers.export(exports, "min", ()=>(0, _minJsDefault.default)); parcelHelpers.export(exports, "minIndex", ()=>(0, _minIndexJsDefault.default)); +parcelHelpers.export(exports, "mode", ()=>(0, _modeJsDefault.default)); parcelHelpers.export(exports, "nice", ()=>(0, _niceJsDefault.default)); parcelHelpers.export(exports, "pairs", ()=>(0, _pairsJsDefault.default)); parcelHelpers.export(exports, "permute", ()=>(0, _permuteJsDefault.default)); parcelHelpers.export(exports, "quantile", ()=>(0, _quantileJsDefault.default)); +parcelHelpers.export(exports, "quantileIndex", ()=>(0, _quantileJs.quantileIndex)); parcelHelpers.export(exports, "quantileSorted", ()=>(0, _quantileJs.quantileSorted)); parcelHelpers.export(exports, "quickselect", ()=>(0, _quickselectJsDefault.default)); parcelHelpers.export(exports, "range", ()=>(0, _rangeJsDefault.default)); +parcelHelpers.export(exports, "rank", ()=>(0, _rankJsDefault.default)); parcelHelpers.export(exports, "least", ()=>(0, _leastJsDefault.default)); parcelHelpers.export(exports, "leastIndex", ()=>(0, _leastIndexJsDefault.default)); parcelHelpers.export(exports, "greatest", ()=>(0, _greatestJsDefault.default)); @@ -4106,6 +4034,7 @@ var _ascendingJs = require("./ascending.js"); var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); var _bisectorJs = require("./bisector.js"); var _bisectorJsDefault = parcelHelpers.interopDefault(_bisectorJs); +var _blurJs = require("./blur.js"); var _countJs = require("./count.js"); var _countJsDefault = parcelHelpers.interopDefault(_countJs); var _crossJs = require("./cross.js"); @@ -4145,6 +4074,8 @@ var _minJs = require("./min.js"); var _minJsDefault = parcelHelpers.interopDefault(_minJs); var _minIndexJs = require("./minIndex.js"); var _minIndexJsDefault = parcelHelpers.interopDefault(_minIndexJs); +var _modeJs = require("./mode.js"); +var _modeJsDefault = parcelHelpers.interopDefault(_modeJs); var _niceJs = require("./nice.js"); var _niceJsDefault = parcelHelpers.interopDefault(_niceJs); var _pairsJs = require("./pairs.js"); @@ -4157,6 +4088,8 @@ var _quickselectJs = require("./quickselect.js"); var _quickselectJsDefault = parcelHelpers.interopDefault(_quickselectJs); var _rangeJs = require("./range.js"); var _rangeJsDefault = parcelHelpers.interopDefault(_rangeJs); +var _rankJs = require("./rank.js"); +var _rankJsDefault = parcelHelpers.interopDefault(_rankJs); var _leastJs = require("./least.js"); var _leastJsDefault = parcelHelpers.interopDefault(_leastJs); var _leastIndexJs = require("./leastIndex.js"); @@ -4207,7 +4140,7 @@ var _unionJs = require("./union.js"); var _unionJsDefault = parcelHelpers.interopDefault(_unionJs); var _internmap = require("internmap"); -},{"./bisect.js":"iJojn","./ascending.js":"60o1Z","./bisector.js":"k5JwJ","./count.js":false,"./cross.js":false,"./cumsum.js":false,"./descending.js":false,"./deviation.js":"euifj","./extent.js":false,"./fsum.js":"g7Aa0","./group.js":false,"./groupSort.js":false,"./bin.js":false,"./threshold/freedmanDiaconis.js":false,"./threshold/scott.js":false,"./threshold/sturges.js":false,"./max.js":"5fCPh","./maxIndex.js":false,"./mean.js":"8HbAa","./median.js":"ai1Kc","./merge.js":"d56l7","./min.js":"h0RAg","./minIndex.js":false,"./nice.js":false,"./pairs.js":false,"./permute.js":"3ydIg","./quantile.js":"49cDh","./quickselect.js":"doA4Q","./range.js":"7QVPN","./least.js":false,"./leastIndex.js":false,"./greatest.js":false,"./greatestIndex.js":false,"./scan.js":false,"./shuffle.js":false,"./sum.js":"hdZOC","./ticks.js":"71MAh","./transpose.js":false,"./variance.js":"gba1Y","./zip.js":false,"./every.js":false,"./some.js":false,"./filter.js":false,"./map.js":false,"./reduce.js":false,"./reverse.js":false,"./sort.js":false,"./difference.js":false,"./disjoint.js":false,"./intersection.js":false,"./subset.js":false,"./superset.js":false,"./union.js":false,"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"iJojn":[function(require,module,exports) { +},{"./bisect.js":"iJojn","./ascending.js":"60o1Z","./bisector.js":"k5JwJ","./blur.js":false,"./count.js":false,"./cross.js":false,"./cumsum.js":false,"./descending.js":"kIC2x","./deviation.js":"euifj","./extent.js":false,"./fsum.js":"g7Aa0","./group.js":false,"./groupSort.js":false,"./bin.js":false,"./threshold/freedmanDiaconis.js":false,"./threshold/scott.js":false,"./threshold/sturges.js":false,"./max.js":"5fCPh","./maxIndex.js":"fm7WL","./mean.js":"8HbAa","./median.js":"ai1Kc","./merge.js":"d56l7","./min.js":"h0RAg","./minIndex.js":"3rpRW","./mode.js":false,"./nice.js":false,"./pairs.js":false,"./permute.js":"3ydIg","./quantile.js":"49cDh","./quickselect.js":"doA4Q","./range.js":"7QVPN","./rank.js":false,"./least.js":false,"./leastIndex.js":false,"./greatest.js":"c4GrS","./greatestIndex.js":false,"./scan.js":false,"./shuffle.js":false,"./sum.js":"hdZOC","./ticks.js":"71MAh","./transpose.js":false,"./variance.js":"gba1Y","./zip.js":false,"./every.js":false,"./some.js":false,"./filter.js":false,"./map.js":false,"./reduce.js":false,"./reverse.js":false,"./sort.js":"bV3FZ","./difference.js":false,"./disjoint.js":false,"./intersection.js":false,"./subset.js":false,"./superset.js":false,"./union.js":false,"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"iJojn":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "bisectRight", ()=>bisectRight); @@ -4228,45 +4161,57 @@ exports.default = bisectRight; },{"./ascending.js":"60o1Z","./bisector.js":"k5JwJ","./number.js":"gcMRK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60o1Z":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -exports.default = function(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -}; +function ascending(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} +exports.default = ascending; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k5JwJ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _ascendingJs = require("./ascending.js"); var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); -exports.default = function(f) { - let delta = f; - let compare = f; - if (f.length === 1) { +var _descendingJs = require("./descending.js"); +var _descendingJsDefault = parcelHelpers.interopDefault(_descendingJs); +function bisector(f) { + let compare1, compare2, delta; + // If an accessor is specified, promote it to a comparator. In this case we + // can test whether the search value is (self-) comparable. We can’t do this + // for a comparator (except for specific, known comparators) because we can’t + // tell if the comparator is symmetric, and an asymmetric comparator can’t be + // used to test whether a single value is comparable. + if (f.length !== 2) { + compare1 = (0, _ascendingJsDefault.default); + compare2 = (d, x)=>(0, _ascendingJsDefault.default)(f(d), x); delta = (d, x)=>f(d) - x; - compare = ascendingComparator(f); + } else { + compare1 = f === (0, _ascendingJsDefault.default) || f === (0, _descendingJsDefault.default) ? f : zero; + compare2 = f; + delta = f; } - function left(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while(lo < hi){ - const mid = lo + hi >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + }while (lo < hi); } return lo; } - function right(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while(lo < hi){ - const mid = lo + hi >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) <= 0) lo = mid + 1; + else hi = mid; + }while (lo < hi); } return lo; } - function center(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; + function center(a, x, lo = 0, hi = a.length) { const i = left(a, x, lo, hi - 1); return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; } @@ -4275,18 +4220,28 @@ exports.default = function(f) { center, right }; -}; -function ascendingComparator(f) { - return (d, x)=>(0, _ascendingJsDefault.default)(f(d), x); +} +exports.default = bisector; +function zero() { + return 0; } -},{"./ascending.js":"60o1Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gcMRK":[function(require,module,exports) { +},{"./ascending.js":"60o1Z","./descending.js":"kIC2x","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kIC2x":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function descending(a, b) { + return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} +exports.default = descending; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gcMRK":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "numbers", ()=>numbers); -exports.default = function(x) { +function number(x) { return x === null ? NaN : +x; -}; +} +exports.default = number; function* numbers(values, valueof) { if (valueof === undefined) { for (let value of values)if (value != null && (value = +value) >= value) yield value; @@ -4409,6 +4364,24 @@ function max(values, valueof) { } exports.default = max; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fm7WL":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function maxIndex(values, valueof) { + let max; + let maxIndex = -1; + let index = -1; + if (valueof === undefined) for (const value of values){ + ++index; + if (value != null && (max < value || max === undefined && value >= value)) max = value, maxIndex = index; + } + else { + for (let value1 of values)if ((value1 = valueof(value1, ++index, values)) != null && (max < value1 || max === undefined && value1 >= value1)) max = value1, maxIndex = index; + } + return maxIndex; +} +exports.default = maxIndex; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8HbAa":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -4428,24 +4401,37 @@ exports.default = mean; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ai1Kc":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "medianIndex", ()=>medianIndex); var _quantileJs = require("./quantile.js"); var _quantileJsDefault = parcelHelpers.interopDefault(_quantileJs); -exports.default = function(values, valueof) { +function median(values, valueof) { return (0, _quantileJsDefault.default)(values, 0.5, valueof); -}; +} +exports.default = median; +function medianIndex(values, valueof) { + return (0, _quantileJs.quantileIndex)(values, 0.5, valueof); +} },{"./quantile.js":"49cDh","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"49cDh":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "quantileSorted", ()=>quantileSorted); +parcelHelpers.export(exports, "quantileIndex", ()=>quantileIndex); var _maxJs = require("./max.js"); var _maxJsDefault = parcelHelpers.interopDefault(_maxJs); +var _maxIndexJs = require("./maxIndex.js"); +var _maxIndexJsDefault = parcelHelpers.interopDefault(_maxIndexJs); var _minJs = require("./min.js"); var _minJsDefault = parcelHelpers.interopDefault(_minJs); +var _minIndexJs = require("./minIndex.js"); +var _minIndexJsDefault = parcelHelpers.interopDefault(_minIndexJs); var _quickselectJs = require("./quickselect.js"); var _quickselectJsDefault = parcelHelpers.interopDefault(_quickselectJs); var _numberJs = require("./number.js"); var _numberJsDefault = parcelHelpers.interopDefault(_numberJs); +var _sortJs = require("./sort.js"); +var _greatestJs = require("./greatest.js"); +var _greatestJsDefault = parcelHelpers.interopDefault(_greatestJs); function quantile(values, p, valueof) { values = Float64Array.from((0, _numberJs.numbers)(values, valueof)); if (!(n = values.length)) return; @@ -4462,8 +4448,16 @@ function quantileSorted(values, p, valueof = (0, _numberJsDefault.default)) { var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = +valueof(values[i0], i0, values), value1 = +valueof(values[i0 + 1], i0 + 1, values); return value0 + (value1 - value0) * (i - i0); } +function quantileIndex(values, p, valueof) { + values = Float64Array.from((0, _numberJs.numbers)(values, valueof)); + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return (0, _minIndexJsDefault.default)(values); + if (p >= 1) return (0, _maxIndexJsDefault.default)(values); + var n, i = Math.floor((n - 1) * p), order = (i, j)=>(0, _sortJs.ascendingDefined)(values[i], values[j]), index = (0, _quickselectJsDefault.default)(Uint32Array.from(values, (_, i)=>i), i, 0, n - 1, order); + return (0, _greatestJsDefault.default)(index.subarray(0, i + 1), (i)=>values[i]); +} -},{"./max.js":"5fCPh","./min.js":"h0RAg","./quickselect.js":"doA4Q","./number.js":"gcMRK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"h0RAg":[function(require,module,exports) { +},{"./max.js":"5fCPh","./maxIndex.js":"fm7WL","./min.js":"h0RAg","./minIndex.js":"3rpRW","./quickselect.js":"doA4Q","./number.js":"gcMRK","./sort.js":"bV3FZ","./greatest.js":"c4GrS","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"h0RAg":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function min(values, valueof) { @@ -4478,12 +4472,30 @@ function min(values, valueof) { } exports.default = min; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3rpRW":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function minIndex(values, valueof) { + let min; + let minIndex = -1; + let index = -1; + if (valueof === undefined) for (const value of values){ + ++index; + if (value != null && (min > value || min === undefined && value >= value)) min = value, minIndex = index; + } + else { + for (let value1 of values)if ((value1 = valueof(value1, ++index, values)) != null && (min > value1 || min === undefined && value1 >= value1)) min = value1, minIndex = index; + } + return minIndex; +} +exports.default = minIndex; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"doA4Q":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _ascendingJs = require("./ascending.js"); -var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); -function quickselect(array, k, left = 0, right = array.length - 1, compare = (0, _ascendingJsDefault.default)) { +var _sortJs = require("./sort.js"); +function quickselect(array, k, left = 0, right = array.length - 1, compare) { + compare = compare === undefined ? (0, _sortJs.ascendingDefined) : (0, _sortJs.compareDefined)(compare); while(right > left){ if (right - left > 600) { const n = right - left + 1; @@ -4519,6 +4531,87 @@ function swap(array, i, j) { array[j] = t; } +},{"./sort.js":"bV3FZ","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bV3FZ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "compareDefined", ()=>compareDefined); +parcelHelpers.export(exports, "ascendingDefined", ()=>ascendingDefined); +var _ascendingJs = require("./ascending.js"); +var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); +var _permuteJs = require("./permute.js"); +var _permuteJsDefault = parcelHelpers.interopDefault(_permuteJs); +function sort(values, ...F) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + values = Array.from(values); + let [f] = F; + if (f && f.length !== 2 || F.length > 1) { + const index = Uint32Array.from(values, (d, i)=>i); + if (F.length > 1) { + F = F.map((f)=>values.map(f)); + index.sort((i, j)=>{ + for (const f of F){ + const c = ascendingDefined(f[i], f[j]); + if (c) return c; + } + }); + } else { + f = values.map(f); + index.sort((i, j)=>ascendingDefined(f[i], f[j])); + } + return (0, _permuteJsDefault.default)(values, index); + } + return values.sort(compareDefined(f)); +} +exports.default = sort; +function compareDefined(compare = (0, _ascendingJsDefault.default)) { + if (compare === (0, _ascendingJsDefault.default)) return ascendingDefined; + if (typeof compare !== "function") throw new TypeError("compare is not a function"); + return (a, b)=>{ + const x = compare(a, b); + if (x || x === 0) return x; + return (compare(b, b) === 0) - (compare(a, a) === 0); + }; +} +function ascendingDefined(a, b) { + return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0); +} + +},{"./ascending.js":"60o1Z","./permute.js":"3ydIg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3ydIg":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function permute(source, keys) { + return Array.from(keys, (key)=>source[key]); +} +exports.default = permute; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c4GrS":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _ascendingJs = require("./ascending.js"); +var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); +function greatest(values, compare = (0, _ascendingJsDefault.default)) { + let max; + let defined = false; + if (compare.length === 1) { + let maxValue; + for (const element of values){ + const value = compare(element); + if (defined ? (0, _ascendingJsDefault.default)(value, maxValue) > 0 : (0, _ascendingJsDefault.default)(value, value) === 0) { + max = element; + maxValue = value; + defined = true; + } + } + } else { + for (const value1 of values)if (defined ? compare(value1, max) > 0 : compare(value1, value1) === 0) { + max = value1; + defined = true; + } + } + return max; +} +exports.default = greatest; + },{"./ascending.js":"60o1Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"d56l7":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -4530,22 +4623,16 @@ function merge(arrays) { } exports.default = merge; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3ydIg":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -exports.default = function(source, keys) { - return Array.from(keys, (key)=>source[key]); -}; - },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7QVPN":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -exports.default = function(start, stop, step) { +function range(start, stop, step) { start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range = new Array(n); while(++i < n)range[i] = start + i * step; return range; -}; +} +exports.default = range; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hdZOC":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -4568,7 +4655,7 @@ parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "tickIncrement", ()=>tickIncrement); parcelHelpers.export(exports, "tickStep", ()=>tickStep); var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2); -exports.default = function(start, stop, count) { +function ticks(start, stop, count) { var reverse, i = -1, n, ticks, step; stop = +stop, start = +start, count = +count; if (start === stop && count > 0) return [ @@ -4592,7 +4679,8 @@ exports.default = function(start, stop, count) { } if (reverse) ticks.reverse(); return ticks; -}; +} +exports.default = ticks; function tickIncrement(start, stop, count) { var step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power); return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); @@ -4672,7 +4760,7 @@ function intern_set({ _intern , _key }, value) { function intern_delete({ _intern , _key }, value) { const key = _key(value); if (_intern.has(key)) { - value = _intern.get(value); + value = _intern.get(key); _intern.delete(key); } return value; @@ -11032,8 +11120,8 @@ Extent.Definition = { }); if (!Number.isFinite(min) || !Number.isFinite(max)) { let name = (0, _vegaUtil.accessorName)(field); - if (name) name = ` for field "${name}"`; - pulse.dataflow.warn(`Infinite extent${name}: [${min}, ${max}]`); + if (name) name = ' for field "'.concat(name, '"'); + pulse.dataflow.warn("Infinite extent".concat(name, ": [").concat(min, ", ").concat(max, "]")); min = max = undefined; } this.value = [ @@ -12551,7 +12639,7 @@ TimeUnit.Definition = { transform (_, pulse) { const field = _.field, band = _.interval !== false, utc = _.timezone === "utc", floor = this._floor(_, pulse), offset = (utc ? (0, _vegaTime.utcInterval) : (0, _vegaTime.timeInterval))(floor.unit).offset, as = _.as || OUTPUT, u0 = as[0], u1 = as[1], step = floor.step; let min = floor.start || Infinity, max = floor.stop || -Infinity, flag = pulse.ADD; - if (_.modified() || pulse.modified((0, _vegaUtil.accessorFields)(field))) { + if (_.modified() || pulse.changed(pulse.REM) || pulse.modified((0, _vegaUtil.accessorFields)(field))) { pulse = pulse.reflow(true); flag = pulse.SOURCE; min = Infinity; @@ -14906,6 +14994,7 @@ function viewSizeLayout(view, group, viewBounds, _) { },{"vega-dataflow":"3NitK","vega-scenegraph":"jattk","vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jattk":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "path", ()=>(0, _d3Path.path)); parcelHelpers.export(exports, "Bounds", ()=>Bounds); parcelHelpers.export(exports, "CanvasHandler", ()=>CanvasHandler); parcelHelpers.export(exports, "CanvasRenderer", ()=>CanvasRenderer); @@ -14943,7 +15032,7 @@ parcelHelpers.export(exports, "markup", ()=>markup); parcelHelpers.export(exports, "multiLineOffset", ()=>multiLineOffset); parcelHelpers.export(exports, "pathCurves", ()=>curves); parcelHelpers.export(exports, "pathEqual", ()=>pathEqual); -parcelHelpers.export(exports, "pathParse", ()=>pathParse); +parcelHelpers.export(exports, "pathParse", ()=>parse); parcelHelpers.export(exports, "pathRectangle", ()=>vg_rect); parcelHelpers.export(exports, "pathRender", ()=>pathRender); parcelHelpers.export(exports, "pathSymbols", ()=>symbols); @@ -15094,51 +15183,60 @@ function curves(type, orientation, tension) { } return curve; } -// Path parsing and rendering code adapted from fabric.js -- Thanks! -const cmdlen = { +const paramCounts = { m: 2, l: 2, h: 1, v: 1, + z: 0, c: 6, s: 4, q: 4, t: 2, a: 7 -}, regexp = [ - /([MLHVCSQTAZmlhvcsqtaz])/g, - /###/, - /(\.\d+)(\.\d)/g, - /(\d)([-+])/g, - /\s|,|###/ -]; -function pathParse(pathstr) { - const result = []; - let curr, chunks, parsed, param, cmd, len, i, j, n, m; // First, break path into command sequence - const path = pathstr.slice().replace(regexp[0], "###$1").split(regexp[1]).slice(1); // Next, parse each command in turn - for(i = 0, n = path.length; i < n; ++i){ - curr = path[i]; - chunks = curr.slice(1).trim().replace(regexp[2], "$1###$2").replace(regexp[3], "$1###$2").split(regexp[4]); - cmd = curr.charAt(0); - parsed = [ - cmd - ]; - for(j = 0, m = chunks.length; j < m; ++j)if ((param = +chunks[j]) === param) // not NaN - parsed.push(param); - len = cmdlen[cmd.toLowerCase()]; - if (parsed.length - 1 > len) { - const m1 = parsed.length; - j = 1; - result.push([ - cmd - ].concat(parsed.slice(j, j += len))); // handle implicit lineTo (#2803) - cmd = cmd === "M" ? "L" : cmd === "m" ? "l" : cmd; - for(; j < m1; j += len)result.push([ - cmd - ].concat(parsed.slice(j, j + len))); - } else result.push(parsed); +}; +const commandPattern = /[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi; +const numberPattern = /^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/; +const spacePattern = /^((\s+,?\s*)|(,\s*))/; +const flagPattern = /^[01]/; +function parse(path) { + const commands = []; + const matches = path.match(commandPattern) || []; + matches.forEach((str)=>{ + let cmd = str[0]; + const type = cmd.toLowerCase(); // parse parameters + const paramCount = paramCounts[type]; + const params = parseParams(type, paramCount, str.slice(1).trim()); + const count = params.length; // error checking based on parameter count + if (count < paramCount || count && count % paramCount !== 0) throw Error("Invalid SVG path, incorrect parameter count"); + // register the command + commands.push([ + cmd, + ...params.slice(0, paramCount) + ]); // exit now if we're done, also handles zero-param 'z' + if (count === paramCount) return; + // handle implicit line-to + if (type === "m") cmd = cmd === "M" ? "L" : "l"; + // repeat command when given extended param list + for(let i = paramCount; i < count; i += paramCount)commands.push([ + cmd, + ...params.slice(i, i + paramCount) + ]); + }); + return commands; +} +function parseParams(type, paramCount, segment) { + const params = []; + for(let index = 0; paramCount && index < segment.length;)for(let i = 0; i < paramCount; ++i){ + const pattern = type === "a" && (i === 3 || i === 4) ? flagPattern : numberPattern; + const match = segment.slice(index).match(pattern); + if (match === null) throw Error("Invalid SVG path, incorrect parameter type"); + index += match[0].length; + params.push(+match[0]); + const ws = segment.slice(index).match(spacePattern); + if (ws !== null) index += ws[0].length; } - return result; + return params; } const DegToRad = Math.PI / 180; const Epsilon = 1e-14; @@ -15263,7 +15361,7 @@ function pathRender(context, path, l, t, sX, sY) { y = 0, // current y controlX = 0, // current control point x controlY = 0, // current control point y - tempX, tempY, tempControlX, tempControlY; + tempX, tempY, tempControlX, tempControlY, anchorX = 0, anchorY = 0; if (l == null) l = 0; if (t == null) t = 0; if (sX == null) sX = 1; @@ -15310,12 +15408,16 @@ function pathRender(context, path, l, t, sX, sY) { // moveTo, relative x += current[1]; y += current[2]; + anchorX = x; + anchorY = y; context.moveTo(x + l, y + t); break; case "M": // moveTo, absolute x = current[1]; y = current[2]; + anchorX = x; + anchorY = y; context.moveTo(x + l, y + t); break; case "c": @@ -15452,6 +15554,8 @@ function pathRender(context, path, l, t, sX, sY) { break; case "z": case "Z": + x = anchorX; + y = anchorY; context.closePath(); break; } @@ -15589,7 +15693,7 @@ function symbols(_) { var custom = {}; function customSymbol(path) { if (!(0, _vegaUtil.hasOwnProperty)(custom, path)) { - const parsed = pathParse(path); + const parsed = parse(path); custom[path] = { draw: function(context, size) { pathRender(context, parsed, 0, 0, Math.sqrt(size) / 2); @@ -16679,7 +16783,7 @@ function path$1(context, item) { var path = item.path; if (path == null) return true; var x = item.x || 0, y = item.y || 0, sx = item.scaleX || 1, sy = item.scaleY || 1, a = (item.angle || 0) * DegToRad, cache = item.pathCache; - if (!cache || cache.path !== path) (item.pathCache = cache = pathParse(path)).path = path; + if (!cache || cache.path !== path) (item.pathCache = cache = parse(path)).path = path; if (a && context.rotate && context.translate) { context.translate(x, y); context.rotate(a); @@ -16793,7 +16897,7 @@ function measureWidth(item, text) { return fontSize(item) <= 0 || !(text = textValue(item, text)) ? 0 : _measureWidth(text, font(item)); } function _measureWidth(text, currentFont) { - const key = `(${currentFont}) ${text}`; + const key = "(".concat(currentFont, ") ").concat(text); let width = widthCache.get(key); if (width === undefined) { context.font = currentFont; @@ -17250,10 +17354,10 @@ Handler.prototype = { }, /** * Add an event handler. Subclasses should override this method. - */ on () /*type, handler*/ {}, + */ on () {}, /** * Remove an event handler. Subclasses should override this method. - */ off () /*type, handler*/ {}, + */ off () {}, /** * Utility method for finding the array index of an event handler. * @param {Array} h - An array of registered event handlers. @@ -17414,7 +17518,7 @@ Renderer.prototype = { * This base class method does nothing. Subclasses that perform * incremental should implement this method. * @param {Item} item - The dirty item whose bounds should be redrawn. - */ dirty () /*item*/ {}, + */ dirty () {}, /** * Render an input scenegraph, potentially with a set of dirty items. * This method will perform an immediate rendering with available resources. @@ -17439,7 +17543,7 @@ Renderer.prototype = { * Internal rendering method. Renderer subclasses should override this * method to actually perform rendering. * @param {object} scene - The root mark of a scenegraph to render. - */ _render () /*scene*/ {}, + */ _render () {}, /** * Asynchronous rendering method. Similar to render, but returns a Promise * that resolves when all rendering is completed. Sometimes a renderer must @@ -17869,11 +17973,11 @@ const AriaGuides = { }, "title-text": { desc: "title", - caption: (item)=>`Title text '${titleCaption(item)}'` + caption: (item)=>"Title text '".concat(titleCaption(item), "'") }, "title-subtitle": { desc: "subtitle", - caption: (item)=>`Subtitle text '${titleCaption(item)}'` + caption: (item)=>"Subtitle text '".concat(titleCaption(item), "'") } }; // aria properties generated for mark item encoding channels const AriaEncode = { @@ -17889,7 +17993,7 @@ function ariaItemAttributes(emit, item) { const type = item.mark.marktype; emit(ARIA_LABEL, item.description); emit(ARIA_ROLE, item.ariaRole || (type === "group" ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL)); - emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || `${type} mark`); + emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || "".concat(type, " mark")); } } function ariaMarkAttributes(mark) { @@ -17900,7 +18004,7 @@ function ariaMarkAttributes(mark) { function ariaMark(mark) { const type = mark.marktype; const recurse = type === "group" || type === "text" || mark.items.some((_)=>_.description != null && _.aria !== false); - return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, `${type} mark container`, mark.description); + return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, "".concat(type, " mark container"), mark.description); } function ariaGuide(mark, opt) { try { @@ -17915,11 +18019,11 @@ function titleCaption(item) { } function axisCaption(item) { const datum = item.datum, orient = item.orient, title = datum.title ? extractTitle(item) : null, ctx = item.context, scale = ctx.scales[datum.scale].value, locale = ctx.dataflow.locale(), type = scale.type, xy = orient === "left" || orient === "right" ? "Y" : "X"; - return `${xy}-axis` + (title ? ` titled '${title}'` : "") + ` for a ${(0, _vegaScale.isDiscrete)(type) ? "discrete" : type} scale` + ` with ${(0, _vegaScale.domainCaption)(locale, scale, item)}`; + return "".concat(xy, "-axis") + (title ? " titled '".concat(title, "'") : "") + " for a ".concat((0, _vegaScale.isDiscrete)(type) ? "discrete" : type, " scale") + " with ".concat((0, _vegaScale.domainCaption)(locale, scale, item)); } function legendCaption(item) { - const datum = item.datum, title = datum.title ? extractTitle(item) : null, type = `${datum.type || ""} legend`.trim(), scales = datum.scales, props = Object.keys(scales), ctx = item.context, scale = ctx.scales[scales[props[0]]].value, locale = ctx.dataflow.locale(); - return capitalize(type) + (title ? ` titled '${title}'` : "") + ` for ${channelCaption(props)}` + ` with ${(0, _vegaScale.domainCaption)(locale, scale, item)}`; + const datum = item.datum, title = datum.title ? extractTitle(item) : null, type = "".concat(datum.type || "", " legend").trim(), scales = datum.scales, props = Object.keys(scales), ctx = item.context, scale = ctx.scales[scales[props[0]]].value, locale = ctx.dataflow.locale(); + return capitalize(type) + (title ? " titled '".concat(title, "'") : "") + " for ".concat(channelCaption(props)) + " with ".concat((0, _vegaScale.domainCaption)(locale, scale, item)); } function extractTitle(item) { try { @@ -17941,24 +18045,25 @@ function markup() { let buf = "", outer = "", inner = ""; const stack = [], clear = ()=>outer = inner = "", push = (tag)=>{ if (outer) { - buf += `${outer}>${inner}`; + buf += "".concat(outer, ">").concat(inner); clear(); } stack.push(tag); }, attr = (name, value)=>{ - if (value != null) outer += ` ${name}="${attrText(value)}"`; + if (value != null) outer += " ".concat(name, '="').concat(attrText(value), '"'); return m; }, m = { - open (tag, ...attrs) { + open (tag) { push(tag); outer = "<" + tag; + for(var _len = arguments.length, attrs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)attrs[_key - 1] = arguments[_key]; for (const set of attrs)for(const key in set)attr(key, set[key]); return m; }, close () { const tag = stack.pop(); - if (outer) buf += outer + (inner ? `>${inner}` : "/>"); - else buf += ``; + if (outer) buf += outer + (inner ? ">".concat(inner, "") : "/>"); + else buf += ""); clear(); return m; }, @@ -17976,16 +18081,13 @@ function _serialize(m, node) { for(let i = 0; i < n; ++i)m.attr(attrs[i].name, attrs[i].value); } if (node.hasChildNodes()) { - const children = node.childNodes, n1 = children.length; - for(let i1 = 0; i1 < n1; i1++){ - const child = children[i1]; - child.nodeType === 3 // text node - ? m.text(child.nodeValue) : _serialize(m, child); - } + const children = node.childNodes; + for (const child of children)child.nodeType === 3 // text node + ? m.text(child.nodeValue) : _serialize(m, child); } return m.close(); } -const styles = { +const stylesAttr = { fill: "fill", fillOpacity: "fill-opacity", stroke: "stroke", @@ -17996,7 +18098,9 @@ const styles = { strokeDash: "stroke-dasharray", strokeDashOffset: "stroke-dashoffset", strokeMiterLimit: "stroke-miterlimit", - opacity: "opacity", + opacity: "opacity" +}; +const stylesCss = { blend: "mix-blend-mode" }; // ensure miter limit default is consistent with canvas (#2498) const rootAttributes = { @@ -18063,9 +18167,9 @@ const base = Renderer.prototype; setAttributes(this._svg, { width: this._width * this._scale, height: this._height * this._scale, - viewBox: `0 0 ${this._width} ${this._height}` + viewBox: "0 0 ".concat(this._width, " ").concat(this._height) }); - this._root.setAttribute("transform", `translate(${this._origin})`); + this._root.setAttribute("transform", "translate(".concat(this._origin, ")")); } this._dirty = []; return this; @@ -18128,7 +18232,7 @@ const base = Renderer.prototype; * Check if a mark item is considered dirty. * @param {Item} item - The mark item. */ isDirty (item) { - return this._dirtyAll || !item._svg || item.dirty === this._dirtyID; + return this._dirtyAll || !item._svg || !item._svg.ownerSVGElement || item.dirty === this._dirtyID; }, /** * Internal method to check dirty status and, if possible, @@ -18190,13 +18294,13 @@ const base = Renderer.prototype; */ mark (el, scene, prev) { if (!this.isDirty(scene)) return scene._svg; const svg = this._svg, mdef = Marks[scene.marktype], events = scene.interactive === false ? "none" : null, isGroup = mdef.tag === "g"; - let sibling = null, i = 0; const parent = bind(scene, el, prev, "g", svg); parent.setAttribute("class", cssClass(scene)); // apply aria attributes to parent container element const aria = ariaMarkAttributes(scene); for(const key in aria)setAttribute(parent, key, aria[key]); if (!isGroup) setAttribute(parent, "pointer-events", events); setAttribute(parent, "clip-path", scene.clip ? clip$1(this, scene, scene.group) : null); + let sibling = null, i = 0; const process = (item)=>{ const dirty = this.isDirty(item), node = bind(item, parent, sibling, mdef.tag, svg); if (dirty) { @@ -18235,10 +18339,10 @@ const base = Renderer.prototype; * @param {Item} item - The mark item. */ style (el, item) { if (item == null) return; - for(const prop in styles){ + for(const prop in stylesAttr){ let value = prop === "font" ? fontFamily(item) : item[prop]; if (value === values[prop]) continue; - const name = styles[prop]; + const name = stylesAttr[prop]; if (value == null) el.removeAttribute(name); else { if (isGradient(value)) value = gradientRef(value, this._defs.gradient, href()); @@ -18246,6 +18350,7 @@ const base = Renderer.prototype; } values[prop] = value; } + for(const prop1 in stylesCss)setStyle(el, stylesCss[prop1], item[prop1]); }, /** * Render SVG defs, as needed. @@ -18298,7 +18403,7 @@ function updateGradient(el, grad, index) { setAttributes(pt, { width: 1, height: 1, - fill: `url(${href()}#${grad.id})` + fill: "url(".concat(href(), "#").concat(grad.id, ")") }); el = domChild(el, index++, "radialGradient", svgns); setAttributes(el, { @@ -18348,6 +18453,8 @@ function updateClipping(el, clip, index) { return index + 1; } // Recursively process group contents. function recurse(renderer, el, group) { + // child 'g' element is second to last among children (path, g, path) + // other children here are foreground and background path elements el = el.lastChild.previousSibling; let prev, idx = 0; visit(group, (item)=>{ @@ -18524,7 +18631,7 @@ function SVGStringRenderer(loader) { class: "marks", width: this._width * this._scale, height: this._height * this._scale, - viewBox: `0 0 ${this._width} ${this._height}` + viewBox: "0 0 ".concat(this._width, " ").concat(this._height) })); // background, if defined const bg = this._bgcolor; if (bg && bg !== "transparent" && bg !== "none") m.open("rect", { @@ -18700,6 +18807,7 @@ function SVGStringRenderer(loader) { } }); // Helper function for attr for style presentation attributes function style(s, item, scene, tag, defs) { + let styleList; if (item == null) return s; if (tag === "bgrect" && scene.interactive === false) s["pointer-events"] = "none"; if (tag === "bgfore") { @@ -18707,7 +18815,10 @@ function style(s, item, scene, tag, defs) { s.display = "none"; if (item.fill !== null) return s; } - if (tag === "image" && item.smooth === false) s.style = "image-rendering: optimizeSpeed; image-rendering: pixelated;"; + if (tag === "image" && item.smooth === false) styleList = [ + "image-rendering: optimizeSpeed;", + "image-rendering: pixelated;" + ]; if (tag === "text") { s["font-family"] = fontFamily(item); s["font-size"] = fontSize(item) + "px"; @@ -18715,15 +18826,23 @@ function style(s, item, scene, tag, defs) { s["font-variant"] = item.fontVariant; s["font-weight"] = item.fontWeight; } - for(const prop in styles){ + for(const prop in stylesAttr){ let value = item[prop]; - const name = styles[prop]; + const name = stylesAttr[prop]; if (value === "transparent" && (name === "fill" || name === "stroke")) ; else if (value != null) { if (isGradient(value)) value = gradientRef(value, defs.gradient, ""); s[name] = value; } } + for(const prop1 in stylesCss){ + const value1 = item[prop1]; + if (value1 != null) { + styleList = styleList || []; + styleList.push("".concat(stylesCss[prop1], ": ").concat(value1, ";")); + } + } + if (styleList) s.style = styleList.join(" "); return s; } const Canvas = "canvas"; @@ -18812,7 +18931,7 @@ function sceneEqual(a, b, key) { return a === b ? true : key === "path" ? pathEqual(a, b) : a instanceof Date && b instanceof Date ? +a === +b : (0, _vegaUtil.isNumber)(a) && (0, _vegaUtil.isNumber)(b) ? Math.abs(a - b) <= TOLERANCE : !a || !b || !(0, _vegaUtil.isObject)(a) && !(0, _vegaUtil.isObject)(b) ? a == b : objectEqual(a, b); } function pathEqual(a, b) { - return sceneEqual(pathParse(a), pathParse(b)); + return sceneEqual(parse(a), parse(b)); } function objectEqual(a, b) { var ka = Object.keys(a), kb = Object.keys(b), key, i; @@ -18847,18 +18966,27 @@ parcelHelpers.export(exports, "lineRadial", ()=>(0, _lineRadialJsDefault.default ; parcelHelpers.export(exports, "radialLine", ()=>(0, _lineRadialJsDefault.default)); parcelHelpers.export(exports, "pointRadial", ()=>(0, _pointRadialJsDefault.default)); -parcelHelpers.export(exports, "linkHorizontal", ()=>(0, _indexJs.linkHorizontal)); -parcelHelpers.export(exports, "linkVertical", ()=>(0, _indexJs.linkVertical)); -parcelHelpers.export(exports, "linkRadial", ()=>(0, _indexJs.linkRadial)); +parcelHelpers.export(exports, "link", ()=>(0, _linkJs.link)); +parcelHelpers.export(exports, "linkHorizontal", ()=>(0, _linkJs.linkHorizontal)); +parcelHelpers.export(exports, "linkVertical", ()=>(0, _linkJs.linkVertical)); +parcelHelpers.export(exports, "linkRadial", ()=>(0, _linkJs.linkRadial)); parcelHelpers.export(exports, "symbol", ()=>(0, _symbolJsDefault.default)); -parcelHelpers.export(exports, "symbols", ()=>(0, _symbolJs.symbols)); +parcelHelpers.export(exports, "symbolsStroke", ()=>(0, _symbolJs.symbolsStroke)); +parcelHelpers.export(exports, "symbolsFill", ()=>(0, _symbolJs.symbolsFill)); +parcelHelpers.export(exports, "symbols", ()=>(0, _symbolJs.symbolsFill)); +parcelHelpers.export(exports, "symbolAsterisk", ()=>(0, _asteriskJsDefault.default)); parcelHelpers.export(exports, "symbolCircle", ()=>(0, _circleJsDefault.default)); parcelHelpers.export(exports, "symbolCross", ()=>(0, _crossJsDefault.default)); parcelHelpers.export(exports, "symbolDiamond", ()=>(0, _diamondJsDefault.default)); +parcelHelpers.export(exports, "symbolDiamond2", ()=>(0, _diamond2JsDefault.default)); +parcelHelpers.export(exports, "symbolPlus", ()=>(0, _plusJsDefault.default)); parcelHelpers.export(exports, "symbolSquare", ()=>(0, _squareJsDefault.default)); +parcelHelpers.export(exports, "symbolSquare2", ()=>(0, _square2JsDefault.default)); parcelHelpers.export(exports, "symbolStar", ()=>(0, _starJsDefault.default)); parcelHelpers.export(exports, "symbolTriangle", ()=>(0, _triangleJsDefault.default)); +parcelHelpers.export(exports, "symbolTriangle2", ()=>(0, _triangle2JsDefault.default)); parcelHelpers.export(exports, "symbolWye", ()=>(0, _wyeJsDefault.default)); +parcelHelpers.export(exports, "symbolX", ()=>(0, _xJsDefault.default)); parcelHelpers.export(exports, "curveBasisClosed", ()=>(0, _basisClosedJsDefault.default)); parcelHelpers.export(exports, "curveBasisOpen", ()=>(0, _basisOpenJsDefault.default)); parcelHelpers.export(exports, "curveBasis", ()=>(0, _basisJsDefault.default)); @@ -18905,23 +19033,35 @@ var _lineRadialJs = require("./lineRadial.js"); var _lineRadialJsDefault = parcelHelpers.interopDefault(_lineRadialJs); var _pointRadialJs = require("./pointRadial.js"); var _pointRadialJsDefault = parcelHelpers.interopDefault(_pointRadialJs); -var _indexJs = require("./link/index.js"); +var _linkJs = require("./link.js"); var _symbolJs = require("./symbol.js"); var _symbolJsDefault = parcelHelpers.interopDefault(_symbolJs); +var _asteriskJs = require("./symbol/asterisk.js"); +var _asteriskJsDefault = parcelHelpers.interopDefault(_asteriskJs); var _circleJs = require("./symbol/circle.js"); var _circleJsDefault = parcelHelpers.interopDefault(_circleJs); var _crossJs = require("./symbol/cross.js"); var _crossJsDefault = parcelHelpers.interopDefault(_crossJs); var _diamondJs = require("./symbol/diamond.js"); var _diamondJsDefault = parcelHelpers.interopDefault(_diamondJs); +var _diamond2Js = require("./symbol/diamond2.js"); +var _diamond2JsDefault = parcelHelpers.interopDefault(_diamond2Js); +var _plusJs = require("./symbol/plus.js"); +var _plusJsDefault = parcelHelpers.interopDefault(_plusJs); var _squareJs = require("./symbol/square.js"); var _squareJsDefault = parcelHelpers.interopDefault(_squareJs); +var _square2Js = require("./symbol/square2.js"); +var _square2JsDefault = parcelHelpers.interopDefault(_square2Js); var _starJs = require("./symbol/star.js"); var _starJsDefault = parcelHelpers.interopDefault(_starJs); var _triangleJs = require("./symbol/triangle.js"); var _triangleJsDefault = parcelHelpers.interopDefault(_triangleJs); +var _triangle2Js = require("./symbol/triangle2.js"); +var _triangle2JsDefault = parcelHelpers.interopDefault(_triangle2Js); var _wyeJs = require("./symbol/wye.js"); var _wyeJsDefault = parcelHelpers.interopDefault(_wyeJs); +var _xJs = require("./symbol/x.js"); +var _xJsDefault = parcelHelpers.interopDefault(_xJs); var _basisClosedJs = require("./curve/basisClosed.js"); var _basisClosedJsDefault = parcelHelpers.interopDefault(_basisClosedJs); var _basisOpenJs = require("./curve/basisOpen.js"); @@ -18977,7 +19117,7 @@ var _noneJsDefault1 = parcelHelpers.interopDefault(_noneJs1); var _reverseJs = require("./order/reverse.js"); var _reverseJsDefault = parcelHelpers.interopDefault(_reverseJs); -},{"./arc.js":"c3ptb","./area.js":"lblzF","./line.js":"jVTJi","./pie.js":false,"./areaRadial.js":false,"./lineRadial.js":false,"./pointRadial.js":false,"./link/index.js":false,"./symbol.js":"bcejp","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/square.js":"fXRAH","./symbol/star.js":"8nJiq","./symbol/triangle.js":"bClaq","./symbol/wye.js":"2D9bg","./curve/basisClosed.js":"3uf9r","./curve/basisOpen.js":"4LPKP","./curve/basis.js":"gNfFM","./curve/bump.js":false,"./curve/bundle.js":"7Gw48","./curve/cardinalClosed.js":"e0Ty2","./curve/cardinalOpen.js":"4cTvH","./curve/cardinal.js":"i0afA","./curve/catmullRomClosed.js":"kfNnJ","./curve/catmullRomOpen.js":"amodp","./curve/catmullRom.js":"8d6GP","./curve/linearClosed.js":"gpcM0","./curve/linear.js":"huz8f","./curve/monotone.js":"kghkb","./curve/natural.js":"4f94Q","./curve/step.js":"l5kmS","./stack.js":false,"./offset/expand.js":false,"./offset/diverging.js":false,"./offset/none.js":false,"./offset/silhouette.js":false,"./offset/wiggle.js":false,"./order/appearance.js":false,"./order/ascending.js":false,"./order/descending.js":false,"./order/insideOut.js":false,"./order/none.js":false,"./order/reverse.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c3ptb":[function(require,module,exports) { +},{"./arc.js":"c3ptb","./area.js":"lblzF","./line.js":"jVTJi","./pie.js":false,"./areaRadial.js":false,"./lineRadial.js":false,"./pointRadial.js":false,"./link.js":false,"./symbol.js":"bcejp","./symbol/asterisk.js":"kHR3A","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/diamond2.js":"WsFhi","./symbol/plus.js":"a9FVq","./symbol/square.js":"fXRAH","./symbol/square2.js":"69bxi","./symbol/star.js":"8nJiq","./symbol/triangle.js":"bClaq","./symbol/triangle2.js":"8s1uD","./symbol/wye.js":"2D9bg","./symbol/x.js":"fnfky","./curve/basisClosed.js":"3uf9r","./curve/basisOpen.js":"4LPKP","./curve/basis.js":"gNfFM","./curve/bump.js":false,"./curve/bundle.js":"7Gw48","./curve/cardinalClosed.js":"e0Ty2","./curve/cardinalOpen.js":"4cTvH","./curve/cardinal.js":"i0afA","./curve/catmullRomClosed.js":"kfNnJ","./curve/catmullRomOpen.js":"amodp","./curve/catmullRom.js":"8d6GP","./curve/linearClosed.js":"gpcM0","./curve/linear.js":"huz8f","./curve/monotone.js":"kghkb","./curve/natural.js":"4f94Q","./curve/step.js":"l5kmS","./stack.js":false,"./offset/expand.js":false,"./offset/diverging.js":false,"./offset/none.js":false,"./offset/silhouette.js":false,"./offset/wiggle.js":false,"./order/appearance.js":false,"./order/ascending.js":false,"./order/descending.js":false,"./order/insideOut.js":false,"./order/none.js":false,"./order/reverse.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c3ptb":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _d3Path = require("d3-path"); @@ -19232,17 +19372,17 @@ parcelHelpers.export(exports, "halfPi", ()=>halfPi); parcelHelpers.export(exports, "tau", ()=>tau); parcelHelpers.export(exports, "acos", ()=>acos); parcelHelpers.export(exports, "asin", ()=>asin); -var abs = Math.abs; -var atan2 = Math.atan2; -var cos = Math.cos; -var max = Math.max; -var min = Math.min; -var sin = Math.sin; -var sqrt = Math.sqrt; -var epsilon = 1e-12; -var pi = Math.PI; -var halfPi = pi / 2; -var tau = 2 * pi; +const abs = Math.abs; +const atan2 = Math.atan2; +const cos = Math.cos; +const max = Math.max; +const min = Math.min; +const sin = Math.sin; +const sqrt = Math.sqrt; +const epsilon = 1e-12; +const pi = Math.PI; +const halfPi = pi / 2; +const tau = 2 * pi; function acos(x) { return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); } @@ -19372,7 +19512,7 @@ Linear.prototype = { this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; case 1: - this._point = 2; // proceed + this._point = 2; // falls through default: this._context.lineTo(x, y); break; @@ -19443,25 +19583,38 @@ function y(p) { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bcejp":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "symbols", ()=>symbols); +parcelHelpers.export(exports, "symbolsFill", ()=>symbolsFill); +parcelHelpers.export(exports, "symbolsStroke", ()=>symbolsStroke); var _d3Path = require("d3-path"); +var _constantJs = require("./constant.js"); +var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); +var _asteriskJs = require("./symbol/asterisk.js"); +var _asteriskJsDefault = parcelHelpers.interopDefault(_asteriskJs); var _circleJs = require("./symbol/circle.js"); var _circleJsDefault = parcelHelpers.interopDefault(_circleJs); var _crossJs = require("./symbol/cross.js"); var _crossJsDefault = parcelHelpers.interopDefault(_crossJs); var _diamondJs = require("./symbol/diamond.js"); var _diamondJsDefault = parcelHelpers.interopDefault(_diamondJs); -var _starJs = require("./symbol/star.js"); -var _starJsDefault = parcelHelpers.interopDefault(_starJs); +var _diamond2Js = require("./symbol/diamond2.js"); +var _diamond2JsDefault = parcelHelpers.interopDefault(_diamond2Js); +var _plusJs = require("./symbol/plus.js"); +var _plusJsDefault = parcelHelpers.interopDefault(_plusJs); var _squareJs = require("./symbol/square.js"); var _squareJsDefault = parcelHelpers.interopDefault(_squareJs); +var _square2Js = require("./symbol/square2.js"); +var _square2JsDefault = parcelHelpers.interopDefault(_square2Js); +var _starJs = require("./symbol/star.js"); +var _starJsDefault = parcelHelpers.interopDefault(_starJs); var _triangleJs = require("./symbol/triangle.js"); var _triangleJsDefault = parcelHelpers.interopDefault(_triangleJs); +var _triangle2Js = require("./symbol/triangle2.js"); +var _triangle2JsDefault = parcelHelpers.interopDefault(_triangle2Js); var _wyeJs = require("./symbol/wye.js"); var _wyeJsDefault = parcelHelpers.interopDefault(_wyeJs); -var _constantJs = require("./constant.js"); -var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); -var symbols = [ +var _xJs = require("./symbol/x.js"); +var _xJsDefault = parcelHelpers.interopDefault(_xJs); +const symbolsFill = [ (0, _circleJsDefault.default), (0, _crossJsDefault.default), (0, _diamondJsDefault.default), @@ -19470,12 +19623,21 @@ var symbols = [ (0, _triangleJsDefault.default), (0, _wyeJsDefault.default) ]; -exports.default = function(type, size) { - var context = null; +const symbolsStroke = [ + (0, _circleJsDefault.default), + (0, _plusJsDefault.default), + (0, _xJsDefault.default), + (0, _triangle2JsDefault.default), + (0, _asteriskJsDefault.default), + (0, _square2JsDefault.default), + (0, _diamond2JsDefault.default) +]; +function Symbol(type, size) { + let context = null; type = typeof type === "function" ? type : (0, _constantJsDefault.default)(type || (0, _circleJsDefault.default)); size = typeof size === "function" ? size : (0, _constantJsDefault.default)(size === undefined ? 64 : +size); function symbol() { - var buffer; + let buffer; if (!context) context = buffer = (0, _d3Path.path)(); type.apply(this, arguments).draw(context, +size.apply(this, arguments)); if (buffer) return context = null, buffer + "" || null; @@ -19490,15 +19652,35 @@ exports.default = function(type, size) { return arguments.length ? (context = _ == null ? null : _, symbol) : context; }; return symbol; +} +exports.default = Symbol; + +},{"d3-path":"cRa94","./constant.js":"12DQf","./symbol/asterisk.js":"kHR3A","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/diamond2.js":"WsFhi","./symbol/plus.js":"a9FVq","./symbol/square.js":"fXRAH","./symbol/square2.js":"69bxi","./symbol/star.js":"8nJiq","./symbol/triangle.js":"bClaq","./symbol/triangle2.js":"8s1uD","./symbol/wye.js":"2D9bg","./symbol/x.js":"fnfky","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kHR3A":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size + (0, _mathJs.min)(size / 28, 0.75)) * 0.59436; + const t = r / 2; + const u = t * sqrt3; + context.moveTo(0, r); + context.lineTo(0, -r); + context.moveTo(-u, -t); + context.lineTo(u, t); + context.moveTo(-u, t); + context.lineTo(u, -t); + } }; -},{"d3-path":"cRa94","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/star.js":"8nJiq","./symbol/square.js":"fXRAH","./symbol/triangle.js":"bClaq","./symbol/wye.js":"2D9bg","./constant.js":"12DQf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7RXTA":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7RXTA":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / (0, _mathJs.pi)); + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / (0, _mathJs.pi)); context.moveTo(r, 0); context.arc(0, 0, r, 0, (0, _mathJs.tau)); } @@ -19507,9 +19689,10 @@ exports.default = { },{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4cmA2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / 5) / 2; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / 5) / 2; context.moveTo(-3 * r, -r); context.lineTo(-r, -r); context.lineTo(-r, -3 * r); @@ -19526,13 +19709,16 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1gK3j":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1gK3j":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2; +var _mathJs = require("../math.js"); +const tan30 = (0, _mathJs.sqrt)(1 / 3); +const tan30_2 = tan30 * 2; exports.default = { - draw: function(context, size) { - var y = Math.sqrt(size / tan30_2), x = y * tan30; + draw (context, size) { + const y = (0, _mathJs.sqrt)(size / tan30_2); + const x = y * tan30; context.moveTo(0, -y); context.lineTo(x, 0); context.lineTo(0, y); @@ -19541,42 +19727,96 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8nJiq":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"WsFhi":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _mathJs = require("../math.js"); -var ka = 0.89081309152928522810, kr = Math.sin((0, _mathJs.pi) / 10) / Math.sin(7 * (0, _mathJs.pi) / 10), kx = Math.sin((0, _mathJs.tau) / 10) * kr, ky = -Math.cos((0, _mathJs.tau) / 10) * kr; exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size * ka), x = kx * r, y = ky * r; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size) * 0.62625; context.moveTo(0, -r); - context.lineTo(x, y); - for(var i = 1; i < 5; ++i){ - var a = (0, _mathJs.tau) * i / 5, c = Math.cos(a), s = Math.sin(a); - context.lineTo(s * r, -c * r); - context.lineTo(c * x - s * y, s * x + c * y); - } + context.lineTo(r, 0); + context.lineTo(0, r); + context.lineTo(-r, 0); context.closePath(); } }; +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a9FVq":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size - (0, _mathJs.min)(size / 7, 2)) * 0.87559; + context.moveTo(-r, 0); + context.lineTo(r, 0); + context.moveTo(0, r); + context.lineTo(0, -r); + } +}; + },{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fXRAH":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var w = Math.sqrt(size), x = -w / 2; + draw (context, size) { + const w = (0, _mathJs.sqrt)(size); + const x = -w / 2; context.rect(x, x, w, w); } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bClaq":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"69bxi":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size) * 0.4431; + context.moveTo(r, r); + context.lineTo(r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, r); + context.closePath(); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8nJiq":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var sqrt3 = Math.sqrt(3); +var _mathJs = require("../math.js"); +const ka = 0.89081309152928522810; +const kr = (0, _mathJs.sin)((0, _mathJs.pi) / 10) / (0, _mathJs.sin)(7 * (0, _mathJs.pi) / 10); +const kx = (0, _mathJs.sin)((0, _mathJs.tau) / 10) * kr; +const ky = -(0, _mathJs.cos)((0, _mathJs.tau) / 10) * kr; +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size * ka); + const x = kx * r; + const y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for(let i = 1; i < 5; ++i){ + const a = (0, _mathJs.tau) * i / 5; + const c = (0, _mathJs.cos)(a); + const s = (0, _mathJs.sin)(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bClaq":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); exports.default = { - draw: function(context, size) { - var y = -Math.sqrt(size / (sqrt3 * 3)); + draw (context, size) { + const y = -(0, _mathJs.sqrt)(size / (sqrt3 * 3)); context.moveTo(0, y * 2); context.lineTo(-sqrt3 * y, -y); context.lineTo(sqrt3 * y, -y); @@ -19584,13 +19824,37 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2D9bg":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8s1uD":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); +exports.default = { + draw (context, size) { + const s = (0, _mathJs.sqrt)(size) * 0.6824; + const t = s / 2; + const u = s * sqrt3 / 2; // cos(Math.PI / 6) + context.moveTo(0, -s); + context.lineTo(u, t); + context.lineTo(-u, t); + context.closePath(); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2D9bg":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3; +var _mathJs = require("../math.js"); +const c = -0.5; +const s = (0, _mathJs.sqrt)(3) / 2; +const k = 1 / (0, _mathJs.sqrt)(12); +const a = (k / 2 + 1) * 3; exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / a); + const x0 = r / 2, y0 = r * k; + const x1 = x0, y1 = r * k + r; + const x2 = -x1, y2 = y1; context.moveTo(x0, y0); context.lineTo(x1, y1); context.lineTo(x2, y2); @@ -19604,7 +19868,21 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3uf9r":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fnfky":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size - (0, _mathJs.min)(size / 6, 1.7)) * 0.6189; + context.moveTo(-r, -r); + context.lineTo(r, r); + context.moveTo(-r, r); + context.lineTo(r, -r); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3uf9r":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _noopJs = require("../noop.js"); @@ -19696,7 +19974,7 @@ Basis.prototype = { lineEnd: function() { switch(this._point){ case 3: - point(this, this._x1, this._y1); // proceed + point(this, this._x1, this._y1); // falls through case 2: this._context.lineTo(this._x1, this._y1); break; @@ -19716,7 +19994,7 @@ Basis.prototype = { break; case 2: this._point = 3; - this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed + this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through default: point(this, x, y); break; @@ -19766,7 +20044,7 @@ BasisOpen.prototype = { this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _basisJs.point)(this, x, y); break; @@ -19935,7 +20213,7 @@ Cardinal.prototype = { this._x1 = x, this._y1 = y; break; case 2: - this._point = 3; // proceed + this._point = 3; // falls through default: point(this, x, y); break; @@ -19992,7 +20270,7 @@ CardinalOpen.prototype = { this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _cardinalJs.point)(this, x, y); break; @@ -20147,7 +20425,7 @@ CatmullRom.prototype = { this._point = 2; break; case 2: - this._point = 3; // proceed + this._point = 3; // falls through default: point(this, x, y); break; @@ -20210,7 +20488,7 @@ CatmullRomOpen.prototype = { this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _catmullRomJs.point)(this, x, y); break; @@ -20456,7 +20734,7 @@ Step.prototype = { this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; case 1: - this._point = 2; // proceed + this._point = 2; // falls through default: if (this._t <= 0) { this._context.lineTo(this._x, y); @@ -20800,80 +21078,80 @@ function scale(type, scale, metadata) { return this; } else return isValidScaleType(type) ? scales[type] : undefined; } // identity scale -scale(Identity, (0, _d3Scale.scaleIdentity)); // continuous scales -scale(Linear, (0, _d3Scale.scaleLinear), Continuous); -scale(Log, (0, _d3Scale.scaleLog), [ +scale(Identity, _d3Scale.scaleIdentity); // continuous scales +scale(Linear, _d3Scale.scaleLinear, Continuous); +scale(Log, _d3Scale.scaleLog, [ Continuous, Log ]); -scale(Pow, (0, _d3Scale.scalePow), Continuous); -scale(Sqrt, (0, _d3Scale.scaleSqrt), Continuous); -scale(Symlog, (0, _d3Scale.scaleSymlog), Continuous); -scale(Time, (0, _d3Scale.scaleTime), [ +scale(Pow, _d3Scale.scalePow, Continuous); +scale(Sqrt, _d3Scale.scaleSqrt, Continuous); +scale(Symlog, _d3Scale.scaleSymlog, Continuous); +scale(Time, _d3Scale.scaleTime, [ Continuous, Temporal ]); -scale(UTC, (0, _d3Scale.scaleUtc), [ +scale(UTC, _d3Scale.scaleUtc, [ Continuous, Temporal ]); // sequential scales -scale(Sequential, (0, _d3Scale.scaleSequential), [ +scale(Sequential, _d3Scale.scaleSequential, [ Continuous, Interpolating ]); // backwards compat -scale("".concat(Sequential, "-").concat(Linear), (0, _d3Scale.scaleSequential), [ +scale("".concat(Sequential, "-").concat(Linear), _d3Scale.scaleSequential, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Log), (0, _d3Scale.scaleSequentialLog), [ +scale("".concat(Sequential, "-").concat(Log), _d3Scale.scaleSequentialLog, [ Continuous, Interpolating, Log ]); -scale("".concat(Sequential, "-").concat(Pow), (0, _d3Scale.scaleSequentialPow), [ +scale("".concat(Sequential, "-").concat(Pow), _d3Scale.scaleSequentialPow, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Sqrt), (0, _d3Scale.scaleSequentialSqrt), [ +scale("".concat(Sequential, "-").concat(Sqrt), _d3Scale.scaleSequentialSqrt, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Symlog), (0, _d3Scale.scaleSequentialSymlog), [ +scale("".concat(Sequential, "-").concat(Symlog), _d3Scale.scaleSequentialSymlog, [ Continuous, Interpolating ]); // diverging scales -scale("".concat(Diverging, "-").concat(Linear), (0, _d3Scale.scaleDiverging), [ +scale("".concat(Diverging, "-").concat(Linear), _d3Scale.scaleDiverging, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Log), (0, _d3Scale.scaleDivergingLog), [ +scale("".concat(Diverging, "-").concat(Log), _d3Scale.scaleDivergingLog, [ Continuous, Interpolating, Log ]); -scale("".concat(Diverging, "-").concat(Pow), (0, _d3Scale.scaleDivergingPow), [ +scale("".concat(Diverging, "-").concat(Pow), _d3Scale.scaleDivergingPow, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Sqrt), (0, _d3Scale.scaleDivergingSqrt), [ +scale("".concat(Diverging, "-").concat(Sqrt), _d3Scale.scaleDivergingSqrt, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Symlog), (0, _d3Scale.scaleDivergingSymlog), [ +scale("".concat(Diverging, "-").concat(Symlog), _d3Scale.scaleDivergingSymlog, [ Continuous, Interpolating ]); // discretizing scales -scale(Quantile, (0, _d3Scale.scaleQuantile), [ +scale(Quantile, _d3Scale.scaleQuantile, [ Discretizing, Quantile ]); -scale(Quantize, (0, _d3Scale.scaleQuantize), Discretizing); -scale(Threshold, (0, _d3Scale.scaleThreshold), Discretizing); // discrete scales +scale(Quantize, _d3Scale.scaleQuantize, Discretizing); +scale(Threshold, _d3Scale.scaleThreshold, Discretizing); // discrete scales scale(BinOrdinal, scaleBinOrdinal, [ Discrete, Discretizing ]); -scale(Ordinal, (0, _d3Scale.scaleOrdinal), Discrete); +scale(Ordinal, _d3Scale.scaleOrdinal, Discrete); scale(Band, band, Discrete); scale(Point, point, Discrete); function isValidScaleType(type) { @@ -20917,7 +21195,7 @@ function interpolateRange(interpolator, range) { }; } function interpolateColors(colors, type, gamma) { - return (0, _d3Interpolate.piecewise)(interpolate(type || "rgb", gamma), colors); + return _d3Interpolate.piecewise(interpolate(type || "rgb", gamma), colors); } function quantizeInterpolator(interpolator, count) { const samples = new Array(count), n = count + 1; @@ -21297,7 +21575,161 @@ var _divergingJsDefault = parcelHelpers.interopDefault(_divergingJs); var _tickFormatJs = require("./tickFormat.js"); var _tickFormatJsDefault = parcelHelpers.interopDefault(_tickFormatJs); -},{"./band.js":false,"./identity.js":"le9d2","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./ordinal.js":"1j3zZ","./pow.js":"i4lyo","./radial.js":false,"./quantile.js":"aAURo","./quantize.js":"jjcn6","./threshold.js":"8ndX3","./time.js":"cjAqm","./utcTime.js":"cM5gE","./sequential.js":"f1sM1","./sequentialQuantile.js":false,"./diverging.js":"9Qcq3","./tickFormat.js":"dksn9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"le9d2":[function(require,module,exports) { +},{"./band.js":"6WWiS","./identity.js":"le9d2","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./ordinal.js":"1j3zZ","./pow.js":"i4lyo","./radial.js":"5ODOz","./quantile.js":"aAURo","./quantize.js":"jjcn6","./threshold.js":"8ndX3","./time.js":"cjAqm","./utcTime.js":"cM5gE","./sequential.js":"f1sM1","./sequentialQuantile.js":"cSmYu","./diverging.js":"9Qcq3","./tickFormat.js":"dksn9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6WWiS":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "point", ()=>point); +var _d3Array = require("d3-array"); +var _initJs = require("./init.js"); +var _ordinalJs = require("./ordinal.js"); +var _ordinalJsDefault = parcelHelpers.interopDefault(_ordinalJs); +function band() { + var scale = (0, _ordinalJsDefault.default)().unknown(undefined), domain = scale.domain, ordinalRange = scale.range, r0 = 0, r1 = 1, step, bandwidth, round = false, paddingInner = 0, paddingOuter = 0, align = 0.5; + delete scale.unknown; + function rescale() { + var n = domain().length, reverse = r1 < r0, start = reverse ? r1 : r0, stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = (0, _d3Array.range)(n).map(function(i) { + return start + step * i; + }); + return ordinalRange(reverse ? values.reverse() : values); + } + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [ + r0, + r1 + ]; + }; + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + scale.bandwidth = function() { + return bandwidth; + }; + scale.step = function() { + return step; + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + scale.copy = function() { + return band(domain(), [ + r0, + r1 + ]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align); + }; + return (0, _initJs.initRange).apply(rescale(), arguments); +} +exports.default = band; +function pointish(scale) { + var copy = scale.copy; + scale.padding = scale.paddingOuter; + delete scale.paddingInner; + delete scale.paddingOuter; + scale.copy = function() { + return pointish(copy()); + }; + return scale; +} +function point() { + return pointish(band.apply(null, arguments).paddingInner(1)); +} + +},{"d3-array":"6IwJG","./init.js":"kLKEv","./ordinal.js":"1j3zZ","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kLKEv":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "initRange", ()=>initRange); +parcelHelpers.export(exports, "initInterpolator", ()=>initInterpolator); +function initRange(domain, range) { + switch(arguments.length){ + case 0: + break; + case 1: + this.range(domain); + break; + default: + this.range(range).domain(domain); + break; + } + return this; +} +function initInterpolator(domain, interpolator) { + switch(arguments.length){ + case 0: + break; + case 1: + if (typeof domain === "function") this.interpolator(domain); + else this.range(domain); + break; + default: + this.domain(domain); + if (typeof interpolator === "function") this.interpolator(interpolator); + else this.range(interpolator); + break; + } + return this; +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1j3zZ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "implicit", ()=>implicit); +var _d3Array = require("d3-array"); +var _initJs = require("./init.js"); +const implicit = Symbol("implicit"); +function ordinal() { + var index = new (0, _d3Array.InternMap)(), domain = [], range = [], unknown = implicit; + function scale(d) { + let i = index.get(d); + if (i === undefined) { + if (unknown !== implicit) return unknown; + index.set(d, i = domain.push(d) - 1); + } + return range[i % range.length]; + } + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = [], index = new (0, _d3Array.InternMap)(); + for (const value of _){ + if (index.has(value)) continue; + index.set(value, domain.push(value) - 1); + } + return scale; + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + (0, _initJs.initRange).apply(scale, arguments); + return scale; +} +exports.default = ordinal; + +},{"d3-array":"6IwJG","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"le9d2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _linearJs = require("./linear.js"); @@ -21622,34 +22054,7 @@ var _defineJsDefault = parcelHelpers.interopDefault(_defineJs); function Color() {} var darker = 0.7; var brighter = 1 / darker; -var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp("^rgb\\(" + [ - reI, - reI, - reI -] + "\\)$"), reRgbPercent = new RegExp("^rgb\\(" + [ - reP, - reP, - reP -] + "\\)$"), reRgbaInteger = new RegExp("^rgba\\(" + [ - reI, - reI, - reI, - reN -] + "\\)$"), reRgbaPercent = new RegExp("^rgba\\(" + [ - reP, - reP, - reP, - reN -] + "\\)$"), reHslPercent = new RegExp("^hsl\\(" + [ - reN, - reP, - reP -] + "\\)$"), reHslaPercent = new RegExp("^hsla\\(" + [ - reN, - reP, - reP, - reN -] + "\\)$"); +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); var named = { aliceblue: 0xf0f8ff, antiquewhite: 0xfaebd7, @@ -21801,14 +22206,15 @@ var named = { yellowgreen: 0x9acd32 }; (0, _defineJsDefault.default)(Color, color, { - copy: function(channels) { + copy (channels) { return Object.assign(new this.constructor, this, channels); }, - displayable: function() { + displayable () { return this.rgb().displayable(); }, hex: color_formatHex, formatHex: color_formatHex, + formatHex8: color_formatHex8, formatHsl: color_formatHsl, formatRgb: color_formatRgb, toString: color_formatRgb @@ -21816,6 +22222,9 @@ var named = { function color_formatHex() { return this.rgb().formatHex(); } +function color_formatHex8() { + return this.rgb().formatHex8(); +} function color_formatHsl() { return hslConvert(this).formatHsl(); } @@ -21863,35 +22272,47 @@ function Rgb(r, g, b, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Rgb, rgb, (0, _defineJs.extend)(Color, { - brighter: function(k) { + brighter (k) { k = k == null ? brighter : Math.pow(brighter, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? darker : Math.pow(darker, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, - rgb: function() { + rgb () { return this; }, - displayable: function() { + clamp () { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable () { return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1; }, hex: rgb_formatHex, formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, formatRgb: rgb_formatRgb, toString: rgb_formatRgb })); function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; } function rgb_formatRgb() { - var a = this.opacity; - a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? ")" : ", " + a + ")"); + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); } function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); + value = clampi(value); return (value < 16 ? "0" : "") + value.toString(16); } function hsla(h, s, l, a) { @@ -21926,27 +22347,36 @@ function Hsl(h, s, l, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Hsl, hsl, (0, _defineJs.extend)(Color, { - brighter: function(k) { + brighter (k) { k = k == null ? brighter : Math.pow(brighter, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? darker : Math.pow(darker, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, - rgb: function() { + rgb () { var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity); }, - displayable: function() { + clamp () { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable () { return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1; }, - formatHsl: function() { - var a = this.opacity; - a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a === 1 ? ")" : ", " + a + ")"); + formatHsl () { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; } })); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} /* From FvD 13.37, CSS Color Module Level 3 */ function hsl2rgb(h, m1, m2) { return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; } @@ -22005,13 +22435,13 @@ function Lab(l, a, b, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Lab, lab, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); }, - darker: function(k) { + darker (k) { return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); }, - rgb: function() { + rgb () { var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200; x = Xn * lab2xyz(x); y = Yn * lab2xyz(y); @@ -22056,13 +22486,13 @@ function hcl2lab(o) { return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); } (0, _defineJsDefault.default)(Hcl, hcl, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); }, - darker: function(k) { + darker (k) { return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); }, - rgb: function() { + rgb () { return hcl2lab(this).rgb(); } })); @@ -22101,15 +22531,15 @@ function Cubehelix(h, s, l, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Cubehelix, cubehelix, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { k = k == null ? (0, _colorJs.brighter) : Math.pow((0, _colorJs.brighter), k); return new Cubehelix(this.h, this.s, this.l * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? (0, _colorJs.darker) : Math.pow((0, _colorJs.darker), k); return new Cubehelix(this.h, this.s, this.l * k, this.opacity); }, - rgb: function() { + rgb () { var h = isNaN(this.h) ? 0 : (this.h + 120) * (0, _mathJs.radians), l = +this.l, a = isNaN(this.s) ? 0 : this.s * l * (1 - l), cosh = Math.cos(h), sinh = Math.sin(h); return new (0, _colorJs.Rgb)(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity); } @@ -22691,41 +23121,6 @@ function number(x) { } exports.default = number; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kLKEv":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "initRange", ()=>initRange); -parcelHelpers.export(exports, "initInterpolator", ()=>initInterpolator); -function initRange(domain, range) { - switch(arguments.length){ - case 0: - break; - case 1: - this.range(domain); - break; - default: - this.range(range).domain(domain); - break; - } - return this; -} -function initInterpolator(domain, interpolator) { - switch(arguments.length){ - case 0: - break; - case 1: - if (typeof domain === "function") this.interpolator(domain); - else this.range(domain); - break; - default: - this.domain(domain); - if (typeof interpolator === "function") this.interpolator(interpolator); - else this.range(interpolator); - break; - } - return this; -} - },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dksn9":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -22781,22 +23176,20 @@ function pow10(x) { return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; } function powp(base) { - return base === 10 ? pow10 : base === Math.E ? Math.exp : function(x) { - return Math.pow(base, x); - }; + return base === 10 ? pow10 : base === Math.E ? Math.exp : (x)=>Math.pow(base, x); } function logp(base) { - return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function(x) { - return Math.log(x) / base; - }); + return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), (x)=>Math.log(x) / base); } function reflect(f) { - return function(x) { - return -f(-x); - }; + return (x, k)=>-f(-x, k); } function loggish(transform) { - var scale = transform(transformLog, transformExp), domain = scale.domain, base = 10, logs, pows; + const scale = transform(transformLog, transformExp); + const domain = scale.domain; + let base = 10; + let logs; + let pows; function rescale() { logs = logp(base), pows = powp(base); if (domain()[0] < 0) { @@ -22811,20 +23204,31 @@ function loggish(transform) { scale.domain = function(_) { return arguments.length ? (domain(_), rescale()) : domain(); }; - scale.ticks = function(count) { - var d = domain(), u = d[0], v = d[d.length - 1], r; - if (r = v < u) i = u, u = v, v = i; - var i = logs(u), j = logs(v), p, k, t, n = count == null ? 10 : +count, z = []; + scale.ticks = (count)=>{ + const d = domain(); + let u = d[0]; + let v = d[d.length - 1]; + const r = v < u; + if (r) [u, v] = [ + v, + u + ]; + let i = logs(u); + let j = logs(v); + let k; + let t; + const n = count == null ? 10 : +count; + let z = []; if (!(base % 1) && j - i < n) { i = Math.floor(i), j = Math.ceil(j); - if (u > 0) for(; i <= j; ++i)for(k = 1, p = pows(i); k < base; ++k){ - t = p * k; + if (u > 0) for(; i <= j; ++i)for(k = 1; k < base; ++k){ + t = i < 0 ? k / pows(-i) : k * pows(i); if (t < u) continue; if (t > v) break; z.push(t); } - else for(; i <= j; ++i)for(k = base - 1, p = pows(i); k >= 1; --k){ - t = p * k; + else for(; i <= j; ++i)for(k = base - 1; k >= 1; --k){ + t = i > 0 ? k / pows(-i) : k * pows(i); if (t < u) continue; if (t > v) break; z.push(t); @@ -22833,38 +23237,35 @@ function loggish(transform) { } else z = (0, _d3Array.ticks)(i, j, Math.min(j - i, n)).map(pows); return r ? z.reverse() : z; }; - scale.tickFormat = function(count, specifier) { - if (specifier == null) specifier = base === 10 ? ".0e" : ","; - if (typeof specifier !== "function") specifier = (0, _d3Format.format)(specifier); - if (count === Infinity) return specifier; + scale.tickFormat = (count, specifier)=>{ if (count == null) count = 10; - var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? - return function(d) { - var i = d / pows(Math.round(logs(d))); + if (specifier == null) specifier = base === 10 ? "s" : ","; + if (typeof specifier !== "function") { + if (!(base % 1) && (specifier = (0, _d3Format.formatSpecifier)(specifier)).precision == null) specifier.trim = true; + specifier = (0, _d3Format.format)(specifier); + } + if (count === Infinity) return specifier; + const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? + return (d)=>{ + let i = d / pows(Math.round(logs(d))); if (i * base < base - 0.5) i *= base; return i <= k ? specifier(d) : ""; }; }; - scale.nice = function() { + scale.nice = ()=>{ return domain((0, _niceJsDefault.default)(domain(), { - floor: function(x) { - return pows(Math.floor(logs(x))); - }, - ceil: function(x) { - return pows(Math.ceil(logs(x))); - } + floor: (x)=>pows(Math.floor(logs(x))), + ceil: (x)=>pows(Math.ceil(logs(x))) })); }; return scale; } function log() { - var scale = loggish((0, _continuousJs.transformer)()).domain([ + const scale = loggish((0, _continuousJs.transformer)()).domain([ 1, 10 ]); - scale.copy = function() { - return (0, _continuousJs.copy)(scale, log()).base(scale.base()); - }; + scale.copy = ()=>(0, _continuousJs.copy)(scale, log()).base(scale.base()); (0, _initJs.initRange).apply(scale, arguments); return scale; } @@ -22919,47 +23320,7 @@ function symlog() { } exports.default = symlog; -},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1j3zZ":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "implicit", ()=>implicit); -var _initJs = require("./init.js"); -const implicit = Symbol("implicit"); -function ordinal() { - var index = new Map(), domain = [], range = [], unknown = implicit; - function scale(d) { - var key = d + "", i = index.get(key); - if (!i) { - if (unknown !== implicit) return unknown; - index.set(key, i = domain.push(d)); - } - return range[(i - 1) % range.length]; - } - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = [], index = new Map(); - for (const value of _){ - const key = value + ""; - if (index.has(key)) continue; - index.set(key, domain.push(value)); - } - return scale; - }; - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), scale) : range.slice(); - }; - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - scale.copy = function() { - return ordinal(domain, range).unknown(unknown); - }; - (0, _initJs.initRange).apply(scale, arguments); - return scale; -} -exports.default = ordinal; - -},{"./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i4lyo":[function(require,module,exports) { +},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i4lyo":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "powish", ()=>powish); @@ -23001,7 +23362,60 @@ function sqrt() { return pow.apply(null, arguments).exponent(0.5); } -},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"aAURo":[function(require,module,exports) { +},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"5ODOz":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _continuousJs = require("./continuous.js"); +var _continuousJsDefault = parcelHelpers.interopDefault(_continuousJs); +var _initJs = require("./init.js"); +var _linearJs = require("./linear.js"); +var _numberJs = require("./number.js"); +var _numberJsDefault = parcelHelpers.interopDefault(_numberJs); +function square(x) { + return Math.sign(x) * x * x; +} +function unsquare(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); +} +function radial() { + var squared = (0, _continuousJsDefault.default)(), range = [ + 0, + 1 + ], round = false, unknown; + function scale(x) { + var y = unsquare(squared(x)); + return isNaN(y) ? unknown : round ? Math.round(y) : y; + } + scale.invert = function(y) { + return squared.invert(square(y)); + }; + scale.domain = function(_) { + return arguments.length ? (squared.domain(_), scale) : squared.domain(); + }; + scale.range = function(_) { + return arguments.length ? (squared.range((range = Array.from(_, (0, _numberJsDefault.default))).map(square)), scale) : range.slice(); + }; + scale.rangeRound = function(_) { + return scale.range(_).round(true); + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, scale) : round; + }; + scale.clamp = function(_) { + return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return radial(squared.domain(), range).round(round).clamp(squared.clamp()).unknown(unknown); + }; + (0, _initJs.initRange).apply(scale, arguments); + return (0, _linearJs.linearish)(scale); +} +exports.default = radial; + +},{"./continuous.js":"it8xE","./init.js":"kLKEv","./linear.js":"5CETT","./number.js":"bOzsY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"aAURo":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _d3Array = require("d3-array"); @@ -23310,7 +23724,43 @@ function sequentialSqrt() { return sequentialPow.apply(null, arguments).exponent(0.5); } -},{"d3-interpolate":"6gbPP","./continuous.js":"it8xE","./init.js":"kLKEv","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./pow.js":"i4lyo","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9Qcq3":[function(require,module,exports) { +},{"d3-interpolate":"6gbPP","./continuous.js":"it8xE","./init.js":"kLKEv","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./pow.js":"i4lyo","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"cSmYu":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _d3Array = require("d3-array"); +var _continuousJs = require("./continuous.js"); +var _initJs = require("./init.js"); +function sequentialQuantile() { + var domain = [], interpolator = (0, _continuousJs.identity); + function scale(x) { + if (x != null && !isNaN(x = +x)) return interpolator(((0, _d3Array.bisect)(domain, x, 1) - 1) / (domain.length - 1)); + } + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _)if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort((0, _d3Array.ascending)); + return scale; + }; + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + scale.range = function() { + return domain.map((d, i)=>interpolator(i / (domain.length - 1))); + }; + scale.quantiles = function(n) { + return Array.from({ + length: n + 1 + }, (_, i)=>(0, _d3Array.quantile)(domain, i / n)); + }; + scale.copy = function() { + return sequentialQuantile(interpolator).domain(domain); + }; + return (0, _initJs.initInterpolator).apply(scale, arguments); +} +exports.default = sequentialQuantile; + +},{"d3-array":"6IwJG","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9Qcq3":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "divergingLog", ()=>divergingLog); @@ -26809,8 +27259,7 @@ var _d3Array = require("d3-array"); var _cartesianJs = require("./cartesian.js"); var _mathJs = require("./math.js"); function longitude(point) { - if ((0, _mathJs.abs)(point[0]) <= (0, _mathJs.pi)) return point[0]; - else return (0, _mathJs.sign)(point[0]) * (((0, _mathJs.abs)(point[0]) + (0, _mathJs.pi)) % (0, _mathJs.tau) - (0, _mathJs.pi)); + return (0, _mathJs.abs)(point[0]) <= (0, _mathJs.pi) ? point[0] : (0, _mathJs.sign)(point[0]) * (((0, _mathJs.abs)(point[0]) + (0, _mathJs.pi)) % (0, _mathJs.tau) - (0, _mathJs.pi)); } exports.default = function(polygon, point) { var lambda = longitude(point), phi = point[1], sinPhi = (0, _mathJs.sin)(phi), normal = [ @@ -28824,41 +29273,41 @@ exports.default = function() { },{"../math.js":"74X19","./mercator.js":"iIGjZ","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ixW8K":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "geoAiry", ()=>(0, _airyDefault.default)); -parcelHelpers.export(exports, "geoAiryRaw", ()=>(0, _airy.airyRaw)); -parcelHelpers.export(exports, "geoAitoff", ()=>(0, _aitoffDefault.default)); -parcelHelpers.export(exports, "geoAitoffRaw", ()=>(0, _aitoff.aitoffRaw)); -parcelHelpers.export(exports, "geoArmadillo", ()=>(0, _armadilloDefault.default)); -parcelHelpers.export(exports, "geoArmadilloRaw", ()=>(0, _armadillo.armadilloRaw)); -parcelHelpers.export(exports, "geoAugust", ()=>(0, _augustDefault.default)); -parcelHelpers.export(exports, "geoAugustRaw", ()=>(0, _august.augustRaw)); -parcelHelpers.export(exports, "geoBaker", ()=>(0, _bakerDefault.default)); -parcelHelpers.export(exports, "geoBakerRaw", ()=>(0, _baker.bakerRaw)); -parcelHelpers.export(exports, "geoBerghaus", ()=>(0, _berghausDefault.default)); -parcelHelpers.export(exports, "geoBerghausRaw", ()=>(0, _berghaus.berghausRaw)); -parcelHelpers.export(exports, "geoBertin1953", ()=>(0, _bertinDefault.default)); -parcelHelpers.export(exports, "geoBertin1953Raw", ()=>(0, _bertin.bertin1953Raw)); -parcelHelpers.export(exports, "geoBoggs", ()=>(0, _boggsDefault.default)); -parcelHelpers.export(exports, "geoBoggsRaw", ()=>(0, _boggs.boggsRaw)); -parcelHelpers.export(exports, "geoBonne", ()=>(0, _bonneDefault.default)); -parcelHelpers.export(exports, "geoBonneRaw", ()=>(0, _bonne.bonneRaw)); -parcelHelpers.export(exports, "geoBottomley", ()=>(0, _bottomleyDefault.default)); -parcelHelpers.export(exports, "geoBottomleyRaw", ()=>(0, _bottomley.bottomleyRaw)); -parcelHelpers.export(exports, "geoBromley", ()=>(0, _bromleyDefault.default)); -parcelHelpers.export(exports, "geoBromleyRaw", ()=>(0, _bromley.bromleyRaw)); -parcelHelpers.export(exports, "geoChamberlin", ()=>(0, _chamberlinDefault.default)); -parcelHelpers.export(exports, "geoChamberlinRaw", ()=>(0, _chamberlin.chamberlinRaw)); -parcelHelpers.export(exports, "geoChamberlinAfrica", ()=>(0, _chamberlin.chamberlinAfrica)); -parcelHelpers.export(exports, "geoCollignon", ()=>(0, _collignonDefault.default)); -parcelHelpers.export(exports, "geoCollignonRaw", ()=>(0, _collignon.collignonRaw)); -parcelHelpers.export(exports, "geoCraig", ()=>(0, _craigDefault.default)); -parcelHelpers.export(exports, "geoCraigRaw", ()=>(0, _craig.craigRaw)); -parcelHelpers.export(exports, "geoCraster", ()=>(0, _crasterDefault.default)); -parcelHelpers.export(exports, "geoCrasterRaw", ()=>(0, _craster.crasterRaw)); -parcelHelpers.export(exports, "geoCylindricalEqualArea", ()=>(0, _cylindricalEqualAreaDefault.default)); -parcelHelpers.export(exports, "geoCylindricalEqualAreaRaw", ()=>(0, _cylindricalEqualArea.cylindricalEqualAreaRaw)); -parcelHelpers.export(exports, "geoCylindricalStereographic", ()=>(0, _cylindricalStereographicDefault.default)); -parcelHelpers.export(exports, "geoCylindricalStereographicRaw", ()=>(0, _cylindricalStereographic.cylindricalStereographicRaw)); +parcelHelpers.export(exports, "geoAiry", ()=>(0, _airyJsDefault.default)); +parcelHelpers.export(exports, "geoAiryRaw", ()=>(0, _airyJs.airyRaw)); +parcelHelpers.export(exports, "geoAitoff", ()=>(0, _aitoffJsDefault.default)); +parcelHelpers.export(exports, "geoAitoffRaw", ()=>(0, _aitoffJs.aitoffRaw)); +parcelHelpers.export(exports, "geoArmadillo", ()=>(0, _armadilloJsDefault.default)); +parcelHelpers.export(exports, "geoArmadilloRaw", ()=>(0, _armadilloJs.armadilloRaw)); +parcelHelpers.export(exports, "geoAugust", ()=>(0, _augustJsDefault.default)); +parcelHelpers.export(exports, "geoAugustRaw", ()=>(0, _augustJs.augustRaw)); +parcelHelpers.export(exports, "geoBaker", ()=>(0, _bakerJsDefault.default)); +parcelHelpers.export(exports, "geoBakerRaw", ()=>(0, _bakerJs.bakerRaw)); +parcelHelpers.export(exports, "geoBerghaus", ()=>(0, _berghausJsDefault.default)); +parcelHelpers.export(exports, "geoBerghausRaw", ()=>(0, _berghausJs.berghausRaw)); +parcelHelpers.export(exports, "geoBertin1953", ()=>(0, _bertinJsDefault.default)); +parcelHelpers.export(exports, "geoBertin1953Raw", ()=>(0, _bertinJs.bertin1953Raw)); +parcelHelpers.export(exports, "geoBoggs", ()=>(0, _boggsJsDefault.default)); +parcelHelpers.export(exports, "geoBoggsRaw", ()=>(0, _boggsJs.boggsRaw)); +parcelHelpers.export(exports, "geoBonne", ()=>(0, _bonneJsDefault.default)); +parcelHelpers.export(exports, "geoBonneRaw", ()=>(0, _bonneJs.bonneRaw)); +parcelHelpers.export(exports, "geoBottomley", ()=>(0, _bottomleyJsDefault.default)); +parcelHelpers.export(exports, "geoBottomleyRaw", ()=>(0, _bottomleyJs.bottomleyRaw)); +parcelHelpers.export(exports, "geoBromley", ()=>(0, _bromleyJsDefault.default)); +parcelHelpers.export(exports, "geoBromleyRaw", ()=>(0, _bromleyJs.bromleyRaw)); +parcelHelpers.export(exports, "geoChamberlin", ()=>(0, _chamberlinJsDefault.default)); +parcelHelpers.export(exports, "geoChamberlinRaw", ()=>(0, _chamberlinJs.chamberlinRaw)); +parcelHelpers.export(exports, "geoChamberlinAfrica", ()=>(0, _chamberlinJs.chamberlinAfrica)); +parcelHelpers.export(exports, "geoCollignon", ()=>(0, _collignonJsDefault.default)); +parcelHelpers.export(exports, "geoCollignonRaw", ()=>(0, _collignonJs.collignonRaw)); +parcelHelpers.export(exports, "geoCraig", ()=>(0, _craigJsDefault.default)); +parcelHelpers.export(exports, "geoCraigRaw", ()=>(0, _craigJs.craigRaw)); +parcelHelpers.export(exports, "geoCraster", ()=>(0, _crasterJsDefault.default)); +parcelHelpers.export(exports, "geoCrasterRaw", ()=>(0, _crasterJs.crasterRaw)); +parcelHelpers.export(exports, "geoCylindricalEqualArea", ()=>(0, _cylindricalEqualAreaJsDefault.default)); +parcelHelpers.export(exports, "geoCylindricalEqualAreaRaw", ()=>(0, _cylindricalEqualAreaJs.cylindricalEqualAreaRaw)); +parcelHelpers.export(exports, "geoCylindricalStereographic", ()=>(0, _cylindricalStereographicJsDefault.default)); +parcelHelpers.export(exports, "geoCylindricalStereographicRaw", ()=>(0, _cylindricalStereographicJs.cylindricalStereographicRaw)); parcelHelpers.export(exports, "geoEckert1", ()=>(0, _eckert1JsDefault.default)); parcelHelpers.export(exports, "geoEckert1Raw", ()=>(0, _eckert1Js.eckert1Raw)); parcelHelpers.export(exports, "geoEckert2", ()=>(0, _eckert2JsDefault.default)); @@ -28908,91 +29357,91 @@ parcelHelpers.export(exports, "geoHomolosine", ()=>(0, _homolosineJsDefault.defa parcelHelpers.export(exports, "geoHomolosineRaw", ()=>(0, _homolosineJs.homolosineRaw)); parcelHelpers.export(exports, "geoHufnagel", ()=>(0, _hufnagelJsDefault.default)); parcelHelpers.export(exports, "geoHufnagelRaw", ()=>(0, _hufnagelJs.hufnagelRaw)); -parcelHelpers.export(exports, "geoHyperelliptical", ()=>(0, _hyperellipticalDefault.default)); -parcelHelpers.export(exports, "geoHyperellipticalRaw", ()=>(0, _hyperelliptical.hyperellipticalRaw)); -parcelHelpers.export(exports, "geoInterrupt", ()=>(0, _indexDefault.default)); -parcelHelpers.export(exports, "geoInterruptedBoggs", ()=>(0, _boggsDefault1.default)); -parcelHelpers.export(exports, "geoInterruptedHomolosine", ()=>(0, _homolosineDefault.default)); -parcelHelpers.export(exports, "geoInterruptedMollweide", ()=>(0, _mollweideDefault.default)); -parcelHelpers.export(exports, "geoInterruptedMollweideHemispheres", ()=>(0, _mollweideHemispheresDefault.default)); -parcelHelpers.export(exports, "geoInterruptedSinuMollweide", ()=>(0, _sinuMollweideDefault.default)); -parcelHelpers.export(exports, "geoInterruptedSinusoidal", ()=>(0, _sinusoidalDefault.default)); +parcelHelpers.export(exports, "geoHyperelliptical", ()=>(0, _hyperellipticalJsDefault.default)); +parcelHelpers.export(exports, "geoHyperellipticalRaw", ()=>(0, _hyperellipticalJs.hyperellipticalRaw)); +parcelHelpers.export(exports, "geoInterrupt", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedBoggs", ()=>(0, _boggsJsDefault1.default)); +parcelHelpers.export(exports, "geoInterruptedHomolosine", ()=>(0, _homolosineJsDefault1.default)); +parcelHelpers.export(exports, "geoInterruptedMollweide", ()=>(0, _mollweideJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedMollweideHemispheres", ()=>(0, _mollweideHemispheresJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedSinuMollweide", ()=>(0, _sinuMollweideJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedSinusoidal", ()=>(0, _sinusoidalJsDefault.default)); parcelHelpers.export(exports, "geoKavrayskiy7", ()=>(0, _kavrayskiy7JsDefault.default)); parcelHelpers.export(exports, "geoKavrayskiy7Raw", ()=>(0, _kavrayskiy7Js.kavrayskiy7Raw)); parcelHelpers.export(exports, "geoLagrange", ()=>(0, _lagrangeJsDefault.default)); parcelHelpers.export(exports, "geoLagrangeRaw", ()=>(0, _lagrangeJs.lagrangeRaw)); -parcelHelpers.export(exports, "geoLarrivee", ()=>(0, _larriveeDefault.default)); -parcelHelpers.export(exports, "geoLarriveeRaw", ()=>(0, _larrivee.larriveeRaw)); -parcelHelpers.export(exports, "geoLaskowski", ()=>(0, _laskowskiDefault.default)); -parcelHelpers.export(exports, "geoLaskowskiRaw", ()=>(0, _laskowski.laskowskiRaw)); +parcelHelpers.export(exports, "geoLarrivee", ()=>(0, _larriveeJsDefault.default)); +parcelHelpers.export(exports, "geoLarriveeRaw", ()=>(0, _larriveeJs.larriveeRaw)); +parcelHelpers.export(exports, "geoLaskowski", ()=>(0, _laskowskiJsDefault.default)); +parcelHelpers.export(exports, "geoLaskowskiRaw", ()=>(0, _laskowskiJs.laskowskiRaw)); parcelHelpers.export(exports, "geoLittrow", ()=>(0, _littrowJsDefault.default)); parcelHelpers.export(exports, "geoLittrowRaw", ()=>(0, _littrowJs.littrowRaw)); parcelHelpers.export(exports, "geoLoximuthal", ()=>(0, _loximuthalJsDefault.default)); parcelHelpers.export(exports, "geoLoximuthalRaw", ()=>(0, _loximuthalJs.loximuthalRaw)); -parcelHelpers.export(exports, "geoMiller", ()=>(0, _millerDefault.default)); -parcelHelpers.export(exports, "geoMillerRaw", ()=>(0, _miller.millerRaw)); -parcelHelpers.export(exports, "geoModifiedStereographic", ()=>(0, _modifiedStereographicDefault.default)); -parcelHelpers.export(exports, "geoModifiedStereographicRaw", ()=>(0, _modifiedStereographic.modifiedStereographicRaw)); -parcelHelpers.export(exports, "geoModifiedStereographicAlaska", ()=>(0, _modifiedStereographic.modifiedStereographicAlaska)); -parcelHelpers.export(exports, "geoModifiedStereographicGs48", ()=>(0, _modifiedStereographic.modifiedStereographicGs48)); -parcelHelpers.export(exports, "geoModifiedStereographicGs50", ()=>(0, _modifiedStereographic.modifiedStereographicGs50)); -parcelHelpers.export(exports, "geoModifiedStereographicMiller", ()=>(0, _modifiedStereographic.modifiedStereographicMiller)); -parcelHelpers.export(exports, "geoModifiedStereographicLee", ()=>(0, _modifiedStereographic.modifiedStereographicLee)); -parcelHelpers.export(exports, "geoMollweide", ()=>(0, _mollweideDefault1.default)); -parcelHelpers.export(exports, "geoMollweideRaw", ()=>(0, _mollweide1.mollweideRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarParabolic", ()=>(0, _mtFlatPolarParabolicDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarParabolicRaw", ()=>(0, _mtFlatPolarParabolic.mtFlatPolarParabolicRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarQuartic", ()=>(0, _mtFlatPolarQuarticDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarQuarticRaw", ()=>(0, _mtFlatPolarQuartic.mtFlatPolarQuarticRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarSinusoidal", ()=>(0, _mtFlatPolarSinusoidalDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarSinusoidalRaw", ()=>(0, _mtFlatPolarSinusoidal.mtFlatPolarSinusoidalRaw)); -parcelHelpers.export(exports, "geoNaturalEarth2", ()=>(0, _naturalEarth2Default.default)); -parcelHelpers.export(exports, "geoNaturalEarth2Raw", ()=>(0, _naturalEarth2.naturalEarth2Raw)); -parcelHelpers.export(exports, "geoNellHammer", ()=>(0, _nellHammerDefault.default)); -parcelHelpers.export(exports, "geoNellHammerRaw", ()=>(0, _nellHammer.nellHammerRaw)); -parcelHelpers.export(exports, "geoInterruptedQuarticAuthalic", ()=>(0, _quarticAuthalicDefault.default)); -parcelHelpers.export(exports, "geoNicolosi", ()=>(0, _nicolosiDefault.default)); -parcelHelpers.export(exports, "geoNicolosiRaw", ()=>(0, _nicolosi.nicolosiRaw)); -parcelHelpers.export(exports, "geoPatterson", ()=>(0, _pattersonDefault.default)); -parcelHelpers.export(exports, "geoPattersonRaw", ()=>(0, _patterson.pattersonRaw)); -parcelHelpers.export(exports, "geoPolyconic", ()=>(0, _polyconicDefault.default)); -parcelHelpers.export(exports, "geoPolyconicRaw", ()=>(0, _polyconic.polyconicRaw)); -parcelHelpers.export(exports, "geoPolyhedral", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "geoMiller", ()=>(0, _millerJsDefault.default)); +parcelHelpers.export(exports, "geoMillerRaw", ()=>(0, _millerJs.millerRaw)); +parcelHelpers.export(exports, "geoModifiedStereographic", ()=>(0, _modifiedStereographicJsDefault.default)); +parcelHelpers.export(exports, "geoModifiedStereographicRaw", ()=>(0, _modifiedStereographicJs.modifiedStereographicRaw)); +parcelHelpers.export(exports, "geoModifiedStereographicAlaska", ()=>(0, _modifiedStereographicJs.modifiedStereographicAlaska)); +parcelHelpers.export(exports, "geoModifiedStereographicGs48", ()=>(0, _modifiedStereographicJs.modifiedStereographicGs48)); +parcelHelpers.export(exports, "geoModifiedStereographicGs50", ()=>(0, _modifiedStereographicJs.modifiedStereographicGs50)); +parcelHelpers.export(exports, "geoModifiedStereographicMiller", ()=>(0, _modifiedStereographicJs.modifiedStereographicMiller)); +parcelHelpers.export(exports, "geoModifiedStereographicLee", ()=>(0, _modifiedStereographicJs.modifiedStereographicLee)); +parcelHelpers.export(exports, "geoMollweide", ()=>(0, _mollweideJsDefault1.default)); +parcelHelpers.export(exports, "geoMollweideRaw", ()=>(0, _mollweideJs1.mollweideRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarParabolic", ()=>(0, _mtFlatPolarParabolicJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarParabolicRaw", ()=>(0, _mtFlatPolarParabolicJs.mtFlatPolarParabolicRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarQuartic", ()=>(0, _mtFlatPolarQuarticJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarQuarticRaw", ()=>(0, _mtFlatPolarQuarticJs.mtFlatPolarQuarticRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarSinusoidal", ()=>(0, _mtFlatPolarSinusoidalJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarSinusoidalRaw", ()=>(0, _mtFlatPolarSinusoidalJs.mtFlatPolarSinusoidalRaw)); +parcelHelpers.export(exports, "geoNaturalEarth2", ()=>(0, _naturalEarth2JsDefault.default)); +parcelHelpers.export(exports, "geoNaturalEarth2Raw", ()=>(0, _naturalEarth2Js.naturalEarth2Raw)); +parcelHelpers.export(exports, "geoNellHammer", ()=>(0, _nellHammerJsDefault.default)); +parcelHelpers.export(exports, "geoNellHammerRaw", ()=>(0, _nellHammerJs.nellHammerRaw)); +parcelHelpers.export(exports, "geoInterruptedQuarticAuthalic", ()=>(0, _quarticAuthalicJsDefault.default)); +parcelHelpers.export(exports, "geoNicolosi", ()=>(0, _nicolosiJsDefault.default)); +parcelHelpers.export(exports, "geoNicolosiRaw", ()=>(0, _nicolosiJs.nicolosiRaw)); +parcelHelpers.export(exports, "geoPatterson", ()=>(0, _pattersonJsDefault.default)); +parcelHelpers.export(exports, "geoPattersonRaw", ()=>(0, _pattersonJs.pattersonRaw)); +parcelHelpers.export(exports, "geoPolyconic", ()=>(0, _polyconicJsDefault.default)); +parcelHelpers.export(exports, "geoPolyconicRaw", ()=>(0, _polyconicJs.polyconicRaw)); +parcelHelpers.export(exports, "geoPolyhedral", ()=>(0, _indexJsDefault1.default)); parcelHelpers.export(exports, "geoPolyhedralButterfly", ()=>(0, _butterflyJsDefault.default)); -parcelHelpers.export(exports, "geoPolyhedralCollignon", ()=>(0, _collignonJsDefault.default)); +parcelHelpers.export(exports, "geoPolyhedralCollignon", ()=>(0, _collignonJsDefault1.default)); parcelHelpers.export(exports, "geoPolyhedralWaterman", ()=>(0, _watermanJsDefault.default)); -parcelHelpers.export(exports, "geoProject", ()=>(0, _indexDefault1.default)); +parcelHelpers.export(exports, "geoProject", ()=>(0, _indexJsDefault2.default)); parcelHelpers.export(exports, "geoGringortenQuincuncial", ()=>(0, _gringortenJsDefault1.default)); parcelHelpers.export(exports, "geoPeirceQuincuncial", ()=>(0, _peirceJsDefault.default)); -parcelHelpers.export(exports, "geoQuantize", ()=>(0, _quantizeDefault.default)); -parcelHelpers.export(exports, "geoQuincuncial", ()=>(0, _indexJsDefault1.default)); -parcelHelpers.export(exports, "geoRectangularPolyconic", ()=>(0, _rectangularPolyconicDefault.default)); -parcelHelpers.export(exports, "geoRectangularPolyconicRaw", ()=>(0, _rectangularPolyconic.rectangularPolyconicRaw)); -parcelHelpers.export(exports, "geoRobinson", ()=>(0, _robinsonDefault.default)); -parcelHelpers.export(exports, "geoRobinsonRaw", ()=>(0, _robinson.robinsonRaw)); -parcelHelpers.export(exports, "geoSatellite", ()=>(0, _satelliteDefault.default)); -parcelHelpers.export(exports, "geoSatelliteRaw", ()=>(0, _satellite.satelliteRaw)); -parcelHelpers.export(exports, "geoSinuMollweide", ()=>(0, _sinuMollweideDefault1.default)); -parcelHelpers.export(exports, "geoSinuMollweideRaw", ()=>(0, _sinuMollweide1.sinuMollweideRaw)); -parcelHelpers.export(exports, "geoSinusoidal", ()=>(0, _sinusoidalDefault1.default)); -parcelHelpers.export(exports, "geoSinusoidalRaw", ()=>(0, _sinusoidal1.sinusoidalRaw)); -parcelHelpers.export(exports, "geoStitch", ()=>(0, _stitchDefault.default)); -parcelHelpers.export(exports, "geoTimes", ()=>(0, _timesDefault.default)); -parcelHelpers.export(exports, "geoTimesRaw", ()=>(0, _times.timesRaw)); -parcelHelpers.export(exports, "geoTwoPointAzimuthal", ()=>(0, _twoPointAzimuthalDefault.default)); -parcelHelpers.export(exports, "geoTwoPointAzimuthalRaw", ()=>(0, _twoPointAzimuthal.twoPointAzimuthalRaw)); -parcelHelpers.export(exports, "geoTwoPointAzimuthalUsa", ()=>(0, _twoPointAzimuthal.twoPointAzimuthalUsa)); -parcelHelpers.export(exports, "geoTwoPointEquidistant", ()=>(0, _twoPointEquidistantDefault.default)); -parcelHelpers.export(exports, "geoTwoPointEquidistantRaw", ()=>(0, _twoPointEquidistant.twoPointEquidistantRaw)); -parcelHelpers.export(exports, "geoTwoPointEquidistantUsa", ()=>(0, _twoPointEquidistant.twoPointEquidistantUsa)); -parcelHelpers.export(exports, "geoVanDerGrinten", ()=>(0, _vanDerGrintenDefault.default)); -parcelHelpers.export(exports, "geoVanDerGrintenRaw", ()=>(0, _vanDerGrinten.vanDerGrintenRaw)); -parcelHelpers.export(exports, "geoVanDerGrinten2", ()=>(0, _vanDerGrinten2Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten2Raw", ()=>(0, _vanDerGrinten2.vanDerGrinten2Raw)); -parcelHelpers.export(exports, "geoVanDerGrinten3", ()=>(0, _vanDerGrinten3Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten3Raw", ()=>(0, _vanDerGrinten3.vanDerGrinten3Raw)); -parcelHelpers.export(exports, "geoVanDerGrinten4", ()=>(0, _vanDerGrinten4Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten4Raw", ()=>(0, _vanDerGrinten4.vanDerGrinten4Raw)); +parcelHelpers.export(exports, "geoQuantize", ()=>(0, _quantizeJsDefault.default)); +parcelHelpers.export(exports, "geoQuincuncial", ()=>(0, _indexJsDefault3.default)); +parcelHelpers.export(exports, "geoRectangularPolyconic", ()=>(0, _rectangularPolyconicJsDefault.default)); +parcelHelpers.export(exports, "geoRectangularPolyconicRaw", ()=>(0, _rectangularPolyconicJs.rectangularPolyconicRaw)); +parcelHelpers.export(exports, "geoRobinson", ()=>(0, _robinsonJsDefault.default)); +parcelHelpers.export(exports, "geoRobinsonRaw", ()=>(0, _robinsonJs.robinsonRaw)); +parcelHelpers.export(exports, "geoSatellite", ()=>(0, _satelliteJsDefault.default)); +parcelHelpers.export(exports, "geoSatelliteRaw", ()=>(0, _satelliteJs.satelliteRaw)); +parcelHelpers.export(exports, "geoSinuMollweide", ()=>(0, _sinuMollweideJsDefault1.default)); +parcelHelpers.export(exports, "geoSinuMollweideRaw", ()=>(0, _sinuMollweideJs1.sinuMollweideRaw)); +parcelHelpers.export(exports, "geoSinusoidal", ()=>(0, _sinusoidalJsDefault1.default)); +parcelHelpers.export(exports, "geoSinusoidalRaw", ()=>(0, _sinusoidalJs1.sinusoidalRaw)); +parcelHelpers.export(exports, "geoStitch", ()=>(0, _stitchJsDefault.default)); +parcelHelpers.export(exports, "geoTimes", ()=>(0, _timesJsDefault.default)); +parcelHelpers.export(exports, "geoTimesRaw", ()=>(0, _timesJs.timesRaw)); +parcelHelpers.export(exports, "geoTwoPointAzimuthal", ()=>(0, _twoPointAzimuthalJsDefault.default)); +parcelHelpers.export(exports, "geoTwoPointAzimuthalRaw", ()=>(0, _twoPointAzimuthalJs.twoPointAzimuthalRaw)); +parcelHelpers.export(exports, "geoTwoPointAzimuthalUsa", ()=>(0, _twoPointAzimuthalJs.twoPointAzimuthalUsa)); +parcelHelpers.export(exports, "geoTwoPointEquidistant", ()=>(0, _twoPointEquidistantJsDefault.default)); +parcelHelpers.export(exports, "geoTwoPointEquidistantRaw", ()=>(0, _twoPointEquidistantJs.twoPointEquidistantRaw)); +parcelHelpers.export(exports, "geoTwoPointEquidistantUsa", ()=>(0, _twoPointEquidistantJs.twoPointEquidistantUsa)); +parcelHelpers.export(exports, "geoVanDerGrinten", ()=>(0, _vanDerGrintenJsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrintenRaw", ()=>(0, _vanDerGrintenJs.vanDerGrintenRaw)); +parcelHelpers.export(exports, "geoVanDerGrinten2", ()=>(0, _vanDerGrinten2JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten2Raw", ()=>(0, _vanDerGrinten2Js.vanDerGrinten2Raw)); +parcelHelpers.export(exports, "geoVanDerGrinten3", ()=>(0, _vanDerGrinten3JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten3Raw", ()=>(0, _vanDerGrinten3Js.vanDerGrinten3Raw)); +parcelHelpers.export(exports, "geoVanDerGrinten4", ()=>(0, _vanDerGrinten4JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten4Raw", ()=>(0, _vanDerGrinten4Js.vanDerGrinten4Raw)); parcelHelpers.export(exports, "geoWagner", ()=>(0, _wagnerJsDefault.default)); parcelHelpers.export(exports, "geoWagner7", ()=>(0, _wagnerJs.wagner7)); parcelHelpers.export(exports, "geoWagnerRaw", ()=>(0, _wagnerJs.wagnerRaw)); @@ -29002,42 +29451,42 @@ parcelHelpers.export(exports, "geoWagner6", ()=>(0, _wagner6JsDefault.default)); parcelHelpers.export(exports, "geoWagner6Raw", ()=>(0, _wagner6Js.wagner6Raw)); parcelHelpers.export(exports, "geoWiechel", ()=>(0, _wiechelJsDefault.default)); parcelHelpers.export(exports, "geoWiechelRaw", ()=>(0, _wiechelJs.wiechelRaw)); -parcelHelpers.export(exports, "geoWinkel3", ()=>(0, _winkel3Default.default)); -parcelHelpers.export(exports, "geoWinkel3Raw", ()=>(0, _winkel3.winkel3Raw)); -var _airy = require("./airy"); -var _airyDefault = parcelHelpers.interopDefault(_airy); -var _aitoff = require("./aitoff"); -var _aitoffDefault = parcelHelpers.interopDefault(_aitoff); -var _armadillo = require("./armadillo"); -var _armadilloDefault = parcelHelpers.interopDefault(_armadillo); -var _august = require("./august"); -var _augustDefault = parcelHelpers.interopDefault(_august); -var _baker = require("./baker"); -var _bakerDefault = parcelHelpers.interopDefault(_baker); -var _berghaus = require("./berghaus"); -var _berghausDefault = parcelHelpers.interopDefault(_berghaus); -var _bertin = require("./bertin"); -var _bertinDefault = parcelHelpers.interopDefault(_bertin); -var _boggs = require("./boggs"); -var _boggsDefault = parcelHelpers.interopDefault(_boggs); -var _bonne = require("./bonne"); -var _bonneDefault = parcelHelpers.interopDefault(_bonne); -var _bottomley = require("./bottomley"); -var _bottomleyDefault = parcelHelpers.interopDefault(_bottomley); -var _bromley = require("./bromley"); -var _bromleyDefault = parcelHelpers.interopDefault(_bromley); -var _chamberlin = require("./chamberlin"); -var _chamberlinDefault = parcelHelpers.interopDefault(_chamberlin); -var _collignon = require("./collignon"); -var _collignonDefault = parcelHelpers.interopDefault(_collignon); -var _craig = require("./craig"); -var _craigDefault = parcelHelpers.interopDefault(_craig); -var _craster = require("./craster"); -var _crasterDefault = parcelHelpers.interopDefault(_craster); -var _cylindricalEqualArea = require("./cylindricalEqualArea"); -var _cylindricalEqualAreaDefault = parcelHelpers.interopDefault(_cylindricalEqualArea); -var _cylindricalStereographic = require("./cylindricalStereographic"); -var _cylindricalStereographicDefault = parcelHelpers.interopDefault(_cylindricalStereographic); +parcelHelpers.export(exports, "geoWinkel3", ()=>(0, _winkel3JsDefault.default)); +parcelHelpers.export(exports, "geoWinkel3Raw", ()=>(0, _winkel3Js.winkel3Raw)); +var _airyJs = require("./airy.js"); +var _airyJsDefault = parcelHelpers.interopDefault(_airyJs); +var _aitoffJs = require("./aitoff.js"); +var _aitoffJsDefault = parcelHelpers.interopDefault(_aitoffJs); +var _armadilloJs = require("./armadillo.js"); +var _armadilloJsDefault = parcelHelpers.interopDefault(_armadilloJs); +var _augustJs = require("./august.js"); +var _augustJsDefault = parcelHelpers.interopDefault(_augustJs); +var _bakerJs = require("./baker.js"); +var _bakerJsDefault = parcelHelpers.interopDefault(_bakerJs); +var _berghausJs = require("./berghaus.js"); +var _berghausJsDefault = parcelHelpers.interopDefault(_berghausJs); +var _bertinJs = require("./bertin.js"); +var _bertinJsDefault = parcelHelpers.interopDefault(_bertinJs); +var _boggsJs = require("./boggs.js"); +var _boggsJsDefault = parcelHelpers.interopDefault(_boggsJs); +var _bonneJs = require("./bonne.js"); +var _bonneJsDefault = parcelHelpers.interopDefault(_bonneJs); +var _bottomleyJs = require("./bottomley.js"); +var _bottomleyJsDefault = parcelHelpers.interopDefault(_bottomleyJs); +var _bromleyJs = require("./bromley.js"); +var _bromleyJsDefault = parcelHelpers.interopDefault(_bromleyJs); +var _chamberlinJs = require("./chamberlin.js"); +var _chamberlinJsDefault = parcelHelpers.interopDefault(_chamberlinJs); +var _collignonJs = require("./collignon.js"); +var _collignonJsDefault = parcelHelpers.interopDefault(_collignonJs); +var _craigJs = require("./craig.js"); +var _craigJsDefault = parcelHelpers.interopDefault(_craigJs); +var _crasterJs = require("./craster.js"); +var _crasterJsDefault = parcelHelpers.interopDefault(_crasterJs); +var _cylindricalEqualAreaJs = require("./cylindricalEqualArea.js"); +var _cylindricalEqualAreaJsDefault = parcelHelpers.interopDefault(_cylindricalEqualAreaJs); +var _cylindricalStereographicJs = require("./cylindricalStereographic.js"); +var _cylindricalStereographicJsDefault = parcelHelpers.interopDefault(_cylindricalStereographicJs); var _eckert1Js = require("./eckert1.js"); var _eckert1JsDefault = parcelHelpers.interopDefault(_eckert1Js); var _eckert2Js = require("./eckert2.js"); @@ -29088,102 +29537,102 @@ var _homolosineJs = require("./homolosine.js"); var _homolosineJsDefault = parcelHelpers.interopDefault(_homolosineJs); var _hufnagelJs = require("./hufnagel.js"); var _hufnagelJsDefault = parcelHelpers.interopDefault(_hufnagelJs); -var _hyperelliptical = require("./hyperelliptical"); -var _hyperellipticalDefault = parcelHelpers.interopDefault(_hyperelliptical); -var _index = require("./interrupted/index"); -var _indexDefault = parcelHelpers.interopDefault(_index); -var _boggs1 = require("./interrupted/boggs"); -var _boggsDefault1 = parcelHelpers.interopDefault(_boggs1); -var _homolosine = require("./interrupted/homolosine"); -var _homolosineDefault = parcelHelpers.interopDefault(_homolosine); -var _mollweide = require("./interrupted/mollweide"); -var _mollweideDefault = parcelHelpers.interopDefault(_mollweide); -var _mollweideHemispheres = require("./interrupted/mollweideHemispheres"); -var _mollweideHemispheresDefault = parcelHelpers.interopDefault(_mollweideHemispheres); -var _sinuMollweide = require("./interrupted/sinuMollweide"); -var _sinuMollweideDefault = parcelHelpers.interopDefault(_sinuMollweide); -var _sinusoidal = require("./interrupted/sinusoidal"); -var _sinusoidalDefault = parcelHelpers.interopDefault(_sinusoidal); +var _hyperellipticalJs = require("./hyperelliptical.js"); +var _hyperellipticalJsDefault = parcelHelpers.interopDefault(_hyperellipticalJs); +var _indexJs = require("./interrupted/index.js"); +var _indexJsDefault = parcelHelpers.interopDefault(_indexJs); +var _boggsJs1 = require("./interrupted/boggs.js"); +var _boggsJsDefault1 = parcelHelpers.interopDefault(_boggsJs1); +var _homolosineJs1 = require("./interrupted/homolosine.js"); +var _homolosineJsDefault1 = parcelHelpers.interopDefault(_homolosineJs1); +var _mollweideJs = require("./interrupted/mollweide.js"); +var _mollweideJsDefault = parcelHelpers.interopDefault(_mollweideJs); +var _mollweideHemispheresJs = require("./interrupted/mollweideHemispheres.js"); +var _mollweideHemispheresJsDefault = parcelHelpers.interopDefault(_mollweideHemispheresJs); +var _sinuMollweideJs = require("./interrupted/sinuMollweide.js"); +var _sinuMollweideJsDefault = parcelHelpers.interopDefault(_sinuMollweideJs); +var _sinusoidalJs = require("./interrupted/sinusoidal.js"); +var _sinusoidalJsDefault = parcelHelpers.interopDefault(_sinusoidalJs); var _kavrayskiy7Js = require("./kavrayskiy7.js"); var _kavrayskiy7JsDefault = parcelHelpers.interopDefault(_kavrayskiy7Js); var _lagrangeJs = require("./lagrange.js"); var _lagrangeJsDefault = parcelHelpers.interopDefault(_lagrangeJs); -var _larrivee = require("./larrivee"); -var _larriveeDefault = parcelHelpers.interopDefault(_larrivee); -var _laskowski = require("./laskowski"); -var _laskowskiDefault = parcelHelpers.interopDefault(_laskowski); +var _larriveeJs = require("./larrivee.js"); +var _larriveeJsDefault = parcelHelpers.interopDefault(_larriveeJs); +var _laskowskiJs = require("./laskowski.js"); +var _laskowskiJsDefault = parcelHelpers.interopDefault(_laskowskiJs); var _littrowJs = require("./littrow.js"); var _littrowJsDefault = parcelHelpers.interopDefault(_littrowJs); var _loximuthalJs = require("./loximuthal.js"); var _loximuthalJsDefault = parcelHelpers.interopDefault(_loximuthalJs); -var _miller = require("./miller"); -var _millerDefault = parcelHelpers.interopDefault(_miller); -var _modifiedStereographic = require("./modifiedStereographic"); -var _modifiedStereographicDefault = parcelHelpers.interopDefault(_modifiedStereographic); -var _mollweide1 = require("./mollweide"); -var _mollweideDefault1 = parcelHelpers.interopDefault(_mollweide1); -var _mtFlatPolarParabolic = require("./mtFlatPolarParabolic"); -var _mtFlatPolarParabolicDefault = parcelHelpers.interopDefault(_mtFlatPolarParabolic); -var _mtFlatPolarQuartic = require("./mtFlatPolarQuartic"); -var _mtFlatPolarQuarticDefault = parcelHelpers.interopDefault(_mtFlatPolarQuartic); -var _mtFlatPolarSinusoidal = require("./mtFlatPolarSinusoidal"); -var _mtFlatPolarSinusoidalDefault = parcelHelpers.interopDefault(_mtFlatPolarSinusoidal); -var _naturalEarth2 = require("./naturalEarth2"); -var _naturalEarth2Default = parcelHelpers.interopDefault(_naturalEarth2); -var _nellHammer = require("./nellHammer"); -var _nellHammerDefault = parcelHelpers.interopDefault(_nellHammer); -var _quarticAuthalic = require("./interrupted/quarticAuthalic"); -var _quarticAuthalicDefault = parcelHelpers.interopDefault(_quarticAuthalic); -var _nicolosi = require("./nicolosi"); -var _nicolosiDefault = parcelHelpers.interopDefault(_nicolosi); -var _patterson = require("./patterson"); -var _pattersonDefault = parcelHelpers.interopDefault(_patterson); -var _polyconic = require("./polyconic"); -var _polyconicDefault = parcelHelpers.interopDefault(_polyconic); -var _indexJs = require("./polyhedral/index.js"); -var _indexJsDefault = parcelHelpers.interopDefault(_indexJs); +var _millerJs = require("./miller.js"); +var _millerJsDefault = parcelHelpers.interopDefault(_millerJs); +var _modifiedStereographicJs = require("./modifiedStereographic.js"); +var _modifiedStereographicJsDefault = parcelHelpers.interopDefault(_modifiedStereographicJs); +var _mollweideJs1 = require("./mollweide.js"); +var _mollweideJsDefault1 = parcelHelpers.interopDefault(_mollweideJs1); +var _mtFlatPolarParabolicJs = require("./mtFlatPolarParabolic.js"); +var _mtFlatPolarParabolicJsDefault = parcelHelpers.interopDefault(_mtFlatPolarParabolicJs); +var _mtFlatPolarQuarticJs = require("./mtFlatPolarQuartic.js"); +var _mtFlatPolarQuarticJsDefault = parcelHelpers.interopDefault(_mtFlatPolarQuarticJs); +var _mtFlatPolarSinusoidalJs = require("./mtFlatPolarSinusoidal.js"); +var _mtFlatPolarSinusoidalJsDefault = parcelHelpers.interopDefault(_mtFlatPolarSinusoidalJs); +var _naturalEarth2Js = require("./naturalEarth2.js"); +var _naturalEarth2JsDefault = parcelHelpers.interopDefault(_naturalEarth2Js); +var _nellHammerJs = require("./nellHammer.js"); +var _nellHammerJsDefault = parcelHelpers.interopDefault(_nellHammerJs); +var _quarticAuthalicJs = require("./interrupted/quarticAuthalic.js"); +var _quarticAuthalicJsDefault = parcelHelpers.interopDefault(_quarticAuthalicJs); +var _nicolosiJs = require("./nicolosi.js"); +var _nicolosiJsDefault = parcelHelpers.interopDefault(_nicolosiJs); +var _pattersonJs = require("./patterson.js"); +var _pattersonJsDefault = parcelHelpers.interopDefault(_pattersonJs); +var _polyconicJs = require("./polyconic.js"); +var _polyconicJsDefault = parcelHelpers.interopDefault(_polyconicJs); +var _indexJs1 = require("./polyhedral/index.js"); +var _indexJsDefault1 = parcelHelpers.interopDefault(_indexJs1); var _butterflyJs = require("./polyhedral/butterfly.js"); var _butterflyJsDefault = parcelHelpers.interopDefault(_butterflyJs); -var _collignonJs = require("./polyhedral/collignon.js"); -var _collignonJsDefault = parcelHelpers.interopDefault(_collignonJs); +var _collignonJs1 = require("./polyhedral/collignon.js"); +var _collignonJsDefault1 = parcelHelpers.interopDefault(_collignonJs1); var _watermanJs = require("./polyhedral/waterman.js"); var _watermanJsDefault = parcelHelpers.interopDefault(_watermanJs); -var _index1 = require("./project/index"); -var _indexDefault1 = parcelHelpers.interopDefault(_index1); +var _indexJs2 = require("./project/index.js"); +var _indexJsDefault2 = parcelHelpers.interopDefault(_indexJs2); var _gringortenJs1 = require("./quincuncial/gringorten.js"); var _gringortenJsDefault1 = parcelHelpers.interopDefault(_gringortenJs1); var _peirceJs = require("./quincuncial/peirce.js"); var _peirceJsDefault = parcelHelpers.interopDefault(_peirceJs); -var _quantize = require("./quantize"); -var _quantizeDefault = parcelHelpers.interopDefault(_quantize); -var _indexJs1 = require("./quincuncial/index.js"); -var _indexJsDefault1 = parcelHelpers.interopDefault(_indexJs1); -var _rectangularPolyconic = require("./rectangularPolyconic"); -var _rectangularPolyconicDefault = parcelHelpers.interopDefault(_rectangularPolyconic); -var _robinson = require("./robinson"); -var _robinsonDefault = parcelHelpers.interopDefault(_robinson); -var _satellite = require("./satellite"); -var _satelliteDefault = parcelHelpers.interopDefault(_satellite); -var _sinuMollweide1 = require("./sinuMollweide"); -var _sinuMollweideDefault1 = parcelHelpers.interopDefault(_sinuMollweide1); -var _sinusoidal1 = require("./sinusoidal"); -var _sinusoidalDefault1 = parcelHelpers.interopDefault(_sinusoidal1); -var _stitch = require("./stitch"); -var _stitchDefault = parcelHelpers.interopDefault(_stitch); -var _times = require("./times"); -var _timesDefault = parcelHelpers.interopDefault(_times); -var _twoPointAzimuthal = require("./twoPointAzimuthal"); -var _twoPointAzimuthalDefault = parcelHelpers.interopDefault(_twoPointAzimuthal); -var _twoPointEquidistant = require("./twoPointEquidistant"); -var _twoPointEquidistantDefault = parcelHelpers.interopDefault(_twoPointEquidistant); -var _vanDerGrinten = require("./vanDerGrinten"); -var _vanDerGrintenDefault = parcelHelpers.interopDefault(_vanDerGrinten); -var _vanDerGrinten2 = require("./vanDerGrinten2"); -var _vanDerGrinten2Default = parcelHelpers.interopDefault(_vanDerGrinten2); -var _vanDerGrinten3 = require("./vanDerGrinten3"); -var _vanDerGrinten3Default = parcelHelpers.interopDefault(_vanDerGrinten3); -var _vanDerGrinten4 = require("./vanDerGrinten4"); -var _vanDerGrinten4Default = parcelHelpers.interopDefault(_vanDerGrinten4); +var _quantizeJs = require("./quantize.js"); +var _quantizeJsDefault = parcelHelpers.interopDefault(_quantizeJs); +var _indexJs3 = require("./quincuncial/index.js"); +var _indexJsDefault3 = parcelHelpers.interopDefault(_indexJs3); +var _rectangularPolyconicJs = require("./rectangularPolyconic.js"); +var _rectangularPolyconicJsDefault = parcelHelpers.interopDefault(_rectangularPolyconicJs); +var _robinsonJs = require("./robinson.js"); +var _robinsonJsDefault = parcelHelpers.interopDefault(_robinsonJs); +var _satelliteJs = require("./satellite.js"); +var _satelliteJsDefault = parcelHelpers.interopDefault(_satelliteJs); +var _sinuMollweideJs1 = require("./sinuMollweide.js"); +var _sinuMollweideJsDefault1 = parcelHelpers.interopDefault(_sinuMollweideJs1); +var _sinusoidalJs1 = require("./sinusoidal.js"); +var _sinusoidalJsDefault1 = parcelHelpers.interopDefault(_sinusoidalJs1); +var _stitchJs = require("./stitch.js"); +var _stitchJsDefault = parcelHelpers.interopDefault(_stitchJs); +var _timesJs = require("./times.js"); +var _timesJsDefault = parcelHelpers.interopDefault(_timesJs); +var _twoPointAzimuthalJs = require("./twoPointAzimuthal.js"); +var _twoPointAzimuthalJsDefault = parcelHelpers.interopDefault(_twoPointAzimuthalJs); +var _twoPointEquidistantJs = require("./twoPointEquidistant.js"); +var _twoPointEquidistantJsDefault = parcelHelpers.interopDefault(_twoPointEquidistantJs); +var _vanDerGrintenJs = require("./vanDerGrinten.js"); +var _vanDerGrintenJsDefault = parcelHelpers.interopDefault(_vanDerGrintenJs); +var _vanDerGrinten2Js = require("./vanDerGrinten2.js"); +var _vanDerGrinten2JsDefault = parcelHelpers.interopDefault(_vanDerGrinten2Js); +var _vanDerGrinten3Js = require("./vanDerGrinten3.js"); +var _vanDerGrinten3JsDefault = parcelHelpers.interopDefault(_vanDerGrinten3Js); +var _vanDerGrinten4Js = require("./vanDerGrinten4.js"); +var _vanDerGrinten4JsDefault = parcelHelpers.interopDefault(_vanDerGrinten4Js); var _wagnerJs = require("./wagner.js"); var _wagnerJsDefault = parcelHelpers.interopDefault(_wagnerJs); var _wagner4Js = require("./wagner4.js"); @@ -29192,10 +29641,10 @@ var _wagner6Js = require("./wagner6.js"); var _wagner6JsDefault = parcelHelpers.interopDefault(_wagner6Js); var _wiechelJs = require("./wiechel.js"); var _wiechelJsDefault = parcelHelpers.interopDefault(_wiechelJs); -var _winkel3 = require("./winkel3"); -var _winkel3Default = parcelHelpers.interopDefault(_winkel3); +var _winkel3Js = require("./winkel3.js"); +var _winkel3JsDefault = parcelHelpers.interopDefault(_winkel3Js); -},{"./airy":false,"./aitoff":false,"./armadillo":false,"./august":false,"./baker":false,"./berghaus":false,"./bertin":false,"./boggs":false,"./bonne":false,"./bottomley":false,"./bromley":false,"./chamberlin":false,"./collignon":false,"./craig":false,"./craster":false,"./cylindricalEqualArea":false,"./cylindricalStereographic":false,"./eckert1.js":false,"./eckert2.js":false,"./eckert3.js":false,"./eckert4.js":false,"./eckert5.js":false,"./eckert6.js":false,"./eisenlohr.js":false,"./fahey.js":false,"./foucaut.js":false,"./foucautSinusoidal.js":false,"./gilbert.js":false,"./gingery.js":false,"./ginzburg4.js":false,"./ginzburg5.js":false,"./ginzburg6.js":false,"./ginzburg8.js":false,"./ginzburg9.js":false,"./gringorten.js":false,"./guyou.js":false,"./hammer.js":false,"./hammerRetroazimuthal.js":false,"./healpix.js":false,"./hill.js":false,"./homolosine.js":false,"./hufnagel.js":false,"./hyperelliptical":false,"./interrupted/index":false,"./interrupted/boggs":false,"./interrupted/homolosine":false,"./interrupted/mollweide":false,"./interrupted/mollweideHemispheres":false,"./interrupted/sinuMollweide":false,"./interrupted/sinusoidal":false,"./kavrayskiy7.js":false,"./lagrange.js":false,"./larrivee":false,"./laskowski":false,"./littrow.js":false,"./loximuthal.js":false,"./miller":false,"./modifiedStereographic":false,"./mollweide":"dkpmT","./mtFlatPolarParabolic":false,"./mtFlatPolarQuartic":false,"./mtFlatPolarSinusoidal":false,"./naturalEarth2":false,"./nellHammer":false,"./interrupted/quarticAuthalic":false,"./nicolosi":false,"./patterson":false,"./polyconic":false,"./polyhedral/index.js":false,"./polyhedral/butterfly.js":false,"./polyhedral/collignon.js":false,"./polyhedral/waterman.js":false,"./project/index":false,"./quincuncial/gringorten.js":false,"./quincuncial/peirce.js":false,"./quantize":false,"./quincuncial/index.js":false,"./rectangularPolyconic":false,"./robinson":false,"./satellite":false,"./sinuMollweide":false,"./sinusoidal":false,"./stitch":false,"./times":false,"./twoPointAzimuthal":false,"./twoPointEquidistant":false,"./vanDerGrinten":false,"./vanDerGrinten2":false,"./vanDerGrinten3":false,"./vanDerGrinten4":false,"./wagner.js":false,"./wagner4.js":false,"./wagner6.js":false,"./wiechel.js":false,"./winkel3":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dkpmT":[function(require,module,exports) { +},{"./airy.js":false,"./aitoff.js":false,"./armadillo.js":false,"./august.js":false,"./baker.js":false,"./berghaus.js":false,"./bertin.js":false,"./boggs.js":false,"./bonne.js":false,"./bottomley.js":false,"./bromley.js":false,"./chamberlin.js":false,"./collignon.js":false,"./craig.js":false,"./craster.js":false,"./cylindricalEqualArea.js":false,"./cylindricalStereographic.js":false,"./eckert1.js":false,"./eckert2.js":false,"./eckert3.js":false,"./eckert4.js":false,"./eckert5.js":false,"./eckert6.js":false,"./eisenlohr.js":false,"./fahey.js":false,"./foucaut.js":false,"./foucautSinusoidal.js":false,"./gilbert.js":false,"./gingery.js":false,"./ginzburg4.js":false,"./ginzburg5.js":false,"./ginzburg6.js":false,"./ginzburg8.js":false,"./ginzburg9.js":false,"./gringorten.js":false,"./guyou.js":false,"./hammer.js":false,"./hammerRetroazimuthal.js":false,"./healpix.js":false,"./hill.js":false,"./homolosine.js":false,"./hufnagel.js":false,"./hyperelliptical.js":false,"./interrupted/index.js":false,"./interrupted/boggs.js":false,"./interrupted/homolosine.js":false,"./interrupted/mollweide.js":false,"./interrupted/mollweideHemispheres.js":false,"./interrupted/sinuMollweide.js":false,"./interrupted/sinusoidal.js":false,"./kavrayskiy7.js":false,"./lagrange.js":false,"./larrivee.js":false,"./laskowski.js":false,"./littrow.js":false,"./loximuthal.js":false,"./miller.js":false,"./modifiedStereographic.js":false,"./mollweide.js":"dkpmT","./mtFlatPolarParabolic.js":false,"./mtFlatPolarQuartic.js":false,"./mtFlatPolarSinusoidal.js":false,"./naturalEarth2.js":false,"./nellHammer.js":false,"./interrupted/quarticAuthalic.js":false,"./nicolosi.js":false,"./patterson.js":false,"./polyconic.js":false,"./polyhedral/index.js":false,"./polyhedral/butterfly.js":false,"./polyhedral/collignon.js":false,"./polyhedral/waterman.js":false,"./project/index.js":false,"./quincuncial/gringorten.js":false,"./quincuncial/peirce.js":false,"./quantize.js":false,"./quincuncial/index.js":false,"./rectangularPolyconic.js":false,"./robinson.js":false,"./satellite.js":false,"./sinuMollweide.js":false,"./sinusoidal.js":false,"./stitch.js":false,"./times.js":false,"./twoPointAzimuthal.js":false,"./twoPointEquidistant.js":false,"./vanDerGrinten.js":false,"./vanDerGrinten2.js":false,"./vanDerGrinten3.js":false,"./vanDerGrinten4.js":false,"./wagner.js":false,"./wagner4.js":false,"./wagner6.js":false,"./wiechel.js":false,"./winkel3.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dkpmT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "mollweideBromleyTheta", ()=>mollweideBromleyTheta); @@ -30606,7 +31055,7 @@ function timerFlush() { ++frame; // Pretend we’ve set an alarm, if we haven’t already. var t = taskHead, e; while(t){ - if ((e = clockNow - t._time) >= 0) t._call.call(null, e); + if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e); t = t._next; } --frame; @@ -30896,7 +31345,7 @@ function setFields(node, fields, as) { for(let i = 0; i < n; ++i)t[as[i]] = node[fields[i]]; t[as[n]] = node.children ? node.children.length : 0; } -const Output = [ +const Output$3 = [ "x", "y", "r", @@ -30946,8 +31395,8 @@ Pack.Definition = { "name": "as", "type": "string", "array": true, - "length": Output.length, - "default": Output + "length": Output$3.length, + "default": Output$3 } ] }; @@ -30958,9 +31407,9 @@ Pack.Definition = { "size", "padding" ], - fields: Output + fields: Output$3 }); -const Output$1 = [ +const Output$2 = [ "x0", "y0", "x1", @@ -31011,8 +31460,8 @@ Partition.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$1.length, - "default": Output$1 + "length": Output$2.length, + "default": Output$2 } ] }; @@ -31023,7 +31472,7 @@ Partition.Definition = { "round", "padding" ], - fields: Output$1 + fields: Output$2 }); /** * Stratify a collection of tuples into a tree structure based on @@ -31070,7 +31519,7 @@ const Layouts = { tidy: (0, _d3Hierarchy.tree), cluster: (0, _d3Hierarchy.cluster) }; -const Output$2 = [ +const Output$1 = [ "x", "y", "depth", @@ -31129,8 +31578,8 @@ Tree.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$2.length, - "default": Output$2 + "length": Output$1.length, + "default": Output$1 } ] }; @@ -31146,7 +31595,7 @@ Tree.Definition = { "size", "nodeSize" ], - fields: Output$2 + fields: Output$1 }); /** * Generate tuples representing links between tree nodes. @@ -31200,7 +31649,7 @@ const Tiles = { squarify: (0, _d3Hierarchy.treemapSquarify), resquarify: (0, _d3Hierarchy.treemapResquarify) }; -const Output$3 = [ +const Output = [ "x0", "y0", "x1", @@ -31299,8 +31748,8 @@ Treemap.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$3.length, - "default": Output$3 + "length": Output.length, + "default": Output } ] }; @@ -31333,7 +31782,7 @@ Treemap.Definition = { "paddingBottom", "paddingLeft" ], - fields: Output$3 + fields: Output }); },{"vega-dataflow":"3NitK","vega-util":"bApja","d3-hierarchy":"4fr5p","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4fr5p":[function(require,module,exports) { @@ -31341,6 +31790,7 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "cluster", ()=>(0, _clusterJsDefault.default)); parcelHelpers.export(exports, "hierarchy", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "Node", ()=>(0, _indexJs.Node)); parcelHelpers.export(exports, "pack", ()=>(0, _indexJsDefault1.default)); parcelHelpers.export(exports, "packSiblings", ()=>(0, _siblingsJsDefault.default)); parcelHelpers.export(exports, "packEnclose", ()=>(0, _encloseJsDefault.default)); @@ -31725,19 +32175,22 @@ exports.default = function*() { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eQFOB":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _siblingsJs = require("./siblings.js"); var _accessorsJs = require("../accessors.js"); var _constantJs = require("../constant.js"); var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); +var _siblingsJs = require("./siblings.js"); function defaultRadius(d) { return Math.sqrt(d.value); } exports.default = function() { var radius = null, dx = 1, dy = 1, padding = (0, _constantJs.constantZero); function pack(root) { + const random = (0, _lcgJsDefault.default)(); root.x = dx / 2, root.y = dy / 2; - if (radius) root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1)); - else root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren((0, _constantJs.constantZero), 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + if (radius) root.eachBefore(radiusLeaf(radius)).eachAfter(packChildrenRandom(padding, 0.5, random)).eachBefore(translateChild(1)); + else root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildrenRandom((0, _constantJs.constantZero), 1, random)).eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random)).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); return root; } pack.radius = function(x) { @@ -31759,12 +32212,12 @@ function radiusLeaf(radius) { if (!node.children) node.r = Math.max(0, +radius(node) || 0); }; } -function packChildren(padding, k) { +function packChildrenRandom(padding, k, random) { return function(node) { if (children = node.children) { var children, i, n = children.length, r = padding(node) * k || 0, e; if (r) for(i = 0; i < n; ++i)children[i].r += r; - e = (0, _siblingsJs.packEnclose)(children); + e = (0, _siblingsJs.packSiblingsRandom)(children, random); if (r) for(i = 0; i < n; ++i)children[i].r -= r; node.r = e + r; } @@ -31781,14 +32234,53 @@ function translateChild(k) { }; } -},{"./siblings.js":"8RhM7","../accessors.js":"i242w","../constant.js":"i6Ely","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8RhM7":[function(require,module,exports) { +},{"../accessors.js":"i242w","../constant.js":"i6Ely","../lcg.js":"9jKig","./siblings.js":"8RhM7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i242w":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "optional", ()=>optional); +parcelHelpers.export(exports, "required", ()=>required); +function optional(f) { + return f == null ? null : required(f); +} +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i6Ely":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "constantZero", ()=>constantZero); +function constantZero() { + return 0; +} +exports.default = function(x) { + return function() { + return x; + }; +}; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9jKig":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "packEnclose", ()=>packEnclose); +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a = 1664525; +const c = 1013904223; +const m = 4294967296; // 2^32 +exports.default = function() { + let s = 1; + return ()=>(s = (a * s + c) % m) / m; +}; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8RhM7":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "packSiblingsRandom", ()=>packSiblingsRandom); var _arrayJs = require("../array.js"); var _arrayJsDefault = parcelHelpers.interopDefault(_arrayJs); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); var _encloseJs = require("./enclose.js"); -var _encloseJsDefault = parcelHelpers.interopDefault(_encloseJs); function place(b, a, c) { var dx = b.x - a.x, x, a2, dy = b.y - a.y, y, b2, d2 = dx * dx + dy * dy; if (d2) { @@ -31823,7 +32315,7 @@ function Node(circle) { this.next = null; this.previous = null; } -function packEnclose(circles) { +function packSiblingsRandom(circles, random) { if (!(n = (circles = (0, _arrayJsDefault.default)(circles)).length)) return 0; var a, b, c, n, aa, ca, i, j, k, sj, sk; // Place the first circle. @@ -31872,17 +32364,17 @@ function packEnclose(circles) { b._ ], c = b; while((c = c.next) !== b)a.push(c._); - c = (0, _encloseJsDefault.default)(a); + c = (0, _encloseJs.packEncloseRandom)(a, random); // Translate the circles to put the enclosing circle around the origin. for(i = 0; i < n; ++i)a = circles[i], a.x -= c.x, a.y -= c.y; return c.r; } exports.default = function(circles) { - packEnclose(circles); + packSiblingsRandom(circles, (0, _lcgJsDefault.default)()); return circles; }; -},{"../array.js":"4vcaT","./enclose.js":"gBh5f","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4vcaT":[function(require,module,exports) { +},{"../array.js":"4vcaT","../lcg.js":"9jKig","./enclose.js":"gBh5f","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4vcaT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "shuffle", ()=>shuffle); @@ -31890,10 +32382,10 @@ exports.default = function(x) { return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like : Array.from(x); // Map, Set, iterable, string, or anything else }; -function shuffle(array) { - var m = array.length, t, i; +function shuffle(array, random) { + let m = array.length, t, i; while(m){ - i = Math.random() * m-- | 0; + i = random() * m-- | 0; t = array[m]; array[m] = array[i]; array[i] = t; @@ -31904,16 +32396,22 @@ function shuffle(array) { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gBh5f":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "packEncloseRandom", ()=>packEncloseRandom); var _arrayJs = require("../array.js"); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); exports.default = function(circles) { - var i = 0, n = (circles = (0, _arrayJs.shuffle)(Array.from(circles))).length, B = [], p, e; + return packEncloseRandom(circles, (0, _lcgJsDefault.default)()); +}; +function packEncloseRandom(circles, random) { + var i = 0, n = (circles = (0, _arrayJs.shuffle)(Array.from(circles), random)).length, B = [], p, e; while(i < n){ p = circles[i]; if (e && enclosesWeak(e, p)) ++i; else e = encloseBasis(B = extendBasis(B, p)), i = 0; } return e; -}; +} function extendBasis(B, p) { var i, j; if (enclosesWeakAll(p, B)) return [ @@ -31977,7 +32475,7 @@ function encloseBasis2(a, b) { }; } function encloseBasis3(a, b, c) { - var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A = xb * xb + yb * yb - 1, B = 2 * (r1 + xa * xb + ya * yb), C = xa * xa + ya * ya - r1 * r1, r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A = xb * xb + yb * yb - 1, B = 2 * (r1 + xa * xb + ya * yb), C = xa * xa + ya * ya - r1 * r1, r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); return { x: x1 + xa + xb * r, y: y1 + ya + yb * r, @@ -31985,33 +32483,7 @@ function encloseBasis3(a, b, c) { }; } -},{"../array.js":"4vcaT","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i242w":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "optional", ()=>optional); -parcelHelpers.export(exports, "required", ()=>required); -function optional(f) { - return f == null ? null : required(f); -} -function required(f) { - if (typeof f !== "function") throw new Error; - return f; -} - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i6Ely":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "constantZero", ()=>constantZero); -function constantZero() { - return 0; -} -exports.default = function(x) { - return function() { - return x; - }; -}; - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hfHoW":[function(require,module,exports) { +},{"../array.js":"4vcaT","../lcg.js":"9jKig","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hfHoW":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _roundJs = require("./treemap/round.js"); @@ -32084,7 +32556,7 @@ var _accessorsJs = require("./accessors.js"); var _indexJs = require("./hierarchy/index.js"); var preroot = { depth: -1 -}, ambiguous = {}; +}, ambiguous = {}, imputed = {}; function defaultId(d) { return d.id; } @@ -32092,16 +32564,29 @@ function defaultParentId(d) { return d.parentId; } exports.default = function() { - var id = defaultId, parentId = defaultParentId; + var id = defaultId, parentId = defaultParentId, path; function stratify(data) { - var nodes = Array.from(data), n = nodes.length, d, i, root, parent, node, nodeId, nodeKey, nodeByKey = new Map; - for(i = 0; i < n; ++i){ + var nodes = Array.from(data), currentId = id, currentParentId = parentId, n, d, i, root, parent, node, nodeId, nodeKey, nodeByKey = new Map; + if (path != null) { + const I = nodes.map((d, i)=>normalize(path(d, i, data))); + const P = I.map(parentof); + const S = new Set(I).add(""); + for (const i1 of P)if (!S.has(i1)) { + S.add(i1); + I.push(i1); + P.push(parentof(i1)); + nodes.push(imputed); + } + currentId = (_, i)=>I[i]; + currentParentId = (_, i)=>P[i]; + } + for(i = 0, n = nodes.length; i < n; ++i){ d = nodes[i], node = nodes[i] = new (0, _indexJs.Node)(d); - if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { + if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) { nodeKey = node.id = nodeId; nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); } - if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) node.parent = nodeId; + if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) node.parent = nodeId; } for(i = 0; i < n; ++i){ node = nodes[i]; @@ -32120,6 +32605,16 @@ exports.default = function() { } } if (!root) throw new Error("no root"); + // When imputing internal nodes, only introduce roots if needed. + // Then replace the imputed marker data with null. + if (path != null) { + while(root.data === imputed && root.children.length === 1)root = root.children[0], --n; + for(let i2 = nodes.length - 1; i2 >= 0; --i2){ + node = nodes[i2]; + if (node.data !== imputed) break; + node.data = null; + } + } root.parent = preroot; root.eachBefore(function(node) { node.depth = node.parent.depth + 1; @@ -32130,13 +32625,45 @@ exports.default = function() { return root; } stratify.id = function(x) { - return arguments.length ? (id = (0, _accessorsJs.required)(x), stratify) : id; + return arguments.length ? (id = (0, _accessorsJs.optional)(x), stratify) : id; }; stratify.parentId = function(x) { - return arguments.length ? (parentId = (0, _accessorsJs.required)(x), stratify) : parentId; + return arguments.length ? (parentId = (0, _accessorsJs.optional)(x), stratify) : parentId; + }; + stratify.path = function(x) { + return arguments.length ? (path = (0, _accessorsJs.optional)(x), stratify) : path; }; return stratify; }; +// To normalize a path, we coerce to a string, strip the trailing slash if any +// (as long as the trailing slash is not immediately preceded by another slash), +// and add leading slash if missing. +function normalize(path) { + path = `${path}`; + let i = path.length; + if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1); + return path[0] === "/" ? path : `/${path}`; +} +// Walk backwards to find the first slash that is not the leading slash, e.g.: +// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased +// because the id of the root must be a truthy value.) +function parentof(path) { + let i = path.length; + if (i < 2) return ""; + while(--i > 1)if (slash(path, i)) break; + return path.slice(0, i); +} +// Slashes can be escaped; to determine whether a slash is a path delimiter, we +// count the number of preceding backslashes escaping the forward slash: an odd +// number indicates an escaped forward slash. +function slash(path, i) { + if (path[i] === "/") { + let k = 0; + while(i > 0 && path[--i] === "\\")++k; + if ((k & 1) === 0) return true; + } + return false; +} },{"./accessors.js":"i242w","./hierarchy/index.js":"jtgBj","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"5MDZW":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -32553,13 +33080,11 @@ exports.default = function custom(ratio) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "label", ()=>Label); +var _vegaScenegraph = require("vega-scenegraph"); var _vegaCanvas = require("vega-canvas"); var _vegaDataflow = require("vega-dataflow"); -var _vegaScenegraph = require("vega-scenegraph"); var _vegaUtil = require("vega-util"); -const ALPHA_MASK = 0xff000000; // alpha value equivalent to opacity 0.0625 -const INSIDE_OPACITY_IN_ALPHA = 0x10000000; -const INSIDE_OPACITY = 0.0625; +const ALPHA_MASK = 0xff000000; function baseBitmaps($, data) { const bitmap = $.bitmap(); // when there is no base mark but data points are to be avoided (data || []).forEach((d)=>bitmap.set($(d.boundary[0]), $(d.boundary[3]))); @@ -32568,19 +33093,25 @@ function baseBitmaps($, data) { undefined ]; } -function markBitmaps($, avoidMarks, labelInside, isGroupArea) { +function markBitmaps($, baseMark, avoidMarks, labelInside, isGroupArea) { // create canvas - const width = $.width, height = $.height, border = labelInside || isGroupArea, context = (0, _vegaCanvas.canvas)(width, height).getContext("2d"); // render all marks to be avoided into canvas - avoidMarks.forEach((items)=>draw(context, items, border)); // get canvas buffer, create bitmaps - const buffer = new Uint32Array(context.getImageData(0, 0, width, height).data.buffer), layer1 = $.bitmap(), layer2 = border && $.bitmap(); // populate bitmap layers - let x, y, u, v, alpha; + const width = $.width, height = $.height, border = labelInside || isGroupArea, context = (0, _vegaCanvas.canvas)(width, height).getContext("2d"), baseMarkContext = (0, _vegaCanvas.canvas)(width, height).getContext("2d"), strokeContext = border && (0, _vegaCanvas.canvas)(width, height).getContext("2d"); // render all marks to be avoided into canvas + avoidMarks.forEach((items)=>draw(context, items, false)); + draw(baseMarkContext, baseMark, false); + if (border) draw(strokeContext, baseMark, true); + // get canvas buffer, create bitmaps + const buffer = getBuffer(context, width, height), baseMarkBuffer = getBuffer(baseMarkContext, width, height), strokeBuffer = border && getBuffer(strokeContext, width, height), layer1 = $.bitmap(), layer2 = border && $.bitmap(); // populate bitmap layers + let x, y, u, v, index, alpha, strokeAlpha, baseMarkAlpha; for(y = 0; y < height; ++y)for(x = 0; x < width; ++x){ - alpha = buffer[y * width + x] & ALPHA_MASK; - if (alpha) { + index = y * width + x; + alpha = buffer[index] & ALPHA_MASK; + baseMarkAlpha = baseMarkBuffer[index] & ALPHA_MASK; + strokeAlpha = border && strokeBuffer[index] & ALPHA_MASK; + if (alpha || strokeAlpha || baseMarkAlpha) { u = $(x); v = $(y); - if (!isGroupArea) layer1.set(u, v); // update interior bitmap - if (border && alpha ^ INSIDE_OPACITY_IN_ALPHA) layer2.set(u, v); // update border bitmap + if (!isGroupArea && (alpha || baseMarkAlpha)) layer1.set(u, v); // update interior bitmap + if (border && (alpha || strokeAlpha)) layer2.set(u, v); // update border bitmap } } return [ @@ -32588,6 +33119,9 @@ function markBitmaps($, avoidMarks, labelInside, isGroupArea) { layer2 ]; } +function getBuffer(context, width, height) { + return new Uint32Array(context.getImageData(0, 0, width, height).data.buffer); +} function draw(context, items, interior) { if (!items.length) return; const type = items[0].mark.marktype; @@ -32604,13 +33138,12 @@ function draw(context, items, interior) { * @returns prepared item */ function prepare(source) { const item = (0, _vegaDataflow.rederive)(source, {}); - if (item.stroke) item.strokeOpacity = 1; - if (item.fill) { - item.fillOpacity = INSIDE_OPACITY; - item.stroke = "#000"; - item.strokeOpacity = 1; - item.strokeWidth = 2; - } + if (item.stroke && item.strokeOpacity !== 0 || item.fill && item.fillOpacity !== 0) return { + ...item, + strokeOpacity: 1, + stroke: "#000", + fillOpacity: 0 + }; return item; } const DIV = 5, // bit shift from x, y index to bit vector array index @@ -32938,9 +33471,10 @@ const Aligns = [ function placeMarkLabel($, bitmaps, anchors, offsets) { const width = $.width, height = $.height, bm0 = bitmaps[0], bm1 = bitmaps[1], n = offsets.length; return function(d) { + var _d$textWidth; const boundary = d.boundary, textHeight = d.datum.fontSize; // can not be placed if the mark is not visible in the graph bound if (boundary[2] < 0 || boundary[5] < 0 || boundary[0] > width || boundary[3] > height) return false; - let textWidth = 0, dx, dy, isInside, sizeFactor, insideFactor, x1, x2, y1, y2, xc, yc, _x1, _x2, _y1, _y2; // for each anchor and offset + let textWidth = (_d$textWidth = d.textWidth) !== null && _d$textWidth !== void 0 ? _d$textWidth : 0, dx, dy, isInside, sizeFactor, insideFactor, x1, x2, y1, y2, xc, yc, _x1, _x2, _y1, _y2; // for each anchor and offset for(let i = 0; i < n; ++i){ dx = (anchors[i] & 0x3) - 1; dy = (anchors[i] >>> 0x2 & 0x3) - 1; @@ -32979,10 +33513,7 @@ function placeMarkLabel($, bitmaps, anchors, offsets) { }; } // Test if a label with the given dimensions can be added without overlap function test(_x1, _x2, _y1, _y2, bm0, bm1, x1, x2, y1, y2, boundary, isInside) { - return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 ? bm1.getRange(_x1, _y1, _x2, _y2) || !isInMarkBound(x1, y1, x2, y2, boundary) : bm0.getRange(_x1, _y1, _x2, _y2))); -} -function isInMarkBound(x1, y1, x2, y2, boundary) { - return boundary[0] <= x1 && x2 <= boundary[2] && boundary[3] <= y1 && y2 <= boundary[5]; + return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 || bm0).getRange(_x1, _y1, _x2, _y2)); } const TOP = 0x0, MIDDLE = 0x4, BOTTOM = 0x8, LEFT = 0x0, CENTER = 0x1, RIGHT = 0x2; // Mapping from text anchor to number representation const anchorCode = { @@ -33004,16 +33535,25 @@ const placeAreaLabel = { function labelLayout(texts, size, compare, offset, anchor, avoidMarks, avoidBaseMark, lineAnchor, markIndex, padding, method) { // early exit for empty data if (!texts.length) return texts; - const positions = Math.max(offset.length, anchor.length), offsets = getOffsets(offset, positions), anchors = getAnchors(anchor, positions), marktype = markType(texts[0].datum), grouptype = marktype === "group" && texts[0].datum.items[markIndex].marktype, isGroupArea = grouptype === "area", boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex), $ = scaler(size[0], size[1], padding), isNaiveGroupArea = isGroupArea && method === "naive"; // prepare text mark data for placing - const data = texts.map((d)=>({ + const positions = Math.max(offset.length, anchor.length), offsets = getOffsets(offset, positions), anchors = getAnchors(anchor, positions), marktype = markType(texts[0].datum), grouptype = marktype === "group" && texts[0].datum.items[markIndex].marktype, isGroupArea = grouptype === "area", boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex), infPadding = padding === null || padding === Infinity, isNaiveGroupArea = isGroupArea && method === "naive"; + let maxTextWidth = -1, maxTextHeight = -1; // prepare text mark data for placing + const data = texts.map((d)=>{ + const textWidth = infPadding ? (0, _vegaScenegraph.textMetrics).width(d, d.text) : undefined; + maxTextWidth = Math.max(maxTextWidth, textWidth); + maxTextHeight = Math.max(maxTextHeight, d.fontSize); + return { datum: d, opacity: 0, x: undefined, y: undefined, align: undefined, baseline: undefined, - boundary: boundary(d) - })); + boundary: boundary(d), + textWidth + }; + }); + padding = padding === null || padding === Infinity ? Math.max(maxTextWidth, maxTextHeight) + Math.max(...offset) : padding; + const $ = scaler(size[0], size[1], padding); let bitmaps; if (!isNaiveGroupArea) { // sort labels in priority order, if comparator is provided @@ -33025,11 +33565,8 @@ function labelLayout(texts, size, compare, offset, anchor, avoidMarks, avoidBase labelInside = anchors[i] === 0x5 || offsets[i] < 0; // extract data information from base mark when base mark is to be avoided // base mark is implicitly avoided if it is a group area - if (marktype && (avoidBaseMark || isGroupArea)) avoidMarks = [ - texts.map((d)=>d.datum) - ].concat(avoidMarks); - // generate bitmaps for layout calculation - bitmaps = avoidMarks.length ? markBitmaps($, avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data); + const baseMark = (marktype && avoidBaseMark || isGroupArea) && texts.map((d)=>d.datum); // generate bitmaps for layout calculation + bitmaps = avoidMarks.length || baseMark ? markBitmaps($, baseMark || [], avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data); } // generate label placement function const place = isGroupArea ? placeAreaLabel[method]($, bitmaps, avoidBaseMark, markIndex) : placeMarkLabel($, bitmaps, anchors, offsets); // place all labels data.forEach((d)=>d.opacity = +place(d)); @@ -33054,7 +33591,7 @@ function markType(item) { * Factory function for function for getting base mark boundary, depending * on mark and group type. When mark type is undefined, line or area: boundary * is the coordinate of each data point. When base mark is grouped line, - * boundary is either at the beginning or end of the line depending on the + * boundary is either at the start or end of the line depending on the * value of lineAnchor. Otherwise, use bounds of base mark. */ function markBoundary(marktype, grouptype, lineAnchor, markIndex) { const xy = (d)=>[ @@ -33114,8 +33651,9 @@ const Anchors = [ * The available options are 'top-left', 'left', 'bottom-left', 'top', * 'bottom', 'top-right', 'right', 'bottom-right', 'middle'. * @param {Array} [params.offset] - Label offsets (in pixels) from the base mark bounding box. - * This parameter is parallel to the list of anchor points. - * @param {number} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size. + * This parameter is parallel to the list of anchor points. + * @param {number | null} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size. + * If this parameter is null, a label may exceed the layout size without any boundary. * @param {string} [params.lineAnchor='end'] - For group line mark labels only, indicates the anchor * position for labels. One of 'start' or 'end'. * @param {string} [params.markIndex=0] - For group mark labels only, an index indicating @@ -33165,7 +33703,8 @@ Label.Definition = { { name: "padding", type: "number", - default: 0 + default: 0, + null: true }, { name: "lineAnchor", @@ -33215,7 +33754,7 @@ Label.Definition = { if (!(mod || pulse.changed(pulse.ADD_REM) || modp("sort"))) return; if (!_.size || _.size.length !== 2) (0, _vegaUtil.error)("Size parameter should be specified as a [width, height] array."); const as = _.as || Output; // run label layout - labelLayout(pulse.materialize(pulse.SOURCE).source, _.size, _.sort, (0, _vegaUtil.array)(_.offset || 1), (0, _vegaUtil.array)(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark === false ? false : true, _.lineAnchor || "end", _.markIndex || 0, _.padding || 0, _.method || "naive").forEach((l)=>{ + labelLayout(pulse.materialize(pulse.SOURCE).source || [], _.size, _.sort, (0, _vegaUtil.array)(_.offset == null ? 1 : _.offset), (0, _vegaUtil.array)(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark !== false, _.lineAnchor || "end", _.markIndex || 0, _.padding === undefined ? 0 : _.padding, _.method || "naive").forEach((l)=>{ // write layout results to data stream const t = l.datum; t[as[0]] = l.x; @@ -33228,7 +33767,7 @@ Label.Definition = { } }); -},{"vega-canvas":"f0yaA","vega-dataflow":"3NitK","vega-scenegraph":"jattk","vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"elv3U":[function(require,module,exports) { +},{"vega-scenegraph":"jattk","vega-canvas":"f0yaA","vega-dataflow":"3NitK","vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"elv3U":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "loess", ()=>Loess); @@ -33641,10 +34180,12 @@ class Delaunay { this.triangles = new Int32Array(3).fill(-1); this.halfedges = new Int32Array(3).fill(-1); this.triangles[0] = hull[0]; - this.triangles[1] = hull[1]; - this.triangles[2] = hull[1]; inedges[hull[0]] = 1; - if (hull.length === 2) inedges[hull[1]] = 0; + if (hull.length === 2) { + inedges[hull[1]] = 0; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + } } } voronoi(bounds) { @@ -33719,7 +34260,9 @@ class Delaunay { this.renderHull(context); return buffer && buffer.value(); } - renderPoints(context, r = 2) { + renderPoints(context, r) { + if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null; + r = r == undefined ? 2 : +r; const buffer = context == null ? context = new (0, _pathJsDefault.default) : undefined; const { points } = this; for(let i = 0, n = points.length; i < n; i += 2){ @@ -33791,6 +34334,7 @@ function* flatIterable(points, fx, fy, that) { },{"delaunator":"auyGo","./path.js":"60Yfe","./polygon.js":"5nsXD","./voronoi.js":"a33Bo","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"auyGo":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _robustPredicates = require("robust-predicates"); const EPSILON = Math.pow(2, -52); const EDGE_STACK = new Uint32Array(512); class Delaunator { @@ -33898,7 +34442,7 @@ class Delaunator { return; } // swap the order of the seed points for counter-clockwise orientation - if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { + if ((0, _robustPredicates.orient2d)(i0x, i0y, i1x, i1y, i2x, i2y) < 0) { const i8 = i1; const x1 = i1x; const y1 = i1y; @@ -33948,7 +34492,7 @@ class Delaunator { } start = hullPrev[start]; let e = start, q; - while(q = hullNext[e], !orient(x2, y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])){ + while(q = hullNext[e], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0){ e = q; if (e === start) { e = -1; @@ -33964,7 +34508,7 @@ class Delaunator { hullSize++; // walk forward through the hull, adding more triangles and flipping recursively let n1 = hullNext[e]; - while(q = hullNext[n1], orient(x2, y2, coords[2 * n1], coords[2 * n1 + 1], coords[2 * q], coords[2 * q + 1])){ + while(q = hullNext[n1], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * n1], coords[2 * n1 + 1], coords[2 * q], coords[2 * q + 1]) < 0){ t = this._addTriangle(n1, i10, q, hullTri[i10], -1, hullTri[n1]); hullTri[i10] = this._legalize(t + 2); hullNext[n1] = n1; // mark as removed @@ -33972,7 +34516,7 @@ class Delaunator { n1 = q; } // walk backward from the other side, adding more triangles and flipping - if (e === start) while(q = hullPrev[e], orient(x2, y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])){ + if (e === start) while(q = hullPrev[e], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0){ t = this._addTriangle(q, i10, e, -1, hullTri[e], hullTri[q]); this._legalize(t + 2); hullTri[q] = t; @@ -34092,17 +34636,6 @@ function dist(ax, ay, bx, by) { const dy = ay - by; return dx * dx + dy * dy; } -// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check -function orientIfSure(px, py, rx, ry, qx, qy) { - const l = (ry - py) * (qx - px); - const r = (rx - px) * (qy - py); - return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; -} -// a more robust orientation test that's stable in a given triangle (to fix robustness issues) -function orient(rx, ry, qx, qy, px, py) { - const sign = orientIfSure(px, py, rx, ry, qx, qy) || orientIfSure(rx, ry, qx, qy, px, py) || orientIfSure(qx, qy, px, py, rx, ry); - return sign < 0; -} function inCircle(ax, ay, bx, by, cx, cy, px, py) { const dx = ax - px; const dy = ay - py; @@ -34191,7 +34724,2058 @@ function defaultGetY(p) { return p[1]; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60Yfe":[function(require,module,exports) { +},{"robust-predicates":"KLZHK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"KLZHK":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient2d", ()=>(0, _orient2DJs.orient2d)); +parcelHelpers.export(exports, "orient2dfast", ()=>(0, _orient2DJs.orient2dfast)); +parcelHelpers.export(exports, "orient3d", ()=>(0, _orient3DJs.orient3d)); +parcelHelpers.export(exports, "orient3dfast", ()=>(0, _orient3DJs.orient3dfast)); +parcelHelpers.export(exports, "incircle", ()=>(0, _incircleJs.incircle)); +parcelHelpers.export(exports, "incirclefast", ()=>(0, _incircleJs.incirclefast)); +parcelHelpers.export(exports, "insphere", ()=>(0, _insphereJs.insphere)); +parcelHelpers.export(exports, "inspherefast", ()=>(0, _insphereJs.inspherefast)); +var _orient2DJs = require("./esm/orient2d.js"); +var _orient3DJs = require("./esm/orient3d.js"); +var _incircleJs = require("./esm/incircle.js"); +var _insphereJs = require("./esm/insphere.js"); + +},{"./esm/orient2d.js":"9dV6v","./esm/orient3d.js":"60Ijp","./esm/incircle.js":"eSgV9","./esm/insphere.js":"lKwEh","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9dV6v":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient2d", ()=>orient2d); +parcelHelpers.export(exports, "orient2dfast", ()=>orient2dfast); +var _utilJs = require("./util.js"); +const ccwerrboundA = (3 + 16 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const ccwerrboundB = (2 + 12 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const ccwerrboundC = (9 + 64 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const B = (0, _utilJs.vec)(4); +const C1 = (0, _utilJs.vec)(8); +const C2 = (0, _utilJs.vec)(12); +const D = (0, _utilJs.vec)(16); +const u = (0, _utilJs.vec)(4); +function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) { + let acxtail, acytail, bcxtail, bcytail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + const acx = ax - cx; + const bcx = bx - cx; + const acy = ay - cy; + const bcy = by - cy; + s1 = acx * bcy; + c = (0, _utilJs.splitter) * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = (0, _utilJs.splitter) * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcx; + c = (0, _utilJs.splitter) * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = (0, _utilJs.splitter) * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + B[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + B[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + B[2] = _j - (u3 - bvirt) + (_i - bvirt); + B[3] = u3; + let det = (0, _utilJs.estimate)(4, B); + let errbound = ccwerrboundB * detsum; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - acx; + acxtail = ax - (acx + bvirt) + (bvirt - cx); + bvirt = bx - bcx; + bcxtail = bx - (bcx + bvirt) + (bvirt - cx); + bvirt = ay - acy; + acytail = ay - (acy + bvirt) + (bvirt - cy); + bvirt = by - bcy; + bcytail = by - (bcy + bvirt) + (bvirt - cy); + if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) return det; + errbound = ccwerrboundC * detsum + (0, _utilJs.resulterrbound) * Math.abs(det); + det += acx * bcytail + bcy * acxtail - (acy * bcxtail + bcx * acytail); + if (det >= errbound || -det >= errbound) return det; + s1 = acxtail * bcy; + c = (0, _utilJs.splitter) * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = (0, _utilJs.splitter) * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcx; + c = (0, _utilJs.splitter) * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = (0, _utilJs.splitter) * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C1len = (0, _utilJs.sum)(4, B, 4, u, C1); + s1 = acx * bcytail; + c = (0, _utilJs.splitter) * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = (0, _utilJs.splitter) * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcxtail; + c = (0, _utilJs.splitter) * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = (0, _utilJs.splitter) * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C2len = (0, _utilJs.sum)(C1len, C1, 4, u, C2); + s1 = acxtail * bcytail; + c = (0, _utilJs.splitter) * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = (0, _utilJs.splitter) * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcxtail; + c = (0, _utilJs.splitter) * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = (0, _utilJs.splitter) * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const Dlen = (0, _utilJs.sum)(C2len, C2, 4, u, D); + return D[Dlen - 1]; +} +function orient2d(ax, ay, bx, by, cx, cy) { + const detleft = (ay - cy) * (bx - cx); + const detright = (ax - cx) * (by - cy); + const det = detleft - detright; + if (detleft === 0 || detright === 0 || detleft > 0 !== detright > 0) return det; + const detsum = Math.abs(detleft + detright); + if (Math.abs(det) >= ccwerrboundA * detsum) return det; + return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum); +} +function orient2dfast(ax, ay, bx, by, cx, cy) { + return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy); +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3WWl7":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "epsilon", ()=>epsilon); +parcelHelpers.export(exports, "splitter", ()=>splitter); +parcelHelpers.export(exports, "resulterrbound", ()=>resulterrbound); +// fast_expansion_sum_zeroelim routine from oritinal code +parcelHelpers.export(exports, "sum", ()=>sum); +parcelHelpers.export(exports, "sum_three", ()=>sum_three); +// scale_expansion_zeroelim routine from oritinal code +parcelHelpers.export(exports, "scale", ()=>scale); +parcelHelpers.export(exports, "negate", ()=>negate); +parcelHelpers.export(exports, "estimate", ()=>estimate); +parcelHelpers.export(exports, "vec", ()=>vec); +const epsilon = 1.1102230246251565e-16; +const splitter = 134217729; +const resulterrbound = (3 + 8 * epsilon) * epsilon; +function sum(elen, e, flen, f, h) { + let Q, Qnew, hh, bvirt; + let enow = e[0]; + let fnow = f[0]; + let eindex = 0; + let findex = 0; + if (fnow > enow === fnow > -enow) { + Q = enow; + enow = e[++eindex]; + } else { + Q = fnow; + fnow = f[++findex]; + } + let hindex = 0; + if (eindex < elen && findex < flen) { + if (fnow > enow === fnow > -enow) { + Qnew = enow + Q; + hh = Q - (Qnew - enow); + enow = e[++eindex]; + } else { + Qnew = fnow + Q; + hh = Q - (Qnew - fnow); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + while(eindex < elen && findex < flen){ + if (fnow > enow === fnow > -enow) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + } else { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + } + while(eindex < elen){ + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + while(findex < flen){ + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + if (Q !== 0 || hindex === 0) h[hindex++] = Q; + return hindex; +} +function sum_three(alen, a, blen, b, clen, c, tmp, out) { + return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out); +} +function scale(elen, e, b, h) { + let Q, sum, hh, product1, product0; + let bvirt, c, ahi, alo, bhi, blo; + c = splitter * b; + bhi = c - (c - b); + blo = b - bhi; + let enow = e[0]; + Q = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo); + let hindex = 0; + if (hh !== 0) h[hindex++] = hh; + for(let i = 1; i < elen; i++){ + enow = e[i]; + product1 = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo); + sum = Q + product0; + bvirt = sum - Q; + hh = Q - (sum - bvirt) + (product0 - bvirt); + if (hh !== 0) h[hindex++] = hh; + Q = product1 + sum; + hh = sum - (Q - product1); + if (hh !== 0) h[hindex++] = hh; + } + if (Q !== 0 || hindex === 0) h[hindex++] = Q; + return hindex; +} +function negate(elen, e) { + for(let i = 0; i < elen; i++)e[i] = -e[i]; + return elen; +} +function estimate(elen, e) { + let Q = e[0]; + for(let i = 1; i < elen; i++)Q += e[i]; + return Q; +} +function vec(n) { + return new Float64Array(n); +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60Ijp":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient3d", ()=>orient3d); +parcelHelpers.export(exports, "orient3dfast", ()=>orient3dfast); +var _utilJs = require("./util.js"); +const o3derrboundA = (7 + 56 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const o3derrboundB = (3 + 28 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const o3derrboundC = (26 + 288 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const bc = (0, _utilJs.vec)(4); +const ca = (0, _utilJs.vec)(4); +const ab = (0, _utilJs.vec)(4); +const at_b = (0, _utilJs.vec)(4); +const at_c = (0, _utilJs.vec)(4); +const bt_c = (0, _utilJs.vec)(4); +const bt_a = (0, _utilJs.vec)(4); +const ct_a = (0, _utilJs.vec)(4); +const ct_b = (0, _utilJs.vec)(4); +const bct = (0, _utilJs.vec)(8); +const cat = (0, _utilJs.vec)(8); +const abt = (0, _utilJs.vec)(8); +const u = (0, _utilJs.vec)(4); +const _8 = (0, _utilJs.vec)(8); +const _8b = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(8); +const _12 = (0, _utilJs.vec)(12); +let fin = (0, _utilJs.vec)(192); +let fin2 = (0, _utilJs.vec)(192); +function finadd(finlen, alen, a) { + finlen = (0, _utilJs.sum)(finlen, fin, alen, a, fin2); + const tmp = fin; + fin = fin2; + fin2 = tmp; + return finlen; +} +function tailinit(xtail, ytail, ax, ay, bx, by, a, b) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate; + if (xtail === 0) { + if (ytail === 0) { + a[0] = 0; + b[0] = 0; + return 1; + } else { + negate = -ytail; + s1 = negate * ax; + c = (0, _utilJs.splitter) * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = (0, _utilJs.splitter) * ax; + bhi = c - (c - ax); + blo = ax - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + s1 = ytail * bx; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * bx; + bhi = c - (c - bx); + blo = bx - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } + } else if (ytail === 0) { + s1 = xtail * ay; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + negate = -xtail; + s1 = negate * by; + c = (0, _utilJs.splitter) * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } else { + s1 = xtail * ay; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ytail * ax; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * ax; + bhi = c - (c - ax); + blo = ax - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + a[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + a[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + a[2] = _j - (u3 - bvirt) + (_i - bvirt); + a[3] = u3; + s1 = ytail * bx; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * bx; + bhi = c - (c - bx); + blo = bx - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = xtail * by; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + b[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + b[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + b[2] = _j - (u3 - bvirt) + (_i - bvirt); + b[3] = u3; + return 4; + } +} +function tailadd(finlen, a, b, k, z) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3; + s1 = a * b; + c = (0, _utilJs.splitter) * a; + ahi = c - (c - a); + alo = a - ahi; + c = (0, _utilJs.splitter) * b; + bhi = c - (c - b); + blo = b - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + c = (0, _utilJs.splitter) * k; + bhi = c - (c - k); + blo = k - bhi; + _i = s0 * k; + c = (0, _utilJs.splitter) * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * k; + c = (0, _utilJs.splitter) * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + u[2] = _k - (u3 - _j); + u[3] = u3; + finlen = finadd(finlen, 4, u); + if (z !== 0) { + c = (0, _utilJs.splitter) * z; + bhi = c - (c - z); + blo = z - bhi; + _i = s0 * z; + c = (0, _utilJs.splitter) * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * z; + c = (0, _utilJs.splitter) * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + u[2] = _k - (u3 - _j); + u[3] = u3; + finlen = finadd(finlen, 4, u); + } + return finlen; +} +function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail; + let adytail, bdytail, cdytail; + let adztail, bdztail, cdztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3; + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + s1 = bdx * cdy; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.scale)(4, bc, adz, _8), _8, (0, _utilJs.scale)(4, ca, bdz, _8b), _8b, _16), _16, (0, _utilJs.scale)(4, ab, cdz, _8), _8, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = o3derrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + bvirt = az - adz; + adztail = az - (adz + bvirt) + (bvirt - dz); + bvirt = bz - bdz; + bdztail = bz - (bdz + bvirt) + (bvirt - dz); + bvirt = cz - cdz; + cdztail = cz - (cdz + bvirt) + (bvirt - dz); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0 && adztail === 0 && bdztail === 0 && cdztail === 0) return det; + errbound = o3derrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + det += adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) + bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) + cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx); + if (det >= errbound || -det >= errbound) return det; + const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c); + const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a); + const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b); + const bctlen = (0, _utilJs.sum)(bt_len, bt_c, ct_len, ct_b, bct); + finlen = finadd(finlen, (0, _utilJs.scale)(bctlen, bct, adz, _16), _16); + const catlen = (0, _utilJs.sum)(ct_len, ct_a, at_len, at_c, cat); + finlen = finadd(finlen, (0, _utilJs.scale)(catlen, cat, bdz, _16), _16); + const abtlen = (0, _utilJs.sum)(at_len, at_b, bt_len, bt_a, abt); + finlen = finadd(finlen, (0, _utilJs.scale)(abtlen, abt, cdz, _16), _16); + if (adztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, bc, adztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(bctlen, bct, adztail, _16), _16); + } + if (bdztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, ca, bdztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(catlen, cat, bdztail, _16), _16); + } + if (cdztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, ab, cdztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(abtlen, abt, cdztail, _16), _16); + } + if (adxtail !== 0) { + if (bdytail !== 0) finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail); + if (cdytail !== 0) finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail); + } + if (bdxtail !== 0) { + if (cdytail !== 0) finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail); + if (adytail !== 0) finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail); + } + if (cdxtail !== 0) { + if (adytail !== 0) finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail); + if (bdytail !== 0) finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail); + } + return fin[finlen - 1]; +} +function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady); + const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz); + const errbound = o3derrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent); +} +function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + return adx * (bdy * cdz - bdz * cdy) + bdx * (cdy * adz - cdz * ady) + cdx * (ady * bdz - adz * bdy); +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eSgV9":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "incircle", ()=>incircle); +parcelHelpers.export(exports, "incirclefast", ()=>incirclefast); +var _utilJs = require("./util.js"); +const iccerrboundA = (10 + 96 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const iccerrboundB = (4 + 48 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const iccerrboundC = (44 + 576 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const bc = (0, _utilJs.vec)(4); +const ca = (0, _utilJs.vec)(4); +const ab = (0, _utilJs.vec)(4); +const aa = (0, _utilJs.vec)(4); +const bb = (0, _utilJs.vec)(4); +const cc = (0, _utilJs.vec)(4); +const u = (0, _utilJs.vec)(4); +const v = (0, _utilJs.vec)(4); +const axtbc = (0, _utilJs.vec)(8); +const aytbc = (0, _utilJs.vec)(8); +const bxtca = (0, _utilJs.vec)(8); +const bytca = (0, _utilJs.vec)(8); +const cxtab = (0, _utilJs.vec)(8); +const cytab = (0, _utilJs.vec)(8); +const abt = (0, _utilJs.vec)(8); +const bct = (0, _utilJs.vec)(8); +const cat = (0, _utilJs.vec)(8); +const abtt = (0, _utilJs.vec)(4); +const bctt = (0, _utilJs.vec)(4); +const catt = (0, _utilJs.vec)(4); +const _8 = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(16); +const _16b = (0, _utilJs.vec)(16); +const _16c = (0, _utilJs.vec)(16); +const _32 = (0, _utilJs.vec)(32); +const _32b = (0, _utilJs.vec)(32); +const _48 = (0, _utilJs.vec)(48); +const _64 = (0, _utilJs.vec)(64); +let fin = (0, _utilJs.vec)(1152); +let fin2 = (0, _utilJs.vec)(1152); +function finadd(finlen, a, alen) { + finlen = (0, _utilJs.sum)(finlen, fin, a, alen, fin2); + const tmp = fin; + fin = fin2; + fin2 = tmp; + return finlen; +} +function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail; + let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen; + let abtlen, bctlen, catlen; + let abttlen, bcttlen, cattlen; + let n1, n0; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + s1 = bdx * cdy; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, bc, adx, _8), _8, adx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32, (0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, ca, bdx, _8), _8, bdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64, (0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, ab, cdx, _8), _8, cdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = iccerrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) return det; + errbound = iccerrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + det += (adx * adx + ady * ady) * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx) + ((bdx * bdx + bdy * bdy) * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) + ((cdx * cdx + cdy * cdy) * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx)); + if (det >= errbound || -det >= errbound) return det; + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = adx * adx; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = ady * ady; + c = (0, _utilJs.splitter) * ady; + ahi = c - (c - ady); + alo = ady - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + aa[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + aa[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + aa[2] = _j - (u3 - bvirt) + (_i - bvirt); + aa[3] = u3; + } + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = bdx * bdx; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = bdy * bdy; + c = (0, _utilJs.splitter) * bdy; + ahi = c - (c - bdy); + alo = bdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + bb[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + bb[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + bb[2] = _j - (u3 - bvirt) + (_i - bvirt); + bb[3] = u3; + } + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = cdx * cdx; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = cdy * cdy; + c = (0, _utilJs.splitter) * cdy; + ahi = c - (c - cdy); + alo = cdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + cc[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + cc[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + cc[2] = _j - (u3 - bvirt) + (_i - bvirt); + cc[3] = u3; + } + if (adxtail !== 0) { + axtbclen = (0, _utilJs.scale)(4, bc, adxtail, axtbc); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(axtbclen, axtbc, 2 * adx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adxtail, _8), _8, bdy, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48); + } + if (adytail !== 0) { + aytbclen = (0, _utilJs.scale)(4, bc, adytail, aytbc); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(aytbclen, aytbc, 2 * ady, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, adytail, _8), _8, cdx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48); + } + if (bdxtail !== 0) { + bxtcalen = (0, _utilJs.scale)(4, ca, bdxtail, bxtca); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(bxtcalen, bxtca, 2 * bdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdxtail, _8), _8, cdy, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48); + } + if (bdytail !== 0) { + bytcalen = (0, _utilJs.scale)(4, ca, bdytail, bytca); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(bytcalen, bytca, 2 * bdy, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, bdytail, _8), _8, adx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48); + } + if (cdxtail !== 0) { + cxtablen = (0, _utilJs.scale)(4, ab, cdxtail, cxtab); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(cxtablen, cxtab, 2 * cdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdxtail, _8), _8, ady, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48); + } + if (cdytail !== 0) { + cytablen = (0, _utilJs.scale)(4, ab, cdytail, cytab); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(cytablen, cytab, 2 * cdy, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, cdytail, _8), _8, bdx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48); + } + if (adxtail !== 0 || adytail !== 0) { + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = bdxtail * cdy; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * cdytail; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + s1 = cdxtail * -bdy; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * -bdy; + bhi = c - (c - -bdy); + blo = -bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * -bdytail; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * -bdytail; + bhi = c - (c - -bdytail); + blo = -bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + bctlen = (0, _utilJs.sum)(4, u, 4, v, bct); + s1 = bdxtail * cdytail; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdxtail * bdytail; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bctt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bctt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bctt[2] = _j - (u3 - bvirt) + (_i - bvirt); + bctt[3] = u3; + bcttlen = 4; + } else { + bct[0] = 0; + bctlen = 1; + bctt[0] = 0; + bcttlen = 1; + } + if (adxtail !== 0) { + const len = (0, _utilJs.scale)(bctlen, bct, adxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(axtbclen, axtbc, adxtail, _16), _16, (0, _utilJs.scale)(len, _16c, 2 * adx, _32), _32, _48), _48); + const len2 = (0, _utilJs.scale)(bcttlen, bctt, adxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len2, _8, 2 * adx, _16), _16, (0, _utilJs.scale)(len2, _8, adxtail, _16b), _16b, (0, _utilJs.scale)(len, _16c, adxtail, _32), _32, _32b, _64), _64); + if (bdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adxtail, _8), _8, bdytail, _16), _16); + if (cdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, -adxtail, _8), _8, cdytail, _16), _16); + } + if (adytail !== 0) { + const len1 = (0, _utilJs.scale)(bctlen, bct, adytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(aytbclen, aytbc, adytail, _16), _16, (0, _utilJs.scale)(len1, _16c, 2 * ady, _32), _32, _48), _48); + const len21 = (0, _utilJs.scale)(bcttlen, bctt, adytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len21, _8, 2 * ady, _16), _16, (0, _utilJs.scale)(len21, _8, adytail, _16b), _16b, (0, _utilJs.scale)(len1, _16c, adytail, _32), _32, _32b, _64), _64); + } + } + if (bdxtail !== 0 || bdytail !== 0) { + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = cdxtail * ady; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * adytail; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + n1 = -cdy; + n0 = -cdytail; + s1 = adxtail * n1; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * n0; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + catlen = (0, _utilJs.sum)(4, u, 4, v, cat); + s1 = cdxtail * adytail; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adxtail * cdytail; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + catt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + catt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + catt[2] = _j - (u3 - bvirt) + (_i - bvirt); + catt[3] = u3; + cattlen = 4; + } else { + cat[0] = 0; + catlen = 1; + catt[0] = 0; + cattlen = 1; + } + if (bdxtail !== 0) { + const len3 = (0, _utilJs.scale)(catlen, cat, bdxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(bxtcalen, bxtca, bdxtail, _16), _16, (0, _utilJs.scale)(len3, _16c, 2 * bdx, _32), _32, _48), _48); + const len22 = (0, _utilJs.scale)(cattlen, catt, bdxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len22, _8, 2 * bdx, _16), _16, (0, _utilJs.scale)(len22, _8, bdxtail, _16b), _16b, (0, _utilJs.scale)(len3, _16c, bdxtail, _32), _32, _32b, _64), _64); + if (cdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdxtail, _8), _8, cdytail, _16), _16); + if (adytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, -bdxtail, _8), _8, adytail, _16), _16); + } + if (bdytail !== 0) { + const len4 = (0, _utilJs.scale)(catlen, cat, bdytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(bytcalen, bytca, bdytail, _16), _16, (0, _utilJs.scale)(len4, _16c, 2 * bdy, _32), _32, _48), _48); + const len23 = (0, _utilJs.scale)(cattlen, catt, bdytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len23, _8, 2 * bdy, _16), _16, (0, _utilJs.scale)(len23, _8, bdytail, _16b), _16b, (0, _utilJs.scale)(len4, _16c, bdytail, _32), _32, _32b, _64), _64); + } + } + if (cdxtail !== 0 || cdytail !== 0) { + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = adxtail * bdy; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * bdytail; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + n1 = -ady; + n0 = -adytail; + s1 = bdxtail * n1; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * n0; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + abtlen = (0, _utilJs.sum)(4, u, 4, v, abt); + s1 = adxtail * bdytail; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdxtail * adytail; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + abtt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + abtt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + abtt[2] = _j - (u3 - bvirt) + (_i - bvirt); + abtt[3] = u3; + abttlen = 4; + } else { + abt[0] = 0; + abtlen = 1; + abtt[0] = 0; + abttlen = 1; + } + if (cdxtail !== 0) { + const len5 = (0, _utilJs.scale)(abtlen, abt, cdxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(cxtablen, cxtab, cdxtail, _16), _16, (0, _utilJs.scale)(len5, _16c, 2 * cdx, _32), _32, _48), _48); + const len24 = (0, _utilJs.scale)(abttlen, abtt, cdxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len24, _8, 2 * cdx, _16), _16, (0, _utilJs.scale)(len24, _8, cdxtail, _16b), _16b, (0, _utilJs.scale)(len5, _16c, cdxtail, _32), _32, _32b, _64), _64); + if (adytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdxtail, _8), _8, adytail, _16), _16); + if (bdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, -cdxtail, _8), _8, bdytail, _16), _16); + } + if (cdytail !== 0) { + const len6 = (0, _utilJs.scale)(abtlen, abt, cdytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(cytablen, cytab, cdytail, _16), _16, (0, _utilJs.scale)(len6, _16c, 2 * cdy, _32), _32, _48), _48); + const len25 = (0, _utilJs.scale)(abttlen, abtt, cdytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len25, _8, 2 * cdy, _16), _16, (0, _utilJs.scale)(len25, _8, cdytail, _16b), _16b, (0, _utilJs.scale)(len6, _16c, cdytail, _32), _32, _32b, _64), _64); + } + } + return fin[finlen - 1]; +} +function incircle(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const alift = adx * adx + ady * ady; + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const blift = bdx * bdx + bdy * bdy; + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const clift = cdx * cdx + cdy * cdy; + const det = alift * (bdxcdy - cdxbdy) + blift * (cdxady - adxcdy) + clift * (adxbdy - bdxady); + const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift + (Math.abs(cdxady) + Math.abs(adxcdy)) * blift + (Math.abs(adxbdy) + Math.abs(bdxady)) * clift; + const errbound = iccerrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent); +} +function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const ady = ay - dy; + const bdx = bx - dx; + const bdy = by - dy; + const cdx = cx - dx; + const cdy = cy - dy; + const abdet = adx * bdy - bdx * ady; + const bcdet = bdx * cdy - cdx * bdy; + const cadet = cdx * ady - adx * cdy; + const alift = adx * adx + ady * ady; + const blift = bdx * bdx + bdy * bdy; + const clift = cdx * cdx + cdy * cdy; + return alift * bcdet + blift * cadet + clift * abdet; +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lKwEh":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "insphere", ()=>insphere); +parcelHelpers.export(exports, "inspherefast", ()=>inspherefast); +var _utilJs = require("./util.js"); +const isperrboundA = (16 + 224 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const isperrboundB = (5 + 72 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const isperrboundC = (71 + 1408 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const ab = (0, _utilJs.vec)(4); +const bc = (0, _utilJs.vec)(4); +const cd = (0, _utilJs.vec)(4); +const de = (0, _utilJs.vec)(4); +const ea = (0, _utilJs.vec)(4); +const ac = (0, _utilJs.vec)(4); +const bd = (0, _utilJs.vec)(4); +const ce = (0, _utilJs.vec)(4); +const da = (0, _utilJs.vec)(4); +const eb = (0, _utilJs.vec)(4); +const abc = (0, _utilJs.vec)(24); +const bcd = (0, _utilJs.vec)(24); +const cde = (0, _utilJs.vec)(24); +const dea = (0, _utilJs.vec)(24); +const eab = (0, _utilJs.vec)(24); +const abd = (0, _utilJs.vec)(24); +const bce = (0, _utilJs.vec)(24); +const cda = (0, _utilJs.vec)(24); +const deb = (0, _utilJs.vec)(24); +const eac = (0, _utilJs.vec)(24); +const adet = (0, _utilJs.vec)(1152); +const bdet = (0, _utilJs.vec)(1152); +const cdet = (0, _utilJs.vec)(1152); +const ddet = (0, _utilJs.vec)(1152); +const edet = (0, _utilJs.vec)(1152); +const abdet = (0, _utilJs.vec)(2304); +const cddet = (0, _utilJs.vec)(2304); +const cdedet = (0, _utilJs.vec)(3456); +const deter = (0, _utilJs.vec)(5760); +const _8 = (0, _utilJs.vec)(8); +const _8b = (0, _utilJs.vec)(8); +const _8c = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(16); +const _24 = (0, _utilJs.vec)(24); +const _48 = (0, _utilJs.vec)(48); +const _48b = (0, _utilJs.vec)(48); +const _96 = (0, _utilJs.vec)(96); +const _192 = (0, _utilJs.vec)(192); +const _384x = (0, _utilJs.vec)(384); +const _384y = (0, _utilJs.vec)(384); +const _384z = (0, _utilJs.vec)(384); +const _768 = (0, _utilJs.vec)(768); +function sum_three_scale(a, b, c, az, bz, cz, out) { + return (0, _utilJs.sum_three)((0, _utilJs.scale)(4, a, az, _8), _8, (0, _utilJs.scale)(4, b, bz, _8b), _8b, (0, _utilJs.scale)(4, c, cz, _8c), _8c, _16, out); +} +function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) { + const len = (0, _utilJs.sum)((0, _utilJs.sum)(alen, a, blen, b, _48), _48, (0, _utilJs.negate)((0, _utilJs.sum)(clen, c, dlen, d, _48b), _48b), _48b, _96); + return (0, _utilJs.sum_three)((0, _utilJs.scale)((0, _utilJs.scale)(len, _96, x, _192), _192, x, _384x), _384x, (0, _utilJs.scale)((0, _utilJs.scale)(len, _96, y, _192), _192, y, _384y), _384y, (0, _utilJs.scale)((0, _utilJs.scale)(len, _96, z, _192), _192, z, _384z), _384z, _768, out); +} +function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + s1 = ax * by; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ay; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + s1 = bx * cy; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * by; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cx * dy; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * cy; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + cd[2] = _j - (u3 - bvirt) + (_i - bvirt); + cd[3] = u3; + s1 = dx * ey; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * dy; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + de[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + de[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + de[2] = _j - (u3 - bvirt) + (_i - bvirt); + de[3] = u3; + s1 = ex * ay; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * ey; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ea[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ea[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ea[2] = _j - (u3 - bvirt) + (_i - bvirt); + ea[3] = u3; + s1 = ax * cy; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * ay; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ac[2] = _j - (u3 - bvirt) + (_i - bvirt); + ac[3] = u3; + s1 = bx * dy; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * by; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bd[2] = _j - (u3 - bvirt) + (_i - bvirt); + bd[3] = u3; + s1 = cx * ey; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * cy; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ce[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ce[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ce[2] = _j - (u3 - bvirt) + (_i - bvirt); + ce[3] = u3; + s1 = dx * ay; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * dy; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + da[2] = _j - (u3 - bvirt) + (_i - bvirt); + da[3] = u3; + s1 = ex * by; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ey; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + eb[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + eb[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + eb[2] = _j - (u3 - bvirt) + (_i - bvirt); + eb[3] = u3; + const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc); + const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd); + const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde); + const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea); + const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab); + const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd); + const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce); + const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda); + const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb); + const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac); + const deterlen = (0, _utilJs.sum_three)(liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet, liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet, (0, _utilJs.sum_three)(liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet, liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet, liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter); + return deter[deterlen - 1]; +} +const xdet = (0, _utilJs.vec)(96); +const ydet = (0, _utilJs.vec)(96); +const zdet = (0, _utilJs.vec)(96); +const fin = (0, _utilJs.vec)(1152); +function liftadapt(a, b, c, az, bz, cz, x, y, z, out) { + const len = sum_three_scale(a, b, c, az, bz, cz, _24); + return (0, _utilJs.sum_three)((0, _utilJs.scale)((0, _utilJs.scale)(len, _24, x, _48), _48, x, xdet), xdet, (0, _utilJs.scale)((0, _utilJs.scale)(len, _24, y, _48), _48, y, ydet), ydet, (0, _utilJs.scale)((0, _utilJs.scale)(len, _24, z, _48), _48, z, zdet), zdet, _192, out); +} +function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) { + let ab3, bc3, cd3, da3, ac3, bd3; + let aextail, bextail, cextail, dextail; + let aeytail, beytail, ceytail, deytail; + let aeztail, beztail, ceztail, deztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0; + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + s1 = aex * bey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bex * aey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + ab3 = _j + _i; + bvirt = ab3 - _j; + ab[2] = _j - (ab3 - bvirt) + (_i - bvirt); + ab[3] = ab3; + s1 = bex * cey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * bey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + bc3 = _j + _i; + bvirt = bc3 - _j; + bc[2] = _j - (bc3 - bvirt) + (_i - bvirt); + bc[3] = bc3; + s1 = cex * dey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * cey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + cd3 = _j + _i; + bvirt = cd3 - _j; + cd[2] = _j - (cd3 - bvirt) + (_i - bvirt); + cd[3] = cd3; + s1 = dex * aey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = aex * dey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + da3 = _j + _i; + bvirt = da3 - _j; + da[2] = _j - (da3 - bvirt) + (_i - bvirt); + da[3] = da3; + s1 = aex * cey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * aey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + ac3 = _j + _i; + bvirt = ac3 - _j; + ac[2] = _j - (ac3 - bvirt) + (_i - bvirt); + ac[3] = ac3; + s1 = bex * dey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * bey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + bd3 = _j + _i; + bvirt = bd3 - _j; + bd[2] = _j - (bd3 - bvirt) + (_i - bvirt); + bd[3] = bd3; + const finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.negate)(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet, liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet, (0, _utilJs.sum)((0, _utilJs.negate)(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet, liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = isperrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - aex; + aextail = ax - (aex + bvirt) + (bvirt - ex); + bvirt = ay - aey; + aeytail = ay - (aey + bvirt) + (bvirt - ey); + bvirt = az - aez; + aeztail = az - (aez + bvirt) + (bvirt - ez); + bvirt = bx - bex; + bextail = bx - (bex + bvirt) + (bvirt - ex); + bvirt = by - bey; + beytail = by - (bey + bvirt) + (bvirt - ey); + bvirt = bz - bez; + beztail = bz - (bez + bvirt) + (bvirt - ez); + bvirt = cx - cex; + cextail = cx - (cex + bvirt) + (bvirt - ex); + bvirt = cy - cey; + ceytail = cy - (cey + bvirt) + (bvirt - ey); + bvirt = cz - cez; + ceztail = cz - (cez + bvirt) + (bvirt - ez); + bvirt = dx - dex; + dextail = dx - (dex + bvirt) + (bvirt - ex); + bvirt = dy - dey; + deytail = dy - (dey + bvirt) + (bvirt - ey); + bvirt = dz - dez; + deztail = dz - (dez + bvirt) + (bvirt - ez); + if (aextail === 0 && aeytail === 0 && aeztail === 0 && bextail === 0 && beytail === 0 && beztail === 0 && cextail === 0 && ceytail === 0 && ceztail === 0 && dextail === 0 && deytail === 0 && deztail === 0) return det; + errbound = isperrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + const abeps = aex * beytail + bey * aextail - (aey * bextail + bex * aeytail); + const bceps = bex * ceytail + cey * bextail - (bey * cextail + cex * beytail); + const cdeps = cex * deytail + dey * cextail - (cey * dextail + dex * ceytail); + const daeps = dex * aeytail + aey * dextail - (dey * aextail + aex * deytail); + const aceps = aex * ceytail + cey * aextail - (aey * cextail + cex * aeytail); + const bdeps = bex * deytail + dey * bextail - (bey * dextail + dex * beytail); + det += (bex * bex + bey * bey + bez * bez) * (cez * daeps + dez * aceps + aez * cdeps + (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) * (aez * bceps - bez * aceps + cez * abeps + (aeztail * bc3 - beztail * ac3 + ceztail * ab3)) - ((aex * aex + aey * aey + aez * aez) * (bez * cdeps - cez * bdeps + dez * bceps + (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) * (dez * abeps + aez * bdeps + bez * daeps + (deztail * ab3 + aeztail * bd3 + beztail * da3))) + 2 * ((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) + (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3) - ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) + (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3))); + if (det >= errbound || -det >= errbound) return det; + return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez); +} +function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + const aexbey = aex * bey; + const bexaey = bex * aey; + const ab = aexbey - bexaey; + const bexcey = bex * cey; + const cexbey = cex * bey; + const bc = bexcey - cexbey; + const cexdey = cex * dey; + const dexcey = dex * cey; + const cd = cexdey - dexcey; + const dexaey = dex * aey; + const aexdey = aex * dey; + const da = dexaey - aexdey; + const aexcey = aex * cey; + const cexaey = cex * aey; + const ac = aexcey - cexaey; + const bexdey = bex * dey; + const dexbey = dex * bey; + const bd = bexdey - dexbey; + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + const det = clift * dab - dlift * abc + (alift * bcd - blift * cda); + const aezplus = Math.abs(aez); + const bezplus = Math.abs(bez); + const cezplus = Math.abs(cez); + const dezplus = Math.abs(dez); + const aexbeyplus = Math.abs(aexbey); + const bexaeyplus = Math.abs(bexaey); + const bexceyplus = Math.abs(bexcey); + const cexbeyplus = Math.abs(cexbey); + const cexdeyplus = Math.abs(cexdey); + const dexceyplus = Math.abs(dexcey); + const dexaeyplus = Math.abs(dexaey); + const aexdeyplus = Math.abs(aexdey); + const aexceyplus = Math.abs(aexcey); + const cexaeyplus = Math.abs(cexaey); + const bexdeyplus = Math.abs(bexdey); + const dexbeyplus = Math.abs(dexbey); + const permanent = ((cexdeyplus + dexceyplus) * bezplus + (dexbeyplus + bexdeyplus) * cezplus + (bexceyplus + cexbeyplus) * dezplus) * alift + ((dexaeyplus + aexdeyplus) * cezplus + (aexceyplus + cexaeyplus) * dezplus + (cexdeyplus + dexceyplus) * aezplus) * blift + ((aexbeyplus + bexaeyplus) * dezplus + (bexdeyplus + dexbeyplus) * aezplus + (dexaeyplus + aexdeyplus) * bezplus) * clift + ((bexceyplus + cexbeyplus) * aezplus + (cexaeyplus + aexceyplus) * bezplus + (aexbeyplus + bexaeyplus) * cezplus) * dlift; + const errbound = isperrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent); +} +function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) { + const aex = pax - pex; + const bex = pbx - pex; + const cex = pcx - pex; + const dex = pdx - pex; + const aey = pay - pey; + const bey = pby - pey; + const cey = pcy - pey; + const dey = pdy - pey; + const aez = paz - pez; + const bez = pbz - pez; + const cez = pcz - pez; + const dez = pdz - pez; + const ab = aex * bey - bex * aey; + const bc = bex * cey - cex * bey; + const cd = cex * dey - dex * cey; + const da = dex * aey - aex * dey; + const ac = aex * cey - cex * aey; + const bd = bex * dey - dex * bey; + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + return clift * dab - dlift * abc + (alift * bcd - blift * cda); +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60Yfe":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); const epsilon = 1e-6; @@ -34304,19 +36888,25 @@ class Voronoi { const dy = y2 - y1; const ex = x3 - x1; const ey = y3 - y1; - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; const ab = (dx * ey - dy * ex) * 2; - if (!ab) { + if (Math.abs(ab) < 1e-9) { // degenerate case (collinear diagram) - x = (x1 + x3) / 2 - 1e8 * ey; - y = (y1 + y3) / 2 + 1e8 * ex; - } else if (Math.abs(ab) < 1e-8) { // almost equal points (degenerate triangle) - x = (x1 + x3) / 2; - y = (y1 + y3) / 2; + // the circumcenter is at the infinity, in a + // direction that is: + // 1. orthogonal to the halfedge. + let a = 1e9; + // 2. points away from the center; since the list of triangles starts + // in the center, the first point of the first triangle + // will be our reference + const r = triangles[0] * 2; + a *= Math.sign((points[r] - x1) * ey - (points[r + 1] - y1) * ex); + x = (x1 + x3) / 2 - a * ey; + y = (y1 + y3) / 2 + a * ex; } else { const d = 1 / ab; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; x = x1 + (ey * bl - dy * cl) * d; y = y1 + (dx * cl - ex * bl) * d; } @@ -34459,7 +37049,7 @@ class Voronoi { let P = null; let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; let c0, c1 = this._regioncode(x1, y1); - let e0, e1; + let e0, e1 = 0; for(let j = 0; j < n; j += 2){ x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; c0 = c1, c1 = this._regioncode(x1, y1); @@ -34577,6 +37167,8 @@ class Voronoi { e0 = 5, x = this.xmin, y = this.ymin; break; // left } + // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are + // undefined, the conditional statement will be executed. if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) P.splice(j, 0, x, y), j += 2; } if (P.length > 4) for(let i1 = 0; i1 < P.length; i1 += 2){ @@ -35802,7 +38394,7 @@ function prevent(view, type) { function permit(view, key, type) { const rule = view._eventConfig && view._eventConfig[key]; if (rule === false || (0, _vegaUtil.isObject)(rule) && !rule[type]) { - view.warn(`Blocked ${key} ${type} event listener.`); + view.warn("Blocked ".concat(key, " ").concat(type, " event listener.")); return false; } return true; @@ -36151,7 +38743,7 @@ function lookup(view, el, clear) { } } if (el && clear) try { - el.innerHTML = ""; + el.textContent = ""; } catch (e) { el = null; view.error(e); @@ -36799,9 +39391,9 @@ function internalScaleFunctions(codegen, fnctx, visitors) { const ref = (arg)=>"_[" + (arg.type === (0, _vegaExpression.Literal) ? (0, _vegaUtil.stringValue)(ScalePrefix + arg.value) : (0, _vegaUtil.stringValue)(ScalePrefix) + "+" + codegen(arg)) + "]"; // define and return internal scale function code generators // these internal functions are called by mark encoders return { - _bandwidth: (args)=>`this.__bandwidth(${ref(args[0])})`, - _range: (args)=>`${ref(args[0])}.range()`, - _scale: (args)=>`${ref(args[0])}(${codegen(args[1])})` + _bandwidth: (args)=>"this.__bandwidth(".concat(ref(args[0]), ")"), + _range: (args)=>"".concat(ref(args[0]), ".range()"), + _scale: (args)=>"".concat(ref(args[0]), "(").concat(codegen(args[1]), ")") }; } function geoMethod(methodName, globalMethod) { @@ -36929,16 +39521,20 @@ function array(seq) { function sequence(seq) { return array(seq) || ((0, _vegaUtil.isString)(seq) ? seq : null); } -function join(seq, ...args) { +function join(seq) { + for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)args[_key - 1] = arguments[_key]; return array(seq).join(...args); } -function indexof(seq, ...args) { +function indexof(seq) { + for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++)args[_key2 - 1] = arguments[_key2]; return sequence(seq).indexOf(...args); } -function lastindexof(seq, ...args) { +function lastindexof(seq) { + for(var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++)args[_key3 - 1] = arguments[_key3]; return sequence(seq).lastIndexOf(...args); } -function slice(seq, ...args) { +function slice(seq) { + for(var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++)args[_key4 - 1] = arguments[_key4]; return sequence(seq).slice(...args); } function replace(str, pattern, repl) { @@ -37056,6 +39652,87 @@ function filter(opt) { } return p; } +/** + * Appends a new point to the lasso + * + * @param {*} lasso the lasso in pixel space + * @param {*} x the x coordinate in pixel space + * @param {*} y the y coordinate in pixel space + * @param {*} minDist the minimum distance, in pixels, that thenew point needs to be apart from the last point + * @returns a new array containing the lasso with the new point + */ function lassoAppend(lasso, x, y) { + let minDist = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5; + const last = lasso[lasso.length - 1]; // Add point to lasso if distance to last point exceed minDist or its the first point + if (last === undefined || Math.sqrt((last[0] - x) ** 2 + (last[1] - y) ** 2) > minDist) { + lasso.push([ + x, + y + ]); + return [ + ...lasso + ]; + } + return lasso; +} +/** + * Generates a svg path command which draws a lasso + * + * @param {*} lasso the lasso in pixel space in the form [[x,y], [x,y], ...] + * @returns the svg path command that draws the lasso + */ function lassoPath(lasso) { + return (lasso !== null && lasso !== void 0 ? lasso : []).reduce((svg, _ref, i)=>{ + let [x, y] = _ref; + return svg += i == 0 ? "M ".concat(x, ",").concat(y, " ") : i === lasso.length - 1 ? " Z" : "L ".concat(x, ",").concat(y, " "); + }, ""); +} +/** + * Inverts the lasso from pixel space to an array of vega scenegraph tuples + * + * @param {*} data the dataset + * @param {*} pixelLasso the lasso in pixel space, [[x,y], [x,y], ...] + * @param {*} unit the unit where the lasso is defined + * + * @returns an array of vega scenegraph tuples + */ function intersectLasso(markname, pixelLasso, unit) { + const { x , y , mark } = unit; + const bb = new (0, _vegaScenegraph.Bounds)().set(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER, Number.MIN_SAFE_INTEGER); // Get bounding box around lasso + for (const [px, py] of pixelLasso){ + if (px < bb.x1) bb.x1 = px; + if (px > bb.x2) bb.x2 = px; + if (py < bb.y1) bb.y1 = py; + if (py > bb.y2) bb.y2 = py; + } // Translate bb against unit coordinates + bb.translate(x, y); + const intersection = intersect([ + [ + bb.x1, + bb.y1 + ], + [ + bb.x2, + bb.y2 + ] + ], markname, mark); // Check every point against the lasso + return intersection.filter((tuple)=>pointInPolygon(tuple.x, tuple.y, pixelLasso)); +} +/** + * Performs a test if a point is inside a polygon based on the idea from + * https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html + * + * This method will not need the same start/end point since it wraps around the edges of the array + * + * @param {*} test a point to test against + * @param {*} polygon a polygon in the form [[x,y], [x,y], ...] + * @returns true if the point lies inside the polygon, false otherwise + */ function pointInPolygon(testx, testy, polygon) { + let intersections = 0; + for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){ + const [prevX, prevY] = polygon[j]; + const [x, y] = polygon[i]; // count intersections + if (y > testy != prevY > testy && testx < (prevX - x) * (testy - y) / (prevY - y) + x) intersections++; + } // point is in polygon if intersection count is odd + return intersections & 1; +} const functionContext = { random () { return (0, _vegaStatistics.random)(); @@ -37088,8 +39765,11 @@ const functionContext = { return _ != null && _ === _; }, toBoolean: (0, _vegaUtil.toBoolean), - toDate: (0, _vegaUtil.toDate), - toNumber: (0, _vegaUtil.toNumber), + toDate (_) { + return (0, _vegaUtil.toDate)(_); + }, + toNumber: // suppress extra arguments + (0, _vegaUtil.toNumber), toString: (0, _vegaUtil.toString), indexof, join, @@ -37136,7 +39816,10 @@ const functionContext = { warn, info, debug, - extent: (0, _vegaUtil.extent), + extent (_) { + return (0, _vegaUtil.extent)(_); + }, + // suppress extra arguments inScope, intersect, clampRange: (0, _vegaUtil.clampRange), @@ -37157,7 +39840,10 @@ const functionContext = { zoomPow: (0, _vegaUtil.zoomPow), zoomSymlog: (0, _vegaUtil.zoomSymlog), encode, - modify + modify, + lassoAppend, + lassoPath, + intersectLasso }; const eventFunctions = [ "view", @@ -37181,7 +39867,7 @@ const codegenParams = { "item" ], fieldvar: "datum", - globalvar: (id)=>`_[${(0, _vegaUtil.stringValue)(SignalPrefix + id)}]`, + globalvar: (id)=>"_[".concat((0, _vegaUtil.stringValue)(SignalPrefix + id), "]"), functions: buildFunctions, constants: (0, _vegaExpression.constants), visitors: astVisitors @@ -37252,7 +39938,7 @@ function parser(expr, scope) { }; } -},{"vega-util":"bApja","vega-expression":"53Uxk","d3-geo":"lY61T","d3-color":"7SCp9","vega-dataflow":"3NitK","vega-scale":"bEydG","vega-scenegraph":"jattk","vega-selections":"674qo","vega-statistics":"5ncfv","vega-time":"27kpp","d3-array":"6IwJG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"53Uxk":[function(require,module,exports) { +},{"vega-util":"bApja","vega-expression":"2l1no","d3-geo":"lY61T","d3-color":"7SCp9","vega-dataflow":"3NitK","vega-scale":"bEydG","vega-scenegraph":"jattk","vega-selections":"674qo","vega-statistics":"5ncfv","vega-time":"27kpp","d3-array":"6IwJG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2l1no":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); @@ -38731,7 +41417,7 @@ function selectionVisitor(name, args, scope, params) { if (!(0, _vegaUtil.hasOwnProperty)(params, dataName)) params[dataName] = scope.getData(data).tuplesRef(); } -},{"d3-array":"lLsmU","vega-util":"bApja","vega-expression":"9KcWf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lLsmU":[function(require,module,exports) { +},{"d3-array":"lLsmU","vega-util":"bApja","vega-expression":"2l1no","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lLsmU":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "bisect", ()=>(0, _bisectJsDefault.default)); @@ -39008,2959 +41694,2916 @@ function union(...others) { } exports.default = union; -},{"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9KcWf":[function(require,module,exports) { +},{"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k7ppL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); -parcelHelpers.export(exports, "ArrayExpression", ()=>ArrayExpression); -parcelHelpers.export(exports, "BinaryExpression", ()=>BinaryExpression); -parcelHelpers.export(exports, "CallExpression", ()=>CallExpression); -parcelHelpers.export(exports, "ConditionalExpression", ()=>ConditionalExpression); -parcelHelpers.export(exports, "Identifier", ()=>Identifier); -parcelHelpers.export(exports, "Literal", ()=>Literal); -parcelHelpers.export(exports, "LogicalExpression", ()=>LogicalExpression); -parcelHelpers.export(exports, "MemberExpression", ()=>MemberExpression); -parcelHelpers.export(exports, "ObjectExpression", ()=>ObjectExpression); -parcelHelpers.export(exports, "Property", ()=>Property); -parcelHelpers.export(exports, "RawCode", ()=>RawCode); -parcelHelpers.export(exports, "UnaryExpression", ()=>UnaryExpression); -parcelHelpers.export(exports, "codegenExpression", ()=>codegen); -parcelHelpers.export(exports, "constants", ()=>Constants); -parcelHelpers.export(exports, "functions", ()=>Functions); -parcelHelpers.export(exports, "parseExpression", ()=>parser); +parcelHelpers.export(exports, "context", ()=>context); var _vegaUtil = require("vega-util"); -const RawCode = "RawCode"; -const Literal = "Literal"; -const Property = "Property"; -const Identifier = "Identifier"; -const ArrayExpression = "ArrayExpression"; -const BinaryExpression = "BinaryExpression"; -const CallExpression = "CallExpression"; -const ConditionalExpression = "ConditionalExpression"; -const LogicalExpression = "LogicalExpression"; -const MemberExpression = "MemberExpression"; -const ObjectExpression = "ObjectExpression"; -const UnaryExpression = "UnaryExpression"; -function ASTNode(type) { - this.type = type; +var _vegaDataflow = require("vega-dataflow"); +/** + * Parse a serialized dataflow specification. + */ function parse(spec) { + const ctx = this, operators = spec.operators || []; // parse background + if (spec.background) ctx.background = spec.background; + // parse event configuration + if (spec.eventConfig) ctx.eventConfig = spec.eventConfig; + // parse locale configuration + if (spec.locale) ctx.locale = spec.locale; + // parse operators + operators.forEach((entry)=>ctx.parseOperator(entry)); // parse operator parameters + operators.forEach((entry)=>ctx.parseOperatorParameters(entry)); // parse streams + (spec.streams || []).forEach((entry)=>ctx.parseStream(entry)); // parse updates + (spec.updates || []).forEach((entry)=>ctx.parseUpdate(entry)); + return ctx.resolve(); } -ASTNode.prototype.visit = function(visitor) { - let c, i, n; - if (visitor(this)) return 1; - for(c = children(this), i = 0, n = c.length; i < n; ++i){ - if (c[i].visit(visitor)) return 1; +const Skip = (0, _vegaUtil.toSet)([ + "rule" +]), Swap = (0, _vegaUtil.toSet)([ + "group", + "image", + "rect" +]); +function adjustSpatial(encode, marktype) { + let code = ""; + if (Skip[marktype]) return code; + if (encode.x2) { + if (encode.x) { + if (Swap[marktype]) code += "if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"; + code += "o.width=o.x2-o.x;"; + } else code += "o.x=o.x2-(o.width||0);"; } -}; -function children(node) { - switch(node.type){ - case ArrayExpression: - return node.elements; - case BinaryExpression: - case LogicalExpression: - return [ - node.left, - node.right - ]; - case CallExpression: - return [ - node.callee - ].concat(node.arguments); - case ConditionalExpression: - return [ - node.test, - node.consequent, - node.alternate - ]; - case MemberExpression: - return [ - node.object, - node.property - ]; - case ObjectExpression: - return node.properties; - case Property: - return [ - node.key, - node.value - ]; - case UnaryExpression: - return [ - node.argument - ]; - case Identifier: - case Literal: - case RawCode: - default: - return []; + if (encode.xc) code += "o.x=o.xc-(o.width||0)/2;"; + if (encode.y2) { + if (encode.y) { + if (Swap[marktype]) code += "if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"; + code += "o.height=o.y2-o.y;"; + } else code += "o.y=o.y2-(o.height||0);"; } + if (encode.yc) code += "o.y=o.yc-(o.height||0)/2;"; + return code; } -/* - The following expression parser is based on Esprima (http://esprima.org/). - Original header comment and license for Esprima is included here: - - Copyright (C) 2013 Ariya Hidayat - Copyright (C) 2013 Thaddee Tyl - Copyright (C) 2013 Mathias Bynens - Copyright (C) 2012 Ariya Hidayat - Copyright (C) 2012 Mathias Bynens - Copyright (C) 2012 Joost-Wim Boekesteijn - Copyright (C) 2012 Kris Kowal - Copyright (C) 2012 Yusuke Suzuki - Copyright (C) 2012 Arpad Borsos - Copyright (C) 2011 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ var TokenName, source, index, length, lookahead; -var TokenBooleanLiteral = 1, TokenEOF = 2, TokenIdentifier = 3, TokenKeyword = 4, TokenNullLiteral = 5, TokenNumericLiteral = 6, TokenPunctuator = 7, TokenStringLiteral = 8, TokenRegularExpression = 9; -TokenName = {}; -TokenName[TokenBooleanLiteral] = "Boolean"; -TokenName[TokenEOF] = ""; -TokenName[TokenIdentifier] = "Identifier"; -TokenName[TokenKeyword] = "Keyword"; -TokenName[TokenNullLiteral] = "Null"; -TokenName[TokenNumericLiteral] = "Numeric"; -TokenName[TokenPunctuator] = "Punctuator"; -TokenName[TokenStringLiteral] = "String"; -TokenName[TokenRegularExpression] = "RegularExpression"; -var SyntaxArrayExpression = "ArrayExpression", SyntaxBinaryExpression = "BinaryExpression", SyntaxCallExpression = "CallExpression", SyntaxConditionalExpression = "ConditionalExpression", SyntaxIdentifier = "Identifier", SyntaxLiteral = "Literal", SyntaxLogicalExpression = "LogicalExpression", SyntaxMemberExpression = "MemberExpression", SyntaxObjectExpression = "ObjectExpression", SyntaxProperty = "Property", SyntaxUnaryExpression = "UnaryExpression"; // Error messages should be identical to V8. -var MessageUnexpectedToken = "Unexpected token %0", MessageUnexpectedNumber = "Unexpected number", MessageUnexpectedString = "Unexpected string", MessageUnexpectedIdentifier = "Unexpected identifier", MessageUnexpectedReserved = "Unexpected reserved word", MessageUnexpectedEOS = "Unexpected end of input", MessageInvalidRegExp = "Invalid regular expression", MessageUnterminatedRegExp = "Invalid regular expression: missing /", MessageStrictOctalLiteral = "Octal literals are not allowed in strict mode.", MessageStrictDuplicateProperty = "Duplicate data property in object literal not allowed in strict mode"; -var ILLEGAL = "ILLEGAL", DISABLED = "Disabled."; // See also tools/generate-unicode-regex.py. -var RegexNonAsciiIdentifierStart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), // eslint-disable-next-line no-misleading-character-class -RegexNonAsciiIdentifierPart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"); // Ensure the condition is true, otherwise throw an error. -// This is only to have a better contract semantic, i.e. another safety net -// to catch a logic error. The condition shall be fulfilled in normal case. -// Do NOT use this to enforce a certain condition on any user input. -function assert(condition, message) { - /* istanbul ignore next */ if (!condition) throw new Error("ASSERT: " + message); +function canonicalType(type) { + return (type + "").toLowerCase(); } -function isDecimalDigit(ch) { - return ch >= 0x30 && ch <= 0x39; // 0..9 +function isOperator(type) { + return canonicalType(type) === "operator"; } -function isHexDigit(ch) { - return "0123456789abcdefABCDEF".indexOf(ch) >= 0; +function isCollect(type) { + return canonicalType(type) === "collect"; } -function isOctalDigit(ch) { - return "01234567".indexOf(ch) >= 0; -} // 7.2 White Space -function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [ - 0x1680, - 0x180E, - 0x2000, - 0x2001, - 0x2002, - 0x2003, - 0x2004, - 0x2005, - 0x2006, - 0x2007, - 0x2008, - 0x2009, - 0x200A, - 0x202F, - 0x205F, - 0x3000, - 0xFEFF - ].indexOf(ch) >= 0; -} // 7.3 Line Terminators -function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; -} // 7.6 Identifier Names and Identifiers -function isIdentifierStart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch)); +function expression(ctx, args, code) { + // wrap code in return statement if expression does not terminate + if (code[code.length - 1] !== ";") code = "return(" + code + ");"; + const fn = Function(...args.concat(code)); + return ctx && ctx.functions ? fn.bind(ctx.functions) : fn; +} // generate code for comparing a single field +function _compare(u, v, lt, gt) { + return "((u = ".concat(u, ") < (v = ").concat(v, ") || u == null) && v != null ? ").concat(lt, "\n : (u > v || v == null) && u != null ? ").concat(gt, "\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(lt, "\n : v !== v && u === u ? ").concat(gt, " : "); } -function isIdentifierPart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch >= 0x30 && ch <= 0x39 || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch)); -} // 7.6.1.1 Keywords -const keywords = { - "if": 1, - "in": 1, - "do": 1, - "var": 1, - "for": 1, - "new": 1, - "try": 1, - "let": 1, - "this": 1, - "else": 1, - "case": 1, - "void": 1, - "with": 1, - "enum": 1, - "while": 1, - "break": 1, - "catch": 1, - "throw": 1, - "const": 1, - "yield": 1, - "class": 1, - "super": 1, - "return": 1, - "typeof": 1, - "delete": 1, - "switch": 1, - "export": 1, - "import": 1, - "public": 1, - "static": 1, - "default": 1, - "finally": 1, - "extends": 1, - "package": 1, - "private": 1, - "function": 1, - "continue": 1, - "debugger": 1, - "interface": 1, - "protected": 1, - "instanceof": 1, - "implements": 1 -}; -function skipComment() { - while(index < length){ - const ch = source.charCodeAt(index); - if (isWhiteSpace(ch) || isLineTerminator(ch)) ++index; - else break; +var expressionCodegen = { + /** + * Parse an expression used to update an operator value. + */ operator: (ctx, expr)=>expression(ctx, [ + "_" + ], expr.code), + /** + * Parse an expression provided as an operator parameter value. + */ parameter: (ctx, expr)=>expression(ctx, [ + "datum", + "_" + ], expr.code), + /** + * Parse an expression applied to an event stream. + */ event: (ctx, expr)=>expression(ctx, [ + "event" + ], expr.code), + /** + * Parse an expression used to handle an event-driven operator update. + */ handler: (ctx, expr)=>{ + const code = "var datum=event.item&&event.item.datum;return ".concat(expr.code, ";"); + return expression(ctx, [ + "_", + "event" + ], code); + }, + /** + * Parse an expression that performs visual encoding. + */ encode: (ctx, encode)=>{ + const { marktype , channels } = encode; + let code = "var o=item,datum=o.datum,m=0,$;"; + for(const name in channels){ + const o = "o[" + (0, _vegaUtil.stringValue)(name) + "]"; + code += "$=".concat(channels[name].code, ";if(").concat(o, "!==$)").concat(o, "=$,m=1;"); + } + code += adjustSpatial(channels, marktype); + code += "return m;"; + return expression(ctx, [ + "item", + "_" + ], code); + }, + /** + * Optimized code generators for access and comparison. + */ codegen: { + get (path) { + const ref = "[".concat(path.map((0, _vegaUtil.stringValue)).join("]["), "]"); + const get = Function("_", "return _".concat(ref, ";")); + get.path = ref; + return get; + }, + comparator (fields, orders) { + let t; + const map = (f, i)=>{ + const o = orders[i]; + let u, v; + if (f.path) { + u = "a".concat(f.path); + v = "b".concat(f.path); + } else { + (t = t || {})["f" + i] = f; + u = "this.f".concat(i, "(a)"); + v = "this.f".concat(i, "(b)"); + } + return _compare(u, v, -o, o); + }; + const fn = Function("a", "b", "var u, v; return " + fields.map(map).join("") + "0;"); + return t ? fn.bind(t) : fn; + } } +}; +/** + * Parse a dataflow operator. + */ function parseOperator(spec) { + const ctx = this; + if (isOperator(spec.type) || !spec.type) ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null); + else ctx.transform(spec, spec.type); } -function scanHexEscape(prefix) { - var i, len, ch, code = 0; - len = prefix === "u" ? 4 : 2; - for(i = 0; i < len; ++i)if (index < length && isHexDigit(source[index])) { - ch = source[index++]; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } else throwError({}, MessageUnexpectedToken, ILLEGAL); - return String.fromCharCode(code); -} -function scanUnicodeCodePointEscape() { - var ch, code, cu1, cu2; - ch = source[index]; - code = 0; // At least, one hex digit is required. - if (ch === "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - while(index < length){ - ch = source[index++]; - if (!isHexDigit(ch)) break; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); +/** + * Parse and assign operator parameters. + */ function parseOperatorParameters(spec) { + const ctx = this; + if (spec.params) { + const op = ctx.get(spec.id); + if (!op) (0, _vegaUtil.error)("Invalid operator id: " + spec.id); + ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly)); } - if (code > 0x10FFFF || ch !== "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - // UTF-16 Encoding - if (code <= 0xFFFF) return String.fromCharCode(code); - cu1 = (code - 0x10000 >> 10) + 0xD800; - cu2 = (code - 0x10000 & 1023) + 0xDC00; - return String.fromCharCode(cu1, cu2); } -function getEscapedIdentifier() { - var ch, id; - ch = source.charCodeAt(index++); - id = String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierStart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id = ch; +/** + * Parse a set of operator parameters. + */ function parseParameters(spec, params) { + params = params || {}; + const ctx = this; + for(const key in spec){ + const value = spec[key]; + params[key] = (0, _vegaUtil.isArray)(value) ? value.map((v)=>parseParameter(v, ctx, params)) : parseParameter(value, ctx, params); } - while(index < length){ - ch = source.charCodeAt(index); - if (!isIdentifierPart(ch)) break; - ++index; - id += String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - id = id.substr(0, id.length - 1); - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierPart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id += ch; - } + return params; +} +/** + * Parse a single parameter. + */ function parseParameter(spec, ctx, params) { + if (!spec || !(0, _vegaUtil.isObject)(spec)) return spec; + for(let i = 0, n = PARSERS.length, p; i < n; ++i){ + p = PARSERS[i]; + if ((0, _vegaUtil.hasOwnProperty)(spec, p.key)) return p.parse(spec, ctx, params); } - return id; + return spec; } -function getIdentifier() { - var start, ch; - start = index++; - while(index < length){ - ch = source.charCodeAt(index); - if (ch === 0x5C) { - // Blackslash (U+005C) marks Unicode escape sequence. - index = start; - return getEscapedIdentifier(); - } - if (isIdentifierPart(ch)) ++index; - else break; +/** Reference parsers. */ var PARSERS = [ + { + key: "$ref", + parse: getOperator + }, + { + key: "$key", + parse: getKey + }, + { + key: "$expr", + parse: getExpression + }, + { + key: "$field", + parse: getField + }, + { + key: "$encode", + parse: getEncode + }, + { + key: "$compare", + parse: getCompare + }, + { + key: "$context", + parse: getContext + }, + { + key: "$subflow", + parse: getSubflow + }, + { + key: "$tupleid", + parse: getTupleId } - return source.slice(start, index); +]; +/** + * Resolve an operator reference. + */ function getOperator(_, ctx) { + return ctx.get(_.$ref) || (0, _vegaUtil.error)("Operator not defined: " + _.$ref); } -function scanIdentifier() { - var start, id, type; - start = index; // Backslash (U+005C) starts an escaped character. - id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character. - // Thus, it must be an identifier. - if (id.length === 1) type = TokenIdentifier; - else if (keywords.hasOwnProperty(id)) // eslint-disable-line no-prototype-builtins - type = TokenKeyword; - else if (id === "null") type = TokenNullLiteral; - else if (id === "true" || id === "false") type = TokenBooleanLiteral; - else type = TokenIdentifier; - return { - type: type, - value: id, - start: start, - end: index - }; -} // 7.7 Punctuators -function scanPunctuator() { - var start = index, code = source.charCodeAt(index), code2, ch1 = source[index], ch2, ch3, ch4; - switch(code){ - // Check for most common single-character punctuators. - case 0x2E: - case 0x28: - case 0x29: - case 0x3B: - case 0x2C: - case 0x7B: - case 0x7D: - case 0x5B: - case 0x5D: - case 0x3A: - case 0x3F: - case 0x7E: - // ~ - ++index; - return { - type: TokenPunctuator, - value: String.fromCharCode(code), - start: start, - end: index - }; - default: - code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator. - if (code2 === 0x3D) switch(code){ - case 0x2B: - case 0x2D: - case 0x2F: - case 0x3C: - case 0x3E: - case 0x5E: - case 0x7C: - case 0x25: - case 0x26: - case 0x2A: - // * - index += 2; - return { - type: TokenPunctuator, - value: String.fromCharCode(code) + String.fromCharCode(code2), - start: start, - end: index - }; - case 0x21: - case 0x3D: - // = - index += 2; // !== and === - if (source.charCodeAt(index) === 0x3D) ++index; - return { - type: TokenPunctuator, - value: source.slice(start, index), - start: start, - end: index - }; - } - } // 4-character punctuator: >>>= - ch4 = source.substr(index, 4); - if (ch4 === ">>>=") { - index += 4; - return { - type: TokenPunctuator, - value: ch4, - start: start, - end: index - }; - } // 3-character punctuators: === !== >>> <<= >>= - ch3 = ch4.substr(0, 3); - if (ch3 === ">>>" || ch3 === "<<=" || ch3 === ">>=") { - index += 3; - return { - type: TokenPunctuator, - value: ch3, - start: start, - end: index - }; - } // Other 2-character punctuators: ++ -- << >> && || - ch2 = ch3.substr(0, 2); - if (ch1 === ch2[1] && "+-<>&|".indexOf(ch1) >= 0 || ch2 === "=>") { - index += 2; - return { - type: TokenPunctuator, - value: ch2, - start: start, - end: index - }; - } - if (ch2 === "//") throwError({}, MessageUnexpectedToken, ILLEGAL); - // 1-character punctuators: < > = ! + - * % & | ^ / - if ("<>=!+-*%&|^/".indexOf(ch1) >= 0) { - ++index; - return { - type: TokenPunctuator, - value: ch1, - start: start, - end: index - }; - } - throwError({}, MessageUnexpectedToken, ILLEGAL); -} // 7.8.3 Numeric Literals -function scanHexLiteral(start) { - let number = ""; - while(index < length){ - if (!isHexDigit(source[index])) break; - number += source[index++]; - } - if (number.length === 0) throwError({}, MessageUnexpectedToken, ILLEGAL); - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt("0x" + number, 16), - start: start, - end: index - }; +/** + * Resolve an expression reference. + */ function getExpression(_, ctx, params) { + if (_.$params) // parse expression parameters + ctx.parseParameters(_.$params, params); + const k = "e:" + _.$expr.code + "_" + _.$name; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.accessor)(ctx.parameterExpression(_.$expr), _.$fields, _.$name)); } -function scanOctalLiteral(start) { - let number = "0" + source[index++]; - while(index < length){ - if (!isOctalDigit(source[index])) break; - number += source[index++]; - } - if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt(number, 8), - octal: true, - start: start, - end: index - }; +/** + * Resolve a key accessor reference. + */ function getKey(_, ctx) { + const k = "k:" + _.$key + "_" + !!_.$flat; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.key)(_.$key, _.$flat, ctx.expr.codegen)); } -function scanNumericLiteral() { - var number, start, ch; - ch = source[index]; - assert(isDecimalDigit(ch.charCodeAt(0)) || ch === ".", "Numeric literal must start with a decimal digit or a decimal point"); - start = index; - number = ""; - if (ch !== ".") { - number = source[index++]; - ch = source[index]; // Hex number starts with '0x'. - // Octal number starts with '0'. - if (number === "0") { - if (ch === "x" || ch === "X") { - ++index; - return scanHexLiteral(start); - } - if (isOctalDigit(ch)) return scanOctalLiteral(start); - // decimal number starts with '0' such as '09' is illegal. - if (ch && isDecimalDigit(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - } - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === ".") { - number += source[index++]; - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === "e" || ch === "E") { - number += source[index++]; - ch = source[index]; - if (ch === "+" || ch === "-") number += source[index++]; - if (isDecimalDigit(source.charCodeAt(index))) while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - else throwError({}, MessageUnexpectedToken, ILLEGAL); - } - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseFloat(number), - start: start, - end: index - }; -} // 7.8.4 String Literals -function scanStringLiteral() { - var str = "", quote, start, ch, code, octal = false; - quote = source[index]; - assert(quote === "'" || quote === '"', "String literal must starts with a quote"); - start = index; - ++index; - while(index < length){ - ch = source[index++]; - if (ch === quote) { - quote = ""; - break; - } else if (ch === "\\") { - ch = source[index++]; - if (!ch || !isLineTerminator(ch.charCodeAt(0))) switch(ch){ - case "u": - case "x": - if (source[index] === "{") { - ++index; - str += scanUnicodeCodePointEscape(); - } else str += scanHexEscape(ch); - break; - case "n": - str += "\n"; - break; - case "r": - str += "\r"; - break; - case "t": - str += " "; - break; - case "b": - str += "\b"; - break; - case "f": - str += "\f"; - break; - case "v": - str += "\v"; - break; - default: - if (isOctalDigit(ch)) { - code = "01234567".indexOf(ch); // \0 is not octal escape sequence - if (code !== 0) octal = true; - if (index < length && isOctalDigit(source[index])) { - octal = true; - code = code * 8 + "01234567".indexOf(source[index++]); // 3 digits are only allowed when string starts - // with 0, 1, 2, 3 - if ("0123".indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) code = code * 8 + "01234567".indexOf(source[index++]); - } - str += String.fromCharCode(code); - } else str += ch; - break; - } - else if (ch === "\r" && source[index] === "\n") ++index; - } else if (isLineTerminator(ch.charCodeAt(0))) break; - else str += ch; - } - if (quote !== "") throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenStringLiteral, - value: str, - octal: octal, - start: start, - end: index - }; +/** + * Resolve a field accessor reference. + */ function getField(_, ctx) { + if (!_.$field) return null; + const k = "f:" + _.$field + "_" + _.$name; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.field)(_.$field, _.$name, ctx.expr.codegen)); } -function testRegExp(pattern, flags) { - let tmp = pattern; - if (flags.indexOf("u") >= 0) // Replace each astral symbol and every Unicode code point - // escape sequence with a single ASCII symbol to avoid throwing on - // regular expressions that are only valid in combination with the - // `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it - // would be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, ($0, $1)=>{ - if (parseInt($1, 16) <= 0x10FFFF) return "x"; - throwError({}, MessageInvalidRegExp); - }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - // First, detect invalid regular expressions. - try { - new RegExp(tmp); - } catch (e) { - throwError({}, MessageInvalidRegExp); - } // Return a regular expression object for this pattern-flag pair, or - // `null` in case the current environment doesn't support the flags it - // uses. - try { - return new RegExp(pattern, flags); - } catch (exception) { - return null; - } +/** + * Resolve a comparator function reference. + */ function getCompare(_, ctx) { + // As of Vega 5.5.3, $tupleid sort is no longer used. + // Keep here for now for backwards compatibility. + const k = "c:" + _.$compare + "_" + _.$order, c = (0, _vegaUtil.array)(_.$compare).map((_)=>_ && _.$tupleid ? (0, _vegaDataflow.tupleid) : _); + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.compare)(c, _.$order, ctx.expr.codegen)); } -function scanRegExpBody() { - var ch, str, classMarker, terminated, body; - ch = source[index]; - assert(ch === "/", "Regular expression literal must start with a slash"); - str = source[index++]; - classMarker = false; - terminated = false; - while(index < length){ - ch = source[index++]; - str += ch; - if (ch === "\\") { - ch = source[index++]; // ECMA-262 7.8.5 - if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - str += ch; - } else if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - else if (classMarker) { - if (ch === "]") classMarker = false; - } else { - if (ch === "/") { - terminated = true; - break; - } else if (ch === "[") classMarker = true; - } +/** + * Resolve an encode operator reference. + */ function getEncode(_, ctx) { + const spec = _.$encode, encode = {}; + for(const name in spec){ + const enc = spec[name]; + encode[name] = (0, _vegaUtil.accessor)(ctx.encodeExpression(enc.$expr), enc.$fields); + encode[name].output = enc.$output; } - if (!terminated) throwError({}, MessageUnterminatedRegExp); - // Exclude leading and trailing slash. - body = str.substr(1, str.length - 2); - return { - value: body, - literal: str - }; + return encode; } -function scanRegExpFlags() { - var ch, str, flags; - str = ""; - flags = ""; - while(index < length){ - ch = source[index]; - if (!isIdentifierPart(ch.charCodeAt(0))) break; - ++index; - if (ch === "\\" && index < length) throwError({}, MessageUnexpectedToken, ILLEGAL); - else { - flags += ch; - str += ch; - } - } - if (flags.search(/[^gimuy]/g) >= 0) throwError({}, MessageInvalidRegExp, flags); - return { - value: flags, - literal: str - }; +/** + * Resolve a context reference. + */ function getContext(_, ctx) { + return ctx; } -function scanRegExp() { - var start, body, flags, value; - lookahead = null; - skipComment(); - start = index; - body = scanRegExpBody(); - flags = scanRegExpFlags(); - value = testRegExp(body.value, flags.value); - return { - literal: body.literal + flags.literal, - value: value, - regex: { - pattern: body.value, - flags: flags.value - }, - start: start, - end: index +/** + * Resolve a recursive subflow specification. + */ function getSubflow(_, ctx) { + const spec = _.$subflow; + return function(dataflow, key, parent) { + const subctx = ctx.fork().parse(spec), op = subctx.get(spec.operators[0].id), p = subctx.signals.parent; + if (p) p.set(parent); + op.detachSubflow = ()=>ctx.detach(subctx); + return op; }; } -function isIdentifierName(token) { - return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral; +/** + * Resolve a tuple id reference. + */ function getTupleId() { + return 0, _vegaDataflow.tupleid; } -function advance() { - skipComment(); - if (index >= length) return { - type: TokenEOF, - start: index, - end: index - }; - const ch = source.charCodeAt(index); - if (isIdentifierStart(ch)) return scanIdentifier(); - // Very common: ( and ) and ; - if (ch === 0x28 || ch === 0x29 || ch === 0x3B) return scanPunctuator(); - // String literal starts with single quote (U+0027) or double quote (U+0022). - if (ch === 0x27 || ch === 0x22) return scanStringLiteral(); - // Dot (.) U+002E can also start a floating-point number, hence the need - // to check the next character. - if (ch === 0x2E) { - if (isDecimalDigit(source.charCodeAt(index + 1))) return scanNumericLiteral(); - return scanPunctuator(); +/** + * Parse an event stream specification. + */ function parseStream(spec) { + var ctx = this, filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined, stream = spec.stream != null ? ctx.get(spec.stream) : undefined, args; + if (spec.source) stream = ctx.events(spec.source, spec.type, filter); + else if (spec.merge) { + args = spec.merge.map((_)=>ctx.get(_)); + stream = args[0].merge.apply(args[0], args.slice(1)); } - if (isDecimalDigit(ch)) return scanNumericLiteral(); - return scanPunctuator(); -} -function lex() { - const token = lookahead; - index = token.end; - lookahead = advance(); - index = token.end; - return token; -} -function peek() { - const pos = index; - lookahead = advance(); - index = pos; -} -function finishArrayExpression(elements) { - const node = new ASTNode(SyntaxArrayExpression); - node.elements = elements; - return node; + if (spec.between) { + args = spec.between.map((_)=>ctx.get(_)); + stream = stream.between(args[0], args[1]); + } + if (spec.filter) stream = stream.filter(filter); + if (spec.throttle != null) stream = stream.throttle(+spec.throttle); + if (spec.debounce != null) stream = stream.debounce(+spec.debounce); + if (stream == null) (0, _vegaUtil.error)("Invalid stream definition: " + JSON.stringify(spec)); + if (spec.consume) stream.consume(true); + ctx.stream(spec, stream); } -function finishBinaryExpression(operator, left, right) { - const node = new ASTNode(operator === "||" || operator === "&&" ? SyntaxLogicalExpression : SyntaxBinaryExpression); - node.operator = operator; - node.left = left; - node.right = right; - return node; +/** + * Parse an event-driven operator update. + */ function parseUpdate(spec) { + var ctx = this, srcid = (0, _vegaUtil.isObject)(srcid = spec.source) ? srcid.$ref : srcid, source = ctx.get(srcid), target = null, update = spec.update, params = undefined; + if (!source) (0, _vegaUtil.error)("Source not defined: " + spec.source); + target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target); + if (update && update.$expr) { + if (update.$params) params = ctx.parseParameters(update.$params); + update = ctx.handlerExpression(update.$expr); + } + ctx.update(spec, source, target, update, params); } -function finishCallExpression(callee, args) { - const node = new ASTNode(SyntaxCallExpression); - node.callee = callee; - node.arguments = args; - return node; +const SKIP = { + skip: true +}; +function getState(options) { + var ctx = this, state = {}; + if (options.signals) { + var signals = state.signals = {}; + Object.keys(ctx.signals).forEach((key)=>{ + const op = ctx.signals[key]; + if (options.signals(key, op)) signals[key] = op.value; + }); + } + if (options.data) { + var data = state.data = {}; + Object.keys(ctx.data).forEach((key)=>{ + const dataset = ctx.data[key]; + if (options.data(key, dataset)) data[key] = dataset.input.value; + }); + } + if (ctx.subcontext && options.recurse !== false) state.subcontext = ctx.subcontext.map((ctx)=>ctx.getState(options)); + return state; } -function finishConditionalExpression(test, consequent, alternate) { - const node = new ASTNode(SyntaxConditionalExpression); - node.test = test; - node.consequent = consequent; - node.alternate = alternate; - return node; +function setState(state) { + var ctx = this, df = ctx.dataflow, data = state.data, signals = state.signals; + Object.keys(signals || {}).forEach((key)=>{ + df.update(ctx.signals[key], signals[key], SKIP); + }); + Object.keys(data || {}).forEach((key)=>{ + df.pulse(ctx.data[key].input, df.changeset().remove((0, _vegaUtil.truthy)).insert(data[key])); + }); + (state.subcontext || []).forEach((substate, i)=>{ + const subctx = ctx.subcontext[i]; + if (subctx) subctx.setState(substate); + }); } -function finishIdentifier(name) { - const node = new ASTNode(SyntaxIdentifier); - node.name = name; - return node; +/** + * Context objects store the current parse state. + * Enables lookup of parsed operators, event streams, accessors, etc. + * Provides a 'fork' method for creating child contexts for subflows. + */ function context(df, transforms, functions, expr) { + return new Context(df, transforms, functions, expr); } -function finishLiteral(token) { - const node = new ASTNode(SyntaxLiteral); - node.value = token.value; - node.raw = source.slice(token.start, token.end); - if (token.regex) { - if (node.raw === "//") node.raw = "/(?:)/"; - node.regex = token.regex; +function Context(df, transforms, functions, expr) { + this.dataflow = df; + this.transforms = transforms; + this.events = df.events.bind(df); + this.expr = expr || expressionCodegen, this.signals = {}; + this.scales = {}; + this.nodes = {}; + this.data = {}; + this.fn = {}; + if (functions) { + this.functions = Object.create(functions); + this.functions.context = this; } - return node; -} -function finishMemberExpression(accessor, object, property) { - const node = new ASTNode(SyntaxMemberExpression); - node.computed = accessor === "["; - node.object = object; - node.property = property; - if (!node.computed) property.member = true; - return node; } -function finishObjectExpression(properties) { - const node = new ASTNode(SyntaxObjectExpression); - node.properties = properties; - return node; +function Subcontext(ctx) { + this.dataflow = ctx.dataflow; + this.transforms = ctx.transforms; + this.events = ctx.events; + this.expr = ctx.expr; + this.signals = Object.create(ctx.signals); + this.scales = Object.create(ctx.scales); + this.nodes = Object.create(ctx.nodes); + this.data = Object.create(ctx.data); + this.fn = Object.create(ctx.fn); + if (ctx.functions) { + this.functions = Object.create(ctx.functions); + this.functions.context = this; + } } -function finishProperty(kind, key, value) { - const node = new ASTNode(SyntaxProperty); - node.key = key; - node.value = value; - node.kind = kind; - return node; +Context.prototype = Subcontext.prototype = { + fork () { + const ctx = new Subcontext(this); + (this.subcontext || (this.subcontext = [])).push(ctx); + return ctx; + }, + detach (ctx) { + this.subcontext = this.subcontext.filter((c)=>c !== ctx); // disconnect all nodes in the subcontext + // wipe out targets first for better efficiency + const keys = Object.keys(ctx.nodes); + for (const key of keys)ctx.nodes[key]._targets = null; + for (const key1 of keys)ctx.nodes[key1].detach(); + ctx.nodes = null; + }, + get (id) { + return this.nodes[id]; + }, + set (id, node) { + return this.nodes[id] = node; + }, + add (spec, op) { + const ctx = this, df = ctx.dataflow, data = spec.value; + ctx.set(spec.id, op); + if (isCollect(spec.type) && data) { + if (data.$ingest) df.ingest(op, data.$ingest, data.$format); + else if (data.$request) df.preload(op, data.$request, data.$format); + else df.pulse(op, df.changeset().insert(data)); + } + if (spec.root) ctx.root = op; + if (spec.parent) { + let p = ctx.get(spec.parent.$ref); + if (p) { + df.connect(p, [ + op + ]); + op.targets().add(p); + } else (ctx.unresolved = ctx.unresolved || []).push(()=>{ + p = ctx.get(spec.parent.$ref); + df.connect(p, [ + op + ]); + op.targets().add(p); + }); + } + if (spec.signal) ctx.signals[spec.signal] = op; + if (spec.scale) ctx.scales[spec.scale] = op; + if (spec.data) for(const name in spec.data){ + const data1 = ctx.data[name] || (ctx.data[name] = {}); + spec.data[name].forEach((role)=>data1[role] = op); + } + }, + resolve () { + (this.unresolved || []).forEach((fn)=>fn()); + delete this.unresolved; + return this; + }, + operator (spec, update) { + this.add(spec, this.dataflow.add(spec.value, update)); + }, + transform (spec, type) { + this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)])); + }, + stream (spec, stream) { + this.set(spec.id, stream); + }, + update (spec, stream, target, update, params) { + this.dataflow.on(stream, target, update, params, spec.options); + }, + // expression parsing + operatorExpression (expr) { + return this.expr.operator(this, expr); + }, + parameterExpression (expr) { + return this.expr.parameter(this, expr); + }, + eventExpression (expr) { + return this.expr.event(this, expr); + }, + handlerExpression (expr) { + return this.expr.handler(this, expr); + }, + encodeExpression (encode) { + return this.expr.encode(this, encode); + }, + // parse methods + parse, + parseOperator, + parseOperatorParameters, + parseParameters, + parseStream, + parseUpdate, + // state methods + getState, + setState +}; + +},{"vega-util":"bApja","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hsy9Z":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "AxisDomainRole", ()=>AxisDomainRole); +parcelHelpers.export(exports, "AxisGridRole", ()=>AxisGridRole); +parcelHelpers.export(exports, "AxisLabelRole", ()=>AxisLabelRole); +parcelHelpers.export(exports, "AxisRole", ()=>AxisRole); +parcelHelpers.export(exports, "AxisTickRole", ()=>AxisTickRole); +parcelHelpers.export(exports, "AxisTitleRole", ()=>AxisTitleRole); +parcelHelpers.export(exports, "DataScope", ()=>DataScope); +parcelHelpers.export(exports, "FrameRole", ()=>FrameRole); +parcelHelpers.export(exports, "LegendEntryRole", ()=>LegendEntryRole); +parcelHelpers.export(exports, "LegendLabelRole", ()=>LegendLabelRole); +parcelHelpers.export(exports, "LegendRole", ()=>LegendRole); +parcelHelpers.export(exports, "LegendSymbolRole", ()=>LegendSymbolRole); +parcelHelpers.export(exports, "LegendTitleRole", ()=>LegendTitleRole); +parcelHelpers.export(exports, "MarkRole", ()=>MarkRole); +parcelHelpers.export(exports, "Scope", ()=>Scope); +parcelHelpers.export(exports, "ScopeRole", ()=>ScopeRole); +parcelHelpers.export(exports, "config", ()=>defaults); +parcelHelpers.export(exports, "parse", ()=>parse); +parcelHelpers.export(exports, "signal", ()=>parseSignal); +parcelHelpers.export(exports, "signalUpdates", ()=>parseSignalUpdates); +parcelHelpers.export(exports, "stream", ()=>parseStream); +var _vegaUtil = require("vega-util"); +var _vegaFunctions = require("vega-functions"); +var _vegaEventSelector = require("vega-event-selector"); +var _vegaScale = require("vega-scale"); +var _vegaDataflow = require("vega-dataflow"); +function parseAutosize(spec) { + return (0, _vegaUtil.isObject)(spec) ? spec : { + type: spec || "pad" + }; } -function finishUnaryExpression(operator, argument) { - const node = new ASTNode(SyntaxUnaryExpression); - node.operator = operator; - node.argument = argument; - node.prefix = true; - return node; -} // Throw an exception -function throwError(token, messageFormat) { - var error, args = Array.prototype.slice.call(arguments, 2), msg = messageFormat.replace(/%(\d)/g, (whole, index)=>{ - assert(index < args.length, "Message reference must be in range"); - return args[index]; +const number = (_)=>+_ || 0; +const paddingObject = (_)=>({ + top: _, + bottom: _, + left: _, + right: _ }); - error = new Error(msg); - error.index = index; - error.description = msg; - throw error; -} // Throw an exception because of the token. -function throwUnexpected(token) { - if (token.type === TokenEOF) throwError(token, MessageUnexpectedEOS); - if (token.type === TokenNumericLiteral) throwError(token, MessageUnexpectedNumber); - if (token.type === TokenStringLiteral) throwError(token, MessageUnexpectedString); - if (token.type === TokenIdentifier) throwError(token, MessageUnexpectedIdentifier); - if (token.type === TokenKeyword) throwError(token, MessageUnexpectedReserved); - // BooleanLiteral, NullLiteral, or Punctuator. - throwError(token, MessageUnexpectedToken, token.value); -} // Expect the next token to match the specified punctuator. -// If not, an exception will be thrown. -function expect(value) { - const token = lex(); - if (token.type !== TokenPunctuator || token.value !== value) throwUnexpected(token); -} // Return true if the next token matches the specified punctuator. -function match(value) { - return lookahead.type === TokenPunctuator && lookahead.value === value; -} // Return true if the next token matches the specified keyword -function matchKeyword(keyword) { - return lookahead.type === TokenKeyword && lookahead.value === keyword; -} // 11.1.4 Array Initialiser -function parseArrayInitialiser() { - const elements = []; - index = lookahead.start; - expect("["); - while(!match("]"))if (match(",")) { - lex(); - elements.push(null); - } else { - elements.push(parseConditionalExpression()); - if (!match("]")) expect(","); - } - lex(); - return finishArrayExpression(elements); -} // 11.1.5 Object Initialiser -function parseObjectPropertyKey() { - index = lookahead.start; - const token = lex(); // Note: This function is called only from parseObjectProperty(), where - // EOF and Punctuator tokens are already filtered out. - if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) { - if (token.octal) throwError(token, MessageStrictOctalLiteral); - return finishLiteral(token); - } - return finishIdentifier(token.value); +function parsePadding(spec) { + return !(0, _vegaUtil.isObject)(spec) ? paddingObject(number(spec)) : spec.signal ? spec : { + top: number(spec.top), + bottom: number(spec.bottom), + left: number(spec.left), + right: number(spec.right) + }; } -function parseObjectProperty() { - var token, key, id, value; - index = lookahead.start; - token = lookahead; - if (token.type === TokenIdentifier) { - id = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", id, value); - } - if (token.type === TokenEOF || token.type === TokenPunctuator) throwUnexpected(token); - else { - key = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", key, value); - } +const encoder = (_)=>(0, _vegaUtil.isObject)(_) && !(0, _vegaUtil.isArray)(_) ? (0, _vegaUtil.extend)({}, _) : { + value: _ + }; +function addEncode(object, name, value, set) { + if (value != null) { + const isEncoder = (0, _vegaUtil.isObject)(value) && !(0, _vegaUtil.isArray)(value) || (0, _vegaUtil.isArray)(value) && value.length && (0, _vegaUtil.isObject)(value[0]); // Always assign signal to update, even if the signal is from the enter block + if (isEncoder) object.update[name] = value; + else object[set || "enter"][name] = { + value: value + }; + return 1; + } else return 0; } -function parseObjectInitialiser() { - var properties = [], property, name, key, map = {}, toString = String; - index = lookahead.start; - expect("{"); - while(!match("}")){ - property = parseObjectProperty(); - if (property.key.type === SyntaxIdentifier) name = property.key.name; - else name = toString(property.key.value); - key = "$" + name; - if (Object.prototype.hasOwnProperty.call(map, key)) throwError({}, MessageStrictDuplicateProperty); - else map[key] = true; - properties.push(property); - if (!match("}")) expect(","); +function addEncoders(object, enter, update) { + for(const name in enter)addEncode(object, name, enter[name]); + for(const name1 in update)addEncode(object, name1, update[name1], "update"); +} +function extendEncode(encode, extra, skip) { + for(const name in extra){ + if (skip && (0, _vegaUtil.hasOwnProperty)(skip, name)) continue; + encode[name] = (0, _vegaUtil.extend)(encode[name] || {}, extra[name]); } - expect("}"); - return finishObjectExpression(properties); -} // 11.1.6 The Grouping Operator -function parseGroupExpression() { - expect("("); - const expr = parseExpression(); - expect(")"); - return expr; -} // 11.1 Primary Expressions -const legalKeywords = { - "if": 1 -}; -function parsePrimaryExpression() { - var type, token, expr; - if (match("(")) return parseGroupExpression(); - if (match("[")) return parseArrayInitialiser(); - if (match("{")) return parseObjectInitialiser(); - type = lookahead.type; - index = lookahead.start; - if (type === TokenIdentifier || legalKeywords[lookahead.value]) expr = finishIdentifier(lex().value); - else if (type === TokenStringLiteral || type === TokenNumericLiteral) { - if (lookahead.octal) throwError(lookahead, MessageStrictOctalLiteral); - expr = finishLiteral(lex()); - } else if (type === TokenKeyword) throw new Error(DISABLED); - else if (type === TokenBooleanLiteral) { - token = lex(); - token.value = token.value === "true"; - expr = finishLiteral(token); - } else if (type === TokenNullLiteral) { - token = lex(); - token.value = null; - expr = finishLiteral(token); - } else if (match("/") || match("/=")) { - expr = finishLiteral(scanRegExp()); - peek(); - } else throwUnexpected(lex()); - return expr; -} // 11.2 Left-Hand-Side Expressions -function parseArguments() { - const args = []; - expect("("); - if (!match(")")) while(index < length){ - args.push(parseConditionalExpression()); - if (match(")")) break; - expect(","); + return encode; +} +function has(key, encode) { + return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]); +} +const MarkRole = "mark"; +const FrameRole = "frame"; +const ScopeRole = "scope"; +const AxisRole = "axis"; +const AxisDomainRole = "axis-domain"; +const AxisGridRole = "axis-grid"; +const AxisLabelRole = "axis-label"; +const AxisTickRole = "axis-tick"; +const AxisTitleRole = "axis-title"; +const LegendRole = "legend"; +const LegendBandRole = "legend-band"; +const LegendEntryRole = "legend-entry"; +const LegendGradientRole = "legend-gradient"; +const LegendLabelRole = "legend-label"; +const LegendSymbolRole = "legend-symbol"; +const LegendTitleRole = "legend-title"; +const TitleRole = "title"; +const TitleTextRole = "title-text"; +const TitleSubtitleRole = "title-subtitle"; +function applyDefaults(encode, type, role, style, config) { + const defaults = {}, enter = {}; + let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370) + key = "lineBreak"; + if (type === "text" && config[key] != null && !has(key, encode)) applyDefault(defaults, key, config[key]); + // ignore legend and axis roles + if (role == "legend" || String(role).startsWith("axis")) role = null; + // resolve mark config + props = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; + for(key in props){ + // do not apply defaults if relevant fields are defined + skip = has(key, encode) || (key === "fill" || key === "stroke") && (has("fill", encode) || has("stroke", encode)); + if (!skip) applyDefault(defaults, key, props[key]); + } // resolve styles, apply with increasing precedence + (0, _vegaUtil.array)(style).forEach((name)=>{ + const props = config.style && config.style[name]; + for(const key in props)if (!has(key, encode)) applyDefault(defaults, key, props[key]); + }); + encode = (0, _vegaUtil.extend)({}, encode); // defensive copy + for(key in defaults){ + props = defaults[key]; + if (props.signal) (update = update || {})[key] = props; + else enter[key] = props; } - expect(")"); - return args; + encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); + if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); + return encode; } -function parseNonComputedProperty() { - index = lookahead.start; - const token = lex(); - if (!isIdentifierName(token)) throwUnexpected(token); - return finishIdentifier(token.value); +function applyDefault(defaults, key, value) { + defaults[key] = value && value.signal ? { + signal: value.signal + } : { + value: value + }; } -function parseNonComputedMember() { - expect("."); - return parseNonComputedProperty(); +const scaleRef = (scale)=>(0, _vegaUtil.isString)(scale) ? (0, _vegaUtil.stringValue)(scale) : scale.signal ? `(${scale.signal})` : field(scale); +function entry$1(enc) { + if (enc.gradient != null) return gradient(enc); + let value = enc.signal ? `(${enc.signal})` : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? (0, _vegaUtil.stringValue)(enc.value) : undefined; + if (enc.scale != null) value = scale(enc, value); + if (value === undefined) value = null; + if (enc.exponent != null) value = `pow(${value},${property(enc.exponent)})`; + if (enc.mult != null) value += `*${property(enc.mult)}`; + if (enc.offset != null) value += `+${property(enc.offset)}`; + if (enc.round) value = `round(${value})`; + return value; } -function parseComputedMember() { - expect("["); - const expr = parseExpression(); - expect("]"); - return expr; +const _color = (type, x, y, z)=>`(${type}(${[ + x, + y, + z + ].map(entry$1).join(",")})+'')`; +function color(enc) { + return enc.c ? _color("hcl", enc.h, enc.c, enc.l) : enc.h || enc.s ? _color("hsl", enc.h, enc.s, enc.l) : enc.l || enc.a ? _color("lab", enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color("rgb", enc.r, enc.g, enc.b) : null; } -function parseLeftHandSideExpressionAllowCall() { - var expr, args, property; - expr = parsePrimaryExpression(); - for(;;){ - if (match(".")) { - property = parseNonComputedMember(); - expr = finishMemberExpression(".", expr, property); - } else if (match("(")) { - args = parseArguments(); - expr = finishCallExpression(expr, args); - } else if (match("[")) { - property = parseComputedMember(); - expr = finishMemberExpression("[", expr, property); - } else break; - } - return expr; -} // 11.3 Postfix Expressions -function parsePostfixExpression() { - const expr = parseLeftHandSideExpressionAllowCall(); - if (lookahead.type === TokenPunctuator) { - if (match("++") || match("--")) throw new Error(DISABLED); +function gradient(enc) { + // map undefined to null; expression lang does not allow undefined + const args = [ + enc.start, + enc.stop, + enc.count + ].map((_)=>_ == null ? null : (0, _vegaUtil.stringValue)(_)); // trim null inputs from the end + while(args.length && (0, _vegaUtil.peek)(args) == null)args.pop(); + args.unshift(scaleRef(enc.gradient)); + return `gradient(${args.join(",")})`; +} +function property(property) { + return (0, _vegaUtil.isObject)(property) ? "(" + entry$1(property) + ")" : property; +} +function field(ref) { + return resolveField((0, _vegaUtil.isObject)(ref) ? ref : { + datum: ref + }); +} +function resolveField(ref) { + let object, level, field; + if (ref.signal) { + object = "datum"; + field = ref.signal; + } else if (ref.group || ref.parent) { + level = Math.max(1, ref.level || 1); + object = "item"; + while(level-- > 0)object += ".mark.group"; + if (ref.parent) { + field = ref.parent; + object += ".datum"; + } else field = ref.group; + } else if (ref.datum) { + object = "datum"; + field = ref.datum; + } else (0, _vegaUtil.error)("Invalid field reference: " + (0, _vegaUtil.stringValue)(ref)); + if (!ref.signal) field = (0, _vegaUtil.isString)(field) ? (0, _vegaUtil.splitAccessPath)(field).map((0, _vegaUtil.stringValue)).join("][") : resolveField(field); + return object + "[" + field + "]"; +} +function scale(enc, value) { + const scale = scaleRef(enc.scale); + if (enc.range != null) // pull value from scale range + value = `lerp(_range(${scale}), ${+enc.range})`; + else { + // run value through scale and/or pull scale bandwidth + if (value !== undefined) value = `_scale(${scale}, ${value})`; + if (enc.band) { + value = (value ? value + "+" : "") + `_bandwidth(${scale})` + (+enc.band === 1 ? "" : "*" + property(enc.band)); + if (enc.extra) // include logic to handle extraneous elements + value = `(datum.extra ? _scale(${scale}, datum.extra.value) : ${value})`; + } + if (value == null) value = "0"; } - return expr; -} // 11.4 Unary Operators -function parseUnaryExpression() { - var token, expr; - if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) expr = parsePostfixExpression(); - else if (match("++") || match("--")) throw new Error(DISABLED); - else if (match("+") || match("-") || match("~") || match("!")) { - token = lex(); - expr = parseUnaryExpression(); - expr = finishUnaryExpression(token.value, expr); - } else if (matchKeyword("delete") || matchKeyword("void") || matchKeyword("typeof")) throw new Error(DISABLED); - else expr = parsePostfixExpression(); - return expr; + return value; } -function binaryPrecedence(token) { - let prec = 0; - if (token.type !== TokenPunctuator && token.type !== TokenKeyword) return 0; - switch(token.value){ - case "||": - prec = 1; - break; - case "&&": - prec = 2; - break; - case "|": - prec = 3; - break; - case "^": - prec = 4; - break; - case "&": - prec = 5; - break; - case "==": - case "!=": - case "===": - case "!==": - prec = 6; - break; - case "<": - case ">": - case "<=": - case ">=": - case "instanceof": - case "in": - prec = 7; - break; - case "<<": - case ">>": - case ">>>": - prec = 8; - break; - case "+": - case "-": - prec = 9; - break; - case "*": - case "/": - case "%": - prec = 11; - break; - } - return prec; -} // 11.5 Multiplicative Operators -// 11.6 Additive Operators -// 11.7 Bitwise Shift Operators -// 11.8 Relational Operators -// 11.9 Equality Operators -// 11.10 Binary Bitwise Operators -// 11.11 Binary Logical Operators -function parseBinaryExpression() { - var marker, markers, expr, token, prec, stack, right, operator, left, i; - marker = lookahead; - left = parseUnaryExpression(); - token = lookahead; - prec = binaryPrecedence(token); - if (prec === 0) return left; - token.prec = prec; - lex(); - markers = [ - marker, - lookahead - ]; - right = parseUnaryExpression(); - stack = [ - left, - token, - right - ]; - while((prec = binaryPrecedence(lookahead)) > 0){ - // Reduce: make a binary expression from the three topmost entries. - while(stack.length > 2 && prec <= stack[stack.length - 2].prec){ - right = stack.pop(); - operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - expr = finishBinaryExpression(operator, left, right); - stack.push(expr); - } // Shift. - token = lex(); - token.prec = prec; - stack.push(token); - markers.push(lookahead); - expr = parseUnaryExpression(); - stack.push(expr); - } // Final reduce to clean-up the stack. - i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while(i > 1){ - markers.pop(); - expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); - i -= 2; - } - return expr; -} // 11.12 Conditional Operator -function parseConditionalExpression() { - var expr, consequent, alternate; - expr = parseBinaryExpression(); - if (match("?")) { - lex(); - consequent = parseConditionalExpression(); - expect(":"); - alternate = parseConditionalExpression(); - expr = finishConditionalExpression(expr, consequent, alternate); - } - return expr; -} // 11.14 Comma Operator -function parseExpression() { - const expr = parseConditionalExpression(); - if (match(",")) throw new Error(DISABLED); // no sequence expressions - return expr; +function rule(enc) { + let code = ""; + enc.forEach((rule)=>{ + const value = entry$1(rule); + code += rule.test ? `(${rule.test})?${value}:` : value; + }); // if no else clause, terminate with null (#1366) + if ((0, _vegaUtil.peek)(code) === ":") code += "null"; + return code; } -function parser(code) { - source = code; - index = 0; - length = source.length; - lookahead = null; - peek(); - const expr = parseExpression(); - if (lookahead.type !== TokenEOF) throw new Error("Unexpect token after expression."); - return expr; +function parseEncode(encode, type, role, style, scope, params) { + const enc = {}; + params = params || {}; + params.encoders = { + $encode: enc + }; + encode = applyDefaults(encode, type, role, style, scope.config); + for(const key in encode)enc[key] = parseBlock(encode[key], type, params, scope); + return params; } -var Constants = { - NaN: "NaN", - E: "Math.E", - LN2: "Math.LN2", - LN10: "Math.LN10", - LOG2E: "Math.LOG2E", - LOG10E: "Math.LOG10E", - PI: "Math.PI", - SQRT1_2: "Math.SQRT1_2", - SQRT2: "Math.SQRT2", - MIN_VALUE: "Number.MIN_VALUE", - MAX_VALUE: "Number.MAX_VALUE" -}; -function Functions(codegen) { - function fncall(name, args, cast, type) { - let obj = codegen(args[0]); - if (cast) { - obj = cast + "(" + obj + ")"; - if (cast.lastIndexOf("new ", 0) === 0) obj = "(" + obj + ")"; - } - return obj + "." + name + (type < 0 ? "" : type === 0 ? "()" : "(" + args.slice(1).map(codegen).join(",") + ")"); - } - function fn(name, cast, type) { - return (args)=>fncall(name, args, cast, type); - } - const DATE = "new Date", STRING = "String", REGEXP = "RegExp"; +function parseBlock(block, marktype, params, scope) { + const channels = {}, fields = {}; + for(const name in block)if (block[name] != null) // skip any null entries + channels[name] = parse$1(expr(block[name]), scope, params, fields); return { - // MATH functions - isNaN: "Number.isNaN", - isFinite: "Number.isFinite", - abs: "Math.abs", - acos: "Math.acos", - asin: "Math.asin", - atan: "Math.atan", - atan2: "Math.atan2", - ceil: "Math.ceil", - cos: "Math.cos", - exp: "Math.exp", - floor: "Math.floor", - log: "Math.log", - max: "Math.max", - min: "Math.min", - pow: "Math.pow", - random: "Math.random", - round: "Math.round", - sin: "Math.sin", - sqrt: "Math.sqrt", - tan: "Math.tan", - clamp: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to clamp function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to clamp function."); - const a = args.map(codegen); - return "Math.max(" + a[1] + ", Math.min(" + a[2] + "," + a[0] + "))"; + $expr: { + marktype, + channels }, - // DATE functions - now: "Date.now", - utc: "Date.UTC", - datetime: DATE, - date: fn("getDate", DATE, 0), - day: fn("getDay", DATE, 0), - year: fn("getFullYear", DATE, 0), - month: fn("getMonth", DATE, 0), - hours: fn("getHours", DATE, 0), - minutes: fn("getMinutes", DATE, 0), - seconds: fn("getSeconds", DATE, 0), - milliseconds: fn("getMilliseconds", DATE, 0), - time: fn("getTime", DATE, 0), - timezoneoffset: fn("getTimezoneOffset", DATE, 0), - utcdate: fn("getUTCDate", DATE, 0), - utcday: fn("getUTCDay", DATE, 0), - utcyear: fn("getUTCFullYear", DATE, 0), - utcmonth: fn("getUTCMonth", DATE, 0), - utchours: fn("getUTCHours", DATE, 0), - utcminutes: fn("getUTCMinutes", DATE, 0), - utcseconds: fn("getUTCSeconds", DATE, 0), - utcmilliseconds: fn("getUTCMilliseconds", DATE, 0), - // sequence functions - length: fn("length", null, -1), - // STRING functions - parseFloat: "parseFloat", - parseInt: "parseInt", - upper: fn("toUpperCase", STRING, 0), - lower: fn("toLowerCase", STRING, 0), - substring: fn("substring", STRING), - split: fn("split", STRING), - trim: fn("trim", STRING, 0), - // REGEXP functions - regexp: REGEXP, - test: fn("test", REGEXP), - // Control Flow functions - if: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to if function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to if function."); - const a = args.map(codegen); - return "(" + a[0] + "?" + a[1] + ":" + a[2] + ")"; - } + $fields: Object.keys(fields), + $output: Object.keys(block) }; } -function stripQuotes(s) { - const n = s && s.length - 1; - return n && (s[0] === '"' && s[n] === '"' || s[0] === "'" && s[n] === "'") ? s.slice(1, -1) : s; +function expr(enc) { + return (0, _vegaUtil.isArray)(enc) ? rule(enc) : entry$1(enc); } -function codegen(opt) { - opt = opt || {}; - const allowed = opt.allowed ? (0, _vegaUtil.toSet)(opt.allowed) : {}, forbidden = opt.forbidden ? (0, _vegaUtil.toSet)(opt.forbidden) : {}, constants = opt.constants || Constants, functions = (opt.functions || Functions)(visit), globalvar = opt.globalvar, fieldvar = opt.fieldvar, outputGlobal = (0, _vegaUtil.isFunction)(globalvar) ? globalvar : (id)=>`${globalvar}["${id}"]`; - let globals = {}, fields = {}, memberDepth = 0; - function visit(ast) { - if ((0, _vegaUtil.isString)(ast)) return ast; - const generator = Generators[ast.type]; - if (generator == null) (0, _vegaUtil.error)("Unsupported type: " + ast.type); - return generator(ast); +function parse$1(code, scope, params, fields) { + const expr = (0, _vegaFunctions.parseExpression)(code, scope); + expr.$fields.forEach((name)=>fields[name] = 1); + (0, _vegaUtil.extend)(params, expr.$params); + return expr.$expr; +} +const OUTER = "outer", OUTER_INVALID = [ + "value", + "update", + "init", + "react", + "bind" +]; +function outerError(prefix, name) { + (0, _vegaUtil.error)(prefix + ' for "outer" push: ' + (0, _vegaUtil.stringValue)(name)); +} +function parseSignal(signal, scope) { + const name = signal.name; + if (signal.push === OUTER) { + // signal must already be defined, raise error if not + if (!scope.signals[name]) outerError("No prior signal definition", name); // signal push must not use properties reserved for standard definition + OUTER_INVALID.forEach((prop)=>{ + if (signal[prop] !== undefined) outerError("Invalid property ", prop); + }); + } else { + // define a new signal in the current scope + const op = scope.addSignal(name, signal.value); + if (signal.react === false) op.react = false; + if (signal.bind) scope.addBinding(name, signal.bind); } - const Generators = { - Literal: (n)=>n.raw, - Identifier: (n)=>{ - const id = n.name; - if (memberDepth > 0) return id; - else if ((0, _vegaUtil.hasOwnProperty)(forbidden, id)) return (0, _vegaUtil.error)("Illegal identifier: " + id); - else if ((0, _vegaUtil.hasOwnProperty)(constants, id)) return constants[id]; - else if ((0, _vegaUtil.hasOwnProperty)(allowed, id)) return id; - else { - globals[id] = 1; - return outputGlobal(id); - } - }, - MemberExpression: (n)=>{ - const d = !n.computed, o = visit(n.object); - if (d) memberDepth += 1; - const p = visit(n.property); - if (o === fieldvar) // strip quotes to sanitize field name (#1653) - fields[stripQuotes(p)] = 1; - if (d) memberDepth -= 1; - return o + (d ? "." + p : "[" + p + "]"); - }, - CallExpression: (n)=>{ - if (n.callee.type !== "Identifier") (0, _vegaUtil.error)("Illegal callee type: " + n.callee.type); - const callee = n.callee.name, args = n.arguments, fn = (0, _vegaUtil.hasOwnProperty)(functions, callee) && functions[callee]; - if (!fn) (0, _vegaUtil.error)("Unrecognized function: " + callee); - return (0, _vegaUtil.isFunction)(fn) ? fn(args) : fn + "(" + args.map(visit).join(",") + ")"; - }, - ArrayExpression: (n)=>"[" + n.elements.map(visit).join(",") + "]", - BinaryExpression: (n)=>"(" + visit(n.left) + " " + n.operator + " " + visit(n.right) + ")", - UnaryExpression: (n)=>"(" + n.operator + visit(n.argument) + ")", - ConditionalExpression: (n)=>"(" + visit(n.test) + "?" + visit(n.consequent) + ":" + visit(n.alternate) + ")", - LogicalExpression: (n)=>"(" + visit(n.left) + n.operator + visit(n.right) + ")", - ObjectExpression: (n)=>"{" + n.properties.map(visit).join(",") + "}", - Property: (n)=>{ - memberDepth += 1; - const k = visit(n.key); - memberDepth -= 1; - return k + ":" + visit(n.value); - } +} +function Entry(type, value, params, parent) { + this.id = -1; + this.type = type; + this.value = value; + this.params = params; + if (parent) this.parent = parent; +} +function entry(type, value, params, parent) { + return new Entry(type, value, params, parent); +} +function operator(value, params) { + return entry("operator", value, params); +} // ----- +function ref(op) { + const ref = { + $ref: op.id + }; // if operator not yet registered, cache ref to resolve later + if (op.id < 0) (op.refs = op.refs || []).push(ref); + return ref; +} +function fieldRef$1(field, name) { + return name ? { + $field: field, + $name: name + } : { + $field: field }; - function codegen(ast) { - const result = { - code: visit(ast), - globals: Object.keys(globals), - fields: Object.keys(fields) - }; - globals = {}; - fields = {}; - return result; - } - codegen.functions = functions; - codegen.constants = constants; - return codegen; } - -},{"vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k7ppL":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "context", ()=>context); -var _vegaUtil = require("vega-util"); -var _vegaDataflow = require("vega-dataflow"); -/** - * Parse a serialized dataflow specification. - */ function parse(spec) { - const ctx = this, operators = spec.operators || []; // parse background - if (spec.background) ctx.background = spec.background; - // parse event configuration - if (spec.eventConfig) ctx.eventConfig = spec.eventConfig; - // parse locale configuration - if (spec.locale) ctx.locale = spec.locale; - // parse operators - operators.forEach((entry)=>ctx.parseOperator(entry)); // parse operator parameters - operators.forEach((entry)=>ctx.parseOperatorParameters(entry)); // parse streams - (spec.streams || []).forEach((entry)=>ctx.parseStream(entry)); // parse updates - (spec.updates || []).forEach((entry)=>ctx.parseUpdate(entry)); - return ctx.resolve(); +const keyFieldRef = fieldRef$1("key"); +function compareRef(fields, orders) { + return { + $compare: fields, + $order: orders + }; } -const Skip = (0, _vegaUtil.toSet)([ - "rule" -]), Swap = (0, _vegaUtil.toSet)([ - "group", - "image", - "rect" -]); -function adjustSpatial(encode, marktype) { - let code = ""; - if (Skip[marktype]) return code; - if (encode.x2) { - if (encode.x) { - if (Swap[marktype]) code += "if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"; - code += "o.width=o.x2-o.x;"; - } else code += "o.x=o.x2-(o.width||0);"; - } - if (encode.xc) code += "o.x=o.xc-(o.width||0)/2;"; - if (encode.y2) { - if (encode.y) { - if (Swap[marktype]) code += "if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"; - code += "o.height=o.y2-o.y;"; - } else code += "o.y=o.y2-(o.height||0);"; +function keyRef(fields, flat) { + const ref = { + $key: fields + }; + if (flat) ref.$flat = true; + return ref; +} // ----- +const Ascending = "ascending"; +const Descending = "descending"; +function sortKey(sort) { + return !(0, _vegaUtil.isObject)(sort) ? "" : (sort.order === Descending ? "-" : "+") + aggrField(sort.op, sort.field); +} +function aggrField(op, field) { + return (op && op.signal ? "$" + op.signal : op || "") + (op && field ? "_" : "") + (field && field.signal ? "$" + field.signal : field || ""); +} // ----- +const Scope$1 = "scope"; +const View = "view"; +function isSignal(_) { + return _ && _.signal; +} +function isExpr$1(_) { + return _ && _.expr; +} +function hasSignal(_) { + if (isSignal(_)) return true; + if ((0, _vegaUtil.isObject)(_)) for(const key in _){ + if (hasSignal(_[key])) return true; } - if (encode.yc) code += "o.y=o.yc-(o.height||0)/2;"; - return code; + return false; } -function canonicalType(type) { - return (type + "").toLowerCase(); +function value(specValue, defaultValue) { + return specValue != null ? specValue : defaultValue; } -function isOperator(type) { - return canonicalType(type) === "operator"; +function deref(v) { + return v && v.signal || v; } -function isCollect(type) { - return canonicalType(type) === "collect"; +const Timer = "timer"; +function parseStream(stream, scope) { + const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : (0, _vegaUtil.error)("Invalid stream specification: " + (0, _vegaUtil.stringValue)(stream)); + return method(stream, scope); } -function expression(ctx, args, code) { - // wrap code in return statement if expression does not terminate - if (code[code.length - 1] !== ";") code = "return(" + code + ");"; - const fn = Function(...args.concat(code)); - return ctx && ctx.functions ? fn.bind(ctx.functions) : fn; -} // generate code for comparing a single field -function _compare(u, v, lt, gt) { - return "((u = ".concat(u, ") < (v = ").concat(v, ") || u == null) && v != null ? ").concat(lt, "\n : (u > v || v == null) && u != null ? ").concat(gt, "\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(lt, "\n : v !== v && u === u ? ").concat(gt, " : "); +function eventSource(source) { + return source === Scope$1 ? View : source || View; } -var expressionCodegen = { - /** - * Parse an expression used to update an operator value. - */ operator: (ctx, expr)=>expression(ctx, [ - "_" - ], expr.code), - /** - * Parse an expression provided as an operator parameter value. - */ parameter: (ctx, expr)=>expression(ctx, [ - "datum", - "_" - ], expr.code), - /** - * Parse an expression applied to an event stream. - */ event: (ctx, expr)=>expression(ctx, [ - "event" - ], expr.code), - /** - * Parse an expression used to handle an event-driven operator update. - */ handler: (ctx, expr)=>{ - const code = "var datum=event.item&&event.item.datum;return ".concat(expr.code, ";"); - return expression(ctx, [ - "_", - "event" - ], code); - }, - /** - * Parse an expression that performs visual encoding. - */ encode: (ctx, encode)=>{ - const { marktype , channels } = encode; - let code = "var o=item,datum=o.datum,m=0,$;"; - for(const name in channels){ - const o = "o[" + (0, _vegaUtil.stringValue)(name) + "]"; - code += "$=".concat(channels[name].code, ";if(").concat(o, "!==$)").concat(o, "=$,m=1;"); - } - code += adjustSpatial(channels, marktype); - code += "return m;"; - return expression(ctx, [ - "item", - "_" - ], code); - }, - /** - * Optimized code generators for access and comparison. - */ codegen: { - get (path) { - const ref = "[".concat(path.map((0, _vegaUtil.stringValue)).join("]["), "]"); - const get = Function("_", "return _".concat(ref, ";")); - get.path = ref; - return get; - }, - comparator (fields, orders) { - let t; - const map = (f, i)=>{ - const o = orders[i]; - let u, v; - if (f.path) { - u = "a".concat(f.path); - v = "b".concat(f.path); - } else { - (t = t || {})["f" + i] = f; - u = "this.f".concat(i, "(a)"); - v = "this.f".concat(i, "(b)"); - } - return _compare(u, v, -o, o); - }; - const fn = Function("a", "b", "var u, v; return " + fields.map(map).join("") + "0;"); - return t ? fn.bind(t) : fn; - } - } -}; -/** - * Parse a dataflow operator. - */ function parseOperator(spec) { - const ctx = this; - if (isOperator(spec.type) || !spec.type) ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null); - else ctx.transform(spec, spec.type); +function mergeStream(stream, scope) { + const list = stream.merge.map((s)=>parseStream(s, scope)), entry = streamParameters({ + merge: list + }, stream, scope); + return scope.addStream(entry).id; } -/** - * Parse and assign operator parameters. - */ function parseOperatorParameters(spec) { - const ctx = this; - if (spec.params) { - const op = ctx.get(spec.id); - if (!op) (0, _vegaUtil.error)("Invalid operator id: " + spec.id); - ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly)); - } +function nestedStream(stream, scope) { + const id = parseStream(stream.stream, scope), entry = streamParameters({ + stream: id + }, stream, scope); + return scope.addStream(entry).id; } -/** - * Parse a set of operator parameters. - */ function parseParameters(spec, params) { - params = params || {}; - const ctx = this; - for(const key in spec){ - const value = spec[key]; - params[key] = (0, _vegaUtil.isArray)(value) ? value.map((v)=>parseParameter(v, ctx, params)) : parseParameter(value, ctx, params); - } - return params; +function eventStream(stream, scope) { + let id; + if (stream.type === Timer) { + id = scope.event(Timer, stream.throttle); + stream = { + between: stream.between, + filter: stream.filter + }; + } else id = scope.event(eventSource(stream.source), stream.type); + const entry = streamParameters({ + stream: id + }, stream, scope); + return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id; } -/** - * Parse a single parameter. - */ function parseParameter(spec, ctx, params) { - if (!spec || !(0, _vegaUtil.isObject)(spec)) return spec; - for(let i = 0, n = PARSERS.length, p; i < n; ++i){ - p = PARSERS[i]; - if ((0, _vegaUtil.hasOwnProperty)(spec, p.key)) return p.parse(spec, ctx, params); +function streamParameters(entry, stream, scope) { + let param = stream.between; + if (param) { + if (param.length !== 2) (0, _vegaUtil.error)('Stream "between" parameter must have 2 entries: ' + (0, _vegaUtil.stringValue)(stream)); + entry.between = [ + parseStream(param[0], scope), + parseStream(param[1], scope) + ]; } - return spec; + param = stream.filter ? [].concat(stream.filter) : []; + if (stream.marktype || stream.markname || stream.markrole) // add filter for mark type, name and/or role + param.push(filterMark(stream.marktype, stream.markname, stream.markrole)); + if (stream.source === Scope$1) // add filter to limit events from sub-scope only + param.push("inScope(event.item)"); + if (param.length) entry.filter = (0, _vegaFunctions.parseExpression)("(" + param.join(")&&(") + ")", scope).$expr; + if ((param = stream.throttle) != null) entry.throttle = +param; + if ((param = stream.debounce) != null) entry.debounce = +param; + if (stream.consume) entry.consume = true; + return entry; } -/** Reference parsers. */ var PARSERS = [ - { - key: "$ref", - parse: getOperator - }, - { - key: "$key", - parse: getKey - }, - { - key: "$expr", - parse: getExpression - }, - { - key: "$field", - parse: getField - }, - { - key: "$encode", - parse: getEncode - }, - { - key: "$compare", - parse: getCompare - }, - { - key: "$context", - parse: getContext - }, - { - key: "$subflow", - parse: getSubflow - }, - { - key: "$tupleid", - parse: getTupleId +function filterMark(type, name, role) { + const item = "event.item"; + return item + (type && type !== "*" ? "&&" + item + ".mark.marktype==='" + type + "'" : "") + (role ? "&&" + item + ".mark.role==='" + role + "'" : "") + (name ? "&&" + item + ".mark.name==='" + name + "'" : ""); +} +const OP_VALUE_EXPR = { + code: "_.$value", + ast: { + type: "Identifier", + value: "value" } -]; -/** - * Resolve an operator reference. - */ function getOperator(_, ctx) { - return ctx.get(_.$ref) || (0, _vegaUtil.error)("Operator not defined: " + _.$ref); +}; +function parseUpdate(spec, scope, target) { + const encode = spec.encode, entry = { + target: target + }; + let events = spec.events, update = spec.update, sources = []; + if (!events) (0, _vegaUtil.error)("Signal update missing events specification."); + // interpret as an event selector string + if ((0, _vegaUtil.isString)(events)) events = (0, _vegaEventSelector.parseSelector)(events, scope.isSubscope() ? Scope$1 : View); + // separate event streams from signal updates + events = (0, _vegaUtil.array)(events).filter((s)=>s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners + if (sources.length > 1) sources = [ + mergeSources(sources) + ]; + // merge event streams, include as source + if (events.length) sources.push(events.length > 1 ? { + merge: events + } : events[0]); + if (encode != null) { + if (update) (0, _vegaUtil.error)("Signal encode and update are mutually exclusive."); + update = "encode(item()," + (0, _vegaUtil.stringValue)(encode) + ")"; + } // resolve update value + entry.update = (0, _vegaUtil.isString)(update) ? (0, _vegaFunctions.parseExpression)(update, scope) : update.expr != null ? (0, _vegaFunctions.parseExpression)(update.expr, scope) : update.value != null ? update.value : update.signal != null ? { + $expr: OP_VALUE_EXPR, + $params: { + $value: scope.signalRef(update.signal) + } + } : (0, _vegaUtil.error)("Invalid signal update specification."); + if (spec.force) entry.options = { + force: true + }; + sources.forEach((source)=>scope.addUpdate((0, _vegaUtil.extend)(streamSource(source, scope), entry))); } -/** - * Resolve an expression reference. - */ function getExpression(_, ctx, params) { - if (_.$params) // parse expression parameters - ctx.parseParameters(_.$params, params); - const k = "e:" + _.$expr.code + "_" + _.$name; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.accessor)(ctx.parameterExpression(_.$expr), _.$fields, _.$name)); +function streamSource(stream, scope) { + return { + source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope) + }; } -/** - * Resolve a key accessor reference. - */ function getKey(_, ctx) { - const k = "k:" + _.$key + "_" + !!_.$flat; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.key)(_.$key, _.$flat, ctx.expr.codegen)); +function mergeSources(sources) { + return { + signal: "[" + sources.map((s)=>s.scale ? 'scale("' + s.scale + '")' : s.signal) + "]" + }; } -/** - * Resolve a field accessor reference. - */ function getField(_, ctx) { - if (!_.$field) return null; - const k = "f:" + _.$field + "_" + _.$name; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.field)(_.$field, _.$name, ctx.expr.codegen)); +function parseSignalUpdates(signal, scope) { + const op = scope.getSignal(signal.name); + let expr = signal.update; + if (signal.init) { + if (expr) (0, _vegaUtil.error)("Signals can not include both init and update expressions."); + else { + expr = signal.init; + op.initonly = true; + } + } + if (expr) { + expr = (0, _vegaFunctions.parseExpression)(expr, scope); + op.update = expr.$expr; + op.params = expr.$params; + } + if (signal.on) signal.on.forEach((_)=>parseUpdate(_, scope, op.id)); } -/** - * Resolve a comparator function reference. - */ function getCompare(_, ctx) { - // As of Vega 5.5.3, $tupleid sort is no longer used. - // Keep here for now for backwards compatibility. - const k = "c:" + _.$compare + "_" + _.$order, c = (0, _vegaUtil.array)(_.$compare).map((_)=>_ && _.$tupleid ? (0, _vegaDataflow.tupleid) : _); - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.compare)(c, _.$order, ctx.expr.codegen)); +const transform = (name)=>(params, value, parent)=>entry(name, value, params || undefined, parent); +const Aggregate = transform("aggregate"); +const AxisTicks = transform("axisticks"); +const Bound = transform("bound"); +const Collect = transform("collect"); +const Compare = transform("compare"); +const DataJoin = transform("datajoin"); +const Encode = transform("encode"); +const Expression = transform("expression"); +const Facet = transform("facet"); +const Field = transform("field"); +const Key = transform("key"); +const LegendEntries = transform("legendentries"); +const Load = transform("load"); +const Mark = transform("mark"); +const MultiExtent = transform("multiextent"); +const MultiValues = transform("multivalues"); +const Overlap = transform("overlap"); +const Params = transform("params"); +const PreFacet = transform("prefacet"); +const Projection = transform("projection"); +const Proxy = transform("proxy"); +const Relay = transform("relay"); +const Render = transform("render"); +const Scale = transform("scale"); +const Sieve = transform("sieve"); +const SortItems = transform("sortitems"); +const ViewLayout = transform("viewlayout"); +const Values = transform("values"); +let FIELD_REF_ID = 0; +const MULTIDOMAIN_SORT_OPS = { + min: "min", + max: "max", + count: "sum" +}; +function initScale(spec, scope) { + const type = spec.type || "linear"; + if (!(0, _vegaScale.isValidScaleType)(type)) (0, _vegaUtil.error)("Unrecognized scale type: " + (0, _vegaUtil.stringValue)(type)); + scope.addScale(spec.name, { + type, + domain: undefined + }); } -/** - * Resolve an encode operator reference. - */ function getEncode(_, ctx) { - const spec = _.$encode, encode = {}; - for(const name in spec){ - const enc = spec[name]; - encode[name] = (0, _vegaUtil.accessor)(ctx.encodeExpression(enc.$expr), enc.$fields); - encode[name].output = enc.$output; +function parseScale(spec, scope) { + const params = scope.getScale(spec.name).params; + let key; + params.domain = parseScaleDomain(spec.domain, spec, scope); + if (spec.range != null) params.range = parseScaleRange(spec, scope, params); + if (spec.interpolate != null) parseScaleInterpolate(spec.interpolate, params); + if (spec.nice != null) params.nice = parseScaleNice(spec.nice); + if (spec.bins != null) params.bins = parseScaleBins(spec.bins, scope); + for(key in spec){ + if ((0, _vegaUtil.hasOwnProperty)(params, key) || key === "name") continue; + params[key] = parseLiteral(spec[key], scope); } - return encode; -} -/** - * Resolve a context reference. - */ function getContext(_, ctx) { - return ctx; } -/** - * Resolve a recursive subflow specification. - */ function getSubflow(_, ctx) { - const spec = _.$subflow; - return function(dataflow, key, parent) { - const subctx = ctx.fork().parse(spec), op = subctx.get(spec.operators[0].id), p = subctx.signals.parent; - if (p) p.set(parent); - op.detachSubflow = ()=>ctx.detach(subctx); - return op; - }; +function parseLiteral(v, scope) { + return !(0, _vegaUtil.isObject)(v) ? v : v.signal ? scope.signalRef(v.signal) : (0, _vegaUtil.error)("Unsupported object: " + (0, _vegaUtil.stringValue)(v)); } -/** - * Resolve a tuple id reference. - */ function getTupleId() { - return 0, _vegaDataflow.tupleid; +function parseArray(v, scope) { + return v.signal ? scope.signalRef(v.signal) : v.map((v)=>parseLiteral(v, scope)); } -/** - * Parse an event stream specification. - */ function parseStream(spec) { - var ctx = this, filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined, stream = spec.stream != null ? ctx.get(spec.stream) : undefined, args; - if (spec.source) stream = ctx.events(spec.source, spec.type, filter); - else if (spec.merge) { - args = spec.merge.map((_)=>ctx.get(_)); - stream = args[0].merge.apply(args[0], args.slice(1)); - } - if (spec.between) { - args = spec.between.map((_)=>ctx.get(_)); - stream = stream.between(args[0], args[1]); +function dataLookupError(name) { + (0, _vegaUtil.error)("Can not find data set: " + (0, _vegaUtil.stringValue)(name)); +} // -- SCALE DOMAIN ---- +function parseScaleDomain(domain, spec, scope) { + if (!domain) { + if (spec.domainMin != null || spec.domainMax != null) (0, _vegaUtil.error)("No scale domain defined for domainMin/domainMax to override."); + return; // default domain } - if (spec.filter) stream = stream.filter(filter); - if (spec.throttle != null) stream = stream.throttle(+spec.throttle); - if (spec.debounce != null) stream = stream.debounce(+spec.debounce); - if (stream == null) (0, _vegaUtil.error)("Invalid stream definition: " + JSON.stringify(spec)); - if (spec.consume) stream.consume(true); - ctx.stream(spec, stream); + return domain.signal ? scope.signalRef(domain.signal) : ((0, _vegaUtil.isArray)(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope); } -/** - * Parse an event-driven operator update. - */ function parseUpdate(spec) { - var ctx = this, srcid = (0, _vegaUtil.isObject)(srcid = spec.source) ? srcid.$ref : srcid, source = ctx.get(srcid), target = null, update = spec.update, params = undefined; - if (!source) (0, _vegaUtil.error)("Source not defined: " + spec.source); - target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target); - if (update && update.$expr) { - if (update.$params) params = ctx.parseParameters(update.$params); - update = ctx.handlerExpression(update.$expr); - } - ctx.update(spec, source, target, update, params); +function explicitDomain(domain, spec, scope) { + return domain.map((v)=>parseLiteral(v, scope)); } -const SKIP = { - skip: true -}; -function getState(options) { - var ctx = this, state = {}; - if (options.signals) { - var signals = state.signals = {}; - Object.keys(ctx.signals).forEach((key)=>{ - const op = ctx.signals[key]; - if (options.signals(key, op)) signals[key] = op.value; - }); - } - if (options.data) { - var data = state.data = {}; - Object.keys(ctx.data).forEach((key)=>{ - const dataset = ctx.data[key]; - if (options.data(key, dataset)) data[key] = dataset.input.value; - }); - } - if (ctx.subcontext && options.recurse !== false) state.subcontext = ctx.subcontext.map((ctx)=>ctx.getState(options)); - return state; +function singularDomain(domain, spec, scope) { + const data = scope.getData(domain.data); + if (!data) dataLookupError(domain.data); + return (0, _vegaScale.isDiscrete)(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : (0, _vegaScale.isQuantile)(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field); } -function setState(state) { - var ctx = this, df = ctx.dataflow, data = state.data, signals = state.signals; - Object.keys(signals || {}).forEach((key)=>{ - df.update(ctx.signals[key], signals[key], SKIP); - }); - Object.keys(data || {}).forEach((key)=>{ - df.pulse(ctx.data[key].input, df.changeset().remove((0, _vegaUtil.truthy)).insert(data[key])); - }); - (state.subcontext || []).forEach((substate, i)=>{ - const subctx = ctx.subcontext[i]; - if (subctx) subctx.setState(substate); - }); +function multipleDomain(domain, spec, scope) { + const data = domain.data, fields = domain.fields.reduce((dom, d)=>{ + d = (0, _vegaUtil.isString)(d) ? { + data: data, + field: d + } : (0, _vegaUtil.isArray)(d) || d.signal ? fieldRef(d, scope) : d; + dom.push(d); + return dom; + }, []); + return ((0, _vegaScale.isDiscrete)(spec.type) ? ordinalMultipleDomain : (0, _vegaScale.isQuantile)(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields); } -/** - * Context objects store the current parse state. - * Enables lookup of parsed operators, event streams, accessors, etc. - * Provides a 'fork' method for creating child contexts for subflows. - */ function context(df, transforms, functions, expr) { - return new Context(df, transforms, functions, expr); +function fieldRef(data, scope) { + const name = "_:vega:_" + FIELD_REF_ID++, coll = Collect({}); + if ((0, _vegaUtil.isArray)(data)) coll.value = { + $ingest: data + }; + else if (data.signal) { + const code = "setdata(" + (0, _vegaUtil.stringValue)(name) + "," + data.signal + ")"; + coll.params.input = scope.signalRef(code); + } + scope.addDataPipeline(name, [ + coll, + Sieve({}) + ]); + return { + data: name, + field: "data" + }; } -function Context(df, transforms, functions, expr) { - this.dataflow = df; - this.transforms = transforms; - this.events = df.events.bind(df); - this.expr = expr || expressionCodegen, this.signals = {}; - this.scales = {}; - this.nodes = {}; - this.data = {}; - this.fn = {}; - if (functions) { - this.functions = Object.create(functions); - this.functions.context = this; +function ordinalMultipleDomain(domain, scope, fields) { + const sort = parseSort(domain.sort, true); + let a, v; // get value counts for each domain field + const counts = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.countsRef(scope, f.field, sort); + }); // aggregate the results from each domain field + const p = { + groupby: keyFieldRef, + pulse: counts + }; + if (sort) { + a = sort.op || "count"; + v = sort.field ? aggrField(a, sort.field) : "count"; + p.ops = [ + MULTIDOMAIN_SORT_OPS[a] + ]; + p.fields = [ + scope.fieldRef(v) + ]; + p.as = [ + v + ]; } + a = scope.add(Aggregate(p)); // collect aggregate output + const c = scope.add(Collect({ + pulse: ref(a) + })); // extract values for combined domain + v = scope.add(Values({ + field: keyFieldRef, + sort: scope.sortRef(sort), + pulse: ref(c) + })); + return ref(v); } -function Subcontext(ctx) { - this.dataflow = ctx.dataflow; - this.transforms = ctx.transforms; - this.events = ctx.events; - this.expr = ctx.expr; - this.signals = Object.create(ctx.signals); - this.scales = Object.create(ctx.scales); - this.nodes = Object.create(ctx.nodes); - this.data = Object.create(ctx.data); - this.fn = Object.create(ctx.fn); - if (ctx.functions) { - this.functions = Object.create(ctx.functions); - this.functions.context = this; +function parseSort(sort, multidomain) { + if (sort) { + if (!sort.field && !sort.op) { + if ((0, _vegaUtil.isObject)(sort)) sort.field = "key"; + else sort = { + field: "key" + }; + } else if (!sort.field && sort.op !== "count") (0, _vegaUtil.error)("No field provided for sort aggregate op: " + sort.op); + else if (multidomain && sort.field) { + if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) (0, _vegaUtil.error)("Multiple domain scales can not be sorted using " + sort.op); + } } + return sort; } -Context.prototype = Subcontext.prototype = { - fork () { - const ctx = new Subcontext(this); - (this.subcontext || (this.subcontext = [])).push(ctx); - return ctx; - }, - detach (ctx) { - this.subcontext = this.subcontext.filter((c)=>c !== ctx); // disconnect all nodes in the subcontext - // wipe out targets first for better efficiency - const keys = Object.keys(ctx.nodes); - for (const key of keys)ctx.nodes[key]._targets = null; - for (const key1 of keys)ctx.nodes[key1].detach(); - ctx.nodes = null; - }, - get (id) { - return this.nodes[id]; - }, - set (id, node) { - return this.nodes[id] = node; - }, - add (spec, op) { - const ctx = this, df = ctx.dataflow, data = spec.value; - ctx.set(spec.id, op); - if (isCollect(spec.type) && data) { - if (data.$ingest) df.ingest(op, data.$ingest, data.$format); - else if (data.$request) df.preload(op, data.$request, data.$format); - else df.pulse(op, df.changeset().insert(data)); - } - if (spec.root) ctx.root = op; - if (spec.parent) { - let p = ctx.get(spec.parent.$ref); - if (p) { - df.connect(p, [ - op - ]); - op.targets().add(p); - } else (ctx.unresolved = ctx.unresolved || []).push(()=>{ - p = ctx.get(spec.parent.$ref); - df.connect(p, [ - op - ]); - op.targets().add(p); - }); - } - if (spec.signal) ctx.signals[spec.signal] = op; - if (spec.scale) ctx.scales[spec.scale] = op; - if (spec.data) for(const name in spec.data){ - const data1 = ctx.data[name] || (ctx.data[name] = {}); - spec.data[name].forEach((role)=>data1[role] = op); - } - }, - resolve () { - (this.unresolved || []).forEach((fn)=>fn()); - delete this.unresolved; - return this; - }, - operator (spec, update) { - this.add(spec, this.dataflow.add(spec.value, update)); - }, - transform (spec, type) { - this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)])); - }, - stream (spec, stream) { - this.set(spec.id, stream); - }, - update (spec, stream, target, update, params) { - this.dataflow.on(stream, target, update, params, spec.options); - }, - // expression parsing - operatorExpression (expr) { - return this.expr.operator(this, expr); - }, - parameterExpression (expr) { - return this.expr.parameter(this, expr); - }, - eventExpression (expr) { - return this.expr.event(this, expr); - }, - handlerExpression (expr) { - return this.expr.handler(this, expr); - }, - encodeExpression (encode) { - return this.expr.encode(this, encode); - }, - // parse methods - parse, - parseOperator, - parseOperatorParameters, - parseParameters, - parseStream, - parseUpdate, - // state methods - getState, - setState -}; - -},{"vega-util":"bApja","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hsy9Z":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "AxisDomainRole", ()=>AxisDomainRole); -parcelHelpers.export(exports, "AxisGridRole", ()=>AxisGridRole); -parcelHelpers.export(exports, "AxisLabelRole", ()=>AxisLabelRole); -parcelHelpers.export(exports, "AxisRole", ()=>AxisRole); -parcelHelpers.export(exports, "AxisTickRole", ()=>AxisTickRole); -parcelHelpers.export(exports, "AxisTitleRole", ()=>AxisTitleRole); -parcelHelpers.export(exports, "DataScope", ()=>DataScope); -parcelHelpers.export(exports, "FrameRole", ()=>FrameRole); -parcelHelpers.export(exports, "LegendEntryRole", ()=>LegendEntryRole); -parcelHelpers.export(exports, "LegendLabelRole", ()=>LegendLabelRole); -parcelHelpers.export(exports, "LegendRole", ()=>LegendRole); -parcelHelpers.export(exports, "LegendSymbolRole", ()=>LegendSymbolRole); -parcelHelpers.export(exports, "LegendTitleRole", ()=>LegendTitleRole); -parcelHelpers.export(exports, "MarkRole", ()=>MarkRole); -parcelHelpers.export(exports, "Scope", ()=>Scope); -parcelHelpers.export(exports, "ScopeRole", ()=>ScopeRole); -parcelHelpers.export(exports, "config", ()=>defaults); -parcelHelpers.export(exports, "parse", ()=>parse); -parcelHelpers.export(exports, "signal", ()=>parseSignal); -parcelHelpers.export(exports, "signalUpdates", ()=>parseSignalUpdates); -parcelHelpers.export(exports, "stream", ()=>parseStream); -var _vegaUtil = require("vega-util"); -var _vegaFunctions = require("vega-functions"); -var _vegaEventSelector = require("vega-event-selector"); -var _vegaScale = require("vega-scale"); -var _vegaDataflow = require("vega-dataflow"); -function parseAutosize(spec) { - return (0, _vegaUtil.isObject)(spec) ? spec : { - type: spec || "pad" - }; -} -const number = (_)=>+_ || 0; -const paddingObject = (_)=>({ - top: _, - bottom: _, - left: _, - right: _ - }); -function parsePadding(spec) { - return !(0, _vegaUtil.isObject)(spec) ? paddingObject(number(spec)) : spec.signal ? spec : { - top: number(spec.top), - bottom: number(spec.bottom), - left: number(spec.left), - right: number(spec.right) - }; -} -const encoder = (_)=>(0, _vegaUtil.isObject)(_) && !(0, _vegaUtil.isArray)(_) ? (0, _vegaUtil.extend)({}, _) : { - value: _ - }; -function addEncode(object, name, value, set) { - if (value != null) { - const isEncoder = (0, _vegaUtil.isObject)(value) && !(0, _vegaUtil.isArray)(value) || (0, _vegaUtil.isArray)(value) && value.length && (0, _vegaUtil.isObject)(value[0]); // Always assign signal to update, even if the signal is from the enter block - if (isEncoder) object.update[name] = value; - else object[set || "enter"][name] = { - value: value - }; - return 1; - } else return 0; -} -function addEncoders(object, enter, update) { - for(const name in enter)addEncode(object, name, enter[name]); - for(const name1 in update)addEncode(object, name1, update[name1], "update"); -} -function extendEncode(encode, extra, skip) { - for(const name in extra){ - if (skip && (0, _vegaUtil.hasOwnProperty)(skip, name)) continue; - encode[name] = (0, _vegaUtil.extend)(encode[name] || {}, extra[name]); - } - return encode; -} -function has(key, encode) { - return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]); +function quantileMultipleDomain(domain, scope, fields) { + // get value arrays for each domain field + const values = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.domainRef(scope, f.field); + }); // combine value arrays + return ref(scope.add(MultiValues({ + values: values + }))); } -const MarkRole = "mark"; -const FrameRole = "frame"; -const ScopeRole = "scope"; -const AxisRole = "axis"; -const AxisDomainRole = "axis-domain"; -const AxisGridRole = "axis-grid"; -const AxisLabelRole = "axis-label"; -const AxisTickRole = "axis-tick"; -const AxisTitleRole = "axis-title"; -const LegendRole = "legend"; -const LegendBandRole = "legend-band"; -const LegendEntryRole = "legend-entry"; -const LegendGradientRole = "legend-gradient"; -const LegendLabelRole = "legend-label"; -const LegendSymbolRole = "legend-symbol"; -const LegendTitleRole = "legend-title"; -const TitleRole = "title"; -const TitleTextRole = "title-text"; -const TitleSubtitleRole = "title-subtitle"; -function applyDefaults(encode, type, role, style, config) { - const defaults = {}, enter = {}; - let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370) - key = "lineBreak"; - if (type === "text" && config[key] != null && !has(key, encode)) applyDefault(defaults, key, config[key]); - // ignore legend and axis roles - if (role == "legend" || String(role).startsWith("axis")) role = null; - // resolve mark config - props = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; - for(key in props){ - // do not apply defaults if relevant fields are defined - skip = has(key, encode) || (key === "fill" || key === "stroke") && (has("fill", encode) || has("stroke", encode)); - if (!skip) applyDefault(defaults, key, props[key]); - } // resolve styles, apply with increasing precedence - (0, _vegaUtil.array)(style).forEach((name)=>{ - const props = config.style && config.style[name]; - for(const key in props)if (!has(key, encode)) applyDefault(defaults, key, props[key]); - }); - encode = (0, _vegaUtil.extend)({}, encode); // defensive copy - for(key in defaults){ - props = defaults[key]; - if (props.signal) (update = update || {})[key] = props; - else enter[key] = props; - } - encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); - if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); - return encode; +function numericMultipleDomain(domain, scope, fields) { + // get extents for each domain field + const extents = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.extentRef(scope, f.field); + }); // combine extents + return ref(scope.add(MultiExtent({ + extents: extents + }))); +} // -- SCALE BINS ----- +function parseScaleBins(v, scope) { + return v.signal || (0, _vegaUtil.isArray)(v) ? parseArray(v, scope) : scope.objectProperty(v); +} // -- SCALE NICE ----- +function parseScaleNice(nice) { + return (0, _vegaUtil.isObject)(nice) ? { + interval: parseLiteral(nice.interval), + step: parseLiteral(nice.step) + } : parseLiteral(nice); +} // -- SCALE INTERPOLATION ----- +function parseScaleInterpolate(interpolate, params) { + params.interpolate = parseLiteral(interpolate.type || interpolate); + if (interpolate.gamma != null) params.interpolateGamma = parseLiteral(interpolate.gamma); +} // -- SCALE RANGE ----- +function parseScaleRange(spec, scope, params) { + const config = scope.config.range; + let range = spec.range; + if (range.signal) return scope.signalRef(range.signal); + else if ((0, _vegaUtil.isString)(range)) { + if (config && (0, _vegaUtil.hasOwnProperty)(config, range)) { + spec = (0, _vegaUtil.extend)({}, spec, { + range: config[range] + }); + return parseScaleRange(spec, scope, params); + } else if (range === "width") range = [ + 0, + { + signal: "width" + } + ]; + else if (range === "height") range = (0, _vegaScale.isDiscrete)(spec.type) ? [ + 0, + { + signal: "height" + } + ] : [ + { + signal: "height" + }, + 0 + ]; + else (0, _vegaUtil.error)("Unrecognized scale range value: " + (0, _vegaUtil.stringValue)(range)); + } else if (range.scheme) { + params.scheme = (0, _vegaUtil.isArray)(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope); + if (range.extent) params.schemeExtent = parseArray(range.extent, scope); + if (range.count) params.schemeCount = parseLiteral(range.count, scope); + return; + } else if (range.step) { + params.rangeStep = parseLiteral(range.step, scope); + return; + } else if ((0, _vegaScale.isDiscrete)(spec.type) && !(0, _vegaUtil.isArray)(range)) return parseScaleDomain(range, spec, scope); + else if (!(0, _vegaUtil.isArray)(range)) (0, _vegaUtil.error)("Unsupported range type: " + (0, _vegaUtil.stringValue)(range)); + return range.map((v)=>((0, _vegaUtil.isArray)(v) ? parseArray : parseLiteral)(v, scope)); } -function applyDefault(defaults, key, value) { - defaults[key] = value && value.signal ? { - signal: value.signal - } : { - value: value - }; +function parseProjection(proj, scope) { + const config = scope.config.projection || {}, params = {}; + for(const name in proj){ + if (name === "name") continue; + params[name] = parseParameter$1(proj[name], name, scope); + } // apply projection defaults from config + for(const name1 in config)if (params[name1] == null) params[name1] = parseParameter$1(config[name1], name1, scope); + scope.addProjection(proj.name, params); } -const scaleRef = (scale)=>(0, _vegaUtil.isString)(scale) ? (0, _vegaUtil.stringValue)(scale) : scale.signal ? `(${scale.signal})` : field(scale); -function entry$1(enc) { - if (enc.gradient != null) return gradient(enc); - let value = enc.signal ? `(${enc.signal})` : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? (0, _vegaUtil.stringValue)(enc.value) : undefined; - if (enc.scale != null) value = scale(enc, value); - if (value === undefined) value = null; - if (enc.exponent != null) value = `pow(${value},${property(enc.exponent)})`; - if (enc.mult != null) value += `*${property(enc.mult)}`; - if (enc.offset != null) value += `+${property(enc.offset)}`; - if (enc.round) value = `round(${value})`; - return value; +function parseParameter$1(_, name, scope) { + return (0, _vegaUtil.isArray)(_) ? _.map((_)=>parseParameter$1(_, name, scope)) : !(0, _vegaUtil.isObject)(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === "fit" ? _ : (0, _vegaUtil.error)("Unsupported parameter object: " + (0, _vegaUtil.stringValue)(_)); } -const _color = (type, x, y, z)=>`(${type}(${[ - x, - y, - z - ].map(entry$1).join(",")})+'')`; -function color(enc) { - return enc.c ? _color("hcl", enc.h, enc.c, enc.l) : enc.h || enc.s ? _color("hsl", enc.h, enc.s, enc.l) : enc.l || enc.a ? _color("lab", enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color("rgb", enc.r, enc.g, enc.b) : null; +const Top = "top"; +const Left = "left"; +const Right = "right"; +const Bottom = "bottom"; +const Center = "center"; +const Vertical = "vertical"; +const Start = "start"; +const Middle = "middle"; +const End = "end"; +const Index = "index"; +const Label = "label"; +const Offset = "offset"; +const Perc = "perc"; +const Perc2 = "perc2"; +const Value = "value"; +const GuideLabelStyle = "guide-label"; +const GuideTitleStyle = "guide-title"; +const GroupTitleStyle = "group-title"; +const GroupSubtitleStyle = "group-subtitle"; +const Symbols = "symbol"; +const Gradient = "gradient"; +const Discrete = "discrete"; +const Size = "size"; +const Shape = "shape"; +const Fill = "fill"; +const Stroke = "stroke"; +const StrokeWidth = "strokeWidth"; +const StrokeDash = "strokeDash"; +const Opacity = "opacity"; // Encoding channels supported by legends +// In priority order of 'canonical' scale +const LegendScales = [ + Size, + Shape, + Fill, + Stroke, + StrokeWidth, + StrokeDash, + Opacity +]; +const Skip = { + name: 1, + style: 1, + interactive: 1 +}; +const zero = { + value: 0 +}; +const one = { + value: 1 +}; +const GroupMark = "group"; +const RectMark = "rect"; +const RuleMark = "rule"; +const SymbolMark = "symbol"; +const TextMark = "text"; +function guideGroup(mark) { + mark.type = GroupMark; + mark.interactive = mark.interactive || false; + return mark; } -function gradient(enc) { - // map undefined to null; expression lang does not allow undefined - const args = [ - enc.start, - enc.stop, - enc.count - ].map((_)=>_ == null ? null : (0, _vegaUtil.stringValue)(_)); // trim null inputs from the end - while(args.length && (0, _vegaUtil.peek)(args) == null)args.pop(); - args.unshift(scaleRef(enc.gradient)); - return `gradient(${args.join(",")})`; +function lookup(spec, config) { + const _ = (name, dflt)=>value(spec[name], value(config[name], dflt)); + _.isVertical = (s)=>Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection)); + _.gradientLength = ()=>value(spec.gradientLength, config.gradientLength || config.gradientWidth); + _.gradientThickness = ()=>value(spec.gradientThickness, config.gradientThickness || config.gradientHeight); + _.entryColumns = ()=>value(spec.columns, value(config.columns, +_.isVertical(true))); + return _; } -function property(property) { - return (0, _vegaUtil.isObject)(property) ? "(" + entry$1(property) + ")" : property; +function getEncoding(name, encode) { + const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]); + return v && v.signal ? v : v ? v.value : null; } -function field(ref) { - return resolveField((0, _vegaUtil.isObject)(ref) ? ref : { - datum: ref - }); +function getStyle(name, scope, style) { + const s = scope.config.style[style]; + return s && s[name]; } -function resolveField(ref) { - let object, level, field; - if (ref.signal) { - object = "datum"; - field = ref.signal; - } else if (ref.group || ref.parent) { - level = Math.max(1, ref.level || 1); - object = "item"; - while(level-- > 0)object += ".mark.group"; - if (ref.parent) { - field = ref.parent; - object += ".datum"; - } else field = ref.group; - } else if (ref.datum) { - object = "datum"; - field = ref.datum; - } else (0, _vegaUtil.error)("Invalid field reference: " + (0, _vegaUtil.stringValue)(ref)); - if (!ref.signal) field = (0, _vegaUtil.isString)(field) ? (0, _vegaUtil.splitAccessPath)(field).map((0, _vegaUtil.stringValue)).join("][") : resolveField(field); - return object + "[" + field + "]"; +function anchorExpr(s, e, m) { + return `item.anchor === '${Start}' ? ${s} : item.anchor === '${End}' ? ${e} : ${m}`; } -function scale(enc, value) { - const scale = scaleRef(enc.scale); - if (enc.range != null) // pull value from scale range - value = `lerp(_range(${scale}), ${+enc.range})`; - else { - // run value through scale and/or pull scale bandwidth - if (value !== undefined) value = `_scale(${scale}, ${value})`; - if (enc.band) { - value = (value ? value + "+" : "") + `_bandwidth(${scale})` + (+enc.band === 1 ? "" : "*" + property(enc.band)); - if (enc.extra) // include logic to handle extraneous elements - value = `(datum.extra ? _scale(${scale}, datum.extra.value) : ${value})`; - } - if (value == null) value = "0"; +const alignExpr$1 = anchorExpr((0, _vegaUtil.stringValue)(Left), (0, _vegaUtil.stringValue)(Right), (0, _vegaUtil.stringValue)(Center)); +function tickBand(_) { + const v = _("tickBand"); + let offset = _("tickOffset"), band, extra; + if (!v) { + // if no tick band entry, fall back on other properties + band = _("bandPosition"); + extra = _("tickExtra"); + } else if (v.signal) { + // if signal, augment code to interpret values + band = { + signal: `(${v.signal}) === 'extent' ? 1 : 0.5` + }; + extra = { + signal: `(${v.signal}) === 'extent'` + }; + if (!(0, _vegaUtil.isObject)(offset)) offset = { + signal: `(${v.signal}) === 'extent' ? 0 : ${offset}` + }; + } else if (v === "extent") { + // if constant, simply set values + band = 1; + extra = true; + offset = 0; + } else { + band = 0.5; + extra = false; } - return value; -} -function rule(enc) { - let code = ""; - enc.forEach((rule)=>{ - const value = entry$1(rule); - code += rule.test ? `(${rule.test})?${value}:` : value; - }); // if no else clause, terminate with null (#1366) - if ((0, _vegaUtil.peek)(code) === ":") code += "null"; - return code; -} -function parseEncode(encode, type, role, style, scope, params) { - const enc = {}; - params = params || {}; - params.encoders = { - $encode: enc - }; - encode = applyDefaults(encode, type, role, style, scope.config); - for(const key in encode)enc[key] = parseBlock(encode[key], type, params, scope); - return params; -} -function parseBlock(block, marktype, params, scope) { - const channels = {}, fields = {}; - for(const name in block)if (block[name] != null) // skip any null entries - channels[name] = parse$1(expr(block[name]), scope, params, fields); return { - $expr: { - marktype, - channels - }, - $fields: Object.keys(fields), - $output: Object.keys(block) + extra, + band, + offset }; } -function expr(enc) { - return (0, _vegaUtil.isArray)(enc) ? rule(enc) : entry$1(enc); +function extendOffset(value, offset) { + return !offset ? value : !value ? offset : !(0, _vegaUtil.isObject)(value) ? { + value, + offset + } : Object.assign({}, value, { + offset: extendOffset(value.offset, offset) + }); } -function parse$1(code, scope, params, fields) { - const expr = (0, _vegaFunctions.parseExpression)(code, scope); - expr.$fields.forEach((name)=>fields[name] = 1); - (0, _vegaUtil.extend)(params, expr.$params); - return expr.$expr; +function guideMark(mark, extras) { + if (extras) { + mark.name = extras.name; + mark.style = extras.style || mark.style; + mark.interactive = !!extras.interactive; + mark.encode = extendEncode(mark.encode, extras, Skip); + } else mark.interactive = false; + return mark; } -const OUTER = "outer", OUTER_INVALID = [ - "value", - "update", - "init", - "react", - "bind" -]; -function outerError(prefix, name) { - (0, _vegaUtil.error)(prefix + ' for "outer" push: ' + (0, _vegaUtil.stringValue)(name)); -} -function parseSignal(signal, scope) { - const name = signal.name; - if (signal.push === OUTER) { - // signal must already be defined, raise error if not - if (!scope.signals[name]) outerError("No prior signal definition", name); // signal push must not use properties reserved for standard definition - OUTER_INVALID.forEach((prop)=>{ - if (signal[prop] !== undefined) outerError("Invalid property ", prop); - }); +function legendGradient(spec, scale, config, userEncode) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); + let enter, start, stop, width, height; + if (vertical) { + start = [ + 0, + 1 + ]; + stop = [ + 0, + 0 + ]; + width = thickness; + height = length; } else { - // define a new signal in the current scope - const op = scope.addSignal(name, signal.value); - if (signal.react === false) op.react = false; - if (signal.bind) scope.addBinding(name, signal.bind); + start = [ + 0, + 0 + ]; + stop = [ + 1, + 0 + ]; + width = length; + height = thickness; } -} -function Entry(type, value, params, parent) { - this.id = -1; - this.type = type; - this.value = value; - this.params = params; - if (parent) this.parent = parent; -} -function entry(type, value, params, parent) { - return new Entry(type, value, params, parent); -} -function operator(value, params) { - return entry("operator", value, params); -} // ----- -function ref(op) { - const ref = { - $ref: op.id - }; // if operator not yet registered, cache ref to resolve later - if (op.id < 0) (op.refs = op.refs || []).push(ref); - return ref; -} -function fieldRef$1(field, name) { - return name ? { - $field: field, - $name: name - } : { - $field: field + const encode = { + enter: enter = { + opacity: zero, + x: zero, + y: zero, + width: encoder(width), + height: encoder(height) + }, + update: (0, _vegaUtil.extend)({}, enter, { + opacity: one, + fill: { + gradient: scale, + start: start, + stop: stop + } + }), + exit: { + opacity: zero + } }; + addEncoders(encode, { + stroke: _("gradientStrokeColor"), + strokeWidth: _("gradientStrokeWidth") + }, { + // update + opacity: _("gradientOpacity") + }); + return guideMark({ + type: RectMark, + role: LegendGradientRole, + encode + }, userEncode); } -const keyFieldRef = fieldRef$1("key"); -function compareRef(fields, orders) { - return { - $compare: fields, - $order: orders +function legendGradientDiscrete(spec, scale, config, userEncode, dataRef) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); + let u, v, uu, vv, adjust = ""; + vertical ? (u = "y", uu = "y2", v = "x", vv = "width", adjust = "1-") : (u = "x", uu = "x2", v = "y", vv = "height"); + const enter = { + opacity: zero, + fill: { + scale: scale, + field: Value + } }; -} -function keyRef(fields, flat) { - const ref = { - $key: fields + enter[u] = { + signal: adjust + "datum." + Perc, + mult: length }; - if (flat) ref.$flat = true; - return ref; -} // ----- -const Ascending = "ascending"; -const Descending = "descending"; -function sortKey(sort) { - return !(0, _vegaUtil.isObject)(sort) ? "" : (sort.order === Descending ? "-" : "+") + aggrField(sort.op, sort.field); -} -function aggrField(op, field) { - return (op && op.signal ? "$" + op.signal : op || "") + (op && field ? "_" : "") + (field && field.signal ? "$" + field.signal : field || ""); -} // ----- -const Scope$1 = "scope"; -const View = "view"; -function isSignal(_) { - return _ && _.signal; -} -function isExpr$1(_) { - return _ && _.expr; -} -function hasSignal(_) { - if (isSignal(_)) return true; - if ((0, _vegaUtil.isObject)(_)) for(const key in _){ - if (hasSignal(_[key])) return true; - } - return false; -} -function value(specValue, defaultValue) { - return specValue != null ? specValue : defaultValue; -} -function deref(v) { - return v && v.signal || v; -} -const Timer = "timer"; -function parseStream(stream, scope) { - const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : (0, _vegaUtil.error)("Invalid stream specification: " + (0, _vegaUtil.stringValue)(stream)); - return method(stream, scope); -} -function eventSource(source) { - return source === Scope$1 ? View : source || View; -} -function mergeStream(stream, scope) { - const list = stream.merge.map((s)=>parseStream(s, scope)), entry = streamParameters({ - merge: list - }, stream, scope); - return scope.addStream(entry).id; -} -function nestedStream(stream, scope) { - const id = parseStream(stream.stream, scope), entry = streamParameters({ - stream: id - }, stream, scope); - return scope.addStream(entry).id; + enter[v] = zero; + enter[uu] = { + signal: adjust + "datum." + Perc2, + mult: length + }; + enter[vv] = encoder(thickness); + const encode = { + enter: enter, + update: (0, _vegaUtil.extend)({}, enter, { + opacity: one + }), + exit: { + opacity: zero + } + }; + addEncoders(encode, { + stroke: _("gradientStrokeColor"), + strokeWidth: _("gradientStrokeWidth") + }, { + // update + opacity: _("gradientOpacity") + }); + return guideMark({ + type: RectMark, + role: LegendBandRole, + key: Value, + from: dataRef, + encode + }, userEncode); } -function eventStream(stream, scope) { - let id; - if (stream.type === Timer) { - id = scope.event(Timer, stream.throttle); - stream = { - between: stream.between, - filter: stream.filter +const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; +function legendGradientLabels(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); + let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; + const encode = { + enter: enter = { + opacity: zero + }, + update: update = { + opacity: one, + text: { + field: Label + } + }, + exit: { + opacity: zero + } + }; + addEncoders(encode, { + fill: _("labelColor"), + fillOpacity: _("labelOpacity"), + font: _("labelFont"), + fontSize: _("labelFontSize"), + fontStyle: _("labelFontStyle"), + fontWeight: _("labelFontWeight"), + limit: value(spec.labelLimit, config.gradientLabelLimit) + }); + if (vertical) { + enter.align = { + value: "left" }; - } else id = scope.event(eventSource(stream.source), stream.type); - const entry = streamParameters({ - stream: id - }, stream, scope); - return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id; -} -function streamParameters(entry, stream, scope) { - let param = stream.between; - if (param) { - if (param.length !== 2) (0, _vegaUtil.error)('Stream "between" parameter must have 2 entries: ' + (0, _vegaUtil.stringValue)(stream)); - entry.between = [ - parseStream(param[0], scope), - parseStream(param[1], scope) - ]; + enter.baseline = update.baseline = { + signal: baselineExpr + }; + u = "y"; + v = "x"; + adjust = "1-"; + } else { + enter.align = update.align = { + signal: alignExpr + }; + enter.baseline = { + value: "top" + }; + u = "x"; + v = "y"; } - param = stream.filter ? [].concat(stream.filter) : []; - if (stream.marktype || stream.markname || stream.markrole) // add filter for mark type, name and/or role - param.push(filterMark(stream.marktype, stream.markname, stream.markrole)); - if (stream.source === Scope$1) // add filter to limit events from sub-scope only - param.push("inScope(event.item)"); - if (param.length) entry.filter = (0, _vegaFunctions.parseExpression)("(" + param.join(")&&(") + ")", scope).$expr; - if ((param = stream.throttle) != null) entry.throttle = +param; - if ((param = stream.debounce) != null) entry.debounce = +param; - if (stream.consume) entry.consume = true; - return entry; -} -function filterMark(type, name, role) { - const item = "event.item"; - return item + (type && type !== "*" ? "&&" + item + ".mark.marktype==='" + type + "'" : "") + (role ? "&&" + item + ".mark.role==='" + role + "'" : "") + (name ? "&&" + item + ".mark.name==='" + name + "'" : ""); + enter[u] = update[u] = { + signal: adjust + "datum." + Perc, + mult: length + }; + enter[v] = update[v] = thickness; + thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; + overlap = overlap ? { + separation: _("labelSeparation"), + method: overlap, + order: "datum." + Index + } : undefined; // type, role, style, key, dataRef, encode, extras + return guideMark({ + type: TextMark, + role: LegendLabelRole, + style: GuideLabelStyle, + key: Value, + from: dataRef, + encode, + overlap + }, userEncode); } -const OP_VALUE_EXPR = { - code: "_.$value", - ast: { - type: "Identifier", - value: "value" +function legendSymbolGroups(spec, config, userEncode, dataRef, columns) { + const _ = lookup(spec, config), entries = userEncode.entries, interactive = !!(entries && entries.interactive), name = entries ? entries.name : undefined, height = _("clipHeight"), symbolOffset = _("symbolOffset"), valueRef = { + data: "value" + }, xSignal = `(${columns}) ? datum.${Offset} : datum.${Size}`, yEncode = height ? encoder(height) : { + field: Size + }, index = `datum.${Index}`, ncols = `max(1, ${columns})`; + let encode, enter, update, nrows, sort; + yEncode.mult = 0.5; // -- LEGEND SYMBOLS -- + encode = { + enter: enter = { + opacity: zero, + x: { + signal: xSignal, + mult: 0.5, + offset: symbolOffset + }, + y: yEncode + }, + update: update = { + opacity: one, + x: enter.x, + y: enter.y + }, + exit: { + opacity: zero + } + }; + let baseFill = null, baseStroke = null; + if (!spec.fill) { + baseFill = config.symbolBaseFillColor; + baseStroke = config.symbolBaseStrokeColor; } -}; -function parseUpdate(spec, scope, target) { - const encode = spec.encode, entry = { - target: target + addEncoders(encode, { + fill: _("symbolFillColor", baseFill), + shape: _("symbolType"), + size: _("symbolSize"), + stroke: _("symbolStrokeColor", baseStroke), + strokeDash: _("symbolDash"), + strokeDashOffset: _("symbolDashOffset"), + strokeWidth: _("symbolStrokeWidth") + }, { + // update + opacity: _("symbolOpacity") + }); + LegendScales.forEach((scale)=>{ + if (spec[scale]) update[scale] = enter[scale] = { + scale: spec[scale], + field: Value + }; + }); + const symbols = guideMark({ + type: SymbolMark, + role: LegendSymbolRole, + key: Value, + from: valueRef, + clip: height ? true : undefined, + encode + }, userEncode.symbols); // -- LEGEND LABELS -- + const labelOffset = encoder(symbolOffset); + labelOffset.offset = _("labelOffset"); + encode = { + enter: enter = { + opacity: zero, + x: { + signal: xSignal, + offset: labelOffset + }, + y: yEncode + }, + update: update = { + opacity: one, + text: { + field: Label + }, + x: enter.x, + y: enter.y + }, + exit: { + opacity: zero + } }; - let events = spec.events, update = spec.update, sources = []; - if (!events) (0, _vegaUtil.error)("Signal update missing events specification."); - // interpret as an event selector string - if ((0, _vegaUtil.isString)(events)) events = (0, _vegaEventSelector.parseSelector)(events, scope.isSubscope() ? Scope$1 : View); - // separate event streams from signal updates - events = (0, _vegaUtil.array)(events).filter((s)=>s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners - if (sources.length > 1) sources = [ - mergeSources(sources) - ]; - // merge event streams, include as source - if (events.length) sources.push(events.length > 1 ? { - merge: events - } : events[0]); - if (encode != null) { - if (update) (0, _vegaUtil.error)("Signal encode and update are mutually exclusive."); - update = "encode(item()," + (0, _vegaUtil.stringValue)(encode) + ")"; - } // resolve update value - entry.update = (0, _vegaUtil.isString)(update) ? (0, _vegaFunctions.parseExpression)(update, scope) : update.expr != null ? (0, _vegaFunctions.parseExpression)(update.expr, scope) : update.value != null ? update.value : update.signal != null ? { - $expr: OP_VALUE_EXPR, - $params: { - $value: scope.signalRef(update.signal) + addEncoders(encode, { + align: _("labelAlign"), + baseline: _("labelBaseline"), + fill: _("labelColor"), + fillOpacity: _("labelOpacity"), + font: _("labelFont"), + fontSize: _("labelFontSize"), + fontStyle: _("labelFontStyle"), + fontWeight: _("labelFontWeight"), + limit: _("labelLimit") + }); + const labels = guideMark({ + type: TextMark, + role: LegendLabelRole, + style: GuideLabelStyle, + key: Value, + from: valueRef, + encode + }, userEncode.labels); // -- LEGEND ENTRY GROUPS -- + encode = { + enter: { + noBound: { + value: !height + }, + // ignore width/height in bounds calc + width: zero, + height: height ? encoder(height) : zero, + opacity: zero + }, + exit: { + opacity: zero + }, + update: update = { + opacity: one, + row: { + signal: null + }, + column: { + signal: null + } + } + }; // annotate and sort groups to ensure correct ordering + if (_.isVertical(true)) { + nrows = `ceil(item.mark.items.length / ${ncols})`; + update.row.signal = `${index}%${nrows}`; + update.column.signal = `floor(${index} / ${nrows})`; + sort = { + field: [ + "row", + index + ] + }; + } else { + update.row.signal = `floor(${index} / ${ncols})`; + update.column.signal = `${index} % ${ncols}`; + sort = { + field: index + }; + } // handle zero column case (implies infinite columns) + update.column.signal = `(${columns})?${update.column.signal}:${index}`; // facet legend entries into sub-groups + dataRef = { + facet: { + data: dataRef, + name: "value", + groupby: Index } - } : (0, _vegaUtil.error)("Invalid signal update specification."); - if (spec.force) entry.options = { - force: true }; - sources.forEach((source)=>scope.addUpdate((0, _vegaUtil.extend)(streamSource(source, scope), entry))); + return guideGroup({ + role: ScopeRole, + from: dataRef, + encode: extendEncode(encode, entries, Skip), + marks: [ + symbols, + labels + ], + name, + interactive, + sort + }); } -function streamSource(stream, scope) { +function legendSymbolLayout(spec, config) { + const _ = lookup(spec, config); // layout parameters for legend entries return { - source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope) + align: _("gridAlign"), + columns: _.entryColumns(), + center: { + row: true, + column: false + }, + padding: { + row: _("rowPadding"), + column: _("columnPadding") + } }; } -function mergeSources(sources) { - return { - signal: "[" + sources.map((s)=>s.scale ? 'scale("' + s.scale + '")' : s.signal) + "]" +const isL = 'item.orient === "left"', isR = 'item.orient === "right"', isLR = `(${isL} || ${isR})`, isVG = `datum.vgrad && ${isLR}`, baseline = anchorExpr('"top"', '"bottom"', '"middle"'), alignFlip = anchorExpr('"right"', '"left"', '"center"'), exprAlign = `datum.vgrad && ${isR} ? (${alignFlip}) : (${isLR} && !(datum.vgrad && ${isL})) ? "left" : ${alignExpr$1}`, exprAnchor = `item._anchor || (${isLR} ? "middle" : "start")`, exprAngle = `${isVG} ? (${isL} ? -90 : 90) : 0`, exprBaseline = `${isLR} ? (datum.vgrad ? (${isR} ? "bottom" : "top") : ${baseline}) : "top"`; +function legendTitle(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config); + const encode = { + enter: { + opacity: zero + }, + update: { + opacity: one, + x: { + field: { + group: "padding" + } + }, + y: { + field: { + group: "padding" + } + } + }, + exit: { + opacity: zero + } }; + addEncoders(encode, { + orient: _("titleOrient"), + _anchor: _("titleAnchor"), + anchor: { + signal: exprAnchor + }, + angle: { + signal: exprAngle + }, + align: { + signal: exprAlign + }, + baseline: { + signal: exprBaseline + }, + text: spec.title, + fill: _("titleColor"), + fillOpacity: _("titleOpacity"), + font: _("titleFont"), + fontSize: _("titleFontSize"), + fontStyle: _("titleFontStyle"), + fontWeight: _("titleFontWeight"), + limit: _("titleLimit"), + lineHeight: _("titleLineHeight") + }, { + // require update + align: _("titleAlign"), + baseline: _("titleBaseline") + }); + return guideMark({ + type: TextMark, + role: LegendTitleRole, + style: GuideTitleStyle, + from: dataRef, + encode + }, userEncode); } -function parseSignalUpdates(signal, scope) { - const op = scope.getSignal(signal.name); - let expr = signal.update; - if (signal.init) { - if (expr) (0, _vegaUtil.error)("Signals can not include both init and update expressions."); - else { - expr = signal.init; - op.initonly = true; - } - } - if (expr) { - expr = (0, _vegaFunctions.parseExpression)(expr, scope); - op.update = expr.$expr; - op.params = expr.$params; +function clip(clip, scope) { + let expr; + if ((0, _vegaUtil.isObject)(clip)) { + if (clip.signal) expr = clip.signal; + else if (clip.path) expr = "pathShape(" + param(clip.path) + ")"; + else if (clip.sphere) expr = "geoShape(" + param(clip.sphere) + ', {type: "Sphere"})'; } - if (signal.on) signal.on.forEach((_)=>parseUpdate(_, scope, op.id)); + return expr ? scope.signalRef(expr) : !!clip; } -const transform = (name)=>(params, value, parent)=>entry(name, value, params || undefined, parent); -const Aggregate = transform("aggregate"); -const AxisTicks = transform("axisticks"); -const Bound = transform("bound"); -const Collect = transform("collect"); -const Compare = transform("compare"); -const DataJoin = transform("datajoin"); -const Encode = transform("encode"); -const Expression = transform("expression"); -const Facet = transform("facet"); -const Field = transform("field"); -const Key = transform("key"); -const LegendEntries = transform("legendentries"); -const Load = transform("load"); -const Mark = transform("mark"); -const MultiExtent = transform("multiextent"); -const MultiValues = transform("multivalues"); -const Overlap = transform("overlap"); -const Params = transform("params"); -const PreFacet = transform("prefacet"); -const Projection = transform("projection"); -const Proxy = transform("proxy"); -const Relay = transform("relay"); -const Render = transform("render"); -const Scale = transform("scale"); -const Sieve = transform("sieve"); -const SortItems = transform("sortitems"); -const ViewLayout = transform("viewlayout"); -const Values = transform("values"); -let FIELD_REF_ID = 0; -const MULTIDOMAIN_SORT_OPS = { - min: "min", - max: "max", - count: "sum" -}; -function initScale(spec, scope) { - const type = spec.type || "linear"; - if (!(0, _vegaScale.isValidScaleType)(type)) (0, _vegaUtil.error)("Unrecognized scale type: " + (0, _vegaUtil.stringValue)(type)); - scope.addScale(spec.name, { - type, - domain: undefined - }); +function param(value) { + return (0, _vegaUtil.isObject)(value) && value.signal ? value.signal : (0, _vegaUtil.stringValue)(value); } -function parseScale(spec, scope) { - const params = scope.getScale(spec.name).params; - let key; - params.domain = parseScaleDomain(spec.domain, spec, scope); - if (spec.range != null) params.range = parseScaleRange(spec, scope, params); - if (spec.interpolate != null) parseScaleInterpolate(spec.interpolate, params); - if (spec.nice != null) params.nice = parseScaleNice(spec.nice); - if (spec.bins != null) params.bins = parseScaleBins(spec.bins, scope); - for(key in spec){ - if ((0, _vegaUtil.hasOwnProperty)(params, key) || key === "name") continue; - params[key] = parseLiteral(spec[key], scope); - } +function getRole(spec) { + const role = spec.role || ""; + return !role.indexOf("axis") || !role.indexOf("legend") || !role.indexOf("title") ? role : spec.type === GroupMark ? ScopeRole : role || MarkRole; } -function parseLiteral(v, scope) { - return !(0, _vegaUtil.isObject)(v) ? v : v.signal ? scope.signalRef(v.signal) : (0, _vegaUtil.error)("Unsupported object: " + (0, _vegaUtil.stringValue)(v)); +function definition(spec) { + return { + marktype: spec.type, + name: spec.name || undefined, + role: spec.role || getRole(spec), + zindex: +spec.zindex || undefined, + aria: spec.aria, + description: spec.description + }; } -function parseArray(v, scope) { - return v.signal ? scope.signalRef(v.signal) : v.map((v)=>parseLiteral(v, scope)); +function interactive(spec, scope) { + return spec && spec.signal ? scope.signalRef(spec.signal) : spec === false ? false : true; } -function dataLookupError(name) { - (0, _vegaUtil.error)("Can not find data set: " + (0, _vegaUtil.stringValue)(name)); -} // -- SCALE DOMAIN ---- -function parseScaleDomain(domain, spec, scope) { - if (!domain) { - if (spec.domainMin != null || spec.domainMax != null) (0, _vegaUtil.error)("No scale domain defined for domainMin/domainMax to override."); - return; // default domain +/** + * Parse a data transform specification. + */ function parseTransform(spec, scope) { + const def = (0, _vegaDataflow.definition)(spec.type); + if (!def) (0, _vegaUtil.error)("Unrecognized transform type: " + (0, _vegaUtil.stringValue)(spec.type)); + const t = entry(def.type.toLowerCase(), null, parseParameters(def, spec, scope)); + if (spec.signal) scope.addSignal(spec.signal, scope.proxy(t)); + t.metadata = def.metadata || {}; + return t; +} +/** + * Parse all parameters of a data transform. + */ function parseParameters(def, spec, scope) { + const params = {}, n = def.params.length; + for(let i = 0; i < n; ++i){ + const pdef = def.params[i]; + params[pdef.name] = parseParameter(pdef, spec, scope); } - return domain.signal ? scope.signalRef(domain.signal) : ((0, _vegaUtil.isArray)(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope); + return params; } -function explicitDomain(domain, spec, scope) { - return domain.map((v)=>parseLiteral(v, scope)); +/** + * Parse a data transform parameter. + */ function parseParameter(def, spec, scope) { + const type = def.type, value = spec[def.name]; + if (type === "index") return parseIndexParameter(def, spec, scope); + else if (value === undefined) { + if (def.required) (0, _vegaUtil.error)("Missing required " + (0, _vegaUtil.stringValue)(spec.type) + " parameter: " + (0, _vegaUtil.stringValue)(def.name)); + return; + } else if (type === "param") return parseSubParameters(def, spec, scope); + else if (type === "projection") return scope.projectionRef(spec[def.name]); + return def.array && !isSignal(value) ? value.map((v)=>parameterValue(def, v, scope)) : parameterValue(def, value, scope); } -function singularDomain(domain, spec, scope) { - const data = scope.getData(domain.data); - if (!data) dataLookupError(domain.data); - return (0, _vegaScale.isDiscrete)(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : (0, _vegaScale.isQuantile)(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field); +/** + * Parse a single parameter value. + */ function parameterValue(def, value, scope) { + const type = def.type; + if (isSignal(value)) return isExpr(type) ? (0, _vegaUtil.error)("Expression references can not be signals.") : isField(type) ? scope.fieldRef(value) : isCompare(type) ? scope.compareRef(value) : scope.signalRef(value.signal); + else { + const expr = def.expr || isField(type); + return expr && outerExpr(value) ? scope.exprRef(value.expr, value.as) : expr && outerField(value) ? fieldRef$1(value.field, value.as) : isExpr(type) ? (0, _vegaFunctions.parseExpression)(value, scope) : isData(type) ? ref(scope.getData(value).values) : isField(type) ? fieldRef$1(value) : isCompare(type) ? scope.compareRef(value) : value; + } } -function multipleDomain(domain, spec, scope) { - const data = domain.data, fields = domain.fields.reduce((dom, d)=>{ - d = (0, _vegaUtil.isString)(d) ? { - data: data, - field: d - } : (0, _vegaUtil.isArray)(d) || d.signal ? fieldRef(d, scope) : d; - dom.push(d); - return dom; - }, []); - return ((0, _vegaScale.isDiscrete)(spec.type) ? ordinalMultipleDomain : (0, _vegaScale.isQuantile)(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields); +/** + * Parse parameter for accessing an index of another data set. + */ function parseIndexParameter(def, spec, scope) { + if (!(0, _vegaUtil.isString)(spec.from)) (0, _vegaUtil.error)('Lookup "from" parameter must be a string literal.'); + return scope.getData(spec.from).lookupRef(scope, spec.key); } -function fieldRef(data, scope) { - const name = "_:vega:_" + FIELD_REF_ID++, coll = Collect({}); - if ((0, _vegaUtil.isArray)(data)) coll.value = { - $ingest: data - }; - else if (data.signal) { - const code = "setdata(" + (0, _vegaUtil.stringValue)(name) + "," + data.signal + ")"; - coll.params.input = scope.signalRef(code); - } - scope.addDataPipeline(name, [ - coll, - Sieve({}) - ]); +/** + * Parse a parameter that contains one or more sub-parameter objects. + */ function parseSubParameters(def, spec, scope) { + const value = spec[def.name]; + if (def.array) { + if (!(0, _vegaUtil.isArray)(value)) // signals not allowed! + (0, _vegaUtil.error)("Expected an array of sub-parameters. Instead: " + (0, _vegaUtil.stringValue)(value)); + return value.map((v)=>parseSubParameter(def, v, scope)); + } else return parseSubParameter(def, value, scope); +} +/** + * Parse a sub-parameter object. + */ function parseSubParameter(def, value, scope) { + const n = def.params.length; + let pdef; // loop over defs to find matching key + for(let i = 0; i < n; ++i){ + pdef = def.params[i]; + for(const k in pdef.key)if (pdef.key[k] !== value[k]) { + pdef = null; + break; + } + if (pdef) break; + } // raise error if matching key not found + if (!pdef) (0, _vegaUtil.error)("Unsupported parameter: " + (0, _vegaUtil.stringValue)(value)); // parse params, create Params transform, return ref + const params = (0, _vegaUtil.extend)(parseParameters(pdef, value, scope), pdef.key); + return ref(scope.add(Params(params))); +} // -- Utilities ----- +const outerExpr = (_)=>_ && _.expr; +const outerField = (_)=>_ && _.field; +const isData = (_)=>_ === "data"; +const isExpr = (_)=>_ === "expr"; +const isField = (_)=>_ === "field"; +const isCompare = (_)=>_ === "compare"; +function parseData$1(from, group, scope) { + let facet, key, op, dataRef, parent; // if no source data, generate singleton datum + if (!from) dataRef = ref(scope.add(Collect(null, [ + {} + ]))); + else if (facet = from.facet) { + if (!group) (0, _vegaUtil.error)("Only group marks can be faceted."); // use pre-faceted source data, if available + if (facet.field != null) dataRef = parent = getDataRef(facet, scope); + else { + // generate facet aggregates if no direct data specification + if (!from.data) { + op = parseTransform((0, _vegaUtil.extend)({ + type: "aggregate", + groupby: (0, _vegaUtil.array)(facet.groupby) + }, facet.aggregate), scope); + op.params.key = scope.keyRef(facet.groupby); + op.params.pulse = getDataRef(facet, scope); + dataRef = parent = ref(scope.add(op)); + } else parent = ref(scope.getData(from.data).aggregate); + key = scope.keyRef(facet.groupby, true); + } + } // if not yet defined, get source data reference + if (!dataRef) dataRef = getDataRef(from, scope); return { - data: name, - field: "data" + key: key, + pulse: dataRef, + parent: parent }; } -function ordinalMultipleDomain(domain, scope, fields) { - const sort = parseSort(domain.sort, true); - let a, v; // get value counts for each domain field - const counts = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.countsRef(scope, f.field, sort); - }); // aggregate the results from each domain field - const p = { - groupby: keyFieldRef, - pulse: counts - }; - if (sort) { - a = sort.op || "count"; - v = sort.field ? aggrField(a, sort.field) : "count"; +function getDataRef(from, scope) { + return from.$ref ? from : from.data && from.data.$ref ? from.data : ref(scope.getData(from.data).output); +} +function DataScope(scope, input, output, values, aggr) { + this.scope = scope; // parent scope object + this.input = input; // first operator in pipeline (tuple input) + this.output = output; // last operator in pipeline (tuple output) + this.values = values; // operator for accessing tuples (but not tuple flow) + // last aggregate in transform pipeline + this.aggregate = aggr; // lookup table of field indices + this.index = {}; +} +DataScope.fromEntries = function(scope, entries) { + const n = entries.length, values = entries[n - 1], output = entries[n - 2]; + let input = entries[0], aggr = null, i = 1; + if (input && input.type === "load") input = entries[1]; + // add operator entries to this scope, wire up pulse chain + scope.add(entries[0]); + for(; i < n; ++i){ + entries[i].params.pulse = ref(entries[i - 1]); + scope.add(entries[i]); + if (entries[i].type === "aggregate") aggr = entries[i]; + } + return new DataScope(scope, input, output, values, aggr); +}; +function fieldKey(field) { + return (0, _vegaUtil.isString)(field) ? field : null; +} +function addSortField(scope, p, sort) { + const as = aggrField(sort.op, sort.field); + let s; + if (p.ops) for(let i = 0, n = p.as.length; i < n; ++i){ + if (p.as[i] === as) return; + } + else { p.ops = [ - MULTIDOMAIN_SORT_OPS[a] + "count" ]; p.fields = [ - scope.fieldRef(v) + null ]; p.as = [ - v + "count" ]; } - a = scope.add(Aggregate(p)); // collect aggregate output - const c = scope.add(Collect({ - pulse: ref(a) - })); // extract values for combined domain - v = scope.add(Values({ - field: keyFieldRef, - sort: scope.sortRef(sort), - pulse: ref(c) - })); - return ref(v); + if (sort.op) { + p.ops.push((s = sort.op.signal) ? scope.signalRef(s) : sort.op); + p.fields.push(scope.fieldRef(sort.field)); + p.as.push(as); + } } -function parseSort(sort, multidomain) { - if (sort) { - if (!sort.field && !sort.op) { - if ((0, _vegaUtil.isObject)(sort)) sort.field = "key"; - else sort = { - field: "key" - }; - } else if (!sort.field && sort.op !== "count") (0, _vegaUtil.error)("No field provided for sort aggregate op: " + sort.op); - else if (multidomain && sort.field) { - if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) (0, _vegaUtil.error)("Multiple domain scales can not be sorted using " + sort.op); +function cache(scope, ds, name, optype, field, counts, index) { + const cache = ds[name] || (ds[name] = {}), sort = sortKey(counts); + let k = fieldKey(field), v, op; + if (k != null) { + scope = ds.scope; + k = k + (sort ? "|" + sort : ""); + v = cache[k]; + } + if (!v) { + const params = counts ? { + field: keyFieldRef, + pulse: ds.countsRef(scope, field, counts) + } : { + field: scope.fieldRef(field), + pulse: ref(ds.output) + }; + if (sort) params.sort = scope.sortRef(counts); + op = scope.add(entry(optype, undefined, params)); + if (index) ds.index[field] = op; + v = ref(op); + if (k != null) cache[k] = v; + } + return v; +} +DataScope.prototype = { + countsRef (scope, field, sort) { + const ds = this, cache = ds.counts || (ds.counts = {}), k = fieldKey(field); + let v, a, p; + if (k != null) { + scope = ds.scope; + v = cache[k]; } + if (!v) { + p = { + groupby: scope.fieldRef(field, "key"), + pulse: ref(ds.output) + }; + if (sort && sort.field) addSortField(scope, p, sort); + a = scope.add(Aggregate(p)); + v = scope.add(Collect({ + pulse: ref(a) + })); + v = { + agg: a, + ref: ref(v) + }; + if (k != null) cache[k] = v; + } else if (sort && sort.field) addSortField(scope, v.agg.params, sort); + return v.ref; + }, + tuplesRef () { + return ref(this.values); + }, + extentRef (scope, field) { + return cache(scope, this, "extent", "extent", field, false); + }, + domainRef (scope, field) { + return cache(scope, this, "domain", "values", field, false); + }, + valuesRef (scope, field, sort) { + return cache(scope, this, "vals", "values", field, sort || true); + }, + lookupRef (scope, field) { + return cache(scope, this, "lookup", "tupleindex", field, false); + }, + indataRef (scope, field) { + return cache(scope, this, "indata", "tupleindex", field, true, true); } - return sort; +}; +function parseFacet(spec, scope, group) { + const facet = spec.from.facet, name = facet.name, data = getDataRef(facet, scope); + let op; + if (!facet.name) (0, _vegaUtil.error)("Facet must have a name: " + (0, _vegaUtil.stringValue)(facet)); + if (!facet.data) (0, _vegaUtil.error)("Facet must reference a data set: " + (0, _vegaUtil.stringValue)(facet)); + if (facet.field) op = scope.add(PreFacet({ + field: scope.fieldRef(facet.field), + pulse: data + })); + else if (facet.groupby) op = scope.add(Facet({ + key: scope.keyRef(facet.groupby), + group: ref(scope.proxy(group.parent)), + pulse: data + })); + else (0, _vegaUtil.error)("Facet must specify groupby or field: " + (0, _vegaUtil.stringValue)(facet)); + // initialize facet subscope + const subscope = scope.fork(), source = subscope.add(Collect()), values = subscope.add(Sieve({ + pulse: ref(source) + })); + subscope.addData(name, new DataScope(subscope, source, source, values)); + subscope.addSignal("parent", null); // parse faceted subflow + op.params.subflow = { + $subflow: subscope.parse(spec).toRuntime() + }; } -function quantileMultipleDomain(domain, scope, fields) { - // get value arrays for each domain field - const values = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.domainRef(scope, f.field); - }); // combine value arrays - return ref(scope.add(MultiValues({ - values: values - }))); +function parseSubflow(spec, scope, input) { + const op = scope.add(PreFacet({ + pulse: input.pulse + })), subscope = scope.fork(); + subscope.add(Sieve()); + subscope.addSignal("parent", null); // parse group mark subflow + op.params.subflow = { + $subflow: subscope.parse(spec).toRuntime() + }; } -function numericMultipleDomain(domain, scope, fields) { - // get extents for each domain field - const extents = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.extentRef(scope, f.field); - }); // combine extents - return ref(scope.add(MultiExtent({ - extents: extents - }))); -} // -- SCALE BINS ----- -function parseScaleBins(v, scope) { - return v.signal || (0, _vegaUtil.isArray)(v) ? parseArray(v, scope) : scope.objectProperty(v); -} // -- SCALE NICE ----- -function parseScaleNice(nice) { - return (0, _vegaUtil.isObject)(nice) ? { - interval: parseLiteral(nice.interval), - step: parseLiteral(nice.step) - } : parseLiteral(nice); -} // -- SCALE INTERPOLATION ----- -function parseScaleInterpolate(interpolate, params) { - params.interpolate = parseLiteral(interpolate.type || interpolate); - if (interpolate.gamma != null) params.interpolateGamma = parseLiteral(interpolate.gamma); -} // -- SCALE RANGE ----- -function parseScaleRange(spec, scope, params) { - const config = scope.config.range; - let range = spec.range; - if (range.signal) return scope.signalRef(range.signal); - else if ((0, _vegaUtil.isString)(range)) { - if (config && (0, _vegaUtil.hasOwnProperty)(config, range)) { - spec = (0, _vegaUtil.extend)({}, spec, { - range: config[range] - }); - return parseScaleRange(spec, scope, params); - } else if (range === "width") range = [ - 0, - { - signal: "width" - } - ]; - else if (range === "height") range = (0, _vegaScale.isDiscrete)(spec.type) ? [ - 0, - { - signal: "height" - } - ] : [ - { - signal: "height" - }, - 0 - ]; - else (0, _vegaUtil.error)("Unrecognized scale range value: " + (0, _vegaUtil.stringValue)(range)); - } else if (range.scheme) { - params.scheme = (0, _vegaUtil.isArray)(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope); - if (range.extent) params.schemeExtent = parseArray(range.extent, scope); - if (range.count) params.schemeCount = parseLiteral(range.count, scope); - return; - } else if (range.step) { - params.rangeStep = parseLiteral(range.step, scope); - return; - } else if ((0, _vegaScale.isDiscrete)(spec.type) && !(0, _vegaUtil.isArray)(range)) return parseScaleDomain(range, spec, scope); - else if (!(0, _vegaUtil.isArray)(range)) (0, _vegaUtil.error)("Unsupported range type: " + (0, _vegaUtil.stringValue)(range)); - return range.map((v)=>((0, _vegaUtil.isArray)(v) ? parseArray : parseLiteral)(v, scope)); +function parseTrigger(spec, scope, name) { + const remove = spec.remove, insert = spec.insert, toggle = spec.toggle, modify = spec.modify, values = spec.values, op = scope.add(operator()); + const update = "if(" + spec.trigger + ',modify("' + name + '",' + [ + insert, + remove, + toggle, + modify, + values + ].map((_)=>_ == null ? "null" : _).join(",") + "),0)"; + const expr = (0, _vegaFunctions.parseExpression)(update, scope); + op.update = expr.$expr; + op.params = expr.$params; } -function parseProjection(proj, scope) { - const config = scope.config.projection || {}, params = {}; - for(const name in proj){ - if (name === "name") continue; - params[name] = parseParameter$1(proj[name], name, scope); - } // apply projection defaults from config - for(const name1 in config)if (params[name1] == null) params[name1] = parseParameter$1(config[name1], name1, scope); - scope.addProjection(proj.name, params); +function parseMark(spec, scope) { + const role = getRole(spec), group = spec.type === GroupMark, facet = spec.from && spec.from.facet, overlap = spec.overlap; + let layout = spec.layout || role === ScopeRole || role === FrameRole, ops, op, store, enc, name, layoutRef, boundRef; + const nested = role === MarkRole || layout || facet; // resolve input data + const input = parseData$1(spec.from, group, scope); // data join to map tuples to visual items + op = scope.add(DataJoin({ + key: input.key || (spec.key ? fieldRef$1(spec.key) : undefined), + pulse: input.pulse, + clean: !group + })); + const joinRef = ref(op); // collect visual items + op = store = scope.add(Collect({ + pulse: joinRef + })); // connect visual items to scenegraph + op = scope.add(Mark({ + markdef: definition(spec), + interactive: interactive(spec.interactive, scope), + clip: clip(spec.clip, scope), + context: { + $context: true + }, + groups: scope.lookup(), + parent: scope.signals.parent ? scope.signalRef("parent") : null, + index: scope.markpath(), + pulse: ref(op) + })); + const markRef = ref(op); // add visual encoders + op = enc = scope.add(Encode(parseEncode(spec.encode, spec.type, role, spec.style, scope, { + mod: false, + pulse: markRef + }))); // monitor parent marks to propagate changes + op.params.parent = scope.encode(); // add post-encoding transforms, if defined + if (spec.transform) spec.transform.forEach((_)=>{ + const tx = parseTransform(_, scope), md = tx.metadata; + if (md.generates || md.changes) (0, _vegaUtil.error)("Mark transforms should not generate new data."); + if (!md.nomod) enc.params.mod = true; // update encode mod handling + tx.params.pulse = ref(op); + scope.add(op = tx); + }); + // if item sort specified, perform post-encoding + if (spec.sort) op = scope.add(SortItems({ + sort: scope.compareRef(spec.sort), + pulse: ref(op) + })); + const encodeRef = ref(op); // add view layout operator if needed + if (facet || layout) { + layout = scope.add(ViewLayout({ + layout: scope.objectProperty(spec.layout), + legends: scope.legends, + mark: markRef, + pulse: encodeRef + })); + layoutRef = ref(layout); + } // compute bounding boxes + const bound = scope.add(Bound({ + mark: markRef, + pulse: layoutRef || encodeRef + })); + boundRef = ref(bound); // if group mark, recurse to parse nested content + if (group) { + // juggle layout & bounds to ensure they run *after* any faceting transforms + if (nested) { + ops = scope.operators; + ops.pop(); + if (layout) ops.pop(); + } + scope.pushState(encodeRef, layoutRef || boundRef, joinRef); + facet ? parseFacet(spec, scope, input) // explicit facet + : nested ? parseSubflow(spec, scope, input) // standard mark group + : scope.parse(spec); // guide group, we can avoid nested scopes + scope.popState(); + if (nested) { + if (layout) ops.push(layout); + ops.push(bound); + } + } // if requested, add overlap removal transform + if (overlap) boundRef = parseOverlap(overlap, boundRef, scope); + // render / sieve items + const render = scope.add(Render({ + pulse: boundRef + })), sieve = scope.add(Sieve({ + pulse: ref(render) + }, undefined, scope.parent())); // if mark is named, make accessible as reactive geometry + // add trigger updates if defined + if (spec.name != null) { + name = spec.name; + scope.addData(name, new DataScope(scope, store, render, sieve)); + if (spec.on) spec.on.forEach((on)=>{ + if (on.insert || on.remove || on.toggle) (0, _vegaUtil.error)("Marks only support modify triggers."); + parseTrigger(on, scope, name); + }); + } } -function parseParameter$1(_, name, scope) { - return (0, _vegaUtil.isArray)(_) ? _.map((_)=>parseParameter$1(_, name, scope)) : !(0, _vegaUtil.isObject)(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === "fit" ? _ : (0, _vegaUtil.error)("Unsupported parameter object: " + (0, _vegaUtil.stringValue)(_)); +function parseOverlap(overlap, source, scope) { + const method = overlap.method, bound = overlap.bound, sep = overlap.separation; + const params = { + separation: isSignal(sep) ? scope.signalRef(sep.signal) : sep, + method: isSignal(method) ? scope.signalRef(method.signal) : method, + pulse: source + }; + if (overlap.order) params.sort = scope.compareRef({ + field: overlap.order + }); + if (bound) { + const tol = bound.tolerance; + params.boundTolerance = isSignal(tol) ? scope.signalRef(tol.signal) : +tol; + params.boundScale = scope.scaleRef(bound.scale); + params.boundOrient = bound.orient; + } + return ref(scope.add(Overlap(params))); } -const Top = "top"; -const Left = "left"; -const Right = "right"; -const Bottom = "bottom"; -const Center = "center"; -const Vertical = "vertical"; -const Start = "start"; -const Middle = "middle"; -const End = "end"; -const Index = "index"; -const Label = "label"; -const Offset = "offset"; -const Perc = "perc"; -const Perc2 = "perc2"; -const Value = "value"; -const GuideLabelStyle = "guide-label"; -const GuideTitleStyle = "guide-title"; -const GroupTitleStyle = "group-title"; -const GroupSubtitleStyle = "group-subtitle"; -const Symbols = "symbol"; -const Gradient = "gradient"; -const Discrete = "discrete"; -const Size = "size"; -const Shape = "shape"; -const Fill = "fill"; -const Stroke = "stroke"; -const StrokeWidth = "strokeWidth"; -const StrokeDash = "strokeDash"; -const Opacity = "opacity"; // Encoding channels supported by legends -// In priority order of 'canonical' scale -const LegendScales = [ - Size, - Shape, - Fill, - Stroke, - StrokeWidth, - StrokeDash, - Opacity -]; -const Skip = { - name: 1, - style: 1, - interactive: 1 -}; -const zero = { - value: 0 -}; -const one = { - value: 1 -}; -const GroupMark = "group"; -const RectMark = "rect"; -const RuleMark = "rule"; -const SymbolMark = "symbol"; -const TextMark = "text"; -function guideGroup(mark) { - mark.type = GroupMark; - mark.interactive = mark.interactive || false; - return mark; +function parseLegend(spec, scope) { + const config = scope.config.legend, encode = spec.encode || {}, _ = lookup(spec, config), legendEncode = encode.legend || {}, name = legendEncode.name || undefined, interactive = legendEncode.interactive, style = legendEncode.style, scales = {}; + let scale = 0, entryLayout, params, children; // resolve scales and 'canonical' scale name + LegendScales.forEach((s)=>spec[s] ? (scales[s] = spec[s], scale = scale || spec[s]) : 0); + if (!scale) (0, _vegaUtil.error)("Missing valid scale for legend."); // resolve legend type (symbol, gradient, or discrete gradient) + const type = legendType(spec, scope.scaleType(scale)); // single-element data source for legend group + const datum = { + title: spec.title != null, + scales: scales, + type: type, + vgrad: type !== "symbol" && _.isVertical() + }; + const dataRef = ref(scope.add(Collect(null, [ + datum + ]))); // encoding properties for legend entry sub-group + const entryEncode = { + enter: { + x: { + value: 0 + }, + y: { + value: 0 + } + } + }; // data source for legend values + const entryRef = ref(scope.add(LegendEntries(params = { + type: type, + scale: scope.scaleRef(scale), + count: scope.objectProperty(_("tickCount")), + limit: scope.property(_("symbolLimit")), + values: scope.objectProperty(spec.values), + minstep: scope.property(spec.tickMinStep), + formatType: scope.property(spec.formatType), + formatSpecifier: scope.property(spec.format) + }))); // continuous gradient legend + if (type === Gradient) { + children = [ + legendGradient(spec, scale, config, encode.gradient), + legendGradientLabels(spec, config, encode.labels, entryRef) + ]; // adjust default tick count based on the gradient length + params.count = params.count || scope.signalRef(`max(2,2*floor((${deref(_.gradientLength())})/100))`); + } else if (type === Discrete) children = [ + legendGradientDiscrete(spec, scale, config, encode.gradient, entryRef), + legendGradientLabels(spec, config, encode.labels, entryRef) + ]; + else { + // determine legend symbol group layout + entryLayout = legendSymbolLayout(spec, config); + children = [ + legendSymbolGroups(spec, config, encode, entryRef, deref(entryLayout.columns)) + ]; // pass symbol size information to legend entry generator + params.size = sizeExpression(spec, scope, children[0].marks); + } // generate legend marks + children = [ + guideGroup({ + role: LegendEntryRole, + from: dataRef, + encode: entryEncode, + marks: children, + layout: entryLayout, + interactive + }) + ]; // include legend title if defined + if (datum.title) children.push(legendTitle(spec, config, encode.title, dataRef)); + // parse legend specification + return parseMark(guideGroup({ + role: LegendRole, + from: dataRef, + encode: extendEncode(buildLegendEncode(_, spec, config), legendEncode, Skip), + marks: children, + aria: _("aria"), + description: _("description"), + zindex: _("zindex"), + name, + interactive, + style + }), scope); } -function lookup(spec, config) { - const _ = (name, dflt)=>value(spec[name], value(config[name], dflt)); - _.isVertical = (s)=>Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection)); - _.gradientLength = ()=>value(spec.gradientLength, config.gradientLength || config.gradientWidth); - _.gradientThickness = ()=>value(spec.gradientThickness, config.gradientThickness || config.gradientHeight); - _.entryColumns = ()=>value(spec.columns, value(config.columns, +_.isVertical(true))); - return _; +function legendType(spec, scaleType) { + let type = spec.type || Symbols; + if (!spec.type && scaleCount(spec) === 1 && (spec.fill || spec.stroke)) type = (0, _vegaScale.isContinuous)(scaleType) ? Gradient : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Symbols; + return type !== Gradient ? type : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Gradient; } -function getEncoding(name, encode) { - const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]); - return v && v.signal ? v : v ? v.value : null; +function scaleCount(spec) { + return LegendScales.reduce((count, type)=>count + (spec[type] ? 1 : 0), 0); } -function getStyle(name, scope, style) { - const s = scope.config.style[style]; - return s && s[name]; +function buildLegendEncode(_, spec, config) { + const encode = { + enter: {}, + update: {} + }; + addEncoders(encode, { + orient: _("orient"), + offset: _("offset"), + padding: _("padding"), + titlePadding: _("titlePadding"), + cornerRadius: _("cornerRadius"), + fill: _("fillColor"), + stroke: _("strokeColor"), + strokeWidth: config.strokeWidth, + strokeDash: config.strokeDash, + x: _("legendX"), + y: _("legendY"), + // accessibility support + format: spec.format, + formatType: spec.formatType + }); + return encode; } -function anchorExpr(s, e, m) { - return `item.anchor === '${Start}' ? ${s} : item.anchor === '${End}' ? ${e} : ${m}`; +function sizeExpression(spec, scope, marks) { + const size = deref(getChannel("size", spec, marks)), strokeWidth = deref(getChannel("strokeWidth", spec, marks)), fontSize = deref(getFontSize(marks[1].encode, scope, GuideLabelStyle)); + return (0, _vegaFunctions.parseExpression)(`max(ceil(sqrt(${size})+${strokeWidth}),${fontSize})`, scope); } -const alignExpr$1 = anchorExpr((0, _vegaUtil.stringValue)(Left), (0, _vegaUtil.stringValue)(Right), (0, _vegaUtil.stringValue)(Center)); -function tickBand(_) { - const v = _("tickBand"); - let offset = _("tickOffset"), band, extra; - if (!v) { - // if no tick band entry, fall back on other properties - band = _("bandPosition"); - extra = _("tickExtra"); - } else if (v.signal) { - // if signal, augment code to interpret values - band = { - signal: `(${v.signal}) === 'extent' ? 1 : 0.5` - }; - extra = { - signal: `(${v.signal}) === 'extent'` - }; - if (!(0, _vegaUtil.isObject)(offset)) offset = { - signal: `(${v.signal}) === 'extent' ? 0 : ${offset}` - }; - } else if (v === "extent") { - // if constant, simply set values - band = 1; - extra = true; - offset = 0; - } else { - band = 0.5; - extra = false; - } - return { - extra, - band, - offset - }; +function getChannel(name, spec, marks) { + return spec[name] ? `scale("${spec[name]}",datum)` : getEncoding(name, marks[0].encode); } -function extendOffset(value, offset) { - return !offset ? value : !value ? offset : !(0, _vegaUtil.isObject)(value) ? { - value, - offset - } : Object.assign({}, value, { - offset: extendOffset(value.offset, offset) - }); +function getFontSize(encode, scope, style) { + return getEncoding("fontSize", encode) || getStyle("fontSize", scope, style); } -function guideMark(mark, extras) { - if (extras) { - mark.name = extras.name; - mark.style = extras.style || mark.style; - mark.interactive = !!extras.interactive; - mark.encode = extendEncode(mark.encode, extras, Skip); - } else mark.interactive = false; - return mark; +const angleExpr = `item.orient==="${Left}"?-90:item.orient==="${Right}"?90:0`; +function parseTitle(spec, scope) { + spec = (0, _vegaUtil.isString)(spec) ? { + text: spec + } : spec; + const _ = lookup(spec, scope.config.title), encode = spec.encode || {}, userEncode = encode.group || {}, name = userEncode.name || undefined, interactive = userEncode.interactive, style = userEncode.style, children = []; // single-element data source for group title + const datum = {}, dataRef = ref(scope.add(Collect(null, [ + datum + ]))); // include title text + children.push(buildTitle(spec, _, titleEncode(spec), dataRef)); // include subtitle text + if (spec.subtitle) children.push(buildSubTitle(spec, _, encode.subtitle, dataRef)); + // parse title specification + return parseMark(guideGroup({ + role: TitleRole, + from: dataRef, + encode: groupEncode(_, userEncode), + marks: children, + aria: _("aria"), + description: _("description"), + zindex: _("zindex"), + name, + interactive, + style + }), scope); +} // provide backwards-compatibility for title custom encode; +// the top-level encode block has been *deprecated*. +function titleEncode(spec) { + const encode = spec.encode; + return encode && encode.title || (0, _vegaUtil.extend)({ + name: spec.name, + interactive: spec.interactive, + style: spec.style + }, encode); } -function legendGradient(spec, scale, config, userEncode) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); - let enter, start, stop, width, height; - if (vertical) { - start = [ - 0, - 1 - ]; - stop = [ - 0, - 0 - ]; - width = thickness; - height = length; - } else { - start = [ - 0, - 0 - ]; - stop = [ - 1, - 0 - ]; - width = length; - height = thickness; - } +function groupEncode(_, userEncode) { const encode = { - enter: enter = { - opacity: zero, - x: zero, - y: zero, - width: encoder(width), - height: encoder(height) + enter: {}, + update: {} + }; + addEncoders(encode, { + orient: _("orient"), + anchor: _("anchor"), + align: { + signal: alignExpr$1 }, - update: (0, _vegaUtil.extend)({}, enter, { - opacity: one, - fill: { - gradient: scale, - start: start, - stop: stop + angle: { + signal: angleExpr + }, + limit: _("limit"), + frame: _("frame"), + offset: _("offset") || 0, + padding: _("subtitlePadding") + }); + return extendEncode(encode, userEncode, Skip); +} +function buildTitle(spec, _, userEncode, dataRef) { + const zero = { + value: 0 + }, text = spec.text, encode = { + enter: { + opacity: zero + }, + update: { + opacity: { + value: 1 } - }), + }, exit: { opacity: zero } }; addEncoders(encode, { - stroke: _("gradientStrokeColor"), - strokeWidth: _("gradientStrokeWidth") - }, { - // update - opacity: _("gradientOpacity") + text: text, + align: { + signal: "item.mark.group.align" + }, + angle: { + signal: "item.mark.group.angle" + }, + limit: { + signal: "item.mark.group.limit" + }, + baseline: "top", + dx: _("dx"), + dy: _("dy"), + fill: _("color"), + font: _("font"), + fontSize: _("fontSize"), + fontStyle: _("fontStyle"), + fontWeight: _("fontWeight"), + lineHeight: _("lineHeight") + }, { + // update + align: _("align"), + angle: _("angle"), + baseline: _("baseline") }); return guideMark({ - type: RectMark, - role: LegendGradientRole, + type: TextMark, + role: TitleTextRole, + style: GroupTitleStyle, + from: dataRef, encode }, userEncode); } -function legendGradientDiscrete(spec, scale, config, userEncode, dataRef) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); - let u, v, uu, vv, adjust = ""; - vertical ? (u = "y", uu = "y2", v = "x", vv = "width", adjust = "1-") : (u = "x", uu = "x2", v = "y", vv = "height"); - const enter = { - opacity: zero, - fill: { - scale: scale, - field: Value - } - }; - enter[u] = { - signal: adjust + "datum." + Perc, - mult: length - }; - enter[v] = zero; - enter[uu] = { - signal: adjust + "datum." + Perc2, - mult: length - }; - enter[vv] = encoder(thickness); - const encode = { - enter: enter, - update: (0, _vegaUtil.extend)({}, enter, { - opacity: one - }), +function buildSubTitle(spec, _, userEncode, dataRef) { + const zero = { + value: 0 + }, text = spec.subtitle, encode = { + enter: { + opacity: zero + }, + update: { + opacity: { + value: 1 + } + }, exit: { opacity: zero } }; addEncoders(encode, { - stroke: _("gradientStrokeColor"), - strokeWidth: _("gradientStrokeWidth") + text: text, + align: { + signal: "item.mark.group.align" + }, + angle: { + signal: "item.mark.group.angle" + }, + limit: { + signal: "item.mark.group.limit" + }, + baseline: "top", + dx: _("dx"), + dy: _("dy"), + fill: _("subtitleColor"), + font: _("subtitleFont"), + fontSize: _("subtitleFontSize"), + fontStyle: _("subtitleFontStyle"), + fontWeight: _("subtitleFontWeight"), + lineHeight: _("subtitleLineHeight") }, { // update - opacity: _("gradientOpacity") + align: _("align"), + angle: _("angle"), + baseline: _("baseline") }); return guideMark({ - type: RectMark, - role: LegendBandRole, - key: Value, + type: TextMark, + role: TitleSubtitleRole, + style: GroupSubtitleStyle, from: dataRef, encode }, userEncode); } -const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; -function legendGradientLabels(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); - let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; +function parseData(data, scope) { + const transforms = []; + if (data.transform) data.transform.forEach((tx)=>{ + transforms.push(parseTransform(tx, scope)); + }); + if (data.on) data.on.forEach((on)=>{ + parseTrigger(on, scope, data.name); + }); + scope.addDataPipeline(data.name, analyze(data, scope, transforms)); +} +/** + * Analyze a data pipeline, add needed operators. + */ function analyze(data, scope, ops) { + const output = []; + let source = null, modify = false, generate = false, upstream, i, n, t, m; + if (data.values) { + // hard-wired input data set + if (isSignal(data.values) || hasSignal(data.format)) { + // if either values is signal or format has signal, use dynamic loader + output.push(load(scope, data)); + output.push(source = collect()); + } else // otherwise, ingest upon dataflow init + output.push(source = collect({ + $ingest: data.values, + $format: data.format + })); + } else if (data.url) { + // load data from external source + if (hasSignal(data.url) || hasSignal(data.format)) { + // if either url or format has signal, use dynamic loader + output.push(load(scope, data)); + output.push(source = collect()); + } else // otherwise, request load upon dataflow init + output.push(source = collect({ + $request: data.url, + $format: data.format + })); + } else if (data.source) { + // derives from one or more other data sets + source = upstream = (0, _vegaUtil.array)(data.source).map((d)=>ref(scope.getData(d).output)); + output.push(null); // populate later + } // scan data transforms, add collectors as needed + for(i = 0, n = ops.length; i < n; ++i){ + t = ops[i]; + m = t.metadata; + if (!source && !m.source) output.push(source = collect()); + output.push(t); + if (m.generates) generate = true; + if (m.modifies && !generate) modify = true; + if (m.source) source = t; + else if (m.changes) source = null; + } + if (upstream) { + n = upstream.length - 1; + output[0] = Relay({ + derive: modify, + pulse: n ? upstream : upstream[0] + }); + if (modify || n) // collect derived and multi-pulse tuples + output.splice(1, 0, collect()); + } + if (!source) output.push(collect()); + output.push(Sieve({})); + return output; +} +function collect(values) { + const s = Collect({}, values); + s.metadata = { + source: true + }; + return s; +} +function load(scope, data) { + return Load({ + url: data.url ? scope.property(data.url) : undefined, + async: data.async ? scope.property(data.async) : undefined, + values: data.values ? scope.property(data.values) : undefined, + format: scope.objectProperty(data.format) + }); +} +const isX = (orient)=>orient === Bottom || orient === Top; // get sign coefficient based on axis orient +const getSign = (orient, a, b)=>isSignal(orient) ? ifLeftTopExpr(orient.signal, a, b) : orient === Left || orient === Top ? a : b; // condition on axis x-direction +const ifX = (orient, a, b)=>isSignal(orient) ? ifXEnc(orient.signal, a, b) : isX(orient) ? a : b; // condition on axis y-direction +const ifY = (orient, a, b)=>isSignal(orient) ? ifYEnc(orient.signal, a, b) : isX(orient) ? b : a; +const ifTop = (orient, a, b)=>isSignal(orient) ? ifTopExpr(orient.signal, a, b) : orient === Top ? { + value: a + } : { + value: b + }; +const ifRight = (orient, a, b)=>isSignal(orient) ? ifRightExpr(orient.signal, a, b) : orient === Right ? { + value: a + } : { + value: b + }; +const ifXEnc = ($orient, a, b)=>ifEnc(`${$orient} === '${Top}' || ${$orient} === '${Bottom}'`, a, b); +const ifYEnc = ($orient, a, b)=>ifEnc(`${$orient} !== '${Top}' && ${$orient} !== '${Bottom}'`, a, b); +const ifLeftTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Left}' || ${$orient} === '${Top}'`, a, b); +const ifTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Top}'`, a, b); +const ifRightExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Right}'`, a, b); +const ifEnc = (test, a, b)=>{ + // ensure inputs are encoder objects (or null) + a = a != null ? encoder(a) : a; + b = b != null ? encoder(b) : b; + if (isSimple(a) && isSimple(b)) { + // if possible generate simple signal expression + a = a ? a.signal || (0, _vegaUtil.stringValue)(a.value) : null; + b = b ? b.signal || (0, _vegaUtil.stringValue)(b.value) : null; + return { + signal: `${test} ? (${a}) : (${b})` + }; + } else // otherwise generate rule set + return [ + (0, _vegaUtil.extend)({ + test + }, a) + ].concat(b || []); +}; +const isSimple = (enc)=>enc == null || Object.keys(enc).length === 1; +const ifExpr = (test, a, b)=>({ + signal: `${test} ? (${toExpr(a)}) : (${toExpr(b)})` + }); +const ifOrient = ($orient, t, b, l, r)=>({ + signal: (l != null ? `${$orient} === '${Left}' ? (${toExpr(l)}) : ` : "") + (b != null ? `${$orient} === '${Bottom}' ? (${toExpr(b)}) : ` : "") + (r != null ? `${$orient} === '${Right}' ? (${toExpr(r)}) : ` : "") + (t != null ? `${$orient} === '${Top}' ? (${toExpr(t)}) : ` : "") + "(null)" + }); +const toExpr = (v)=>isSignal(v) ? v.signal : v == null ? null : (0, _vegaUtil.stringValue)(v); +const mult = (sign, value)=>value === 0 ? 0 : isSignal(sign) ? { + signal: `(${sign.signal}) * ${value}` + } : { + value: sign * value + }; +const patch = (value, base)=>{ + const s = value.signal; + return s && s.endsWith("(null)") ? { + signal: s.slice(0, -6) + base.signal + } : value; +}; +function fallback(prop, config, axisConfig, style) { + let styleProp; + if (config && (0, _vegaUtil.hasOwnProperty)(config, prop)) return config[prop]; + else if ((0, _vegaUtil.hasOwnProperty)(axisConfig, prop)) return axisConfig[prop]; + else if (prop.startsWith("title")) { + switch(prop){ + case "titleColor": + styleProp = "fill"; + break; + case "titleFont": + case "titleFontSize": + case "titleFontWeight": + styleProp = prop[5].toLowerCase() + prop.slice(6); + } + return style[GuideTitleStyle][styleProp]; + } else if (prop.startsWith("label")) { + switch(prop){ + case "labelColor": + styleProp = "fill"; + break; + case "labelFont": + case "labelFontSize": + styleProp = prop[5].toLowerCase() + prop.slice(6); + } + return style[GuideLabelStyle][styleProp]; + } + return null; +} +function keys(objects) { + const map = {}; + for (const obj of objects){ + if (!obj) continue; + for(const key in obj)map[key] = 1; + } + return Object.keys(map); +} +function axisConfig(spec, scope) { + var config = scope.config, style = config.style, axis = config.axis, band = scope.scaleType(spec.scale) === "band" && config.axisBand, orient = spec.orient, xy, or, key; + if (isSignal(orient)) { + const xyKeys = keys([ + config.axisX, + config.axisY + ]), orientKeys = keys([ + config.axisTop, + config.axisBottom, + config.axisLeft, + config.axisRight + ]); + xy = {}; + for (key of xyKeys)xy[key] = ifX(orient, fallback(key, config.axisX, axis, style), fallback(key, config.axisY, axis, style)); + or = {}; + for (key of orientKeys)or[key] = ifOrient(orient.signal, fallback(key, config.axisTop, axis, style), fallback(key, config.axisBottom, axis, style), fallback(key, config.axisLeft, axis, style), fallback(key, config.axisRight, axis, style)); + } else { + xy = orient === Top || orient === Bottom ? config.axisX : config.axisY; + or = config["axis" + orient[0].toUpperCase() + orient.slice(1)]; + } + const result = xy || or || band ? (0, _vegaUtil.extend)({}, axis, xy, or, band) : axis; + return result; +} +function axisDomain(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), orient = spec.orient; + let enter, update; const encode = { enter: enter = { opacity: zero }, update: update = { - opacity: one, - text: { - field: Label - } + opacity: one }, exit: { opacity: zero } }; addEncoders(encode, { - fill: _("labelColor"), - fillOpacity: _("labelOpacity"), - font: _("labelFont"), - fontSize: _("labelFontSize"), - fontStyle: _("labelFontStyle"), - fontWeight: _("labelFontWeight"), - limit: value(spec.labelLimit, config.gradientLabelLimit) + stroke: _("domainColor"), + strokeCap: _("domainCap"), + strokeDash: _("domainDash"), + strokeDashOffset: _("domainDashOffset"), + strokeWidth: _("domainWidth"), + strokeOpacity: _("domainOpacity") }); - if (vertical) { - enter.align = { - value: "left" - }; - enter.baseline = update.baseline = { - signal: baselineExpr - }; - u = "y"; - v = "x"; - adjust = "1-"; - } else { - enter.align = update.align = { - signal: alignExpr - }; - enter.baseline = { - value: "top" - }; - u = "x"; - v = "y"; - } - enter[u] = update[u] = { - signal: adjust + "datum." + Perc, - mult: length - }; - enter[v] = update[v] = thickness; - thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; - overlap = overlap ? { - separation: _("labelSeparation"), - method: overlap, - order: "datum." + Index - } : undefined; // type, role, style, key, dataRef, encode, extras + const pos0 = position(spec, 0); + const pos1 = position(spec, 1); + enter.x = update.x = ifX(orient, pos0, zero); + enter.x2 = update.x2 = ifX(orient, pos1); + enter.y = update.y = ifY(orient, pos0, zero); + enter.y2 = update.y2 = ifY(orient, pos1); return guideMark({ - type: TextMark, - role: LegendLabelRole, - style: GuideLabelStyle, - key: Value, + type: RuleMark, + role: AxisDomainRole, from: dataRef, - encode, - overlap + encode }, userEncode); } -function legendSymbolGroups(spec, config, userEncode, dataRef, columns) { - const _ = lookup(spec, config), entries = userEncode.entries, interactive = !!(entries && entries.interactive), name = entries ? entries.name : undefined, height = _("clipHeight"), symbolOffset = _("symbolOffset"), valueRef = { - data: "value" - }, xSignal = `(${columns}) ? datum.${Offset} : datum.${Size}`, yEncode = height ? encoder(height) : { - field: Size - }, index = `datum.${Index}`, ncols = `max(1, ${columns})`; - let encode, enter, update, nrows, sort; - yEncode.mult = 0.5; // -- LEGEND SYMBOLS -- - encode = { +function position(spec, pos) { + return { + scale: spec.scale, + range: pos + }; +} +function axisGrid(spec, config, userEncode, dataRef, band) { + const _ = lookup(spec, config), orient = spec.orient, vscale = spec.gridScale, sign = getSign(orient, 1, -1), offset = offsetValue(spec.offset, sign); + let enter, exit, update; + const encode = { enter: enter = { - opacity: zero, - x: { - signal: xSignal, - mult: 0.5, - offset: symbolOffset - }, - y: yEncode + opacity: zero }, update: update = { - opacity: one, - x: enter.x, - y: enter.y + opacity: one }, - exit: { + exit: exit = { opacity: zero } }; - let baseFill = null, baseStroke = null; - if (!spec.fill) { - baseFill = config.symbolBaseFillColor; - baseStroke = config.symbolBaseStrokeColor; - } addEncoders(encode, { - fill: _("symbolFillColor", baseFill), - shape: _("symbolType"), - size: _("symbolSize"), - stroke: _("symbolStrokeColor", baseStroke), - strokeDash: _("symbolDash"), - strokeDashOffset: _("symbolDashOffset"), - strokeWidth: _("symbolStrokeWidth") + stroke: _("gridColor"), + strokeCap: _("gridCap"), + strokeDash: _("gridDash"), + strokeDashOffset: _("gridDashOffset"), + strokeOpacity: _("gridOpacity"), + strokeWidth: _("gridWidth") + }); + const tickPos = { + scale: spec.scale, + field: Value, + band: band.band, + extra: band.extra, + offset: band.offset, + round: _("tickRound") + }; + const sz = ifX(orient, { + signal: "height" }, { - // update - opacity: _("symbolOpacity") + signal: "width" }); - LegendScales.forEach((scale)=>{ - if (spec[scale]) update[scale] = enter[scale] = { - scale: spec[scale], - field: Value - }; + const gridStart = vscale ? { + scale: vscale, + range: 0, + mult: sign, + offset: offset + } : { + value: 0, + offset: offset + }; + const gridEnd = vscale ? { + scale: vscale, + range: 1, + mult: sign, + offset: offset + } : (0, _vegaUtil.extend)(sz, { + mult: sign, + offset: offset }); - const symbols = guideMark({ - type: SymbolMark, - role: LegendSymbolRole, + enter.x = update.x = ifX(orient, tickPos, gridStart); + enter.y = update.y = ifY(orient, tickPos, gridStart); + enter.x2 = update.x2 = ifY(orient, gridEnd); + enter.y2 = update.y2 = ifX(orient, gridEnd); + exit.x = ifX(orient, tickPos); + exit.y = ifY(orient, tickPos); + return guideMark({ + type: RuleMark, + role: AxisGridRole, key: Value, - from: valueRef, - clip: height ? true : undefined, + from: dataRef, encode - }, userEncode.symbols); // -- LEGEND LABELS -- - const labelOffset = encoder(symbolOffset); - labelOffset.offset = _("labelOffset"); - encode = { + }, userEncode); +} +function offsetValue(offset, sign) { + if (sign === 1) ; + else if (!(0, _vegaUtil.isObject)(offset)) offset = isSignal(sign) ? { + signal: `(${sign.signal}) * (${offset || 0})` + } : sign * (offset || 0); + else { + let entry = offset = (0, _vegaUtil.extend)({}, offset); + while(entry.mult != null)if (!(0, _vegaUtil.isObject)(entry.mult)) { + entry.mult = isSignal(sign) // no offset if sign === 1 + ? { + signal: `(${entry.mult}) * (${sign.signal})` + } : entry.mult * sign; + return offset; + } else entry = entry.mult = (0, _vegaUtil.extend)({}, entry.mult); + entry.mult = sign; + } + return offset; +} +function axisTicks(spec, config, userEncode, dataRef, size, band) { + const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); + let enter, exit, update; + const encode = { enter: enter = { - opacity: zero, - x: { - signal: xSignal, - offset: labelOffset - }, - y: yEncode + opacity: zero }, update: update = { - opacity: one, - text: { - field: Label - }, - x: enter.x, - y: enter.y + opacity: one }, - exit: { + exit: exit = { opacity: zero } }; addEncoders(encode, { - align: _("labelAlign"), - baseline: _("labelBaseline"), + stroke: _("tickColor"), + strokeCap: _("tickCap"), + strokeDash: _("tickDash"), + strokeDashOffset: _("tickDashOffset"), + strokeOpacity: _("tickOpacity"), + strokeWidth: _("tickWidth") + }); + const tickSize = encoder(size); + tickSize.mult = sign; + const tickPos = { + scale: spec.scale, + field: Value, + band: band.band, + extra: band.extra, + offset: band.offset, + round: _("tickRound") + }; + update.y = enter.y = ifX(orient, zero, tickPos); + update.y2 = enter.y2 = ifX(orient, tickSize); + exit.x = ifX(orient, tickPos); + update.x = enter.x = ifY(orient, zero, tickPos); + update.x2 = enter.x2 = ifY(orient, tickSize); + exit.y = ifY(orient, tickPos); + return guideMark({ + type: RuleMark, + role: AxisTickRole, + key: Value, + from: dataRef, + encode + }, userEncode); +} +function flushExpr(scale, threshold, a, b, c) { + return { + signal: 'flush(range("' + scale + '"), ' + 'scale("' + scale + '", datum.value), ' + threshold + "," + a + "," + b + "," + c + ")" + }; +} +function axisLabels(spec, config, userEncode, dataRef, size, band) { + const _ = lookup(spec, config), orient = spec.orient, scale = spec.scale, sign = getSign(orient, -1, 1), flush = deref(_("labelFlush")), flushOffset = deref(_("labelFlushOffset")), labelAlign = _("labelAlign"), labelBaseline = _("labelBaseline"); + let flushOn = flush === 0 || !!flush, update; + const tickSize = encoder(size); + tickSize.mult = sign; + tickSize.offset = encoder(_("labelPadding") || 0); + tickSize.offset.mult = sign; + const tickPos = { + scale: scale, + field: Value, + band: 0.5, + offset: extendOffset(band.offset, _("labelOffset")) + }; + const align = ifX(orient, flushOn ? flushExpr(scale, flush, '"left"', '"right"', '"center"') : { + value: "center" + }, ifRight(orient, "left", "right")); + const baseline = ifX(orient, ifTop(orient, "bottom", "top"), flushOn ? flushExpr(scale, flush, '"top"', '"bottom"', '"middle"') : { + value: "middle" + }); + const offsetExpr = flushExpr(scale, flush, `-(${flushOffset})`, flushOffset, 0); + flushOn = flushOn && flushOffset; + const enter = { + opacity: zero, + x: ifX(orient, tickPos, tickSize), + y: ifY(orient, tickPos, tickSize) + }; + const encode = { + enter: enter, + update: update = { + opacity: one, + text: { + field: Label + }, + x: enter.x, + y: enter.y, + align, + baseline + }, + exit: { + opacity: zero, + x: enter.x, + y: enter.y + } + }; + addEncoders(encode, { + dx: !labelAlign && flushOn ? ifX(orient, offsetExpr) : null, + dy: !labelBaseline && flushOn ? ifY(orient, offsetExpr) : null + }); + addEncoders(encode, { + angle: _("labelAngle"), fill: _("labelColor"), fillOpacity: _("labelOpacity"), font: _("labelFont"), fontSize: _("labelFontSize"), - fontStyle: _("labelFontStyle"), fontWeight: _("labelFontWeight"), - limit: _("labelLimit") + fontStyle: _("labelFontStyle"), + limit: _("labelLimit"), + lineHeight: _("labelLineHeight") + }, { + align: labelAlign, + baseline: labelBaseline }); - const labels = guideMark({ + const bound = _("labelBound"); + let overlap = _("labelOverlap"); // if overlap method or bound defined, request label overlap removal + overlap = overlap || bound ? { + separation: _("labelSeparation"), + method: overlap, + order: "datum.index", + bound: bound ? { + scale, + orient, + tolerance: bound + } : null + } : undefined; + if (update.align !== align) update.align = patch(update.align, align); + if (update.baseline !== baseline) update.baseline = patch(update.baseline, baseline); + return guideMark({ type: TextMark, - role: LegendLabelRole, + role: AxisLabelRole, style: GuideLabelStyle, key: Value, - from: valueRef, - encode - }, userEncode.labels); // -- LEGEND ENTRY GROUPS -- - encode = { - enter: { - noBound: { - value: !height - }, - // ignore width/height in bounds calc - width: zero, - height: height ? encoder(height) : zero, - opacity: zero - }, - exit: { - opacity: zero - }, - update: update = { - opacity: one, - row: { - signal: null - }, - column: { - signal: null - } - } - }; // annotate and sort groups to ensure correct ordering - if (_.isVertical(true)) { - nrows = `ceil(item.mark.items.length / ${ncols})`; - update.row.signal = `${index}%${nrows}`; - update.column.signal = `floor(${index} / ${nrows})`; - sort = { - field: [ - "row", - index - ] - }; - } else { - update.row.signal = `floor(${index} / ${ncols})`; - update.column.signal = `${index} % ${ncols}`; - sort = { - field: index - }; - } // handle zero column case (implies infinite columns) - update.column.signal = `(${columns})?${update.column.signal}:${index}`; // facet legend entries into sub-groups - dataRef = { - facet: { - data: dataRef, - name: "value", - groupby: Index - } - }; - return guideGroup({ - role: ScopeRole, from: dataRef, - encode: extendEncode(encode, entries, Skip), - marks: [ - symbols, - labels - ], - name, - interactive, - sort - }); -} -function legendSymbolLayout(spec, config) { - const _ = lookup(spec, config); // layout parameters for legend entries - return { - align: _("gridAlign"), - columns: _.entryColumns(), - center: { - row: true, - column: false - }, - padding: { - row: _("rowPadding"), - column: _("columnPadding") - } - }; + encode, + overlap + }, userEncode); } -const isL = 'item.orient === "left"', isR = 'item.orient === "right"', isLR = `(${isL} || ${isR})`, isVG = `datum.vgrad && ${isLR}`, baseline = anchorExpr('"top"', '"bottom"', '"middle"'), alignFlip = anchorExpr('"right"', '"left"', '"center"'), exprAlign = `datum.vgrad && ${isR} ? (${alignFlip}) : (${isLR} && !(datum.vgrad && ${isL})) ? "left" : ${alignExpr$1}`, exprAnchor = `item._anchor || (${isLR} ? "middle" : "start")`, exprAngle = `${isVG} ? (${isL} ? -90 : 90) : 0`, exprBaseline = `${isLR} ? (datum.vgrad ? (${isR} ? "bottom" : "top") : ${baseline}) : "top"`; -function legendTitle(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config); +function axisTitle(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); + let enter, update; const encode = { - enter: { - opacity: zero - }, - update: { - opacity: one, - x: { - field: { - group: "padding" - } - }, - y: { - field: { - group: "padding" - } + enter: enter = { + opacity: zero, + anchor: encoder(_("titleAnchor", null)), + align: { + signal: alignExpr$1 } }, + update: update = (0, _vegaUtil.extend)({}, enter, { + opacity: one, + text: encoder(spec.title) + }), exit: { opacity: zero } }; + const titlePos = { + signal: `lerp(range("${spec.scale}"), ${anchorExpr(0, 1, 0.5)})` + }; + update.x = ifX(orient, titlePos); + update.y = ifY(orient, titlePos); + enter.angle = ifX(orient, zero, mult(sign, 90)); + enter.baseline = ifX(orient, ifTop(orient, Bottom, Top), { + value: Bottom + }); + update.angle = enter.angle; + update.baseline = enter.baseline; addEncoders(encode, { - orient: _("titleOrient"), - _anchor: _("titleAnchor"), - anchor: { - signal: exprAnchor - }, - angle: { - signal: exprAngle - }, - align: { - signal: exprAlign - }, - baseline: { - signal: exprBaseline - }, - text: spec.title, fill: _("titleColor"), fillOpacity: _("titleOpacity"), font: _("titleFont"), @@ -41972,3355 +44615,765 @@ function legendTitle(spec, config, userEncode, dataRef) { }, { // require update align: _("titleAlign"), + angle: _("titleAngle"), baseline: _("titleBaseline") }); + autoLayout(_, orient, encode, userEncode); + encode.update.align = patch(encode.update.align, enter.align); + encode.update.angle = patch(encode.update.angle, enter.angle); + encode.update.baseline = patch(encode.update.baseline, enter.baseline); return guideMark({ type: TextMark, - role: LegendTitleRole, + role: AxisTitleRole, style: GuideTitleStyle, from: dataRef, encode }, userEncode); } -function clip(clip, scope) { - let expr; - if ((0, _vegaUtil.isObject)(clip)) { - if (clip.signal) expr = clip.signal; - else if (clip.path) expr = "pathShape(" + param(clip.path) + ")"; - else if (clip.sphere) expr = "geoShape(" + param(clip.sphere) + ', {type: "Sphere"})'; - } - return expr ? scope.signalRef(expr) : !!clip; -} -function param(value) { - return (0, _vegaUtil.isObject)(value) && value.signal ? value.signal : (0, _vegaUtil.stringValue)(value); -} -function getRole(spec) { - const role = spec.role || ""; - return !role.indexOf("axis") || !role.indexOf("legend") || !role.indexOf("title") ? role : spec.type === GroupMark ? ScopeRole : role || MarkRole; +function autoLayout(_, orient, encode, userEncode) { + const auto = (value, dim)=>value != null ? (encode.update[dim] = patch(encoder(value), encode.update[dim]), false) : !has(dim, userEncode) ? true : false; + const autoY = auto(_("titleX"), "x"), autoX = auto(_("titleY"), "y"); + encode.enter.auto = autoX === autoY ? encoder(autoX) : ifX(orient, encoder(autoX), encoder(autoY)); } -function definition(spec) { - return { - marktype: spec.type, - name: spec.name || undefined, - role: spec.role || getRole(spec), - zindex: +spec.zindex || undefined, - aria: spec.aria, - description: spec.description +function parseAxis(spec, scope) { + const config = axisConfig(spec, scope), encode = spec.encode || {}, axisEncode = encode.axis || {}, name = axisEncode.name || undefined, interactive = axisEncode.interactive, style = axisEncode.style, _ = lookup(spec, config), band = tickBand(_); // single-element data source for axis group + const datum = { + scale: spec.scale, + ticks: !!_("ticks"), + labels: !!_("labels"), + grid: !!_("grid"), + domain: !!_("domain"), + title: spec.title != null }; + const dataRef = ref(scope.add(Collect({}, [ + datum + ]))); // data source for axis ticks + const ticksRef = ref(scope.add(AxisTicks({ + scale: scope.scaleRef(spec.scale), + extra: scope.property(band.extra), + count: scope.objectProperty(spec.tickCount), + values: scope.objectProperty(spec.values), + minstep: scope.property(spec.tickMinStep), + formatType: scope.property(spec.formatType), + formatSpecifier: scope.property(spec.format) + }))); // generate axis marks + const children = []; + let size; // include axis gridlines if requested + if (datum.grid) children.push(axisGrid(spec, config, encode.grid, ticksRef, band)); + // include axis ticks if requested + if (datum.ticks) { + size = _("tickSize"); + children.push(axisTicks(spec, config, encode.ticks, ticksRef, size, band)); + } // include axis labels if requested + if (datum.labels) { + size = datum.ticks ? size : 0; + children.push(axisLabels(spec, config, encode.labels, ticksRef, size, band)); + } // include axis domain path if requested + if (datum.domain) children.push(axisDomain(spec, config, encode.domain, dataRef)); + // include axis title if defined + if (datum.title) children.push(axisTitle(spec, config, encode.title, dataRef)); + // parse axis specification + return parseMark(guideGroup({ + role: AxisRole, + from: dataRef, + encode: extendEncode(buildAxisEncode(_, spec), axisEncode, Skip), + marks: children, + aria: _("aria"), + description: _("description"), + zindex: _("zindex"), + name, + interactive, + style + }), scope); } -function interactive(spec, scope) { - return spec && spec.signal ? scope.signalRef(spec.signal) : spec === false ? false : true; -} -/** - * Parse a data transform specification. - */ function parseTransform(spec, scope) { - const def = (0, _vegaDataflow.definition)(spec.type); - if (!def) (0, _vegaUtil.error)("Unrecognized transform type: " + (0, _vegaUtil.stringValue)(spec.type)); - const t = entry(def.type.toLowerCase(), null, parseParameters(def, spec, scope)); - if (spec.signal) scope.addSignal(spec.signal, scope.proxy(t)); - t.metadata = def.metadata || {}; - return t; +function buildAxisEncode(_, spec) { + const encode = { + enter: {}, + update: {} + }; + addEncoders(encode, { + orient: _("orient"), + offset: _("offset") || 0, + position: value(spec.position, 0), + titlePadding: _("titlePadding"), + minExtent: _("minExtent"), + maxExtent: _("maxExtent"), + range: { + signal: `abs(span(range("${spec.scale}")))` + }, + translate: _("translate"), + // accessibility support + format: spec.format, + formatType: spec.formatType + }); + return encode; } -/** - * Parse all parameters of a data transform. - */ function parseParameters(def, spec, scope) { - const params = {}, n = def.params.length; - for(let i = 0; i < n; ++i){ - const pdef = def.params[i]; - params[pdef.name] = parseParameter(pdef, spec, scope); - } - return params; +function parseScope(spec, scope, preprocessed) { + const signals = (0, _vegaUtil.array)(spec.signals), scales = (0, _vegaUtil.array)(spec.scales); // parse signal definitions, if not already preprocessed + if (!preprocessed) signals.forEach((_)=>parseSignal(_, scope)); // parse cartographic projection definitions + (0, _vegaUtil.array)(spec.projections).forEach((_)=>parseProjection(_, scope)); // initialize scale references + scales.forEach((_)=>initScale(_, scope)); // parse data sources + (0, _vegaUtil.array)(spec.data).forEach((_)=>parseData(_, scope)); // parse scale definitions + scales.forEach((_)=>parseScale(_, scope)); // parse signal updates + (preprocessed || signals).forEach((_)=>parseSignalUpdates(_, scope)); // parse axis definitions + (0, _vegaUtil.array)(spec.axes).forEach((_)=>parseAxis(_, scope)); // parse mark definitions + (0, _vegaUtil.array)(spec.marks).forEach((_)=>parseMark(_, scope)); // parse legend definitions + (0, _vegaUtil.array)(spec.legends).forEach((_)=>parseLegend(_, scope)); // parse title, if defined + if (spec.title) parseTitle(spec.title, scope); // parse collected lambda (anonymous) expressions + scope.parseLambdas(); + return scope; } -/** - * Parse a data transform parameter. - */ function parseParameter(def, spec, scope) { - const type = def.type, value = spec[def.name]; - if (type === "index") return parseIndexParameter(def, spec, scope); - else if (value === undefined) { - if (def.required) (0, _vegaUtil.error)("Missing required " + (0, _vegaUtil.stringValue)(spec.type) + " parameter: " + (0, _vegaUtil.stringValue)(def.name)); - return; - } else if (type === "param") return parseSubParameters(def, spec, scope); - else if (type === "projection") return scope.projectionRef(spec[def.name]); - return def.array && !isSignal(value) ? value.map((v)=>parameterValue(def, v, scope)) : parameterValue(def, value, scope); +const rootEncode = (spec)=>extendEncode({ + enter: { + x: { + value: 0 + }, + y: { + value: 0 + } + }, + update: { + width: { + signal: "width" + }, + height: { + signal: "height" + } + } + }, spec); +function parseView(spec, scope) { + const config = scope.config; // add scenegraph root + const root = ref(scope.root = scope.add(operator())); // parse top-level signal definitions + const signals = collectSignals(spec, config); + signals.forEach((_)=>parseSignal(_, scope)); // assign description, event, legend, and locale configuration + scope.description = spec.description || config.description; + scope.eventConfig = config.events; + scope.legends = scope.objectProperty(config.legend && config.legend.layout); + scope.locale = config.locale; // store root group item + const input = scope.add(Collect()); // encode root group item + const encode = scope.add(Encode(parseEncode(rootEncode(spec.encode), GroupMark, FrameRole, spec.style, scope, { + pulse: ref(input) + }))); // perform view layout + const parent = scope.add(ViewLayout({ + layout: scope.objectProperty(spec.layout), + legends: scope.legends, + autosize: scope.signalRef("autosize"), + mark: root, + pulse: ref(encode) + })); + scope.operators.pop(); // parse remainder of specification + scope.pushState(ref(encode), ref(parent), null); + parseScope(spec, scope, signals); + scope.operators.push(parent); // bound / render / sieve root item + let op = scope.add(Bound({ + mark: root, + pulse: ref(parent) + })); + op = scope.add(Render({ + pulse: ref(op) + })); + op = scope.add(Sieve({ + pulse: ref(op) + })); // track metadata for root item + scope.addData("root", new DataScope(scope, input, input, op)); + return scope; } -/** - * Parse a single parameter value. - */ function parameterValue(def, value, scope) { - const type = def.type; - if (isSignal(value)) return isExpr(type) ? (0, _vegaUtil.error)("Expression references can not be signals.") : isField(type) ? scope.fieldRef(value) : isCompare(type) ? scope.compareRef(value) : scope.signalRef(value.signal); - else { - const expr = def.expr || isField(type); - return expr && outerExpr(value) ? scope.exprRef(value.expr, value.as) : expr && outerField(value) ? fieldRef$1(value.field, value.as) : isExpr(type) ? (0, _vegaFunctions.parseExpression)(value, scope) : isData(type) ? ref(scope.getData(value).values) : isField(type) ? fieldRef$1(value) : isCompare(type) ? scope.compareRef(value) : value; - } +function signalObject(name, value) { + return value && value.signal ? { + name, + update: value.signal + } : { + name, + value + }; } /** - * Parse parameter for accessing an index of another data set. - */ function parseIndexParameter(def, spec, scope) { - if (!(0, _vegaUtil.isString)(spec.from)) (0, _vegaUtil.error)('Lookup "from" parameter must be a string literal.'); - return scope.getData(spec.from).lookupRef(scope, spec.key); + * Collect top-level signals, merging values as needed. Signals + * defined in the config signals arrays are added only if that + * signal is not explicitly defined in the specification. + * Built-in signals (autosize, background, padding, width, height) + * receive special treatment. They are initialized using the + * top-level spec property, or, if undefined in the spec, using + * the corresponding top-level config property. If this property + * is a signal reference object, the signal expression maps to the + * signal 'update' property. If the spec's top-level signal array + * contains an entry that matches a built-in signal, that entry + * will be merged with the built-in specification, potentially + * overwriting existing 'value' or 'update' properties. + */ function collectSignals(spec, config) { + const _ = (name)=>value(spec[name], config[name]), signals = [ + signalObject("background", _("background")), + signalObject("autosize", parseAutosize(_("autosize"))), + signalObject("padding", parsePadding(_("padding"))), + signalObject("width", _("width") || 0), + signalObject("height", _("height") || 0) + ], pre = signals.reduce((p, s)=>(p[s.name] = s, p), {}), map = {}; // add spec signal array + (0, _vegaUtil.array)(spec.signals).forEach((s)=>{ + if ((0, _vegaUtil.hasOwnProperty)(pre, s.name)) // merge if built-in signal + s = (0, _vegaUtil.extend)(pre[s.name], s); + else // otherwise add to signal list + signals.push(s); + map[s.name] = s; + }); // add config signal array + (0, _vegaUtil.array)(config.signals).forEach((s)=>{ + if (!(0, _vegaUtil.hasOwnProperty)(map, s.name) && !(0, _vegaUtil.hasOwnProperty)(pre, s.name)) // add to signal list if not already defined + signals.push(s); + }); + return signals; } -/** - * Parse a parameter that contains one or more sub-parameter objects. - */ function parseSubParameters(def, spec, scope) { - const value = spec[def.name]; - if (def.array) { - if (!(0, _vegaUtil.isArray)(value)) // signals not allowed! - (0, _vegaUtil.error)("Expected an array of sub-parameters. Instead: " + (0, _vegaUtil.stringValue)(value)); - return value.map((v)=>parseSubParameter(def, v, scope)); - } else return parseSubParameter(def, value, scope); -} -/** - * Parse a sub-parameter object. - */ function parseSubParameter(def, value, scope) { - const n = def.params.length; - let pdef; // loop over defs to find matching key - for(let i = 0; i < n; ++i){ - pdef = def.params[i]; - for(const k in pdef.key)if (pdef.key[k] !== value[k]) { - pdef = null; - break; - } - if (pdef) break; - } // raise error if matching key not found - if (!pdef) (0, _vegaUtil.error)("Unsupported parameter: " + (0, _vegaUtil.stringValue)(value)); // parse params, create Params transform, return ref - const params = (0, _vegaUtil.extend)(parseParameters(pdef, value, scope), pdef.key); - return ref(scope.add(Params(params))); -} // -- Utilities ----- -const outerExpr = (_)=>_ && _.expr; -const outerField = (_)=>_ && _.field; -const isData = (_)=>_ === "data"; -const isExpr = (_)=>_ === "expr"; -const isField = (_)=>_ === "field"; -const isCompare = (_)=>_ === "compare"; -function parseData$1(from, group, scope) { - let facet, key, op, dataRef, parent; // if no source data, generate singleton datum - if (!from) dataRef = ref(scope.add(Collect(null, [ - {} - ]))); - else if (facet = from.facet) { - if (!group) (0, _vegaUtil.error)("Only group marks can be faceted."); // use pre-faceted source data, if available - if (facet.field != null) dataRef = parent = getDataRef(facet, scope); - else { - // generate facet aggregates if no direct data specification - if (!from.data) { - op = parseTransform((0, _vegaUtil.extend)({ - type: "aggregate", - groupby: (0, _vegaUtil.array)(facet.groupby) - }, facet.aggregate), scope); - op.params.key = scope.keyRef(facet.groupby); - op.params.pulse = getDataRef(facet, scope); - dataRef = parent = ref(scope.add(op)); - } else parent = ref(scope.getData(from.data).aggregate); - key = scope.keyRef(facet.groupby, true); - } - } // if not yet defined, get source data reference - if (!dataRef) dataRef = getDataRef(from, scope); - return { - key: key, - pulse: dataRef, - parent: parent - }; -} -function getDataRef(from, scope) { - return from.$ref ? from : from.data && from.data.$ref ? from.data : ref(scope.getData(from.data).output); -} -function DataScope(scope, input, output, values, aggr) { - this.scope = scope; // parent scope object - this.input = input; // first operator in pipeline (tuple input) - this.output = output; // last operator in pipeline (tuple output) - this.values = values; // operator for accessing tuples (but not tuple flow) - // last aggregate in transform pipeline - this.aggregate = aggr; // lookup table of field indices - this.index = {}; -} -DataScope.fromEntries = function(scope, entries) { - const n = entries.length, values = entries[n - 1], output = entries[n - 2]; - let input = entries[0], aggr = null, i = 1; - if (input && input.type === "load") input = entries[1]; - // add operator entries to this scope, wire up pulse chain - scope.add(entries[0]); - for(; i < n; ++i){ - entries[i].params.pulse = ref(entries[i - 1]); - scope.add(entries[i]); - if (entries[i].type === "aggregate") aggr = entries[i]; - } - return new DataScope(scope, input, output, values, aggr); -}; -function fieldKey(field) { - return (0, _vegaUtil.isString)(field) ? field : null; -} -function addSortField(scope, p, sort) { - const as = aggrField(sort.op, sort.field); - let s; - if (p.ops) for(let i = 0, n = p.as.length; i < n; ++i){ - if (p.as[i] === as) return; - } - else { - p.ops = [ - "count" - ]; - p.fields = [ - null - ]; - p.as = [ - "count" - ]; - } - if (sort.op) { - p.ops.push((s = sort.op.signal) ? scope.signalRef(s) : sort.op); - p.fields.push(scope.fieldRef(sort.field)); - p.as.push(as); - } +function Scope(config, options) { + this.config = config || {}; + this.options = options || {}; + this.bindings = []; + this.field = {}; + this.signals = {}; + this.lambdas = {}; + this.scales = {}; + this.events = {}; + this.data = {}; + this.streams = []; + this.updates = []; + this.operators = []; + this.eventConfig = null; + this.locale = null; + this._id = 0; + this._subid = 0; + this._nextsub = [ + 0 + ]; + this._parent = []; + this._encode = []; + this._lookup = []; + this._markpath = []; } -function cache(scope, ds, name, optype, field, counts, index) { - const cache = ds[name] || (ds[name] = {}), sort = sortKey(counts); - let k = fieldKey(field), v, op; - if (k != null) { - scope = ds.scope; - k = k + (sort ? "|" + sort : ""); - v = cache[k]; - } - if (!v) { - const params = counts ? { - field: keyFieldRef, - pulse: ds.countsRef(scope, field, counts) - } : { - field: scope.fieldRef(field), - pulse: ref(ds.output) - }; - if (sort) params.sort = scope.sortRef(counts); - op = scope.add(entry(optype, undefined, params)); - if (index) ds.index[field] = op; - v = ref(op); - if (k != null) cache[k] = v; - } - return v; +function Subscope(scope) { + this.config = scope.config; + this.options = scope.options; + this.legends = scope.legends; + this.field = Object.create(scope.field); + this.signals = Object.create(scope.signals); + this.lambdas = Object.create(scope.lambdas); + this.scales = Object.create(scope.scales); + this.events = Object.create(scope.events); + this.data = Object.create(scope.data); + this.streams = []; + this.updates = []; + this.operators = []; + this._id = 0; + this._subid = ++scope._nextsub[0]; + this._nextsub = scope._nextsub; + this._parent = scope._parent.slice(); + this._encode = scope._encode.slice(); + this._lookup = scope._lookup.slice(); + this._markpath = scope._markpath; } -DataScope.prototype = { - countsRef (scope, field, sort) { - const ds = this, cache = ds.counts || (ds.counts = {}), k = fieldKey(field); - let v, a, p; - if (k != null) { - scope = ds.scope; - v = cache[k]; - } - if (!v) { - p = { - groupby: scope.fieldRef(field, "key"), - pulse: ref(ds.output) - }; - if (sort && sort.field) addSortField(scope, p, sort); - a = scope.add(Aggregate(p)); - v = scope.add(Collect({ - pulse: ref(a) - })); - v = { - agg: a, - ref: ref(v) - }; - if (k != null) cache[k] = v; - } else if (sort && sort.field) addSortField(scope, v.agg.params, sort); - return v.ref; +Scope.prototype = Subscope.prototype = { + parse (spec) { + return parseScope(spec, this); }, - tuplesRef () { - return ref(this.values); + fork () { + return new Subscope(this); }, - extentRef (scope, field) { - return cache(scope, this, "extent", "extent", field, false); + isSubscope () { + return this._subid > 0; }, - domainRef (scope, field) { - return cache(scope, this, "domain", "values", field, false); + toRuntime () { + this.finish(); + return { + description: this.description, + operators: this.operators, + streams: this.streams, + updates: this.updates, + bindings: this.bindings, + eventConfig: this.eventConfig, + locale: this.locale + }; }, - valuesRef (scope, field, sort) { - return cache(scope, this, "vals", "values", field, sort || true); + id () { + return (this._subid ? this._subid + ":" : 0) + this._id++; }, - lookupRef (scope, field) { - return cache(scope, this, "lookup", "tupleindex", field, false); + add (op) { + this.operators.push(op); + op.id = this.id(); // if pre-registration references exist, resolve them now + if (op.refs) { + op.refs.forEach((ref)=>{ + ref.$ref = op.id; + }); + op.refs = null; + } + return op; }, - indataRef (scope, field) { - return cache(scope, this, "indata", "tupleindex", field, true, true); - } -}; -function parseFacet(spec, scope, group) { - const facet = spec.from.facet, name = facet.name, data = getDataRef(facet, scope); - let op; - if (!facet.name) (0, _vegaUtil.error)("Facet must have a name: " + (0, _vegaUtil.stringValue)(facet)); - if (!facet.data) (0, _vegaUtil.error)("Facet must reference a data set: " + (0, _vegaUtil.stringValue)(facet)); - if (facet.field) op = scope.add(PreFacet({ - field: scope.fieldRef(facet.field), - pulse: data - })); - else if (facet.groupby) op = scope.add(Facet({ - key: scope.keyRef(facet.groupby), - group: ref(scope.proxy(group.parent)), - pulse: data - })); - else (0, _vegaUtil.error)("Facet must specify groupby or field: " + (0, _vegaUtil.stringValue)(facet)); - // initialize facet subscope - const subscope = scope.fork(), source = subscope.add(Collect()), values = subscope.add(Sieve({ - pulse: ref(source) - })); - subscope.addData(name, new DataScope(subscope, source, source, values)); - subscope.addSignal("parent", null); // parse faceted subflow - op.params.subflow = { - $subflow: subscope.parse(spec).toRuntime() - }; -} -function parseSubflow(spec, scope, input) { - const op = scope.add(PreFacet({ - pulse: input.pulse - })), subscope = scope.fork(); - subscope.add(Sieve()); - subscope.addSignal("parent", null); // parse group mark subflow - op.params.subflow = { - $subflow: subscope.parse(spec).toRuntime() - }; -} -function parseTrigger(spec, scope, name) { - const remove = spec.remove, insert = spec.insert, toggle = spec.toggle, modify = spec.modify, values = spec.values, op = scope.add(operator()); - const update = "if(" + spec.trigger + ',modify("' + name + '",' + [ - insert, - remove, - toggle, - modify, - values - ].map((_)=>_ == null ? "null" : _).join(",") + "),0)"; - const expr = (0, _vegaFunctions.parseExpression)(update, scope); - op.update = expr.$expr; - op.params = expr.$params; -} -function parseMark(spec, scope) { - const role = getRole(spec), group = spec.type === GroupMark, facet = spec.from && spec.from.facet, overlap = spec.overlap; - let layout = spec.layout || role === ScopeRole || role === FrameRole, ops, op, store, enc, name, layoutRef, boundRef; - const nested = role === MarkRole || layout || facet; // resolve input data - const input = parseData$1(spec.from, group, scope); // data join to map tuples to visual items - op = scope.add(DataJoin({ - key: input.key || (spec.key ? fieldRef$1(spec.key) : undefined), - pulse: input.pulse, - clean: !group - })); - const joinRef = ref(op); // collect visual items - op = store = scope.add(Collect({ - pulse: joinRef - })); // connect visual items to scenegraph - op = scope.add(Mark({ - markdef: definition(spec), - interactive: interactive(spec.interactive, scope), - clip: clip(spec.clip, scope), - context: { - $context: true - }, - groups: scope.lookup(), - parent: scope.signals.parent ? scope.signalRef("parent") : null, - index: scope.markpath(), - pulse: ref(op) - })); - const markRef = ref(op); // add visual encoders - op = enc = scope.add(Encode(parseEncode(spec.encode, spec.type, role, spec.style, scope, { - mod: false, - pulse: markRef - }))); // monitor parent marks to propagate changes - op.params.parent = scope.encode(); // add post-encoding transforms, if defined - if (spec.transform) spec.transform.forEach((_)=>{ - const tx = parseTransform(_, scope), md = tx.metadata; - if (md.generates || md.changes) (0, _vegaUtil.error)("Mark transforms should not generate new data."); - if (!md.nomod) enc.params.mod = true; // update encode mod handling - tx.params.pulse = ref(op); - scope.add(op = tx); - }); - // if item sort specified, perform post-encoding - if (spec.sort) op = scope.add(SortItems({ - sort: scope.compareRef(spec.sort), - pulse: ref(op) - })); - const encodeRef = ref(op); // add view layout operator if needed - if (facet || layout) { - layout = scope.add(ViewLayout({ - layout: scope.objectProperty(spec.layout), - legends: scope.legends, - mark: markRef, - pulse: encodeRef + proxy (op) { + const vref = op instanceof Entry ? ref(op) : op; + return this.add(Proxy({ + value: vref })); - layoutRef = ref(layout); - } // compute bounding boxes - const bound = scope.add(Bound({ - mark: markRef, - pulse: layoutRef || encodeRef - })); - boundRef = ref(bound); // if group mark, recurse to parse nested content - if (group) { - // juggle layout & bounds to ensure they run *after* any faceting transforms - if (nested) { - ops = scope.operators; - ops.pop(); - if (layout) ops.pop(); + }, + addStream (stream) { + this.streams.push(stream); + stream.id = this.id(); + return stream; + }, + addUpdate (update) { + this.updates.push(update); + return update; + }, + // Apply metadata + finish () { + let name, ds; // annotate root + if (this.root) this.root.root = true; // annotate signals + for(name in this.signals)this.signals[name].signal = name; + // annotate scales + for(name in this.scales)this.scales[name].scale = name; + // annotate data sets + function annotate(op, name, type) { + let data, list; + if (op) { + data = op.data || (op.data = {}); + list = data[name] || (data[name] = []); + list.push(type); + } } - scope.pushState(encodeRef, layoutRef || boundRef, joinRef); - facet ? parseFacet(spec, scope, input) // explicit facet - : nested ? parseSubflow(spec, scope, input) // standard mark group - : scope.parse(spec); // guide group, we can avoid nested scopes - scope.popState(); - if (nested) { - if (layout) ops.push(layout); - ops.push(bound); + for(name in this.data){ + ds = this.data[name]; + annotate(ds.input, name, "input"); + annotate(ds.output, name, "output"); + annotate(ds.values, name, "values"); + for(const field in ds.index)annotate(ds.index[field], name, "index:" + field); } - } // if requested, add overlap removal transform - if (overlap) boundRef = parseOverlap(overlap, boundRef, scope); - // render / sieve items - const render = scope.add(Render({ - pulse: boundRef - })), sieve = scope.add(Sieve({ - pulse: ref(render) - }, undefined, scope.parent())); // if mark is named, make accessible as reactive geometry - // add trigger updates if defined - if (spec.name != null) { - name = spec.name; - scope.addData(name, new DataScope(scope, store, render, sieve)); - if (spec.on) spec.on.forEach((on)=>{ - if (on.insert || on.remove || on.toggle) (0, _vegaUtil.error)("Marks only support modify triggers."); - parseTrigger(on, scope, name); - }); - } -} -function parseOverlap(overlap, source, scope) { - const method = overlap.method, bound = overlap.bound, sep = overlap.separation; - const params = { - separation: isSignal(sep) ? scope.signalRef(sep.signal) : sep, - method: isSignal(method) ? scope.signalRef(method.signal) : method, - pulse: source - }; - if (overlap.order) params.sort = scope.compareRef({ - field: overlap.order - }); - if (bound) { - const tol = bound.tolerance; - params.boundTolerance = isSignal(tol) ? scope.signalRef(tol.signal) : +tol; - params.boundScale = scope.scaleRef(bound.scale); - params.boundOrient = bound.orient; - } - return ref(scope.add(Overlap(params))); -} -function parseLegend(spec, scope) { - const config = scope.config.legend, encode = spec.encode || {}, _ = lookup(spec, config), legendEncode = encode.legend || {}, name = legendEncode.name || undefined, interactive = legendEncode.interactive, style = legendEncode.style, scales = {}; - let scale = 0, entryLayout, params, children; // resolve scales and 'canonical' scale name - LegendScales.forEach((s)=>spec[s] ? (scales[s] = spec[s], scale = scale || spec[s]) : 0); - if (!scale) (0, _vegaUtil.error)("Missing valid scale for legend."); // resolve legend type (symbol, gradient, or discrete gradient) - const type = legendType(spec, scope.scaleType(scale)); // single-element data source for legend group - const datum = { - title: spec.title != null, - scales: scales, - type: type, - vgrad: type !== "symbol" && _.isVertical() - }; - const dataRef = ref(scope.add(Collect(null, [ - datum - ]))); // encoding properties for legend entry sub-group - const entryEncode = { - enter: { - x: { - value: 0 - }, - y: { - value: 0 - } + return this; + }, + // ---- + pushState (encode, parent, lookup) { + this._encode.push(ref(this.add(Sieve({ + pulse: encode + })))); + this._parent.push(parent); + this._lookup.push(lookup ? ref(this.proxy(lookup)) : null); + this._markpath.push(-1); + }, + popState () { + this._encode.pop(); + this._parent.pop(); + this._lookup.pop(); + this._markpath.pop(); + }, + parent () { + return (0, _vegaUtil.peek)(this._parent); + }, + encode () { + return (0, _vegaUtil.peek)(this._encode); + }, + lookup () { + return (0, _vegaUtil.peek)(this._lookup); + }, + markpath () { + const p = this._markpath; + return ++p[p.length - 1]; + }, + // ---- + fieldRef (field, name) { + if ((0, _vegaUtil.isString)(field)) return fieldRef$1(field, name); + if (!field.signal) (0, _vegaUtil.error)("Unsupported field reference: " + (0, _vegaUtil.stringValue)(field)); + const s = field.signal; + let f = this.field[s]; + if (!f) { + const params = { + name: this.signalRef(s) + }; + if (name) params.as = name; + this.field[s] = f = ref(this.add(Field(params))); } - }; // data source for legend values - const entryRef = ref(scope.add(LegendEntries(params = { - type: type, - scale: scope.scaleRef(scale), - count: scope.objectProperty(_("tickCount")), - limit: scope.property(_("symbolLimit")), - values: scope.objectProperty(spec.values), - minstep: scope.property(spec.tickMinStep), - formatType: scope.property(spec.formatType), - formatSpecifier: scope.property(spec.format) - }))); // continuous gradient legend - if (type === Gradient) { - children = [ - legendGradient(spec, scale, config, encode.gradient), - legendGradientLabels(spec, config, encode.labels, entryRef) - ]; // adjust default tick count based on the gradient length - params.count = params.count || scope.signalRef(`max(2,2*floor((${deref(_.gradientLength())})/100))`); - } else if (type === Discrete) children = [ - legendGradientDiscrete(spec, scale, config, encode.gradient, entryRef), - legendGradientLabels(spec, config, encode.labels, entryRef) - ]; - else { - // determine legend symbol group layout - entryLayout = legendSymbolLayout(spec, config); - children = [ - legendSymbolGroups(spec, config, encode, entryRef, deref(entryLayout.columns)) - ]; // pass symbol size information to legend entry generator - params.size = sizeExpression(spec, scope, children[0].marks); - } // generate legend marks - children = [ - guideGroup({ - role: LegendEntryRole, - from: dataRef, - encode: entryEncode, - marks: children, - layout: entryLayout, - interactive - }) - ]; // include legend title if defined - if (datum.title) children.push(legendTitle(spec, config, encode.title, dataRef)); - // parse legend specification - return parseMark(guideGroup({ - role: LegendRole, - from: dataRef, - encode: extendEncode(buildLegendEncode(_, spec, config), legendEncode, Skip), - marks: children, - aria: _("aria"), - description: _("description"), - zindex: _("zindex"), - name, - interactive, - style - }), scope); -} -function legendType(spec, scaleType) { - let type = spec.type || Symbols; - if (!spec.type && scaleCount(spec) === 1 && (spec.fill || spec.stroke)) type = (0, _vegaScale.isContinuous)(scaleType) ? Gradient : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Symbols; - return type !== Gradient ? type : (0, _vegaScale.isDiscretizing)(scaleType) ? Discrete : Gradient; -} -function scaleCount(spec) { - return LegendScales.reduce((count, type)=>count + (spec[type] ? 1 : 0), 0); -} -function buildLegendEncode(_, spec, config) { - const encode = { - enter: {}, - update: {} - }; - addEncoders(encode, { - orient: _("orient"), - offset: _("offset"), - padding: _("padding"), - titlePadding: _("titlePadding"), - cornerRadius: _("cornerRadius"), - fill: _("fillColor"), - stroke: _("strokeColor"), - strokeWidth: config.strokeWidth, - strokeDash: config.strokeDash, - x: _("legendX"), - y: _("legendY"), - // accessibility support - format: spec.format, - formatType: spec.formatType - }); - return encode; -} -function sizeExpression(spec, scope, marks) { - const size = deref(getChannel("size", spec, marks)), strokeWidth = deref(getChannel("strokeWidth", spec, marks)), fontSize = deref(getFontSize(marks[1].encode, scope, GuideLabelStyle)); - return (0, _vegaFunctions.parseExpression)(`max(ceil(sqrt(${size})+${strokeWidth}),${fontSize})`, scope); -} -function getChannel(name, spec, marks) { - return spec[name] ? `scale("${spec[name]}",datum)` : getEncoding(name, marks[0].encode); -} -function getFontSize(encode, scope, style) { - return getEncoding("fontSize", encode) || getStyle("fontSize", scope, style); -} -const angleExpr = `item.orient==="${Left}"?-90:item.orient==="${Right}"?90:0`; -function parseTitle(spec, scope) { - spec = (0, _vegaUtil.isString)(spec) ? { - text: spec - } : spec; - const _ = lookup(spec, scope.config.title), encode = spec.encode || {}, userEncode = encode.group || {}, name = userEncode.name || undefined, interactive = userEncode.interactive, style = userEncode.style, children = []; // single-element data source for group title - const datum = {}, dataRef = ref(scope.add(Collect(null, [ - datum - ]))); // include title text - children.push(buildTitle(spec, _, titleEncode(spec), dataRef)); // include subtitle text - if (spec.subtitle) children.push(buildSubTitle(spec, _, encode.subtitle, dataRef)); - // parse title specification - return parseMark(guideGroup({ - role: TitleRole, - from: dataRef, - encode: groupEncode(_, userEncode), - marks: children, - aria: _("aria"), - description: _("description"), - zindex: _("zindex"), - name, - interactive, - style - }), scope); -} // provide backwards-compatibility for title custom encode; -// the top-level encode block has been *deprecated*. -function titleEncode(spec) { - const encode = spec.encode; - return encode && encode.title || (0, _vegaUtil.extend)({ - name: spec.name, - interactive: spec.interactive, - style: spec.style - }, encode); -} -function groupEncode(_, userEncode) { - const encode = { - enter: {}, - update: {} - }; - addEncoders(encode, { - orient: _("orient"), - anchor: _("anchor"), - align: { - signal: alignExpr$1 - }, - angle: { - signal: angleExpr - }, - limit: _("limit"), - frame: _("frame"), - offset: _("offset") || 0, - padding: _("subtitlePadding") - }); - return extendEncode(encode, userEncode, Skip); -} -function buildTitle(spec, _, userEncode, dataRef) { - const zero = { - value: 0 - }, text = spec.text, encode = { - enter: { - opacity: zero - }, - update: { - opacity: { - value: 1 - } - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - text: text, - align: { - signal: "item.mark.group.align" - }, - angle: { - signal: "item.mark.group.angle" - }, - limit: { - signal: "item.mark.group.limit" - }, - baseline: "top", - dx: _("dx"), - dy: _("dy"), - fill: _("color"), - font: _("font"), - fontSize: _("fontSize"), - fontStyle: _("fontStyle"), - fontWeight: _("fontWeight"), - lineHeight: _("lineHeight") - }, { - // update - align: _("align"), - angle: _("angle"), - baseline: _("baseline") - }); - return guideMark({ - type: TextMark, - role: TitleTextRole, - style: GroupTitleStyle, - from: dataRef, - encode - }, userEncode); -} -function buildSubTitle(spec, _, userEncode, dataRef) { - const zero = { - value: 0 - }, text = spec.subtitle, encode = { - enter: { - opacity: zero - }, - update: { - opacity: { - value: 1 - } - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - text: text, - align: { - signal: "item.mark.group.align" - }, - angle: { - signal: "item.mark.group.angle" - }, - limit: { - signal: "item.mark.group.limit" - }, - baseline: "top", - dx: _("dx"), - dy: _("dy"), - fill: _("subtitleColor"), - font: _("subtitleFont"), - fontSize: _("subtitleFontSize"), - fontStyle: _("subtitleFontStyle"), - fontWeight: _("subtitleFontWeight"), - lineHeight: _("subtitleLineHeight") - }, { - // update - align: _("align"), - angle: _("angle"), - baseline: _("baseline") - }); - return guideMark({ - type: TextMark, - role: TitleSubtitleRole, - style: GroupSubtitleStyle, - from: dataRef, - encode - }, userEncode); -} -function parseData(data, scope) { - const transforms = []; - if (data.transform) data.transform.forEach((tx)=>{ - transforms.push(parseTransform(tx, scope)); - }); - if (data.on) data.on.forEach((on)=>{ - parseTrigger(on, scope, data.name); - }); - scope.addDataPipeline(data.name, analyze(data, scope, transforms)); -} -/** - * Analyze a data pipeline, add needed operators. - */ function analyze(data, scope, ops) { - const output = []; - let source = null, modify = false, generate = false, upstream, i, n, t, m; - if (data.values) { - // hard-wired input data set - if (isSignal(data.values) || hasSignal(data.format)) { - // if either values is signal or format has signal, use dynamic loader - output.push(load(scope, data)); - output.push(source = collect()); - } else // otherwise, ingest upon dataflow init - output.push(source = collect({ - $ingest: data.values, - $format: data.format - })); - } else if (data.url) { - // load data from external source - if (hasSignal(data.url) || hasSignal(data.format)) { - // if either url or format has signal, use dynamic loader - output.push(load(scope, data)); - output.push(source = collect()); - } else // otherwise, request load upon dataflow init - output.push(source = collect({ - $request: data.url, - $format: data.format - })); - } else if (data.source) { - // derives from one or more other data sets - source = upstream = (0, _vegaUtil.array)(data.source).map((d)=>ref(scope.getData(d).output)); - output.push(null); // populate later - } // scan data transforms, add collectors as needed - for(i = 0, n = ops.length; i < n; ++i){ - t = ops[i]; - m = t.metadata; - if (!source && !m.source) output.push(source = collect()); - output.push(t); - if (m.generates) generate = true; - if (m.modifies && !generate) modify = true; - if (m.source) source = t; - else if (m.changes) source = null; - } - if (upstream) { - n = upstream.length - 1; - output[0] = Relay({ - derive: modify, - pulse: n ? upstream : upstream[0] - }); - if (modify || n) // collect derived and multi-pulse tuples - output.splice(1, 0, collect()); - } - if (!source) output.push(collect()); - output.push(Sieve({})); - return output; -} -function collect(values) { - const s = Collect({}, values); - s.metadata = { - source: true - }; - return s; -} -function load(scope, data) { - return Load({ - url: data.url ? scope.property(data.url) : undefined, - async: data.async ? scope.property(data.async) : undefined, - values: data.values ? scope.property(data.values) : undefined, - format: scope.objectProperty(data.format) - }); -} -const isX = (orient)=>orient === Bottom || orient === Top; // get sign coefficient based on axis orient -const getSign = (orient, a, b)=>isSignal(orient) ? ifLeftTopExpr(orient.signal, a, b) : orient === Left || orient === Top ? a : b; // condition on axis x-direction -const ifX = (orient, a, b)=>isSignal(orient) ? ifXEnc(orient.signal, a, b) : isX(orient) ? a : b; // condition on axis y-direction -const ifY = (orient, a, b)=>isSignal(orient) ? ifYEnc(orient.signal, a, b) : isX(orient) ? b : a; -const ifTop = (orient, a, b)=>isSignal(orient) ? ifTopExpr(orient.signal, a, b) : orient === Top ? { - value: a - } : { - value: b - }; -const ifRight = (orient, a, b)=>isSignal(orient) ? ifRightExpr(orient.signal, a, b) : orient === Right ? { - value: a - } : { - value: b - }; -const ifXEnc = ($orient, a, b)=>ifEnc(`${$orient} === '${Top}' || ${$orient} === '${Bottom}'`, a, b); -const ifYEnc = ($orient, a, b)=>ifEnc(`${$orient} !== '${Top}' && ${$orient} !== '${Bottom}'`, a, b); -const ifLeftTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Left}' || ${$orient} === '${Top}'`, a, b); -const ifTopExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Top}'`, a, b); -const ifRightExpr = ($orient, a, b)=>ifExpr(`${$orient} === '${Right}'`, a, b); -const ifEnc = (test, a, b)=>{ - // ensure inputs are encoder objects (or null) - a = a != null ? encoder(a) : a; - b = b != null ? encoder(b) : b; - if (isSimple(a) && isSimple(b)) { - // if possible generate simple signal expression - a = a ? a.signal || (0, _vegaUtil.stringValue)(a.value) : null; - b = b ? b.signal || (0, _vegaUtil.stringValue)(b.value) : null; - return { - signal: `${test} ? (${a}) : (${b})` - }; - } else // otherwise generate rule set - return [ - (0, _vegaUtil.extend)({ - test - }, a) - ].concat(b || []); -}; -const isSimple = (enc)=>enc == null || Object.keys(enc).length === 1; -const ifExpr = (test, a, b)=>({ - signal: `${test} ? (${toExpr(a)}) : (${toExpr(b)})` - }); -const ifOrient = ($orient, t, b, l, r)=>({ - signal: (l != null ? `${$orient} === '${Left}' ? (${toExpr(l)}) : ` : "") + (b != null ? `${$orient} === '${Bottom}' ? (${toExpr(b)}) : ` : "") + (r != null ? `${$orient} === '${Right}' ? (${toExpr(r)}) : ` : "") + (t != null ? `${$orient} === '${Top}' ? (${toExpr(t)}) : ` : "") + "(null)" - }); -const toExpr = (v)=>isSignal(v) ? v.signal : v == null ? null : (0, _vegaUtil.stringValue)(v); -const mult = (sign, value)=>value === 0 ? 0 : isSignal(sign) ? { - signal: `(${sign.signal}) * ${value}` - } : { - value: sign * value - }; -const patch = (value, base)=>{ - const s = value.signal; - return s && s.endsWith("(null)") ? { - signal: s.slice(0, -6) + base.signal - } : value; -}; -function fallback(prop, config, axisConfig, style) { - let styleProp; - if (config && (0, _vegaUtil.hasOwnProperty)(config, prop)) return config[prop]; - else if ((0, _vegaUtil.hasOwnProperty)(axisConfig, prop)) return axisConfig[prop]; - else if (prop.startsWith("title")) { - switch(prop){ - case "titleColor": - styleProp = "fill"; - break; - case "titleFont": - case "titleFontSize": - case "titleFontWeight": - styleProp = prop[5].toLowerCase() + prop.slice(6); - } - return style[GuideTitleStyle][styleProp]; - } else if (prop.startsWith("label")) { - switch(prop){ - case "labelColor": - styleProp = "fill"; - break; - case "labelFont": - case "labelFontSize": - styleProp = prop[5].toLowerCase() + prop.slice(6); - } - return style[GuideLabelStyle][styleProp]; - } - return null; -} -function keys(objects) { - const map = {}; - for (const obj of objects){ - if (!obj) continue; - for(const key in obj)map[key] = 1; - } - return Object.keys(map); -} -function axisConfig(spec, scope) { - var config = scope.config, style = config.style, axis = config.axis, band = scope.scaleType(spec.scale) === "band" && config.axisBand, orient = spec.orient, xy, or, key; - if (isSignal(orient)) { - const xyKeys = keys([ - config.axisX, - config.axisY - ]), orientKeys = keys([ - config.axisTop, - config.axisBottom, - config.axisLeft, - config.axisRight - ]); - xy = {}; - for (key of xyKeys)xy[key] = ifX(orient, fallback(key, config.axisX, axis, style), fallback(key, config.axisY, axis, style)); - or = {}; - for (key of orientKeys)or[key] = ifOrient(orient.signal, fallback(key, config.axisTop, axis, style), fallback(key, config.axisBottom, axis, style), fallback(key, config.axisLeft, axis, style), fallback(key, config.axisRight, axis, style)); - } else { - xy = orient === Top || orient === Bottom ? config.axisX : config.axisY; - or = config["axis" + orient[0].toUpperCase() + orient.slice(1)]; - } - const result = xy || or || band ? (0, _vegaUtil.extend)({}, axis, xy, or, band) : axis; - return result; -} -function axisDomain(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), orient = spec.orient; - let enter, update; - const encode = { - enter: enter = { - opacity: zero - }, - update: update = { - opacity: one - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("domainColor"), - strokeCap: _("domainCap"), - strokeDash: _("domainDash"), - strokeDashOffset: _("domainDashOffset"), - strokeWidth: _("domainWidth"), - strokeOpacity: _("domainOpacity") - }); - const pos0 = position(spec, 0); - const pos1 = position(spec, 1); - enter.x = update.x = ifX(orient, pos0, zero); - enter.x2 = update.x2 = ifX(orient, pos1); - enter.y = update.y = ifY(orient, pos0, zero); - enter.y2 = update.y2 = ifY(orient, pos1); - return guideMark({ - type: RuleMark, - role: AxisDomainRole, - from: dataRef, - encode - }, userEncode); -} -function position(spec, pos) { - return { - scale: spec.scale, - range: pos - }; -} -function axisGrid(spec, config, userEncode, dataRef, band) { - const _ = lookup(spec, config), orient = spec.orient, vscale = spec.gridScale, sign = getSign(orient, 1, -1), offset = offsetValue(spec.offset, sign); - let enter, exit, update; - const encode = { - enter: enter = { - opacity: zero - }, - update: update = { - opacity: one - }, - exit: exit = { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("gridColor"), - strokeCap: _("gridCap"), - strokeDash: _("gridDash"), - strokeDashOffset: _("gridDashOffset"), - strokeOpacity: _("gridOpacity"), - strokeWidth: _("gridWidth") - }); - const tickPos = { - scale: spec.scale, - field: Value, - band: band.band, - extra: band.extra, - offset: band.offset, - round: _("tickRound") - }; - const sz = ifX(orient, { - signal: "height" - }, { - signal: "width" - }); - const gridStart = vscale ? { - scale: vscale, - range: 0, - mult: sign, - offset: offset - } : { - value: 0, - offset: offset - }; - const gridEnd = vscale ? { - scale: vscale, - range: 1, - mult: sign, - offset: offset - } : (0, _vegaUtil.extend)(sz, { - mult: sign, - offset: offset - }); - enter.x = update.x = ifX(orient, tickPos, gridStart); - enter.y = update.y = ifY(orient, tickPos, gridStart); - enter.x2 = update.x2 = ifY(orient, gridEnd); - enter.y2 = update.y2 = ifX(orient, gridEnd); - exit.x = ifX(orient, tickPos); - exit.y = ifY(orient, tickPos); - return guideMark({ - type: RuleMark, - role: AxisGridRole, - key: Value, - from: dataRef, - encode - }, userEncode); -} -function offsetValue(offset, sign) { - if (sign === 1) ; - else if (!(0, _vegaUtil.isObject)(offset)) offset = isSignal(sign) ? { - signal: `(${sign.signal}) * (${offset || 0})` - } : sign * (offset || 0); - else { - let entry = offset = (0, _vegaUtil.extend)({}, offset); - while(entry.mult != null)if (!(0, _vegaUtil.isObject)(entry.mult)) { - entry.mult = isSignal(sign) // no offset if sign === 1 - ? { - signal: `(${entry.mult}) * (${sign.signal})` - } : entry.mult * sign; - return offset; - } else entry = entry.mult = (0, _vegaUtil.extend)({}, entry.mult); - entry.mult = sign; - } - return offset; -} -function axisTicks(spec, config, userEncode, dataRef, size, band) { - const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); - let enter, exit, update; - const encode = { - enter: enter = { - opacity: zero - }, - update: update = { - opacity: one - }, - exit: exit = { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("tickColor"), - strokeCap: _("tickCap"), - strokeDash: _("tickDash"), - strokeDashOffset: _("tickDashOffset"), - strokeOpacity: _("tickOpacity"), - strokeWidth: _("tickWidth") - }); - const tickSize = encoder(size); - tickSize.mult = sign; - const tickPos = { - scale: spec.scale, - field: Value, - band: band.band, - extra: band.extra, - offset: band.offset, - round: _("tickRound") - }; - update.y = enter.y = ifX(orient, zero, tickPos); - update.y2 = enter.y2 = ifX(orient, tickSize); - exit.x = ifX(orient, tickPos); - update.x = enter.x = ifY(orient, zero, tickPos); - update.x2 = enter.x2 = ifY(orient, tickSize); - exit.y = ifY(orient, tickPos); - return guideMark({ - type: RuleMark, - role: AxisTickRole, - key: Value, - from: dataRef, - encode - }, userEncode); -} -function flushExpr(scale, threshold, a, b, c) { - return { - signal: 'flush(range("' + scale + '"), ' + 'scale("' + scale + '", datum.value), ' + threshold + "," + a + "," + b + "," + c + ")" - }; -} -function axisLabels(spec, config, userEncode, dataRef, size, band) { - const _ = lookup(spec, config), orient = spec.orient, scale = spec.scale, sign = getSign(orient, -1, 1), flush = deref(_("labelFlush")), flushOffset = deref(_("labelFlushOffset")), labelAlign = _("labelAlign"), labelBaseline = _("labelBaseline"); - let flushOn = flush === 0 || !!flush, update; - const tickSize = encoder(size); - tickSize.mult = sign; - tickSize.offset = encoder(_("labelPadding") || 0); - tickSize.offset.mult = sign; - const tickPos = { - scale: scale, - field: Value, - band: 0.5, - offset: extendOffset(band.offset, _("labelOffset")) - }; - const align = ifX(orient, flushOn ? flushExpr(scale, flush, '"left"', '"right"', '"center"') : { - value: "center" - }, ifRight(orient, "left", "right")); - const baseline = ifX(orient, ifTop(orient, "bottom", "top"), flushOn ? flushExpr(scale, flush, '"top"', '"bottom"', '"middle"') : { - value: "middle" - }); - const offsetExpr = flushExpr(scale, flush, `-(${flushOffset})`, flushOffset, 0); - flushOn = flushOn && flushOffset; - const enter = { - opacity: zero, - x: ifX(orient, tickPos, tickSize), - y: ifY(orient, tickPos, tickSize) - }; - const encode = { - enter: enter, - update: update = { - opacity: one, - text: { - field: Label - }, - x: enter.x, - y: enter.y, - align, - baseline - }, - exit: { - opacity: zero, - x: enter.x, - y: enter.y - } - }; - addEncoders(encode, { - dx: !labelAlign && flushOn ? ifX(orient, offsetExpr) : null, - dy: !labelBaseline && flushOn ? ifY(orient, offsetExpr) : null - }); - addEncoders(encode, { - angle: _("labelAngle"), - fill: _("labelColor"), - fillOpacity: _("labelOpacity"), - font: _("labelFont"), - fontSize: _("labelFontSize"), - fontWeight: _("labelFontWeight"), - fontStyle: _("labelFontStyle"), - limit: _("labelLimit"), - lineHeight: _("labelLineHeight") - }, { - align: labelAlign, - baseline: labelBaseline - }); - const bound = _("labelBound"); - let overlap = _("labelOverlap"); // if overlap method or bound defined, request label overlap removal - overlap = overlap || bound ? { - separation: _("labelSeparation"), - method: overlap, - order: "datum.index", - bound: bound ? { - scale, - orient, - tolerance: bound - } : null - } : undefined; - if (update.align !== align) update.align = patch(update.align, align); - if (update.baseline !== baseline) update.baseline = patch(update.baseline, baseline); - return guideMark({ - type: TextMark, - role: AxisLabelRole, - style: GuideLabelStyle, - key: Value, - from: dataRef, - encode, - overlap - }, userEncode); -} -function axisTitle(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), orient = spec.orient, sign = getSign(orient, -1, 1); - let enter, update; - const encode = { - enter: enter = { - opacity: zero, - anchor: encoder(_("titleAnchor", null)), - align: { - signal: alignExpr$1 - } - }, - update: update = (0, _vegaUtil.extend)({}, enter, { - opacity: one, - text: encoder(spec.title) - }), - exit: { - opacity: zero - } - }; - const titlePos = { - signal: `lerp(range("${spec.scale}"), ${anchorExpr(0, 1, 0.5)})` - }; - update.x = ifX(orient, titlePos); - update.y = ifY(orient, titlePos); - enter.angle = ifX(orient, zero, mult(sign, 90)); - enter.baseline = ifX(orient, ifTop(orient, Bottom, Top), { - value: Bottom - }); - update.angle = enter.angle; - update.baseline = enter.baseline; - addEncoders(encode, { - fill: _("titleColor"), - fillOpacity: _("titleOpacity"), - font: _("titleFont"), - fontSize: _("titleFontSize"), - fontStyle: _("titleFontStyle"), - fontWeight: _("titleFontWeight"), - limit: _("titleLimit"), - lineHeight: _("titleLineHeight") - }, { - // require update - align: _("titleAlign"), - angle: _("titleAngle"), - baseline: _("titleBaseline") - }); - autoLayout(_, orient, encode, userEncode); - encode.update.align = patch(encode.update.align, enter.align); - encode.update.angle = patch(encode.update.angle, enter.angle); - encode.update.baseline = patch(encode.update.baseline, enter.baseline); - return guideMark({ - type: TextMark, - role: AxisTitleRole, - style: GuideTitleStyle, - from: dataRef, - encode - }, userEncode); -} -function autoLayout(_, orient, encode, userEncode) { - const auto = (value, dim)=>value != null ? (encode.update[dim] = patch(encoder(value), encode.update[dim]), false) : !has(dim, userEncode) ? true : false; - const autoY = auto(_("titleX"), "x"), autoX = auto(_("titleY"), "y"); - encode.enter.auto = autoX === autoY ? encoder(autoX) : ifX(orient, encoder(autoX), encoder(autoY)); -} -function parseAxis(spec, scope) { - const config = axisConfig(spec, scope), encode = spec.encode || {}, axisEncode = encode.axis || {}, name = axisEncode.name || undefined, interactive = axisEncode.interactive, style = axisEncode.style, _ = lookup(spec, config), band = tickBand(_); // single-element data source for axis group - const datum = { - scale: spec.scale, - ticks: !!_("ticks"), - labels: !!_("labels"), - grid: !!_("grid"), - domain: !!_("domain"), - title: spec.title != null - }; - const dataRef = ref(scope.add(Collect({}, [ - datum - ]))); // data source for axis ticks - const ticksRef = ref(scope.add(AxisTicks({ - scale: scope.scaleRef(spec.scale), - extra: scope.property(band.extra), - count: scope.objectProperty(spec.tickCount), - values: scope.objectProperty(spec.values), - minstep: scope.property(spec.tickMinStep), - formatType: scope.property(spec.formatType), - formatSpecifier: scope.property(spec.format) - }))); // generate axis marks - const children = []; - let size; // include axis gridlines if requested - if (datum.grid) children.push(axisGrid(spec, config, encode.grid, ticksRef, band)); - // include axis ticks if requested - if (datum.ticks) { - size = _("tickSize"); - children.push(axisTicks(spec, config, encode.ticks, ticksRef, size, band)); - } // include axis labels if requested - if (datum.labels) { - size = datum.ticks ? size : 0; - children.push(axisLabels(spec, config, encode.labels, ticksRef, size, band)); - } // include axis domain path if requested - if (datum.domain) children.push(axisDomain(spec, config, encode.domain, dataRef)); - // include axis title if defined - if (datum.title) children.push(axisTitle(spec, config, encode.title, dataRef)); - // parse axis specification - return parseMark(guideGroup({ - role: AxisRole, - from: dataRef, - encode: extendEncode(buildAxisEncode(_, spec), axisEncode, Skip), - marks: children, - aria: _("aria"), - description: _("description"), - zindex: _("zindex"), - name, - interactive, - style - }), scope); -} -function buildAxisEncode(_, spec) { - const encode = { - enter: {}, - update: {} - }; - addEncoders(encode, { - orient: _("orient"), - offset: _("offset") || 0, - position: value(spec.position, 0), - titlePadding: _("titlePadding"), - minExtent: _("minExtent"), - maxExtent: _("maxExtent"), - range: { - signal: `abs(span(range("${spec.scale}")))` - }, - translate: _("translate"), - // accessibility support - format: spec.format, - formatType: spec.formatType - }); - return encode; -} -function parseScope(spec, scope, preprocessed) { - const signals = (0, _vegaUtil.array)(spec.signals), scales = (0, _vegaUtil.array)(spec.scales); // parse signal definitions, if not already preprocessed - if (!preprocessed) signals.forEach((_)=>parseSignal(_, scope)); // parse cartographic projection definitions - (0, _vegaUtil.array)(spec.projections).forEach((_)=>parseProjection(_, scope)); // initialize scale references - scales.forEach((_)=>initScale(_, scope)); // parse data sources - (0, _vegaUtil.array)(spec.data).forEach((_)=>parseData(_, scope)); // parse scale definitions - scales.forEach((_)=>parseScale(_, scope)); // parse signal updates - (preprocessed || signals).forEach((_)=>parseSignalUpdates(_, scope)); // parse axis definitions - (0, _vegaUtil.array)(spec.axes).forEach((_)=>parseAxis(_, scope)); // parse mark definitions - (0, _vegaUtil.array)(spec.marks).forEach((_)=>parseMark(_, scope)); // parse legend definitions - (0, _vegaUtil.array)(spec.legends).forEach((_)=>parseLegend(_, scope)); // parse title, if defined - if (spec.title) parseTitle(spec.title, scope); // parse collected lambda (anonymous) expressions - scope.parseLambdas(); - return scope; -} -const rootEncode = (spec)=>extendEncode({ - enter: { - x: { - value: 0 - }, - y: { - value: 0 - } - }, - update: { - width: { - signal: "width" - }, - height: { - signal: "height" - } - } - }, spec); -function parseView(spec, scope) { - const config = scope.config; // add scenegraph root - const root = ref(scope.root = scope.add(operator())); // parse top-level signal definitions - const signals = collectSignals(spec, config); - signals.forEach((_)=>parseSignal(_, scope)); // assign description, event, legend, and locale configuration - scope.description = spec.description || config.description; - scope.eventConfig = config.events; - scope.legends = scope.objectProperty(config.legend && config.legend.layout); - scope.locale = config.locale; // store root group item - const input = scope.add(Collect()); // encode root group item - const encode = scope.add(Encode(parseEncode(rootEncode(spec.encode), GroupMark, FrameRole, spec.style, scope, { - pulse: ref(input) - }))); // perform view layout - const parent = scope.add(ViewLayout({ - layout: scope.objectProperty(spec.layout), - legends: scope.legends, - autosize: scope.signalRef("autosize"), - mark: root, - pulse: ref(encode) - })); - scope.operators.pop(); // parse remainder of specification - scope.pushState(ref(encode), ref(parent), null); - parseScope(spec, scope, signals); - scope.operators.push(parent); // bound / render / sieve root item - let op = scope.add(Bound({ - mark: root, - pulse: ref(parent) - })); - op = scope.add(Render({ - pulse: ref(op) - })); - op = scope.add(Sieve({ - pulse: ref(op) - })); // track metadata for root item - scope.addData("root", new DataScope(scope, input, input, op)); - return scope; -} -function signalObject(name, value) { - return value && value.signal ? { - name, - update: value.signal - } : { - name, - value - }; -} -/** - * Collect top-level signals, merging values as needed. Signals - * defined in the config signals arrays are added only if that - * signal is not explicitly defined in the specification. - * Built-in signals (autosize, background, padding, width, height) - * receive special treatment. They are initialized using the - * top-level spec property, or, if undefined in the spec, using - * the corresponding top-level config property. If this property - * is a signal reference object, the signal expression maps to the - * signal 'update' property. If the spec's top-level signal array - * contains an entry that matches a built-in signal, that entry - * will be merged with the built-in specification, potentially - * overwriting existing 'value' or 'update' properties. - */ function collectSignals(spec, config) { - const _ = (name)=>value(spec[name], config[name]), signals = [ - signalObject("background", _("background")), - signalObject("autosize", parseAutosize(_("autosize"))), - signalObject("padding", parsePadding(_("padding"))), - signalObject("width", _("width") || 0), - signalObject("height", _("height") || 0) - ], pre = signals.reduce((p, s)=>(p[s.name] = s, p), {}), map = {}; // add spec signal array - (0, _vegaUtil.array)(spec.signals).forEach((s)=>{ - if ((0, _vegaUtil.hasOwnProperty)(pre, s.name)) // merge if built-in signal - s = (0, _vegaUtil.extend)(pre[s.name], s); - else // otherwise add to signal list - signals.push(s); - map[s.name] = s; - }); // add config signal array - (0, _vegaUtil.array)(config.signals).forEach((s)=>{ - if (!(0, _vegaUtil.hasOwnProperty)(map, s.name) && !(0, _vegaUtil.hasOwnProperty)(pre, s.name)) // add to signal list if not already defined - signals.push(s); - }); - return signals; -} -function Scope(config, options) { - this.config = config || {}; - this.options = options || {}; - this.bindings = []; - this.field = {}; - this.signals = {}; - this.lambdas = {}; - this.scales = {}; - this.events = {}; - this.data = {}; - this.streams = []; - this.updates = []; - this.operators = []; - this.eventConfig = null; - this.locale = null; - this._id = 0; - this._subid = 0; - this._nextsub = [ - 0 - ]; - this._parent = []; - this._encode = []; - this._lookup = []; - this._markpath = []; -} -function Subscope(scope) { - this.config = scope.config; - this.options = scope.options; - this.legends = scope.legends; - this.field = Object.create(scope.field); - this.signals = Object.create(scope.signals); - this.lambdas = Object.create(scope.lambdas); - this.scales = Object.create(scope.scales); - this.events = Object.create(scope.events); - this.data = Object.create(scope.data); - this.streams = []; - this.updates = []; - this.operators = []; - this._id = 0; - this._subid = ++scope._nextsub[0]; - this._nextsub = scope._nextsub; - this._parent = scope._parent.slice(); - this._encode = scope._encode.slice(); - this._lookup = scope._lookup.slice(); - this._markpath = scope._markpath; -} -Scope.prototype = Subscope.prototype = { - parse (spec) { - return parseScope(spec, this); - }, - fork () { - return new Subscope(this); - }, - isSubscope () { - return this._subid > 0; - }, - toRuntime () { - this.finish(); - return { - description: this.description, - operators: this.operators, - streams: this.streams, - updates: this.updates, - bindings: this.bindings, - eventConfig: this.eventConfig, - locale: this.locale - }; - }, - id () { - return (this._subid ? this._subid + ":" : 0) + this._id++; - }, - add (op) { - this.operators.push(op); - op.id = this.id(); // if pre-registration references exist, resolve them now - if (op.refs) { - op.refs.forEach((ref)=>{ - ref.$ref = op.id; - }); - op.refs = null; - } - return op; - }, - proxy (op) { - const vref = op instanceof Entry ? ref(op) : op; - return this.add(Proxy({ - value: vref - })); - }, - addStream (stream) { - this.streams.push(stream); - stream.id = this.id(); - return stream; - }, - addUpdate (update) { - this.updates.push(update); - return update; - }, - // Apply metadata - finish () { - let name, ds; // annotate root - if (this.root) this.root.root = true; // annotate signals - for(name in this.signals)this.signals[name].signal = name; - // annotate scales - for(name in this.scales)this.scales[name].scale = name; - // annotate data sets - function annotate(op, name, type) { - let data, list; - if (op) { - data = op.data || (op.data = {}); - list = data[name] || (data[name] = []); - list.push(type); - } - } - for(name in this.data){ - ds = this.data[name]; - annotate(ds.input, name, "input"); - annotate(ds.output, name, "output"); - annotate(ds.values, name, "values"); - for(const field in ds.index)annotate(ds.index[field], name, "index:" + field); - } - return this; - }, - // ---- - pushState (encode, parent, lookup) { - this._encode.push(ref(this.add(Sieve({ - pulse: encode - })))); - this._parent.push(parent); - this._lookup.push(lookup ? ref(this.proxy(lookup)) : null); - this._markpath.push(-1); - }, - popState () { - this._encode.pop(); - this._parent.pop(); - this._lookup.pop(); - this._markpath.pop(); - }, - parent () { - return (0, _vegaUtil.peek)(this._parent); - }, - encode () { - return (0, _vegaUtil.peek)(this._encode); - }, - lookup () { - return (0, _vegaUtil.peek)(this._lookup); - }, - markpath () { - const p = this._markpath; - return ++p[p.length - 1]; - }, - // ---- - fieldRef (field, name) { - if ((0, _vegaUtil.isString)(field)) return fieldRef$1(field, name); - if (!field.signal) (0, _vegaUtil.error)("Unsupported field reference: " + (0, _vegaUtil.stringValue)(field)); - const s = field.signal; - let f = this.field[s]; - if (!f) { - const params = { - name: this.signalRef(s) - }; - if (name) params.as = name; - this.field[s] = f = ref(this.add(Field(params))); - } - return f; - }, - compareRef (cmp) { - let signal = false; - const check = (_)=>isSignal(_) ? (signal = true, this.signalRef(_.signal)) : isExpr$1(_) ? (signal = true, this.exprRef(_.expr)) : _; - const fields = (0, _vegaUtil.array)(cmp.field).map(check), orders = (0, _vegaUtil.array)(cmp.order).map(check); - return signal ? ref(this.add(Compare({ - fields: fields, - orders: orders - }))) : compareRef(fields, orders); - }, - keyRef (fields, flat) { - let signal = false; - const check = (_)=>isSignal(_) ? (signal = true, ref(sig[_.signal])) : _; - const sig = this.signals; - fields = (0, _vegaUtil.array)(fields).map(check); - return signal ? ref(this.add(Key({ - fields: fields, - flat: flat - }))) : keyRef(fields, flat); - }, - sortRef (sort) { - if (!sort) return sort; // including id ensures stable sorting - const a = aggrField(sort.op, sort.field), o = sort.order || Ascending; - return o.signal ? ref(this.add(Compare({ - fields: a, - orders: this.signalRef(o.signal) - }))) : compareRef(a, o); - }, - // ---- - event (source, type) { - const key = source + ":" + type; - if (!this.events[key]) { - const id = this.id(); - this.streams.push({ - id: id, - source: source, - type: type - }); - this.events[key] = id; - } - return this.events[key]; - }, - // ---- - hasOwnSignal (name) { - return (0, _vegaUtil.hasOwnProperty)(this.signals, name); - }, - addSignal (name, value) { - if (this.hasOwnSignal(name)) (0, _vegaUtil.error)("Duplicate signal name: " + (0, _vegaUtil.stringValue)(name)); - const op = value instanceof Entry ? value : this.add(operator(value)); - return this.signals[name] = op; - }, - getSignal (name) { - if (!this.signals[name]) (0, _vegaUtil.error)("Unrecognized signal name: " + (0, _vegaUtil.stringValue)(name)); - return this.signals[name]; - }, - signalRef (s) { - if (this.signals[s]) return ref(this.signals[s]); - else if (!(0, _vegaUtil.hasOwnProperty)(this.lambdas, s)) this.lambdas[s] = this.add(operator(null)); - return ref(this.lambdas[s]); - }, - parseLambdas () { - const code = Object.keys(this.lambdas); - for(let i = 0, n = code.length; i < n; ++i){ - const s = code[i], e = (0, _vegaFunctions.parseExpression)(s, this), op = this.lambdas[s]; - op.params = e.$params; - op.update = e.$expr; - } - }, - property (spec) { - return spec && spec.signal ? this.signalRef(spec.signal) : spec; - }, - objectProperty (spec) { - return !spec || !(0, _vegaUtil.isObject)(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec)); - }, - exprRef (code, name) { - const params = { - expr: (0, _vegaFunctions.parseExpression)(code, this) - }; - if (name) params.expr.$name = name; - return ref(this.add(Expression(params))); - }, - addBinding (name, bind) { - if (!this.bindings) (0, _vegaUtil.error)("Nested signals do not support binding: " + (0, _vegaUtil.stringValue)(name)); - this.bindings.push((0, _vegaUtil.extend)({ - signal: name - }, bind)); - }, - // ---- - addScaleProj (name, transform) { - if ((0, _vegaUtil.hasOwnProperty)(this.scales, name)) (0, _vegaUtil.error)("Duplicate scale or projection name: " + (0, _vegaUtil.stringValue)(name)); - this.scales[name] = this.add(transform); - }, - addScale (name, params) { - this.addScaleProj(name, Scale(params)); - }, - addProjection (name, params) { - this.addScaleProj(name, Projection(params)); - }, - getScale (name) { - if (!this.scales[name]) (0, _vegaUtil.error)("Unrecognized scale name: " + (0, _vegaUtil.stringValue)(name)); - return this.scales[name]; - }, - scaleRef (name) { - return ref(this.getScale(name)); - }, - scaleType (name) { - return this.getScale(name).params.type; - }, - projectionRef (name) { - return this.scaleRef(name); - }, - projectionType (name) { - return this.scaleType(name); - }, - // ---- - addData (name, dataScope) { - if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.data[name] = dataScope; - }, - getData (name) { - if (!this.data[name]) (0, _vegaUtil.error)("Undefined data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.data[name]; - }, - addDataPipeline (name, entries) { - if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.addData(name, DataScope.fromEntries(this, entries)); - } -}; -function propertyLambda(spec) { - return ((0, _vegaUtil.isArray)(spec) ? arrayLambda : objectLambda)(spec); -} -function arrayLambda(array) { - const n = array.length; - let code = "["; - for(let i = 0; i < n; ++i){ - const value = array[i]; - code += (i > 0 ? "," : "") + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); - } - return code + "]"; -} -function objectLambda(obj) { - let code = "{", i = 0, key, value; - for(key in obj){ - value = obj[key]; - code += (++i > 1 ? "," : "") + (0, _vegaUtil.stringValue)(key) + ":" + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); - } - return code + "}"; -} -/** - * Standard configuration defaults for Vega specification parsing. - * Users can provide their own (sub-)set of these default values - * by passing in a config object to the top-level parse method. - */ function defaults() { - const defaultFont = "sans-serif", defaultSymbolSize = 30, defaultStrokeWidth = 2, defaultColor = "#4c78a8", black = "#000", gray = "#888", lightGray = "#ddd"; - return { - // default visualization description - description: "Vega visualization", - // default padding around visualization - padding: 0, - // default for automatic sizing; options: 'none', 'pad', 'fit' - // or provide an object (e.g., {'type': 'pad', 'resize': true}) - autosize: "pad", - // default view background color - // covers the entire view component - background: null, - // default event handling configuration - // preventDefault for view-sourced event types except 'wheel' - events: { - defaults: { - allow: [ - "wheel" - ] - } - }, - // defaults for top-level group marks - // accepts mark properties (fill, stroke, etc) - // covers the data rectangle within group width/height - group: null, - // defaults for basic mark types - // each subset accepts mark properties (fill, stroke, etc) - mark: null, - arc: { - fill: defaultColor - }, - area: { - fill: defaultColor - }, - image: null, - line: { - stroke: defaultColor, - strokeWidth: defaultStrokeWidth - }, - path: { - stroke: defaultColor - }, - rect: { - fill: defaultColor - }, - rule: { - stroke: black - }, - shape: { - stroke: defaultColor - }, - symbol: { - fill: defaultColor, - size: 64 - }, - text: { - fill: black, - font: defaultFont, - fontSize: 11 - }, - trail: { - fill: defaultColor, - size: defaultStrokeWidth - }, - // style definitions - style: { - // axis & legend labels - "guide-label": { - fill: black, - font: defaultFont, - fontSize: 10 - }, - // axis & legend titles - "guide-title": { - fill: black, - font: defaultFont, - fontSize: 11, - fontWeight: "bold" - }, - // headers, including chart title - "group-title": { - fill: black, - font: defaultFont, - fontSize: 13, - fontWeight: "bold" - }, - // chart subtitle - "group-subtitle": { - fill: black, - font: defaultFont, - fontSize: 12 - }, - // defaults for styled point marks in Vega-Lite - point: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth, - shape: "circle" - }, - circle: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth - }, - square: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth, - shape: "square" - }, - // defaults for styled group marks in Vega-Lite - cell: { - fill: "transparent", - stroke: lightGray - } - }, - // defaults for title - title: { - orient: "top", - anchor: "middle", - offset: 4, - subtitlePadding: 3 - }, - // defaults for axes - axis: { - minExtent: 0, - maxExtent: 200, - bandPosition: 0.5, - domain: true, - domainWidth: 1, - domainColor: gray, - grid: false, - gridWidth: 1, - gridColor: lightGray, - labels: true, - labelAngle: 0, - labelLimit: 180, - labelOffset: 0, - labelPadding: 2, - ticks: true, - tickColor: gray, - tickOffset: 0, - tickRound: true, - tickSize: 5, - tickWidth: 1, - titlePadding: 4 - }, - // correction for centering bias - axisBand: { - tickOffset: -0.5 - }, - // defaults for cartographic projection - projection: { - type: "mercator" - }, - // defaults for legends - legend: { - orient: "right", - padding: 0, - gridAlign: "each", - columnPadding: 10, - rowPadding: 2, - symbolDirection: "vertical", - gradientDirection: "vertical", - gradientLength: 200, - gradientThickness: 16, - gradientStrokeColor: lightGray, - gradientStrokeWidth: 0, - gradientLabelOffset: 2, - labelAlign: "left", - labelBaseline: "middle", - labelLimit: 160, - labelOffset: 4, - labelOverlap: true, - symbolLimit: 30, - symbolType: "circle", - symbolSize: 100, - symbolOffset: 0, - symbolStrokeWidth: 1.5, - symbolBaseFillColor: "transparent", - symbolBaseStrokeColor: gray, - titleLimit: 180, - titleOrient: "top", - titlePadding: 5, - layout: { - offset: 18, - direction: "horizontal", - left: { - direction: "vertical" - }, - right: { - direction: "vertical" - } - } - }, - // defaults for scale ranges - range: { - category: { - scheme: "tableau10" - }, - ordinal: { - scheme: "blues" - }, - heatmap: { - scheme: "yellowgreenblue" - }, - ramp: { - scheme: "blues" - }, - diverging: { - scheme: "blueorange", - extent: [ - 1, - 0 - ] - }, - symbol: [ - "circle", - "square", - "triangle-up", - "cross", - "diamond", - "triangle-right", - "triangle-down", - "triangle-left" - ] - } - }; -} -function parse(spec, config, options) { - if (!(0, _vegaUtil.isObject)(spec)) (0, _vegaUtil.error)("Input Vega specification must be an object."); - config = (0, _vegaUtil.mergeConfig)(defaults(), config, spec.config); - return parseView(spec, new Scope(config, options)).toRuntime(); -} - -},{"vega-util":"bApja","vega-functions":"iuqsd","vega-event-selector":"fFzhr","vega-scale":"bEydG","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fFzhr":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "parseSelector", ()=>eventSelector); -const VIEW = "view", LBRACK = "[", RBRACK = "]", LBRACE = "{", RBRACE = "}", COLON = ":", COMMA = ",", NAME = "@", GT = ">", ILLEGAL = /[[\]{}]/, DEFAULT_MARKS = { - "*": 1, - arc: 1, - area: 1, - group: 1, - image: 1, - line: 1, - path: 1, - rect: 1, - rule: 1, - shape: 1, - symbol: 1, - text: 1, - trail: 1 -}; -let DEFAULT_SOURCE, MARKS; -/** - * Parse an event selector string. - * Returns an array of event stream definitions. - */ function eventSelector(selector, source, marks) { - DEFAULT_SOURCE = source || VIEW; - MARKS = marks || DEFAULT_MARKS; - return parseMerge(selector.trim()).map(parseSelector); -} -function isMarkType(type) { - return MARKS[type]; -} -function find(s, i, endChar, pushChar, popChar) { - const n = s.length; - let count = 0, c; - for(; i < n; ++i){ - c = s[i]; - if (!count && c === endChar) return i; - else if (popChar && popChar.indexOf(c) >= 0) --count; - else if (pushChar && pushChar.indexOf(c) >= 0) ++count; - } - return i; -} -function parseMerge(s) { - const output = [], n = s.length; - let start = 0, i = 0; - while(i < n){ - i = find(s, i, COMMA, LBRACK + LBRACE, RBRACK + RBRACE); - output.push(s.substring(start, i).trim()); - start = ++i; - } - if (output.length === 0) throw "Empty event selector: " + s; - return output; -} -function parseSelector(s) { - return s[0] === "[" ? parseBetween(s) : parseStream(s); -} -function parseBetween(s) { - const n = s.length; - let i = 1, b; - i = find(s, i, RBRACK, LBRACK, RBRACK); - if (i === n) throw "Empty between selector: " + s; - b = parseMerge(s.substring(1, i)); - if (b.length !== 2) throw "Between selector must have two elements: " + s; - s = s.slice(i + 1).trim(); - if (s[0] !== GT) throw "Expected '>' after between selector: " + s; - b = b.map(parseSelector); - const stream = parseSelector(s.slice(1).trim()); - if (stream.between) return { - between: b, - stream: stream - }; - else stream.between = b; - return stream; -} -function parseStream(s) { - const stream = { - source: DEFAULT_SOURCE - }, source = []; - let throttle = [ - 0, - 0 - ], markname = 0, start = 0, n = s.length, i = 0, j, filter; // extract throttle from end - if (s[n - 1] === RBRACE) { - i = s.lastIndexOf(LBRACE); - if (i >= 0) { - try { - throttle = parseThrottle(s.substring(i + 1, n - 1)); - } catch (e) { - throw "Invalid throttle specification: " + s; - } - s = s.slice(0, i).trim(); - n = s.length; - } else throw "Unmatched right brace: " + s; - i = 0; - } - if (!n) throw s; // set name flag based on first char - if (s[0] === NAME) markname = ++i; // extract first part of multi-part stream selector - j = find(s, i, COLON); - if (j < n) { - source.push(s.substring(start, j).trim()); - start = i = ++j; - } // extract remaining part of stream selector - i = find(s, i, LBRACK); - if (i === n) source.push(s.substring(start, n).trim()); - else { - source.push(s.substring(start, i).trim()); - filter = []; - start = ++i; - if (start === n) throw "Unmatched left bracket: " + s; - } // extract filters - while(i < n){ - i = find(s, i, RBRACK); - if (i === n) throw "Unmatched left bracket: " + s; - filter.push(s.substring(start, i).trim()); - if (i < n - 1 && s[++i] !== LBRACK) throw "Expected left bracket: " + s; - start = ++i; - } // marshall event stream specification - if (!(n = source.length) || ILLEGAL.test(source[n - 1])) throw "Invalid event selector: " + s; - if (n > 1) { - stream.type = source[1]; - if (markname) stream.markname = source[0].slice(1); - else if (isMarkType(source[0])) stream.marktype = source[0]; - else stream.source = source[0]; - } else stream.type = source[0]; - if (stream.type.slice(-1) === "!") { - stream.consume = true; - stream.type = stream.type.slice(0, -1); - } - if (filter != null) stream.filter = filter; - if (throttle[0]) stream.throttle = throttle[0]; - if (throttle[1]) stream.debounce = throttle[1]; - return stream; -} -function parseThrottle(s) { - const a = s.split(COMMA); - if (!s.length || a.length > 2) throw s; - return a.map((_)=>{ - const x = +_; - if (x !== x) throw s; - return x; - }); -} - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2l1no":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); -parcelHelpers.export(exports, "ArrayExpression", ()=>ArrayExpression); -parcelHelpers.export(exports, "BinaryExpression", ()=>BinaryExpression); -parcelHelpers.export(exports, "CallExpression", ()=>CallExpression); -parcelHelpers.export(exports, "ConditionalExpression", ()=>ConditionalExpression); -parcelHelpers.export(exports, "Identifier", ()=>Identifier); -parcelHelpers.export(exports, "Literal", ()=>Literal); -parcelHelpers.export(exports, "LogicalExpression", ()=>LogicalExpression); -parcelHelpers.export(exports, "MemberExpression", ()=>MemberExpression); -parcelHelpers.export(exports, "ObjectExpression", ()=>ObjectExpression); -parcelHelpers.export(exports, "Property", ()=>Property); -parcelHelpers.export(exports, "RawCode", ()=>RawCode); -parcelHelpers.export(exports, "UnaryExpression", ()=>UnaryExpression); -parcelHelpers.export(exports, "codegen", ()=>codegen); -parcelHelpers.export(exports, "constants", ()=>Constants); -parcelHelpers.export(exports, "functions", ()=>Functions); -parcelHelpers.export(exports, "parse", ()=>parser); -var _vegaUtil = require("vega-util"); -const RawCode = "RawCode"; -const Literal = "Literal"; -const Property = "Property"; -const Identifier = "Identifier"; -const ArrayExpression = "ArrayExpression"; -const BinaryExpression = "BinaryExpression"; -const CallExpression = "CallExpression"; -const ConditionalExpression = "ConditionalExpression"; -const LogicalExpression = "LogicalExpression"; -const MemberExpression = "MemberExpression"; -const ObjectExpression = "ObjectExpression"; -const UnaryExpression = "UnaryExpression"; -function ASTNode(type) { - this.type = type; -} -ASTNode.prototype.visit = function(visitor) { - let c, i, n; - if (visitor(this)) return 1; - for(c = children(this), i = 0, n = c.length; i < n; ++i){ - if (c[i].visit(visitor)) return 1; - } -}; -function children(node) { - switch(node.type){ - case ArrayExpression: - return node.elements; - case BinaryExpression: - case LogicalExpression: - return [ - node.left, - node.right - ]; - case CallExpression: - return [ - node.callee - ].concat(node.arguments); - case ConditionalExpression: - return [ - node.test, - node.consequent, - node.alternate - ]; - case MemberExpression: - return [ - node.object, - node.property - ]; - case ObjectExpression: - return node.properties; - case Property: - return [ - node.key, - node.value - ]; - case UnaryExpression: - return [ - node.argument - ]; - case Identifier: - case Literal: - case RawCode: - default: - return []; - } -} -/* - The following expression parser is based on Esprima (http://esprima.org/). - Original header comment and license for Esprima is included here: - - Copyright (C) 2013 Ariya Hidayat - Copyright (C) 2013 Thaddee Tyl - Copyright (C) 2013 Mathias Bynens - Copyright (C) 2012 Ariya Hidayat - Copyright (C) 2012 Mathias Bynens - Copyright (C) 2012 Joost-Wim Boekesteijn - Copyright (C) 2012 Kris Kowal - Copyright (C) 2012 Yusuke Suzuki - Copyright (C) 2012 Arpad Borsos - Copyright (C) 2011 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ var TokenName, source, index, length, lookahead; -var TokenBooleanLiteral = 1, TokenEOF = 2, TokenIdentifier = 3, TokenKeyword = 4, TokenNullLiteral = 5, TokenNumericLiteral = 6, TokenPunctuator = 7, TokenStringLiteral = 8, TokenRegularExpression = 9; -TokenName = {}; -TokenName[TokenBooleanLiteral] = "Boolean"; -TokenName[TokenEOF] = ""; -TokenName[TokenIdentifier] = "Identifier"; -TokenName[TokenKeyword] = "Keyword"; -TokenName[TokenNullLiteral] = "Null"; -TokenName[TokenNumericLiteral] = "Numeric"; -TokenName[TokenPunctuator] = "Punctuator"; -TokenName[TokenStringLiteral] = "String"; -TokenName[TokenRegularExpression] = "RegularExpression"; -var SyntaxArrayExpression = "ArrayExpression", SyntaxBinaryExpression = "BinaryExpression", SyntaxCallExpression = "CallExpression", SyntaxConditionalExpression = "ConditionalExpression", SyntaxIdentifier = "Identifier", SyntaxLiteral = "Literal", SyntaxLogicalExpression = "LogicalExpression", SyntaxMemberExpression = "MemberExpression", SyntaxObjectExpression = "ObjectExpression", SyntaxProperty = "Property", SyntaxUnaryExpression = "UnaryExpression"; // Error messages should be identical to V8. -var MessageUnexpectedToken = "Unexpected token %0", MessageUnexpectedNumber = "Unexpected number", MessageUnexpectedString = "Unexpected string", MessageUnexpectedIdentifier = "Unexpected identifier", MessageUnexpectedReserved = "Unexpected reserved word", MessageUnexpectedEOS = "Unexpected end of input", MessageInvalidRegExp = "Invalid regular expression", MessageUnterminatedRegExp = "Invalid regular expression: missing /", MessageStrictOctalLiteral = "Octal literals are not allowed in strict mode.", MessageStrictDuplicateProperty = "Duplicate data property in object literal not allowed in strict mode"; -var ILLEGAL = "ILLEGAL", DISABLED = "Disabled."; // See also tools/generate-unicode-regex.py. -var RegexNonAsciiIdentifierStart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), // eslint-disable-next-line no-misleading-character-class -RegexNonAsciiIdentifierPart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"); // Ensure the condition is true, otherwise throw an error. -// This is only to have a better contract semantic, i.e. another safety net -// to catch a logic error. The condition shall be fulfilled in normal case. -// Do NOT use this to enforce a certain condition on any user input. -function assert(condition, message) { - /* istanbul ignore next */ if (!condition) throw new Error("ASSERT: " + message); -} -function isDecimalDigit(ch) { - return ch >= 0x30 && ch <= 0x39; // 0..9 -} -function isHexDigit(ch) { - return "0123456789abcdefABCDEF".indexOf(ch) >= 0; -} -function isOctalDigit(ch) { - return "01234567".indexOf(ch) >= 0; -} // 7.2 White Space -function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [ - 0x1680, - 0x180E, - 0x2000, - 0x2001, - 0x2002, - 0x2003, - 0x2004, - 0x2005, - 0x2006, - 0x2007, - 0x2008, - 0x2009, - 0x200A, - 0x202F, - 0x205F, - 0x3000, - 0xFEFF - ].indexOf(ch) >= 0; -} // 7.3 Line Terminators -function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; -} // 7.6 Identifier Names and Identifiers -function isIdentifierStart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch)); -} -function isIdentifierPart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch >= 0x30 && ch <= 0x39 || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch)); -} // 7.6.1.1 Keywords -const keywords = { - "if": 1, - "in": 1, - "do": 1, - "var": 1, - "for": 1, - "new": 1, - "try": 1, - "let": 1, - "this": 1, - "else": 1, - "case": 1, - "void": 1, - "with": 1, - "enum": 1, - "while": 1, - "break": 1, - "catch": 1, - "throw": 1, - "const": 1, - "yield": 1, - "class": 1, - "super": 1, - "return": 1, - "typeof": 1, - "delete": 1, - "switch": 1, - "export": 1, - "import": 1, - "public": 1, - "static": 1, - "default": 1, - "finally": 1, - "extends": 1, - "package": 1, - "private": 1, - "function": 1, - "continue": 1, - "debugger": 1, - "interface": 1, - "protected": 1, - "instanceof": 1, - "implements": 1 -}; -function skipComment() { - while(index < length){ - const ch = source.charCodeAt(index); - if (isWhiteSpace(ch) || isLineTerminator(ch)) ++index; - else break; - } -} -function scanHexEscape(prefix) { - var i, len, ch, code = 0; - len = prefix === "u" ? 4 : 2; - for(i = 0; i < len; ++i)if (index < length && isHexDigit(source[index])) { - ch = source[index++]; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } else throwError({}, MessageUnexpectedToken, ILLEGAL); - return String.fromCharCode(code); -} -function scanUnicodeCodePointEscape() { - var ch, code, cu1, cu2; - ch = source[index]; - code = 0; // At least, one hex digit is required. - if (ch === "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - while(index < length){ - ch = source[index++]; - if (!isHexDigit(ch)) break; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } - if (code > 0x10FFFF || ch !== "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - // UTF-16 Encoding - if (code <= 0xFFFF) return String.fromCharCode(code); - cu1 = (code - 0x10000 >> 10) + 0xD800; - cu2 = (code - 0x10000 & 1023) + 0xDC00; - return String.fromCharCode(cu1, cu2); -} -function getEscapedIdentifier() { - var ch, id; - ch = source.charCodeAt(index++); - id = String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierStart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id = ch; - } - while(index < length){ - ch = source.charCodeAt(index); - if (!isIdentifierPart(ch)) break; - ++index; - id += String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - id = id.substr(0, id.length - 1); - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierPart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id += ch; - } - } - return id; -} -function getIdentifier() { - var start, ch; - start = index++; - while(index < length){ - ch = source.charCodeAt(index); - if (ch === 0x5C) { - // Blackslash (U+005C) marks Unicode escape sequence. - index = start; - return getEscapedIdentifier(); - } - if (isIdentifierPart(ch)) ++index; - else break; - } - return source.slice(start, index); -} -function scanIdentifier() { - var start, id, type; - start = index; // Backslash (U+005C) starts an escaped character. - id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character. - // Thus, it must be an identifier. - if (id.length === 1) type = TokenIdentifier; - else if (keywords.hasOwnProperty(id)) // eslint-disable-line no-prototype-builtins - type = TokenKeyword; - else if (id === "null") type = TokenNullLiteral; - else if (id === "true" || id === "false") type = TokenBooleanLiteral; - else type = TokenIdentifier; - return { - type: type, - value: id, - start: start, - end: index - }; -} // 7.7 Punctuators -function scanPunctuator() { - var start = index, code = source.charCodeAt(index), code2, ch1 = source[index], ch2, ch3, ch4; - switch(code){ - // Check for most common single-character punctuators. - case 0x2E: - case 0x28: - case 0x29: - case 0x3B: - case 0x2C: - case 0x7B: - case 0x7D: - case 0x5B: - case 0x5D: - case 0x3A: - case 0x3F: - case 0x7E: - // ~ - ++index; - return { - type: TokenPunctuator, - value: String.fromCharCode(code), - start: start, - end: index - }; - default: - code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator. - if (code2 === 0x3D) switch(code){ - case 0x2B: - case 0x2D: - case 0x2F: - case 0x3C: - case 0x3E: - case 0x5E: - case 0x7C: - case 0x25: - case 0x26: - case 0x2A: - // * - index += 2; - return { - type: TokenPunctuator, - value: String.fromCharCode(code) + String.fromCharCode(code2), - start: start, - end: index - }; - case 0x21: - case 0x3D: - // = - index += 2; // !== and === - if (source.charCodeAt(index) === 0x3D) ++index; - return { - type: TokenPunctuator, - value: source.slice(start, index), - start: start, - end: index - }; - } - } // 4-character punctuator: >>>= - ch4 = source.substr(index, 4); - if (ch4 === ">>>=") { - index += 4; - return { - type: TokenPunctuator, - value: ch4, - start: start, - end: index - }; - } // 3-character punctuators: === !== >>> <<= >>= - ch3 = ch4.substr(0, 3); - if (ch3 === ">>>" || ch3 === "<<=" || ch3 === ">>=") { - index += 3; - return { - type: TokenPunctuator, - value: ch3, - start: start, - end: index - }; - } // Other 2-character punctuators: ++ -- << >> && || - ch2 = ch3.substr(0, 2); - if (ch1 === ch2[1] && "+-<>&|".indexOf(ch1) >= 0 || ch2 === "=>") { - index += 2; - return { - type: TokenPunctuator, - value: ch2, - start: start, - end: index - }; - } - if (ch2 === "//") throwError({}, MessageUnexpectedToken, ILLEGAL); - // 1-character punctuators: < > = ! + - * % & | ^ / - if ("<>=!+-*%&|^/".indexOf(ch1) >= 0) { - ++index; - return { - type: TokenPunctuator, - value: ch1, - start: start, - end: index - }; - } - throwError({}, MessageUnexpectedToken, ILLEGAL); -} // 7.8.3 Numeric Literals -function scanHexLiteral(start) { - let number = ""; - while(index < length){ - if (!isHexDigit(source[index])) break; - number += source[index++]; - } - if (number.length === 0) throwError({}, MessageUnexpectedToken, ILLEGAL); - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt("0x" + number, 16), - start: start, - end: index - }; -} -function scanOctalLiteral(start) { - let number = "0" + source[index++]; - while(index < length){ - if (!isOctalDigit(source[index])) break; - number += source[index++]; - } - if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt(number, 8), - octal: true, - start: start, - end: index - }; -} -function scanNumericLiteral() { - var number, start, ch; - ch = source[index]; - assert(isDecimalDigit(ch.charCodeAt(0)) || ch === ".", "Numeric literal must start with a decimal digit or a decimal point"); - start = index; - number = ""; - if (ch !== ".") { - number = source[index++]; - ch = source[index]; // Hex number starts with '0x'. - // Octal number starts with '0'. - if (number === "0") { - if (ch === "x" || ch === "X") { - ++index; - return scanHexLiteral(start); - } - if (isOctalDigit(ch)) return scanOctalLiteral(start); - // decimal number starts with '0' such as '09' is illegal. - if (ch && isDecimalDigit(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - } - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === ".") { - number += source[index++]; - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === "e" || ch === "E") { - number += source[index++]; - ch = source[index]; - if (ch === "+" || ch === "-") number += source[index++]; - if (isDecimalDigit(source.charCodeAt(index))) while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - else throwError({}, MessageUnexpectedToken, ILLEGAL); - } - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseFloat(number), - start: start, - end: index - }; -} // 7.8.4 String Literals -function scanStringLiteral() { - var str = "", quote, start, ch, code, octal = false; - quote = source[index]; - assert(quote === "'" || quote === '"', "String literal must starts with a quote"); - start = index; - ++index; - while(index < length){ - ch = source[index++]; - if (ch === quote) { - quote = ""; - break; - } else if (ch === "\\") { - ch = source[index++]; - if (!ch || !isLineTerminator(ch.charCodeAt(0))) switch(ch){ - case "u": - case "x": - if (source[index] === "{") { - ++index; - str += scanUnicodeCodePointEscape(); - } else str += scanHexEscape(ch); - break; - case "n": - str += "\n"; - break; - case "r": - str += "\r"; - break; - case "t": - str += " "; - break; - case "b": - str += "\b"; - break; - case "f": - str += "\f"; - break; - case "v": - str += "\v"; - break; - default: - if (isOctalDigit(ch)) { - code = "01234567".indexOf(ch); // \0 is not octal escape sequence - if (code !== 0) octal = true; - if (index < length && isOctalDigit(source[index])) { - octal = true; - code = code * 8 + "01234567".indexOf(source[index++]); // 3 digits are only allowed when string starts - // with 0, 1, 2, 3 - if ("0123".indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) code = code * 8 + "01234567".indexOf(source[index++]); - } - str += String.fromCharCode(code); - } else str += ch; - break; - } - else if (ch === "\r" && source[index] === "\n") ++index; - } else if (isLineTerminator(ch.charCodeAt(0))) break; - else str += ch; - } - if (quote !== "") throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenStringLiteral, - value: str, - octal: octal, - start: start, - end: index - }; -} -function testRegExp(pattern, flags) { - let tmp = pattern; - if (flags.indexOf("u") >= 0) // Replace each astral symbol and every Unicode code point - // escape sequence with a single ASCII symbol to avoid throwing on - // regular expressions that are only valid in combination with the - // `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it - // would be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, ($0, $1)=>{ - if (parseInt($1, 16) <= 0x10FFFF) return "x"; - throwError({}, MessageInvalidRegExp); - }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - // First, detect invalid regular expressions. - try { - new RegExp(tmp); - } catch (e) { - throwError({}, MessageInvalidRegExp); - } // Return a regular expression object for this pattern-flag pair, or - // `null` in case the current environment doesn't support the flags it - // uses. - try { - return new RegExp(pattern, flags); - } catch (exception) { - return null; - } -} -function scanRegExpBody() { - var ch, str, classMarker, terminated, body; - ch = source[index]; - assert(ch === "/", "Regular expression literal must start with a slash"); - str = source[index++]; - classMarker = false; - terminated = false; - while(index < length){ - ch = source[index++]; - str += ch; - if (ch === "\\") { - ch = source[index++]; // ECMA-262 7.8.5 - if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - str += ch; - } else if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - else if (classMarker) { - if (ch === "]") classMarker = false; - } else { - if (ch === "/") { - terminated = true; - break; - } else if (ch === "[") classMarker = true; - } - } - if (!terminated) throwError({}, MessageUnterminatedRegExp); - // Exclude leading and trailing slash. - body = str.substr(1, str.length - 2); - return { - value: body, - literal: str - }; -} -function scanRegExpFlags() { - var ch, str, flags; - str = ""; - flags = ""; - while(index < length){ - ch = source[index]; - if (!isIdentifierPart(ch.charCodeAt(0))) break; - ++index; - if (ch === "\\" && index < length) throwError({}, MessageUnexpectedToken, ILLEGAL); - else { - flags += ch; - str += ch; - } - } - if (flags.search(/[^gimuy]/g) >= 0) throwError({}, MessageInvalidRegExp, flags); - return { - value: flags, - literal: str - }; -} -function scanRegExp() { - var start, body, flags, value; - lookahead = null; - skipComment(); - start = index; - body = scanRegExpBody(); - flags = scanRegExpFlags(); - value = testRegExp(body.value, flags.value); - return { - literal: body.literal + flags.literal, - value: value, - regex: { - pattern: body.value, - flags: flags.value - }, - start: start, - end: index - }; -} -function isIdentifierName(token) { - return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral; -} -function advance() { - skipComment(); - if (index >= length) return { - type: TokenEOF, - start: index, - end: index - }; - const ch = source.charCodeAt(index); - if (isIdentifierStart(ch)) return scanIdentifier(); - // Very common: ( and ) and ; - if (ch === 0x28 || ch === 0x29 || ch === 0x3B) return scanPunctuator(); - // String literal starts with single quote (U+0027) or double quote (U+0022). - if (ch === 0x27 || ch === 0x22) return scanStringLiteral(); - // Dot (.) U+002E can also start a floating-point number, hence the need - // to check the next character. - if (ch === 0x2E) { - if (isDecimalDigit(source.charCodeAt(index + 1))) return scanNumericLiteral(); - return scanPunctuator(); - } - if (isDecimalDigit(ch)) return scanNumericLiteral(); - return scanPunctuator(); -} -function lex() { - const token = lookahead; - index = token.end; - lookahead = advance(); - index = token.end; - return token; -} -function peek() { - const pos = index; - lookahead = advance(); - index = pos; -} -function finishArrayExpression(elements) { - const node = new ASTNode(SyntaxArrayExpression); - node.elements = elements; - return node; -} -function finishBinaryExpression(operator, left, right) { - const node = new ASTNode(operator === "||" || operator === "&&" ? SyntaxLogicalExpression : SyntaxBinaryExpression); - node.operator = operator; - node.left = left; - node.right = right; - return node; -} -function finishCallExpression(callee, args) { - const node = new ASTNode(SyntaxCallExpression); - node.callee = callee; - node.arguments = args; - return node; -} -function finishConditionalExpression(test, consequent, alternate) { - const node = new ASTNode(SyntaxConditionalExpression); - node.test = test; - node.consequent = consequent; - node.alternate = alternate; - return node; -} -function finishIdentifier(name) { - const node = new ASTNode(SyntaxIdentifier); - node.name = name; - return node; -} -function finishLiteral(token) { - const node = new ASTNode(SyntaxLiteral); - node.value = token.value; - node.raw = source.slice(token.start, token.end); - if (token.regex) { - if (node.raw === "//") node.raw = "/(?:)/"; - node.regex = token.regex; - } - return node; -} -function finishMemberExpression(accessor, object, property) { - const node = new ASTNode(SyntaxMemberExpression); - node.computed = accessor === "["; - node.object = object; - node.property = property; - if (!node.computed) property.member = true; - return node; -} -function finishObjectExpression(properties) { - const node = new ASTNode(SyntaxObjectExpression); - node.properties = properties; - return node; -} -function finishProperty(kind, key, value) { - const node = new ASTNode(SyntaxProperty); - node.key = key; - node.value = value; - node.kind = kind; - return node; -} -function finishUnaryExpression(operator, argument) { - const node = new ASTNode(SyntaxUnaryExpression); - node.operator = operator; - node.argument = argument; - node.prefix = true; - return node; -} // Throw an exception -function throwError(token, messageFormat) { - var error, args = Array.prototype.slice.call(arguments, 2), msg = messageFormat.replace(/%(\d)/g, (whole, index)=>{ - assert(index < args.length, "Message reference must be in range"); - return args[index]; - }); - error = new Error(msg); - error.index = index; - error.description = msg; - throw error; -} // Throw an exception because of the token. -function throwUnexpected(token) { - if (token.type === TokenEOF) throwError(token, MessageUnexpectedEOS); - if (token.type === TokenNumericLiteral) throwError(token, MessageUnexpectedNumber); - if (token.type === TokenStringLiteral) throwError(token, MessageUnexpectedString); - if (token.type === TokenIdentifier) throwError(token, MessageUnexpectedIdentifier); - if (token.type === TokenKeyword) throwError(token, MessageUnexpectedReserved); - // BooleanLiteral, NullLiteral, or Punctuator. - throwError(token, MessageUnexpectedToken, token.value); -} // Expect the next token to match the specified punctuator. -// If not, an exception will be thrown. -function expect(value) { - const token = lex(); - if (token.type !== TokenPunctuator || token.value !== value) throwUnexpected(token); -} // Return true if the next token matches the specified punctuator. -function match(value) { - return lookahead.type === TokenPunctuator && lookahead.value === value; -} // Return true if the next token matches the specified keyword -function matchKeyword(keyword) { - return lookahead.type === TokenKeyword && lookahead.value === keyword; -} // 11.1.4 Array Initialiser -function parseArrayInitialiser() { - const elements = []; - index = lookahead.start; - expect("["); - while(!match("]"))if (match(",")) { - lex(); - elements.push(null); - } else { - elements.push(parseConditionalExpression()); - if (!match("]")) expect(","); - } - lex(); - return finishArrayExpression(elements); -} // 11.1.5 Object Initialiser -function parseObjectPropertyKey() { - index = lookahead.start; - const token = lex(); // Note: This function is called only from parseObjectProperty(), where - // EOF and Punctuator tokens are already filtered out. - if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) { - if (token.octal) throwError(token, MessageStrictOctalLiteral); - return finishLiteral(token); - } - return finishIdentifier(token.value); -} -function parseObjectProperty() { - var token, key, id, value; - index = lookahead.start; - token = lookahead; - if (token.type === TokenIdentifier) { - id = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", id, value); - } - if (token.type === TokenEOF || token.type === TokenPunctuator) throwUnexpected(token); - else { - key = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", key, value); - } -} -function parseObjectInitialiser() { - var properties = [], property, name, key, map = {}, toString = String; - index = lookahead.start; - expect("{"); - while(!match("}")){ - property = parseObjectProperty(); - if (property.key.type === SyntaxIdentifier) name = property.key.name; - else name = toString(property.key.value); - key = "$" + name; - if (Object.prototype.hasOwnProperty.call(map, key)) throwError({}, MessageStrictDuplicateProperty); - else map[key] = true; - properties.push(property); - if (!match("}")) expect(","); - } - expect("}"); - return finishObjectExpression(properties); -} // 11.1.6 The Grouping Operator -function parseGroupExpression() { - expect("("); - const expr = parseExpression(); - expect(")"); - return expr; -} // 11.1 Primary Expressions -const legalKeywords = { - "if": 1 -}; -function parsePrimaryExpression() { - var type, token, expr; - if (match("(")) return parseGroupExpression(); - if (match("[")) return parseArrayInitialiser(); - if (match("{")) return parseObjectInitialiser(); - type = lookahead.type; - index = lookahead.start; - if (type === TokenIdentifier || legalKeywords[lookahead.value]) expr = finishIdentifier(lex().value); - else if (type === TokenStringLiteral || type === TokenNumericLiteral) { - if (lookahead.octal) throwError(lookahead, MessageStrictOctalLiteral); - expr = finishLiteral(lex()); - } else if (type === TokenKeyword) throw new Error(DISABLED); - else if (type === TokenBooleanLiteral) { - token = lex(); - token.value = token.value === "true"; - expr = finishLiteral(token); - } else if (type === TokenNullLiteral) { - token = lex(); - token.value = null; - expr = finishLiteral(token); - } else if (match("/") || match("/=")) { - expr = finishLiteral(scanRegExp()); - peek(); - } else throwUnexpected(lex()); - return expr; -} // 11.2 Left-Hand-Side Expressions -function parseArguments() { - const args = []; - expect("("); - if (!match(")")) while(index < length){ - args.push(parseConditionalExpression()); - if (match(")")) break; - expect(","); - } - expect(")"); - return args; -} -function parseNonComputedProperty() { - index = lookahead.start; - const token = lex(); - if (!isIdentifierName(token)) throwUnexpected(token); - return finishIdentifier(token.value); -} -function parseNonComputedMember() { - expect("."); - return parseNonComputedProperty(); -} -function parseComputedMember() { - expect("["); - const expr = parseExpression(); - expect("]"); - return expr; -} -function parseLeftHandSideExpressionAllowCall() { - var expr, args, property; - expr = parsePrimaryExpression(); - for(;;){ - if (match(".")) { - property = parseNonComputedMember(); - expr = finishMemberExpression(".", expr, property); - } else if (match("(")) { - args = parseArguments(); - expr = finishCallExpression(expr, args); - } else if (match("[")) { - property = parseComputedMember(); - expr = finishMemberExpression("[", expr, property); - } else break; - } - return expr; -} // 11.3 Postfix Expressions -function parsePostfixExpression() { - const expr = parseLeftHandSideExpressionAllowCall(); - if (lookahead.type === TokenPunctuator) { - if (match("++") || match("--")) throw new Error(DISABLED); - } - return expr; -} // 11.4 Unary Operators -function parseUnaryExpression() { - var token, expr; - if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) expr = parsePostfixExpression(); - else if (match("++") || match("--")) throw new Error(DISABLED); - else if (match("+") || match("-") || match("~") || match("!")) { - token = lex(); - expr = parseUnaryExpression(); - expr = finishUnaryExpression(token.value, expr); - } else if (matchKeyword("delete") || matchKeyword("void") || matchKeyword("typeof")) throw new Error(DISABLED); - else expr = parsePostfixExpression(); - return expr; -} -function binaryPrecedence(token) { - let prec = 0; - if (token.type !== TokenPunctuator && token.type !== TokenKeyword) return 0; - switch(token.value){ - case "||": - prec = 1; - break; - case "&&": - prec = 2; - break; - case "|": - prec = 3; - break; - case "^": - prec = 4; - break; - case "&": - prec = 5; - break; - case "==": - case "!=": - case "===": - case "!==": - prec = 6; - break; - case "<": - case ">": - case "<=": - case ">=": - case "instanceof": - case "in": - prec = 7; - break; - case "<<": - case ">>": - case ">>>": - prec = 8; - break; - case "+": - case "-": - prec = 9; - break; - case "*": - case "/": - case "%": - prec = 11; - break; - } - return prec; -} // 11.5 Multiplicative Operators -// 11.6 Additive Operators -// 11.7 Bitwise Shift Operators -// 11.8 Relational Operators -// 11.9 Equality Operators -// 11.10 Binary Bitwise Operators -// 11.11 Binary Logical Operators -function parseBinaryExpression() { - var marker, markers, expr, token, prec, stack, right, operator, left, i; - marker = lookahead; - left = parseUnaryExpression(); - token = lookahead; - prec = binaryPrecedence(token); - if (prec === 0) return left; - token.prec = prec; - lex(); - markers = [ - marker, - lookahead - ]; - right = parseUnaryExpression(); - stack = [ - left, - token, - right - ]; - while((prec = binaryPrecedence(lookahead)) > 0){ - // Reduce: make a binary expression from the three topmost entries. - while(stack.length > 2 && prec <= stack[stack.length - 2].prec){ - right = stack.pop(); - operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - expr = finishBinaryExpression(operator, left, right); - stack.push(expr); - } // Shift. - token = lex(); - token.prec = prec; - stack.push(token); - markers.push(lookahead); - expr = parseUnaryExpression(); - stack.push(expr); - } // Final reduce to clean-up the stack. - i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while(i > 1){ - markers.pop(); - expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); - i -= 2; - } - return expr; -} // 11.12 Conditional Operator -function parseConditionalExpression() { - var expr, consequent, alternate; - expr = parseBinaryExpression(); - if (match("?")) { - lex(); - consequent = parseConditionalExpression(); - expect(":"); - alternate = parseConditionalExpression(); - expr = finishConditionalExpression(expr, consequent, alternate); + return f; + }, + compareRef (cmp) { + let signal = false; + const check = (_)=>isSignal(_) ? (signal = true, this.signalRef(_.signal)) : isExpr$1(_) ? (signal = true, this.exprRef(_.expr)) : _; + const fields = (0, _vegaUtil.array)(cmp.field).map(check), orders = (0, _vegaUtil.array)(cmp.order).map(check); + return signal ? ref(this.add(Compare({ + fields: fields, + orders: orders + }))) : compareRef(fields, orders); + }, + keyRef (fields, flat) { + let signal = false; + const check = (_)=>isSignal(_) ? (signal = true, ref(sig[_.signal])) : _; + const sig = this.signals; + fields = (0, _vegaUtil.array)(fields).map(check); + return signal ? ref(this.add(Key({ + fields: fields, + flat: flat + }))) : keyRef(fields, flat); + }, + sortRef (sort) { + if (!sort) return sort; // including id ensures stable sorting + const a = aggrField(sort.op, sort.field), o = sort.order || Ascending; + return o.signal ? ref(this.add(Compare({ + fields: a, + orders: this.signalRef(o.signal) + }))) : compareRef(a, o); + }, + // ---- + event (source, type) { + const key = source + ":" + type; + if (!this.events[key]) { + const id = this.id(); + this.streams.push({ + id: id, + source: source, + type: type + }); + this.events[key] = id; + } + return this.events[key]; + }, + // ---- + hasOwnSignal (name) { + return (0, _vegaUtil.hasOwnProperty)(this.signals, name); + }, + addSignal (name, value) { + if (this.hasOwnSignal(name)) (0, _vegaUtil.error)("Duplicate signal name: " + (0, _vegaUtil.stringValue)(name)); + const op = value instanceof Entry ? value : this.add(operator(value)); + return this.signals[name] = op; + }, + getSignal (name) { + if (!this.signals[name]) (0, _vegaUtil.error)("Unrecognized signal name: " + (0, _vegaUtil.stringValue)(name)); + return this.signals[name]; + }, + signalRef (s) { + if (this.signals[s]) return ref(this.signals[s]); + else if (!(0, _vegaUtil.hasOwnProperty)(this.lambdas, s)) this.lambdas[s] = this.add(operator(null)); + return ref(this.lambdas[s]); + }, + parseLambdas () { + const code = Object.keys(this.lambdas); + for(let i = 0, n = code.length; i < n; ++i){ + const s = code[i], e = (0, _vegaFunctions.parseExpression)(s, this), op = this.lambdas[s]; + op.params = e.$params; + op.update = e.$expr; + } + }, + property (spec) { + return spec && spec.signal ? this.signalRef(spec.signal) : spec; + }, + objectProperty (spec) { + return !spec || !(0, _vegaUtil.isObject)(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec)); + }, + exprRef (code, name) { + const params = { + expr: (0, _vegaFunctions.parseExpression)(code, this) + }; + if (name) params.expr.$name = name; + return ref(this.add(Expression(params))); + }, + addBinding (name, bind) { + if (!this.bindings) (0, _vegaUtil.error)("Nested signals do not support binding: " + (0, _vegaUtil.stringValue)(name)); + this.bindings.push((0, _vegaUtil.extend)({ + signal: name + }, bind)); + }, + // ---- + addScaleProj (name, transform) { + if ((0, _vegaUtil.hasOwnProperty)(this.scales, name)) (0, _vegaUtil.error)("Duplicate scale or projection name: " + (0, _vegaUtil.stringValue)(name)); + this.scales[name] = this.add(transform); + }, + addScale (name, params) { + this.addScaleProj(name, Scale(params)); + }, + addProjection (name, params) { + this.addScaleProj(name, Projection(params)); + }, + getScale (name) { + if (!this.scales[name]) (0, _vegaUtil.error)("Unrecognized scale name: " + (0, _vegaUtil.stringValue)(name)); + return this.scales[name]; + }, + scaleRef (name) { + return ref(this.getScale(name)); + }, + scaleType (name) { + return this.getScale(name).params.type; + }, + projectionRef (name) { + return this.scaleRef(name); + }, + projectionType (name) { + return this.scaleType(name); + }, + // ---- + addData (name, dataScope) { + if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.data[name] = dataScope; + }, + getData (name) { + if (!this.data[name]) (0, _vegaUtil.error)("Undefined data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.data[name]; + }, + addDataPipeline (name, entries) { + if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.addData(name, DataScope.fromEntries(this, entries)); } - return expr; -} // 11.14 Comma Operator -function parseExpression() { - const expr = parseConditionalExpression(); - if (match(",")) throw new Error(DISABLED); // no sequence expressions - return expr; -} -function parser(code) { - source = code; - index = 0; - length = source.length; - lookahead = null; - peek(); - const expr = parseExpression(); - if (lookahead.type !== TokenEOF) throw new Error("Unexpect token after expression."); - return expr; -} -var Constants = { - NaN: "NaN", - E: "Math.E", - LN2: "Math.LN2", - LN10: "Math.LN10", - LOG2E: "Math.LOG2E", - LOG10E: "Math.LOG10E", - PI: "Math.PI", - SQRT1_2: "Math.SQRT1_2", - SQRT2: "Math.SQRT2", - MIN_VALUE: "Number.MIN_VALUE", - MAX_VALUE: "Number.MAX_VALUE" }; -function Functions(codegen) { - function fncall(name, args, cast, type) { - let obj = codegen(args[0]); - if (cast) { - obj = cast + "(" + obj + ")"; - if (cast.lastIndexOf("new ", 0) === 0) obj = "(" + obj + ")"; - } - return obj + "." + name + (type < 0 ? "" : type === 0 ? "()" : "(" + args.slice(1).map(codegen).join(",") + ")"); +function propertyLambda(spec) { + return ((0, _vegaUtil.isArray)(spec) ? arrayLambda : objectLambda)(spec); +} +function arrayLambda(array) { + const n = array.length; + let code = "["; + for(let i = 0; i < n; ++i){ + const value = array[i]; + code += (i > 0 ? "," : "") + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); } - function fn(name, cast, type) { - return (args)=>fncall(name, args, cast, type); + return code + "]"; +} +function objectLambda(obj) { + let code = "{", i = 0, key, value; + for(key in obj){ + value = obj[key]; + code += (++i > 1 ? "," : "") + (0, _vegaUtil.stringValue)(key) + ":" + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); } - const DATE = "new Date", STRING = "String", REGEXP = "RegExp"; + return code + "}"; +} +/** + * Standard configuration defaults for Vega specification parsing. + * Users can provide their own (sub-)set of these default values + * by passing in a config object to the top-level parse method. + */ function defaults() { + const defaultFont = "sans-serif", defaultSymbolSize = 30, defaultStrokeWidth = 2, defaultColor = "#4c78a8", black = "#000", gray = "#888", lightGray = "#ddd"; return { - // MATH functions - isNaN: "Number.isNaN", - isFinite: "Number.isFinite", - abs: "Math.abs", - acos: "Math.acos", - asin: "Math.asin", - atan: "Math.atan", - atan2: "Math.atan2", - ceil: "Math.ceil", - cos: "Math.cos", - exp: "Math.exp", - floor: "Math.floor", - log: "Math.log", - max: "Math.max", - min: "Math.min", - pow: "Math.pow", - random: "Math.random", - round: "Math.round", - sin: "Math.sin", - sqrt: "Math.sqrt", - tan: "Math.tan", - clamp: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to clamp function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to clamp function."); - const a = args.map(codegen); - return "Math.max(" + a[1] + ", Math.min(" + a[2] + "," + a[0] + "))"; + // default visualization description + description: "Vega visualization", + // default padding around visualization + padding: 0, + // default for automatic sizing; options: 'none', 'pad', 'fit' + // or provide an object (e.g., {'type': 'pad', 'resize': true}) + autosize: "pad", + // default view background color + // covers the entire view component + background: null, + // default event handling configuration + // preventDefault for view-sourced event types except 'wheel' + events: { + defaults: { + allow: [ + "wheel" + ] + } }, - // DATE functions - now: "Date.now", - utc: "Date.UTC", - datetime: DATE, - date: fn("getDate", DATE, 0), - day: fn("getDay", DATE, 0), - year: fn("getFullYear", DATE, 0), - month: fn("getMonth", DATE, 0), - hours: fn("getHours", DATE, 0), - minutes: fn("getMinutes", DATE, 0), - seconds: fn("getSeconds", DATE, 0), - milliseconds: fn("getMilliseconds", DATE, 0), - time: fn("getTime", DATE, 0), - timezoneoffset: fn("getTimezoneOffset", DATE, 0), - utcdate: fn("getUTCDate", DATE, 0), - utcday: fn("getUTCDay", DATE, 0), - utcyear: fn("getUTCFullYear", DATE, 0), - utcmonth: fn("getUTCMonth", DATE, 0), - utchours: fn("getUTCHours", DATE, 0), - utcminutes: fn("getUTCMinutes", DATE, 0), - utcseconds: fn("getUTCSeconds", DATE, 0), - utcmilliseconds: fn("getUTCMilliseconds", DATE, 0), - // sequence functions - length: fn("length", null, -1), - // STRING functions - parseFloat: "parseFloat", - parseInt: "parseInt", - upper: fn("toUpperCase", STRING, 0), - lower: fn("toLowerCase", STRING, 0), - substring: fn("substring", STRING), - split: fn("split", STRING), - trim: fn("trim", STRING, 0), - // REGEXP functions - regexp: REGEXP, - test: fn("test", REGEXP), - // Control Flow functions - if: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to if function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to if function."); - const a = args.map(codegen); - return "(" + a[0] + "?" + a[1] + ":" + a[2] + ")"; - } - }; -} -function stripQuotes(s) { - const n = s && s.length - 1; - return n && (s[0] === '"' && s[n] === '"' || s[0] === "'" && s[n] === "'") ? s.slice(1, -1) : s; -} -function codegen(opt) { - opt = opt || {}; - const allowed = opt.allowed ? (0, _vegaUtil.toSet)(opt.allowed) : {}, forbidden = opt.forbidden ? (0, _vegaUtil.toSet)(opt.forbidden) : {}, constants = opt.constants || Constants, functions = (opt.functions || Functions)(visit), globalvar = opt.globalvar, fieldvar = opt.fieldvar, outputGlobal = (0, _vegaUtil.isFunction)(globalvar) ? globalvar : (id)=>"".concat(globalvar, '["').concat(id, '"]'); - let globals = {}, fields = {}, memberDepth = 0; - function visit(ast) { - if ((0, _vegaUtil.isString)(ast)) return ast; - const generator = Generators[ast.type]; - if (generator == null) (0, _vegaUtil.error)("Unsupported type: " + ast.type); - return generator(ast); - } - const Generators = { - Literal: (n)=>n.raw, - Identifier: (n)=>{ - const id = n.name; - if (memberDepth > 0) return id; - else if ((0, _vegaUtil.hasOwnProperty)(forbidden, id)) return (0, _vegaUtil.error)("Illegal identifier: " + id); - else if ((0, _vegaUtil.hasOwnProperty)(constants, id)) return constants[id]; - else if ((0, _vegaUtil.hasOwnProperty)(allowed, id)) return id; - else { - globals[id] = 1; - return outputGlobal(id); + // defaults for top-level group marks + // accepts mark properties (fill, stroke, etc) + // covers the data rectangle within group width/height + group: null, + // defaults for basic mark types + // each subset accepts mark properties (fill, stroke, etc) + mark: null, + arc: { + fill: defaultColor + }, + area: { + fill: defaultColor + }, + image: null, + line: { + stroke: defaultColor, + strokeWidth: defaultStrokeWidth + }, + path: { + stroke: defaultColor + }, + rect: { + fill: defaultColor + }, + rule: { + stroke: black + }, + shape: { + stroke: defaultColor + }, + symbol: { + fill: defaultColor, + size: 64 + }, + text: { + fill: black, + font: defaultFont, + fontSize: 11 + }, + trail: { + fill: defaultColor, + size: defaultStrokeWidth + }, + // style definitions + style: { + // axis & legend labels + "guide-label": { + fill: black, + font: defaultFont, + fontSize: 10 + }, + // axis & legend titles + "guide-title": { + fill: black, + font: defaultFont, + fontSize: 11, + fontWeight: "bold" + }, + // headers, including chart title + "group-title": { + fill: black, + font: defaultFont, + fontSize: 13, + fontWeight: "bold" + }, + // chart subtitle + "group-subtitle": { + fill: black, + font: defaultFont, + fontSize: 12 + }, + // defaults for styled point marks in Vega-Lite + point: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth, + shape: "circle" + }, + circle: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth + }, + square: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth, + shape: "square" + }, + // defaults for styled group marks in Vega-Lite + cell: { + fill: "transparent", + stroke: lightGray } }, - MemberExpression: (n)=>{ - const d = !n.computed, o = visit(n.object); - if (d) memberDepth += 1; - const p = visit(n.property); - if (o === fieldvar) // strip quotes to sanitize field name (#1653) - fields[stripQuotes(p)] = 1; - if (d) memberDepth -= 1; - return o + (d ? "." + p : "[" + p + "]"); + // defaults for title + title: { + orient: "top", + anchor: "middle", + offset: 4, + subtitlePadding: 3 }, - CallExpression: (n)=>{ - if (n.callee.type !== "Identifier") (0, _vegaUtil.error)("Illegal callee type: " + n.callee.type); - const callee = n.callee.name, args = n.arguments, fn = (0, _vegaUtil.hasOwnProperty)(functions, callee) && functions[callee]; - if (!fn) (0, _vegaUtil.error)("Unrecognized function: " + callee); - return (0, _vegaUtil.isFunction)(fn) ? fn(args) : fn + "(" + args.map(visit).join(",") + ")"; + // defaults for axes + axis: { + minExtent: 0, + maxExtent: 200, + bandPosition: 0.5, + domain: true, + domainWidth: 1, + domainColor: gray, + grid: false, + gridWidth: 1, + gridColor: lightGray, + labels: true, + labelAngle: 0, + labelLimit: 180, + labelOffset: 0, + labelPadding: 2, + ticks: true, + tickColor: gray, + tickOffset: 0, + tickRound: true, + tickSize: 5, + tickWidth: 1, + titlePadding: 4 }, - ArrayExpression: (n)=>"[" + n.elements.map(visit).join(",") + "]", - BinaryExpression: (n)=>"(" + visit(n.left) + " " + n.operator + " " + visit(n.right) + ")", - UnaryExpression: (n)=>"(" + n.operator + visit(n.argument) + ")", - ConditionalExpression: (n)=>"(" + visit(n.test) + "?" + visit(n.consequent) + ":" + visit(n.alternate) + ")", - LogicalExpression: (n)=>"(" + visit(n.left) + n.operator + visit(n.right) + ")", - ObjectExpression: (n)=>"{" + n.properties.map(visit).join(",") + "}", - Property: (n)=>{ - memberDepth += 1; - const k = visit(n.key); - memberDepth -= 1; - return k + ":" + visit(n.value); + // correction for centering bias + axisBand: { + tickOffset: -0.5 + }, + // defaults for cartographic projection + projection: { + type: "mercator" + }, + // defaults for legends + legend: { + orient: "right", + padding: 0, + gridAlign: "each", + columnPadding: 10, + rowPadding: 2, + symbolDirection: "vertical", + gradientDirection: "vertical", + gradientLength: 200, + gradientThickness: 16, + gradientStrokeColor: lightGray, + gradientStrokeWidth: 0, + gradientLabelOffset: 2, + labelAlign: "left", + labelBaseline: "middle", + labelLimit: 160, + labelOffset: 4, + labelOverlap: true, + symbolLimit: 30, + symbolType: "circle", + symbolSize: 100, + symbolOffset: 0, + symbolStrokeWidth: 1.5, + symbolBaseFillColor: "transparent", + symbolBaseStrokeColor: gray, + titleLimit: 180, + titleOrient: "top", + titlePadding: 5, + layout: { + offset: 18, + direction: "horizontal", + left: { + direction: "vertical" + }, + right: { + direction: "vertical" + } + } + }, + // defaults for scale ranges + range: { + category: { + scheme: "tableau10" + }, + ordinal: { + scheme: "blues" + }, + heatmap: { + scheme: "yellowgreenblue" + }, + ramp: { + scheme: "blues" + }, + diverging: { + scheme: "blueorange", + extent: [ + 1, + 0 + ] + }, + symbol: [ + "circle", + "square", + "triangle-up", + "cross", + "diamond", + "triangle-right", + "triangle-down", + "triangle-left" + ] } }; - function codegen(ast) { - const result = { - code: visit(ast), - globals: Object.keys(globals), - fields: Object.keys(fields) - }; - globals = {}; - fields = {}; - return result; - } - codegen.functions = functions; - codegen.constants = constants; - return codegen; +} +function parse(spec, config, options) { + if (!(0, _vegaUtil.isObject)(spec)) (0, _vegaUtil.error)("Input Vega specification must be an object."); + config = (0, _vegaUtil.mergeConfig)(defaults(), config, spec.config); + return parseView(spec, new Scope(config, options)).toRuntime(); } -},{"vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gXMNx":[function(require,module,exports) { +},{"vega-util":"bApja","vega-functions":"iuqsd","vega-event-selector":"gXMNx","vega-scale":"bEydG","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gXMNx":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "selector", ()=>eventSelector); +parcelHelpers.export(exports, "parseSelector", ()=>eventSelector); const VIEW = "view", LBRACK = "[", RBRACK = "]", LBRACE = "{", RBRACE = "}", COLON = ":", COMMA = ",", NAME = "@", GT = ">", ILLEGAL = /[[\]{}]/, DEFAULT_MARKS = { "*": 1, arc: 1, diff --git a/docs/tests/v4/es6/js/vega-morphcharts-test-es6.js b/docs/tests/v4/es6/js/vega-morphcharts-test-es6.js index 2051e494e..71ceb990b 100644 --- a/docs/tests/v4/es6/js/vega-morphcharts-test-es6.js +++ b/docs/tests/v4/es6/js/vega-morphcharts-test-es6.js @@ -241,9 +241,9 @@ parcelHelpers.export(exports, "timeFormatLocale", ()=>(0, _vegaFormat.timeFormat parcelHelpers.export(exports, "expressionFunction", ()=>(0, _vegaFunctions.expressionFunction)); parcelHelpers.export(exports, "parse", ()=>(0, _vegaParser.parse)); parcelHelpers.export(exports, "runtimeContext", ()=>(0, _vegaRuntime.context)); -parcelHelpers.export(exports, "codegenExpression", ()=>(0, _vegaExpression.codegen)); -parcelHelpers.export(exports, "parseExpression", ()=>(0, _vegaExpression.parse)); -parcelHelpers.export(exports, "parseSelector", ()=>(0, _vegaEventSelector.selector)); +parcelHelpers.export(exports, "codegenExpression", ()=>(0, _vegaExpression.codegenExpression)); +parcelHelpers.export(exports, "parseExpression", ()=>(0, _vegaExpression.parseExpression)); +parcelHelpers.export(exports, "parseSelector", ()=>(0, _vegaEventSelector.parseSelector)); parcelHelpers.export(exports, "version", ()=>version); var _vegaUtil = require("vega-util"); var _vegaDataflow = require("vega-dataflow"); @@ -276,90 +276,9 @@ var _vegaParser = require("vega-parser"); var _vegaRuntime = require("vega-runtime"); var _vegaExpression = require("vega-expression"); var _vegaEventSelector = require("vega-event-selector"); -var name = "vega"; -var version$1 = "5.20.2"; -var description = "The Vega visualization grammar."; -var keywords = [ - "vega", - "visualization", - "interaction", - "dataflow", - "library", - "data", - "d3" -]; -var license = "BSD-3-Clause"; -var author = "UW Interactive Data Lab (http://idl.cs.washington.edu)"; -var main = "build/vega-node.js"; -var module = "build/vega.module.js"; -var unpkg = "build/vega.min.js"; -var jsdelivr = "build/vega.min.js"; -var types = "index.d.ts"; -var repository = "vega/vega"; -var scripts = { - bundle: "rollup -c --config-bundle", - prebuild: "rimraf build && rimraf build-es5", - build: "rollup -c --config-core --config-bundle --config-ie", - postbuild: "node schema-copy", - pretest: "yarn build --config-test", - test: "TZ=America/Los_Angeles tape 'test/**/*-test.js'", - prepublishOnly: "yarn test && yarn build", - postpublish: "./schema-deploy.sh" -}; -var dependencies = { - "vega-crossfilter": "~4.0.5", - "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", - "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", - "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", - "vega-wordcloud": "~4.1.3" -}; -var devDependencies = { - "vega-schema": "*" -}; -var gitHead = "e251dbc61ab6645689d9f349e7dd9d15ddb85bce"; -var pkg = { - name: name, - version: version$1, - description: description, - keywords: keywords, - license: license, - author: author, - main: main, - module: module, - unpkg: unpkg, - jsdelivr: jsdelivr, - types: types, - repository: repository, - scripts: scripts, - dependencies: dependencies, - devDependencies: devDependencies, - gitHead: gitHead -}; +var version = "5.22.1"; // -- Transforms ----- (0, _vegaUtil.extend)((0, _vegaDataflow.transforms), _vegaTransforms, _vegaViewTransforms, _vegaEncode, _vegaGeo, _vegaForce, _vegaLabel, _vegaHierarchy, _vegaRegression, _vegaVoronoi, _vegaWordcloud, _vegaCrossfilter); // -- Exports ----- -const version = pkg.version; },{"vega-util":"bApja","vega-dataflow":"3NitK","vega-transforms":"gA9mK","vega-view-transforms":"i63Ad","vega-encode":"fpesP","vega-geo":"3rF9B","vega-force":"4JCry","vega-hierarchy":"lserr","vega-label":"lZyUZ","vega-regression":"elv3U","vega-voronoi":"96rkJ","vega-wordcloud":"7Z7Aq","vega-crossfilter":"8iEZv","vega-statistics":"5ncfv","vega-time":"27kpp","vega-loader":"gmbOr","vega-scenegraph":"jattk","vega-scale":"bEydG","vega-projection":"4wv4C","vega-view":"cGC2i","vega-format":"47kOt","vega-functions":"iuqsd","vega-parser":"hsy9Z","vega-runtime":"k7ppL","vega-expression":"2l1no","vega-event-selector":"gXMNx","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bApja":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -531,7 +450,7 @@ const Error$1 = 1; const Warn = 2; const Info = 3; const Debug = 4; -function logger(_, method) { +function logger(_, method, handler = log$1) { let level = _ || None; return { level (_) { @@ -541,19 +460,19 @@ function logger(_, method) { } else return level; }, error () { - if (level >= Error$1) log$1(method || "error", "ERROR", arguments); + if (level >= Error$1) handler(method || "error", "ERROR", arguments); return this; }, warn () { - if (level >= Warn) log$1(method || "warn", "WARN", arguments); + if (level >= Warn) handler(method || "warn", "WARN", arguments); return this; }, info () { - if (level >= Info) log$1(method || "log", "INFO", arguments); + if (level >= Info) handler(method || "log", "INFO", arguments); return this; }, debug () { - if (level >= Debug) log$1(method || "log", "DEBUG", arguments); + if (level >= Debug) handler(method || "log", "DEBUG", arguments); return this; } }; @@ -4059,6 +3978,9 @@ parcelHelpers.export(exports, "bisectLeft", ()=>(0, _bisectJs.bisectLeft)); parcelHelpers.export(exports, "bisectCenter", ()=>(0, _bisectJs.bisectCenter)); parcelHelpers.export(exports, "ascending", ()=>(0, _ascendingJsDefault.default)); parcelHelpers.export(exports, "bisector", ()=>(0, _bisectorJsDefault.default)); +parcelHelpers.export(exports, "blur", ()=>(0, _blurJs.blur)); +parcelHelpers.export(exports, "blur2", ()=>(0, _blurJs.blur2)); +parcelHelpers.export(exports, "blurImage", ()=>(0, _blurJs.blurImage)); parcelHelpers.export(exports, "count", ()=>(0, _countJsDefault.default)); parcelHelpers.export(exports, "cross", ()=>(0, _crossJsDefault.default)); parcelHelpers.export(exports, "cumsum", ()=>(0, _cumsumJsDefault.default)); @@ -4069,6 +3991,8 @@ parcelHelpers.export(exports, "Adder", ()=>(0, _fsumJs.Adder)); parcelHelpers.export(exports, "fsum", ()=>(0, _fsumJs.fsum)); parcelHelpers.export(exports, "fcumsum", ()=>(0, _fsumJs.fcumsum)); parcelHelpers.export(exports, "group", ()=>(0, _groupJsDefault.default)); +parcelHelpers.export(exports, "flatGroup", ()=>(0, _groupJs.flatGroup)); +parcelHelpers.export(exports, "flatRollup", ()=>(0, _groupJs.flatRollup)); parcelHelpers.export(exports, "groups", ()=>(0, _groupJs.groups)); parcelHelpers.export(exports, "index", ()=>(0, _groupJs.index)); parcelHelpers.export(exports, "indexes", ()=>(0, _groupJs.indexes)); @@ -4085,16 +4009,20 @@ parcelHelpers.export(exports, "max", ()=>(0, _maxJsDefault.default)); parcelHelpers.export(exports, "maxIndex", ()=>(0, _maxIndexJsDefault.default)); parcelHelpers.export(exports, "mean", ()=>(0, _meanJsDefault.default)); parcelHelpers.export(exports, "median", ()=>(0, _medianJsDefault.default)); +parcelHelpers.export(exports, "medianIndex", ()=>(0, _medianJs.medianIndex)); parcelHelpers.export(exports, "merge", ()=>(0, _mergeJsDefault.default)); parcelHelpers.export(exports, "min", ()=>(0, _minJsDefault.default)); parcelHelpers.export(exports, "minIndex", ()=>(0, _minIndexJsDefault.default)); +parcelHelpers.export(exports, "mode", ()=>(0, _modeJsDefault.default)); parcelHelpers.export(exports, "nice", ()=>(0, _niceJsDefault.default)); parcelHelpers.export(exports, "pairs", ()=>(0, _pairsJsDefault.default)); parcelHelpers.export(exports, "permute", ()=>(0, _permuteJsDefault.default)); parcelHelpers.export(exports, "quantile", ()=>(0, _quantileJsDefault.default)); +parcelHelpers.export(exports, "quantileIndex", ()=>(0, _quantileJs.quantileIndex)); parcelHelpers.export(exports, "quantileSorted", ()=>(0, _quantileJs.quantileSorted)); parcelHelpers.export(exports, "quickselect", ()=>(0, _quickselectJsDefault.default)); parcelHelpers.export(exports, "range", ()=>(0, _rangeJsDefault.default)); +parcelHelpers.export(exports, "rank", ()=>(0, _rankJsDefault.default)); parcelHelpers.export(exports, "least", ()=>(0, _leastJsDefault.default)); parcelHelpers.export(exports, "leastIndex", ()=>(0, _leastIndexJsDefault.default)); parcelHelpers.export(exports, "greatest", ()=>(0, _greatestJsDefault.default)); @@ -4131,6 +4059,7 @@ var _ascendingJs = require("./ascending.js"); var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); var _bisectorJs = require("./bisector.js"); var _bisectorJsDefault = parcelHelpers.interopDefault(_bisectorJs); +var _blurJs = require("./blur.js"); var _countJs = require("./count.js"); var _countJsDefault = parcelHelpers.interopDefault(_countJs); var _crossJs = require("./cross.js"); @@ -4170,6 +4099,8 @@ var _minJs = require("./min.js"); var _minJsDefault = parcelHelpers.interopDefault(_minJs); var _minIndexJs = require("./minIndex.js"); var _minIndexJsDefault = parcelHelpers.interopDefault(_minIndexJs); +var _modeJs = require("./mode.js"); +var _modeJsDefault = parcelHelpers.interopDefault(_modeJs); var _niceJs = require("./nice.js"); var _niceJsDefault = parcelHelpers.interopDefault(_niceJs); var _pairsJs = require("./pairs.js"); @@ -4182,6 +4113,8 @@ var _quickselectJs = require("./quickselect.js"); var _quickselectJsDefault = parcelHelpers.interopDefault(_quickselectJs); var _rangeJs = require("./range.js"); var _rangeJsDefault = parcelHelpers.interopDefault(_rangeJs); +var _rankJs = require("./rank.js"); +var _rankJsDefault = parcelHelpers.interopDefault(_rankJs); var _leastJs = require("./least.js"); var _leastJsDefault = parcelHelpers.interopDefault(_leastJs); var _leastIndexJs = require("./leastIndex.js"); @@ -4232,7 +4165,7 @@ var _unionJs = require("./union.js"); var _unionJsDefault = parcelHelpers.interopDefault(_unionJs); var _internmap = require("internmap"); -},{"./bisect.js":"iJojn","./ascending.js":"60o1Z","./bisector.js":"k5JwJ","./count.js":false,"./cross.js":false,"./cumsum.js":false,"./descending.js":false,"./deviation.js":"euifj","./extent.js":false,"./fsum.js":"g7Aa0","./group.js":false,"./groupSort.js":false,"./bin.js":false,"./threshold/freedmanDiaconis.js":false,"./threshold/scott.js":false,"./threshold/sturges.js":false,"./max.js":"5fCPh","./maxIndex.js":false,"./mean.js":"8HbAa","./median.js":"ai1Kc","./merge.js":"d56l7","./min.js":"h0RAg","./minIndex.js":false,"./nice.js":false,"./pairs.js":false,"./permute.js":"3ydIg","./quantile.js":"49cDh","./quickselect.js":"doA4Q","./range.js":"7QVPN","./least.js":false,"./leastIndex.js":false,"./greatest.js":false,"./greatestIndex.js":false,"./scan.js":false,"./shuffle.js":false,"./sum.js":"hdZOC","./ticks.js":"71MAh","./transpose.js":false,"./variance.js":"gba1Y","./zip.js":false,"./every.js":false,"./some.js":false,"./filter.js":false,"./map.js":false,"./reduce.js":false,"./reverse.js":false,"./sort.js":false,"./difference.js":false,"./disjoint.js":false,"./intersection.js":false,"./subset.js":false,"./superset.js":false,"./union.js":false,"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"iJojn":[function(require,module,exports) { +},{"./bisect.js":"iJojn","./ascending.js":"60o1Z","./bisector.js":"k5JwJ","./blur.js":false,"./count.js":false,"./cross.js":false,"./cumsum.js":false,"./descending.js":"kIC2x","./deviation.js":"euifj","./extent.js":false,"./fsum.js":"g7Aa0","./group.js":false,"./groupSort.js":false,"./bin.js":false,"./threshold/freedmanDiaconis.js":false,"./threshold/scott.js":false,"./threshold/sturges.js":false,"./max.js":"5fCPh","./maxIndex.js":"fm7WL","./mean.js":"8HbAa","./median.js":"ai1Kc","./merge.js":"d56l7","./min.js":"h0RAg","./minIndex.js":"3rpRW","./mode.js":false,"./nice.js":false,"./pairs.js":false,"./permute.js":"3ydIg","./quantile.js":"49cDh","./quickselect.js":"doA4Q","./range.js":"7QVPN","./rank.js":false,"./least.js":false,"./leastIndex.js":false,"./greatest.js":"c4GrS","./greatestIndex.js":false,"./scan.js":false,"./shuffle.js":false,"./sum.js":"hdZOC","./ticks.js":"71MAh","./transpose.js":false,"./variance.js":"gba1Y","./zip.js":false,"./every.js":false,"./some.js":false,"./filter.js":false,"./map.js":false,"./reduce.js":false,"./reverse.js":false,"./sort.js":"bV3FZ","./difference.js":false,"./disjoint.js":false,"./intersection.js":false,"./subset.js":false,"./superset.js":false,"./union.js":false,"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"iJojn":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "bisectRight", ()=>bisectRight); @@ -4253,45 +4186,57 @@ exports.default = bisectRight; },{"./ascending.js":"60o1Z","./bisector.js":"k5JwJ","./number.js":"gcMRK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60o1Z":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -exports.default = function(a, b) { - return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; -}; +function ascending(a, b) { + return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN; +} +exports.default = ascending; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k5JwJ":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _ascendingJs = require("./ascending.js"); var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); -exports.default = function(f) { - let delta = f; - let compare = f; - if (f.length === 1) { +var _descendingJs = require("./descending.js"); +var _descendingJsDefault = parcelHelpers.interopDefault(_descendingJs); +function bisector(f) { + let compare1, compare2, delta; + // If an accessor is specified, promote it to a comparator. In this case we + // can test whether the search value is (self-) comparable. We can’t do this + // for a comparator (except for specific, known comparators) because we can’t + // tell if the comparator is symmetric, and an asymmetric comparator can’t be + // used to test whether a single value is comparable. + if (f.length !== 2) { + compare1 = (0, _ascendingJsDefault.default); + compare2 = (d, x)=>(0, _ascendingJsDefault.default)(f(d), x); delta = (d, x)=>f(d) - x; - compare = ascendingComparator(f); + } else { + compare1 = f === (0, _ascendingJsDefault.default) || f === (0, _descendingJsDefault.default) ? f : zero; + compare2 = f; + delta = f; } - function left(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while(lo < hi){ - const mid = lo + hi >>> 1; - if (compare(a[mid], x) < 0) lo = mid + 1; - else hi = mid; + function left(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) < 0) lo = mid + 1; + else hi = mid; + }while (lo < hi); } return lo; } - function right(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; - while(lo < hi){ - const mid = lo + hi >>> 1; - if (compare(a[mid], x) > 0) hi = mid; - else lo = mid + 1; + function right(a, x, lo = 0, hi = a.length) { + if (lo < hi) { + if (compare1(x, x) !== 0) return hi; + do { + const mid = lo + hi >>> 1; + if (compare2(a[mid], x) <= 0) lo = mid + 1; + else hi = mid; + }while (lo < hi); } return lo; } - function center(a, x, lo, hi) { - if (lo == null) lo = 0; - if (hi == null) hi = a.length; + function center(a, x, lo = 0, hi = a.length) { const i = left(a, x, lo, hi - 1); return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i; } @@ -4300,18 +4245,28 @@ exports.default = function(f) { center, right }; -}; -function ascendingComparator(f) { - return (d, x)=>(0, _ascendingJsDefault.default)(f(d), x); +} +exports.default = bisector; +function zero() { + return 0; } -},{"./ascending.js":"60o1Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gcMRK":[function(require,module,exports) { +},{"./ascending.js":"60o1Z","./descending.js":"kIC2x","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kIC2x":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function descending(a, b) { + return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN; +} +exports.default = descending; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gcMRK":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "numbers", ()=>numbers); -exports.default = function(x) { +function number(x) { return x === null ? NaN : +x; -}; +} +exports.default = number; function* numbers(values, valueof) { if (valueof === undefined) { for (let value of values)if (value != null && (value = +value) >= value) yield value; @@ -4434,6 +4389,24 @@ function max(values, valueof) { } exports.default = max; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fm7WL":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function maxIndex(values, valueof) { + let max; + let maxIndex = -1; + let index = -1; + if (valueof === undefined) for (const value of values){ + ++index; + if (value != null && (max < value || max === undefined && value >= value)) max = value, maxIndex = index; + } + else { + for (let value1 of values)if ((value1 = valueof(value1, ++index, values)) != null && (max < value1 || max === undefined && value1 >= value1)) max = value1, maxIndex = index; + } + return maxIndex; +} +exports.default = maxIndex; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8HbAa":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -4453,24 +4426,37 @@ exports.default = mean; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ai1Kc":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "medianIndex", ()=>medianIndex); var _quantileJs = require("./quantile.js"); var _quantileJsDefault = parcelHelpers.interopDefault(_quantileJs); -exports.default = function(values, valueof) { +function median(values, valueof) { return (0, _quantileJsDefault.default)(values, 0.5, valueof); -}; +} +exports.default = median; +function medianIndex(values, valueof) { + return (0, _quantileJs.quantileIndex)(values, 0.5, valueof); +} },{"./quantile.js":"49cDh","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"49cDh":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "quantileSorted", ()=>quantileSorted); +parcelHelpers.export(exports, "quantileIndex", ()=>quantileIndex); var _maxJs = require("./max.js"); var _maxJsDefault = parcelHelpers.interopDefault(_maxJs); +var _maxIndexJs = require("./maxIndex.js"); +var _maxIndexJsDefault = parcelHelpers.interopDefault(_maxIndexJs); var _minJs = require("./min.js"); var _minJsDefault = parcelHelpers.interopDefault(_minJs); +var _minIndexJs = require("./minIndex.js"); +var _minIndexJsDefault = parcelHelpers.interopDefault(_minIndexJs); var _quickselectJs = require("./quickselect.js"); var _quickselectJsDefault = parcelHelpers.interopDefault(_quickselectJs); var _numberJs = require("./number.js"); var _numberJsDefault = parcelHelpers.interopDefault(_numberJs); +var _sortJs = require("./sort.js"); +var _greatestJs = require("./greatest.js"); +var _greatestJsDefault = parcelHelpers.interopDefault(_greatestJs); function quantile(values, p, valueof) { values = Float64Array.from((0, _numberJs.numbers)(values, valueof)); if (!(n = values.length)) return; @@ -4487,8 +4473,16 @@ function quantileSorted(values, p, valueof = (0, _numberJsDefault.default)) { var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = +valueof(values[i0], i0, values), value1 = +valueof(values[i0 + 1], i0 + 1, values); return value0 + (value1 - value0) * (i - i0); } +function quantileIndex(values, p, valueof) { + values = Float64Array.from((0, _numberJs.numbers)(values, valueof)); + if (!(n = values.length)) return; + if ((p = +p) <= 0 || n < 2) return (0, _minIndexJsDefault.default)(values); + if (p >= 1) return (0, _maxIndexJsDefault.default)(values); + var n, i = Math.floor((n - 1) * p), order = (i, j)=>(0, _sortJs.ascendingDefined)(values[i], values[j]), index = (0, _quickselectJsDefault.default)(Uint32Array.from(values, (_, i)=>i), i, 0, n - 1, order); + return (0, _greatestJsDefault.default)(index.subarray(0, i + 1), (i)=>values[i]); +} -},{"./max.js":"5fCPh","./min.js":"h0RAg","./quickselect.js":"doA4Q","./number.js":"gcMRK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"h0RAg":[function(require,module,exports) { +},{"./max.js":"5fCPh","./maxIndex.js":"fm7WL","./min.js":"h0RAg","./minIndex.js":"3rpRW","./quickselect.js":"doA4Q","./number.js":"gcMRK","./sort.js":"bV3FZ","./greatest.js":"c4GrS","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"h0RAg":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); function min(values, valueof) { @@ -4503,12 +4497,30 @@ function min(values, valueof) { } exports.default = min; +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3rpRW":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function minIndex(values, valueof) { + let min; + let minIndex = -1; + let index = -1; + if (valueof === undefined) for (const value of values){ + ++index; + if (value != null && (min > value || min === undefined && value >= value)) min = value, minIndex = index; + } + else { + for (let value1 of values)if ((value1 = valueof(value1, ++index, values)) != null && (min > value1 || min === undefined && value1 >= value1)) min = value1, minIndex = index; + } + return minIndex; +} +exports.default = minIndex; + },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"doA4Q":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _ascendingJs = require("./ascending.js"); -var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); -function quickselect(array, k, left = 0, right = array.length - 1, compare = (0, _ascendingJsDefault.default)) { +var _sortJs = require("./sort.js"); +function quickselect(array, k, left = 0, right = array.length - 1, compare) { + compare = compare === undefined ? (0, _sortJs.ascendingDefined) : (0, _sortJs.compareDefined)(compare); while(right > left){ if (right - left > 600) { const n = right - left + 1; @@ -4544,6 +4556,87 @@ function swap(array, i, j) { array[j] = t; } +},{"./sort.js":"bV3FZ","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bV3FZ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "compareDefined", ()=>compareDefined); +parcelHelpers.export(exports, "ascendingDefined", ()=>ascendingDefined); +var _ascendingJs = require("./ascending.js"); +var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); +var _permuteJs = require("./permute.js"); +var _permuteJsDefault = parcelHelpers.interopDefault(_permuteJs); +function sort(values, ...F) { + if (typeof values[Symbol.iterator] !== "function") throw new TypeError("values is not iterable"); + values = Array.from(values); + let [f] = F; + if (f && f.length !== 2 || F.length > 1) { + const index = Uint32Array.from(values, (d, i)=>i); + if (F.length > 1) { + F = F.map((f)=>values.map(f)); + index.sort((i, j)=>{ + for (const f of F){ + const c = ascendingDefined(f[i], f[j]); + if (c) return c; + } + }); + } else { + f = values.map(f); + index.sort((i, j)=>ascendingDefined(f[i], f[j])); + } + return (0, _permuteJsDefault.default)(values, index); + } + return values.sort(compareDefined(f)); +} +exports.default = sort; +function compareDefined(compare = (0, _ascendingJsDefault.default)) { + if (compare === (0, _ascendingJsDefault.default)) return ascendingDefined; + if (typeof compare !== "function") throw new TypeError("compare is not a function"); + return (a, b)=>{ + const x = compare(a, b); + if (x || x === 0) return x; + return (compare(b, b) === 0) - (compare(a, a) === 0); + }; +} +function ascendingDefined(a, b) { + return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0); +} + +},{"./ascending.js":"60o1Z","./permute.js":"3ydIg","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3ydIg":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +function permute(source, keys) { + return Array.from(keys, (key)=>source[key]); +} +exports.default = permute; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c4GrS":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _ascendingJs = require("./ascending.js"); +var _ascendingJsDefault = parcelHelpers.interopDefault(_ascendingJs); +function greatest(values, compare = (0, _ascendingJsDefault.default)) { + let max; + let defined = false; + if (compare.length === 1) { + let maxValue; + for (const element of values){ + const value = compare(element); + if (defined ? (0, _ascendingJsDefault.default)(value, maxValue) > 0 : (0, _ascendingJsDefault.default)(value, value) === 0) { + max = element; + maxValue = value; + defined = true; + } + } + } else { + for (const value1 of values)if (defined ? compare(value1, max) > 0 : compare(value1, value1) === 0) { + max = value1; + defined = true; + } + } + return max; +} +exports.default = greatest; + },{"./ascending.js":"60o1Z","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"d56l7":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -4555,22 +4648,16 @@ function merge(arrays) { } exports.default = merge; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3ydIg":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -exports.default = function(source, keys) { - return Array.from(keys, (key)=>source[key]); -}; - },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7QVPN":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -exports.default = function(start, stop, step) { +function range(start, stop, step) { start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step; var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range = new Array(n); while(++i < n)range[i] = start + i * step; return range; -}; +} +exports.default = range; },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hdZOC":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -4593,7 +4680,7 @@ parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "tickIncrement", ()=>tickIncrement); parcelHelpers.export(exports, "tickStep", ()=>tickStep); var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2); -exports.default = function(start, stop, count) { +function ticks(start, stop, count) { var reverse, i = -1, n, ticks, step; stop = +stop, start = +start, count = +count; if (start === stop && count > 0) return [ @@ -4617,7 +4704,8 @@ exports.default = function(start, stop, count) { } if (reverse) ticks.reverse(); return ticks; -}; +} +exports.default = ticks; function tickIncrement(start, stop, count) { var step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power); return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1); @@ -4697,7 +4785,7 @@ function intern_set({ _intern , _key }, value) { function intern_delete({ _intern , _key }, value) { const key = _key(value); if (_intern.has(key)) { - value = _intern.get(value); + value = _intern.get(key); _intern.delete(key); } return value; @@ -11057,8 +11145,8 @@ Extent.Definition = { }); if (!Number.isFinite(min) || !Number.isFinite(max)) { let name = (0, _vegaUtil.accessorName)(field); - if (name) name = ` for field "${name}"`; - pulse.dataflow.warn(`Infinite extent${name}: [${min}, ${max}]`); + if (name) name = ' for field "'.concat(name, '"'); + pulse.dataflow.warn("Infinite extent".concat(name, ": [").concat(min, ", ").concat(max, "]")); min = max = undefined; } this.value = [ @@ -12576,7 +12664,7 @@ TimeUnit.Definition = { transform (_, pulse) { const field = _.field, band = _.interval !== false, utc = _.timezone === "utc", floor = this._floor(_, pulse), offset = (utc ? (0, _vegaTime.utcInterval) : (0, _vegaTime.timeInterval))(floor.unit).offset, as = _.as || OUTPUT, u0 = as[0], u1 = as[1], step = floor.step; let min = floor.start || Infinity, max = floor.stop || -Infinity, flag = pulse.ADD; - if (_.modified() || pulse.modified((0, _vegaUtil.accessorFields)(field))) { + if (_.modified() || pulse.changed(pulse.REM) || pulse.modified((0, _vegaUtil.accessorFields)(field))) { pulse = pulse.reflow(true); flag = pulse.SOURCE; min = Infinity; @@ -14931,6 +15019,7 @@ function viewSizeLayout(view, group, viewBounds, _) { },{"vega-dataflow":"3NitK","vega-scenegraph":"jattk","vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"jattk":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "path", ()=>(0, _d3Path.path)); parcelHelpers.export(exports, "Bounds", ()=>Bounds); parcelHelpers.export(exports, "CanvasHandler", ()=>CanvasHandler); parcelHelpers.export(exports, "CanvasRenderer", ()=>CanvasRenderer); @@ -14968,7 +15057,7 @@ parcelHelpers.export(exports, "markup", ()=>markup); parcelHelpers.export(exports, "multiLineOffset", ()=>multiLineOffset); parcelHelpers.export(exports, "pathCurves", ()=>curves); parcelHelpers.export(exports, "pathEqual", ()=>pathEqual); -parcelHelpers.export(exports, "pathParse", ()=>pathParse); +parcelHelpers.export(exports, "pathParse", ()=>parse); parcelHelpers.export(exports, "pathRectangle", ()=>vg_rect); parcelHelpers.export(exports, "pathRender", ()=>pathRender); parcelHelpers.export(exports, "pathSymbols", ()=>symbols); @@ -15119,51 +15208,60 @@ function curves(type, orientation, tension) { } return curve; } -// Path parsing and rendering code adapted from fabric.js -- Thanks! -const cmdlen = { +const paramCounts = { m: 2, l: 2, h: 1, v: 1, + z: 0, c: 6, s: 4, q: 4, t: 2, a: 7 -}, regexp = [ - /([MLHVCSQTAZmlhvcsqtaz])/g, - /###/, - /(\.\d+)(\.\d)/g, - /(\d)([-+])/g, - /\s|,|###/ -]; -function pathParse(pathstr) { - const result = []; - let curr, chunks, parsed, param, cmd, len, i, j, n, m; // First, break path into command sequence - const path = pathstr.slice().replace(regexp[0], "###$1").split(regexp[1]).slice(1); // Next, parse each command in turn - for(i = 0, n = path.length; i < n; ++i){ - curr = path[i]; - chunks = curr.slice(1).trim().replace(regexp[2], "$1###$2").replace(regexp[3], "$1###$2").split(regexp[4]); - cmd = curr.charAt(0); - parsed = [ - cmd - ]; - for(j = 0, m = chunks.length; j < m; ++j)if ((param = +chunks[j]) === param) // not NaN - parsed.push(param); - len = cmdlen[cmd.toLowerCase()]; - if (parsed.length - 1 > len) { - const m1 = parsed.length; - j = 1; - result.push([ - cmd - ].concat(parsed.slice(j, j += len))); // handle implicit lineTo (#2803) - cmd = cmd === "M" ? "L" : cmd === "m" ? "l" : cmd; - for(; j < m1; j += len)result.push([ - cmd - ].concat(parsed.slice(j, j + len))); - } else result.push(parsed); +}; +const commandPattern = /[mlhvzcsqta]([^mlhvzcsqta]+|$)/gi; +const numberPattern = /^[+-]?(([0-9]*\.[0-9]+)|([0-9]+\.)|([0-9]+))([eE][+-]?[0-9]+)?/; +const spacePattern = /^((\s+,?\s*)|(,\s*))/; +const flagPattern = /^[01]/; +function parse(path) { + const commands = []; + const matches = path.match(commandPattern) || []; + matches.forEach((str)=>{ + let cmd = str[0]; + const type = cmd.toLowerCase(); // parse parameters + const paramCount = paramCounts[type]; + const params = parseParams(type, paramCount, str.slice(1).trim()); + const count = params.length; // error checking based on parameter count + if (count < paramCount || count && count % paramCount !== 0) throw Error("Invalid SVG path, incorrect parameter count"); + // register the command + commands.push([ + cmd, + ...params.slice(0, paramCount) + ]); // exit now if we're done, also handles zero-param 'z' + if (count === paramCount) return; + // handle implicit line-to + if (type === "m") cmd = cmd === "M" ? "L" : "l"; + // repeat command when given extended param list + for(let i = paramCount; i < count; i += paramCount)commands.push([ + cmd, + ...params.slice(i, i + paramCount) + ]); + }); + return commands; +} +function parseParams(type, paramCount, segment) { + const params = []; + for(let index = 0; paramCount && index < segment.length;)for(let i = 0; i < paramCount; ++i){ + const pattern = type === "a" && (i === 3 || i === 4) ? flagPattern : numberPattern; + const match = segment.slice(index).match(pattern); + if (match === null) throw Error("Invalid SVG path, incorrect parameter type"); + index += match[0].length; + params.push(+match[0]); + const ws = segment.slice(index).match(spacePattern); + if (ws !== null) index += ws[0].length; } - return result; + return params; } const DegToRad = Math.PI / 180; const Epsilon = 1e-14; @@ -15288,7 +15386,7 @@ function pathRender(context, path, l, t, sX, sY) { y = 0, // current y controlX = 0, // current control point x controlY = 0, // current control point y - tempX, tempY, tempControlX, tempControlY; + tempX, tempY, tempControlX, tempControlY, anchorX = 0, anchorY = 0; if (l == null) l = 0; if (t == null) t = 0; if (sX == null) sX = 1; @@ -15335,12 +15433,16 @@ function pathRender(context, path, l, t, sX, sY) { // moveTo, relative x += current[1]; y += current[2]; + anchorX = x; + anchorY = y; context.moveTo(x + l, y + t); break; case "M": // moveTo, absolute x = current[1]; y = current[2]; + anchorX = x; + anchorY = y; context.moveTo(x + l, y + t); break; case "c": @@ -15477,6 +15579,8 @@ function pathRender(context, path, l, t, sX, sY) { break; case "z": case "Z": + x = anchorX; + y = anchorY; context.closePath(); break; } @@ -15614,7 +15718,7 @@ function symbols(_) { var custom = {}; function customSymbol(path) { if (!(0, _vegaUtil.hasOwnProperty)(custom, path)) { - const parsed = pathParse(path); + const parsed = parse(path); custom[path] = { draw: function(context, size) { pathRender(context, parsed, 0, 0, Math.sqrt(size) / 2); @@ -16704,7 +16808,7 @@ function path$1(context, item) { var path = item.path; if (path == null) return true; var x = item.x || 0, y = item.y || 0, sx = item.scaleX || 1, sy = item.scaleY || 1, a = (item.angle || 0) * DegToRad, cache = item.pathCache; - if (!cache || cache.path !== path) (item.pathCache = cache = pathParse(path)).path = path; + if (!cache || cache.path !== path) (item.pathCache = cache = parse(path)).path = path; if (a && context.rotate && context.translate) { context.translate(x, y); context.rotate(a); @@ -16818,7 +16922,7 @@ function measureWidth(item, text) { return fontSize(item) <= 0 || !(text = textValue(item, text)) ? 0 : _measureWidth(text, font(item)); } function _measureWidth(text, currentFont) { - const key = `(${currentFont}) ${text}`; + const key = "(".concat(currentFont, ") ").concat(text); let width = widthCache.get(key); if (width === undefined) { context.font = currentFont; @@ -17275,10 +17379,10 @@ Handler.prototype = { }, /** * Add an event handler. Subclasses should override this method. - */ on () /*type, handler*/ {}, + */ on () {}, /** * Remove an event handler. Subclasses should override this method. - */ off () /*type, handler*/ {}, + */ off () {}, /** * Utility method for finding the array index of an event handler. * @param {Array} h - An array of registered event handlers. @@ -17439,7 +17543,7 @@ Renderer.prototype = { * This base class method does nothing. Subclasses that perform * incremental should implement this method. * @param {Item} item - The dirty item whose bounds should be redrawn. - */ dirty () /*item*/ {}, + */ dirty () {}, /** * Render an input scenegraph, potentially with a set of dirty items. * This method will perform an immediate rendering with available resources. @@ -17464,7 +17568,7 @@ Renderer.prototype = { * Internal rendering method. Renderer subclasses should override this * method to actually perform rendering. * @param {object} scene - The root mark of a scenegraph to render. - */ _render () /*scene*/ {}, + */ _render () {}, /** * Asynchronous rendering method. Similar to render, but returns a Promise * that resolves when all rendering is completed. Sometimes a renderer must @@ -17894,11 +17998,11 @@ const AriaGuides = { }, "title-text": { desc: "title", - caption: (item)=>`Title text '${titleCaption(item)}'` + caption: (item)=>"Title text '".concat(titleCaption(item), "'") }, "title-subtitle": { desc: "subtitle", - caption: (item)=>`Subtitle text '${titleCaption(item)}'` + caption: (item)=>"Subtitle text '".concat(titleCaption(item), "'") } }; // aria properties generated for mark item encoding channels const AriaEncode = { @@ -17914,7 +18018,7 @@ function ariaItemAttributes(emit, item) { const type = item.mark.marktype; emit(ARIA_LABEL, item.description); emit(ARIA_ROLE, item.ariaRole || (type === "group" ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL)); - emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || `${type} mark`); + emit(ARIA_ROLEDESCRIPTION, item.ariaRoleDescription || "".concat(type, " mark")); } } function ariaMarkAttributes(mark) { @@ -17925,7 +18029,7 @@ function ariaMarkAttributes(mark) { function ariaMark(mark) { const type = mark.marktype; const recurse = type === "group" || type === "text" || mark.items.some((_)=>_.description != null && _.aria !== false); - return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, `${type} mark container`, mark.description); + return bundle(recurse ? GRAPHICS_OBJECT : GRAPHICS_SYMBOL, "".concat(type, " mark container"), mark.description); } function ariaGuide(mark, opt) { try { @@ -17940,11 +18044,11 @@ function titleCaption(item) { } function axisCaption(item) { const datum = item.datum, orient = item.orient, title = datum.title ? extractTitle(item) : null, ctx = item.context, scale = ctx.scales[datum.scale].value, locale = ctx.dataflow.locale(), type = scale.type, xy = orient === "left" || orient === "right" ? "Y" : "X"; - return `${xy}-axis` + (title ? ` titled '${title}'` : "") + ` for a ${(0, _vegaScale.isDiscrete)(type) ? "discrete" : type} scale` + ` with ${(0, _vegaScale.domainCaption)(locale, scale, item)}`; + return "".concat(xy, "-axis") + (title ? " titled '".concat(title, "'") : "") + " for a ".concat((0, _vegaScale.isDiscrete)(type) ? "discrete" : type, " scale") + " with ".concat((0, _vegaScale.domainCaption)(locale, scale, item)); } function legendCaption(item) { - const datum = item.datum, title = datum.title ? extractTitle(item) : null, type = `${datum.type || ""} legend`.trim(), scales = datum.scales, props = Object.keys(scales), ctx = item.context, scale = ctx.scales[scales[props[0]]].value, locale = ctx.dataflow.locale(); - return capitalize(type) + (title ? ` titled '${title}'` : "") + ` for ${channelCaption(props)}` + ` with ${(0, _vegaScale.domainCaption)(locale, scale, item)}`; + const datum = item.datum, title = datum.title ? extractTitle(item) : null, type = "".concat(datum.type || "", " legend").trim(), scales = datum.scales, props = Object.keys(scales), ctx = item.context, scale = ctx.scales[scales[props[0]]].value, locale = ctx.dataflow.locale(); + return capitalize(type) + (title ? " titled '".concat(title, "'") : "") + " for ".concat(channelCaption(props)) + " with ".concat((0, _vegaScale.domainCaption)(locale, scale, item)); } function extractTitle(item) { try { @@ -17966,24 +18070,25 @@ function markup() { let buf = "", outer = "", inner = ""; const stack = [], clear = ()=>outer = inner = "", push = (tag)=>{ if (outer) { - buf += `${outer}>${inner}`; + buf += "".concat(outer, ">").concat(inner); clear(); } stack.push(tag); }, attr = (name, value)=>{ - if (value != null) outer += ` ${name}="${attrText(value)}"`; + if (value != null) outer += " ".concat(name, '="').concat(attrText(value), '"'); return m; }, m = { - open (tag, ...attrs) { + open (tag) { push(tag); outer = "<" + tag; + for(var _len = arguments.length, attrs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)attrs[_key - 1] = arguments[_key]; for (const set of attrs)for(const key in set)attr(key, set[key]); return m; }, close () { const tag = stack.pop(); - if (outer) buf += outer + (inner ? `>${inner}` : "/>"); - else buf += ``; + if (outer) buf += outer + (inner ? ">".concat(inner, "") : "/>"); + else buf += ""); clear(); return m; }, @@ -18001,16 +18106,13 @@ function _serialize(m, node) { for(let i = 0; i < n; ++i)m.attr(attrs[i].name, attrs[i].value); } if (node.hasChildNodes()) { - const children = node.childNodes, n1 = children.length; - for(let i1 = 0; i1 < n1; i1++){ - const child = children[i1]; - child.nodeType === 3 // text node - ? m.text(child.nodeValue) : _serialize(m, child); - } + const children = node.childNodes; + for (const child of children)child.nodeType === 3 // text node + ? m.text(child.nodeValue) : _serialize(m, child); } return m.close(); } -const styles = { +const stylesAttr = { fill: "fill", fillOpacity: "fill-opacity", stroke: "stroke", @@ -18021,7 +18123,9 @@ const styles = { strokeDash: "stroke-dasharray", strokeDashOffset: "stroke-dashoffset", strokeMiterLimit: "stroke-miterlimit", - opacity: "opacity", + opacity: "opacity" +}; +const stylesCss = { blend: "mix-blend-mode" }; // ensure miter limit default is consistent with canvas (#2498) const rootAttributes = { @@ -18088,9 +18192,9 @@ const base = Renderer.prototype; setAttributes(this._svg, { width: this._width * this._scale, height: this._height * this._scale, - viewBox: `0 0 ${this._width} ${this._height}` + viewBox: "0 0 ".concat(this._width, " ").concat(this._height) }); - this._root.setAttribute("transform", `translate(${this._origin})`); + this._root.setAttribute("transform", "translate(".concat(this._origin, ")")); } this._dirty = []; return this; @@ -18153,7 +18257,7 @@ const base = Renderer.prototype; * Check if a mark item is considered dirty. * @param {Item} item - The mark item. */ isDirty (item) { - return this._dirtyAll || !item._svg || item.dirty === this._dirtyID; + return this._dirtyAll || !item._svg || !item._svg.ownerSVGElement || item.dirty === this._dirtyID; }, /** * Internal method to check dirty status and, if possible, @@ -18215,13 +18319,13 @@ const base = Renderer.prototype; */ mark (el, scene, prev) { if (!this.isDirty(scene)) return scene._svg; const svg = this._svg, mdef = Marks[scene.marktype], events = scene.interactive === false ? "none" : null, isGroup = mdef.tag === "g"; - let sibling = null, i = 0; const parent = bind(scene, el, prev, "g", svg); parent.setAttribute("class", cssClass(scene)); // apply aria attributes to parent container element const aria = ariaMarkAttributes(scene); for(const key in aria)setAttribute(parent, key, aria[key]); if (!isGroup) setAttribute(parent, "pointer-events", events); setAttribute(parent, "clip-path", scene.clip ? clip$1(this, scene, scene.group) : null); + let sibling = null, i = 0; const process = (item)=>{ const dirty = this.isDirty(item), node = bind(item, parent, sibling, mdef.tag, svg); if (dirty) { @@ -18260,10 +18364,10 @@ const base = Renderer.prototype; * @param {Item} item - The mark item. */ style (el, item) { if (item == null) return; - for(const prop in styles){ + for(const prop in stylesAttr){ let value = prop === "font" ? fontFamily(item) : item[prop]; if (value === values[prop]) continue; - const name = styles[prop]; + const name = stylesAttr[prop]; if (value == null) el.removeAttribute(name); else { if (isGradient(value)) value = gradientRef(value, this._defs.gradient, href()); @@ -18271,6 +18375,7 @@ const base = Renderer.prototype; } values[prop] = value; } + for(const prop1 in stylesCss)setStyle(el, stylesCss[prop1], item[prop1]); }, /** * Render SVG defs, as needed. @@ -18323,7 +18428,7 @@ function updateGradient(el, grad, index) { setAttributes(pt, { width: 1, height: 1, - fill: `url(${href()}#${grad.id})` + fill: "url(".concat(href(), "#").concat(grad.id, ")") }); el = domChild(el, index++, "radialGradient", svgns); setAttributes(el, { @@ -18373,6 +18478,8 @@ function updateClipping(el, clip, index) { return index + 1; } // Recursively process group contents. function recurse(renderer, el, group) { + // child 'g' element is second to last among children (path, g, path) + // other children here are foreground and background path elements el = el.lastChild.previousSibling; let prev, idx = 0; visit(group, (item)=>{ @@ -18549,7 +18656,7 @@ function SVGStringRenderer(loader) { class: "marks", width: this._width * this._scale, height: this._height * this._scale, - viewBox: `0 0 ${this._width} ${this._height}` + viewBox: "0 0 ".concat(this._width, " ").concat(this._height) })); // background, if defined const bg = this._bgcolor; if (bg && bg !== "transparent" && bg !== "none") m.open("rect", { @@ -18725,6 +18832,7 @@ function SVGStringRenderer(loader) { } }); // Helper function for attr for style presentation attributes function style(s, item, scene, tag, defs) { + let styleList; if (item == null) return s; if (tag === "bgrect" && scene.interactive === false) s["pointer-events"] = "none"; if (tag === "bgfore") { @@ -18732,7 +18840,10 @@ function style(s, item, scene, tag, defs) { s.display = "none"; if (item.fill !== null) return s; } - if (tag === "image" && item.smooth === false) s.style = "image-rendering: optimizeSpeed; image-rendering: pixelated;"; + if (tag === "image" && item.smooth === false) styleList = [ + "image-rendering: optimizeSpeed;", + "image-rendering: pixelated;" + ]; if (tag === "text") { s["font-family"] = fontFamily(item); s["font-size"] = fontSize(item) + "px"; @@ -18740,15 +18851,23 @@ function style(s, item, scene, tag, defs) { s["font-variant"] = item.fontVariant; s["font-weight"] = item.fontWeight; } - for(const prop in styles){ + for(const prop in stylesAttr){ let value = item[prop]; - const name = styles[prop]; + const name = stylesAttr[prop]; if (value === "transparent" && (name === "fill" || name === "stroke")) ; else if (value != null) { if (isGradient(value)) value = gradientRef(value, defs.gradient, ""); s[name] = value; } } + for(const prop1 in stylesCss){ + const value1 = item[prop1]; + if (value1 != null) { + styleList = styleList || []; + styleList.push("".concat(stylesCss[prop1], ": ").concat(value1, ";")); + } + } + if (styleList) s.style = styleList.join(" "); return s; } const Canvas = "canvas"; @@ -18837,7 +18956,7 @@ function sceneEqual(a, b, key) { return a === b ? true : key === "path" ? pathEqual(a, b) : a instanceof Date && b instanceof Date ? +a === +b : (0, _vegaUtil.isNumber)(a) && (0, _vegaUtil.isNumber)(b) ? Math.abs(a - b) <= TOLERANCE : !a || !b || !(0, _vegaUtil.isObject)(a) && !(0, _vegaUtil.isObject)(b) ? a == b : objectEqual(a, b); } function pathEqual(a, b) { - return sceneEqual(pathParse(a), pathParse(b)); + return sceneEqual(parse(a), parse(b)); } function objectEqual(a, b) { var ka = Object.keys(a), kb = Object.keys(b), key, i; @@ -18872,18 +18991,27 @@ parcelHelpers.export(exports, "lineRadial", ()=>(0, _lineRadialJsDefault.default ; parcelHelpers.export(exports, "radialLine", ()=>(0, _lineRadialJsDefault.default)); parcelHelpers.export(exports, "pointRadial", ()=>(0, _pointRadialJsDefault.default)); -parcelHelpers.export(exports, "linkHorizontal", ()=>(0, _indexJs.linkHorizontal)); -parcelHelpers.export(exports, "linkVertical", ()=>(0, _indexJs.linkVertical)); -parcelHelpers.export(exports, "linkRadial", ()=>(0, _indexJs.linkRadial)); +parcelHelpers.export(exports, "link", ()=>(0, _linkJs.link)); +parcelHelpers.export(exports, "linkHorizontal", ()=>(0, _linkJs.linkHorizontal)); +parcelHelpers.export(exports, "linkVertical", ()=>(0, _linkJs.linkVertical)); +parcelHelpers.export(exports, "linkRadial", ()=>(0, _linkJs.linkRadial)); parcelHelpers.export(exports, "symbol", ()=>(0, _symbolJsDefault.default)); -parcelHelpers.export(exports, "symbols", ()=>(0, _symbolJs.symbols)); +parcelHelpers.export(exports, "symbolsStroke", ()=>(0, _symbolJs.symbolsStroke)); +parcelHelpers.export(exports, "symbolsFill", ()=>(0, _symbolJs.symbolsFill)); +parcelHelpers.export(exports, "symbols", ()=>(0, _symbolJs.symbolsFill)); +parcelHelpers.export(exports, "symbolAsterisk", ()=>(0, _asteriskJsDefault.default)); parcelHelpers.export(exports, "symbolCircle", ()=>(0, _circleJsDefault.default)); parcelHelpers.export(exports, "symbolCross", ()=>(0, _crossJsDefault.default)); parcelHelpers.export(exports, "symbolDiamond", ()=>(0, _diamondJsDefault.default)); +parcelHelpers.export(exports, "symbolDiamond2", ()=>(0, _diamond2JsDefault.default)); +parcelHelpers.export(exports, "symbolPlus", ()=>(0, _plusJsDefault.default)); parcelHelpers.export(exports, "symbolSquare", ()=>(0, _squareJsDefault.default)); +parcelHelpers.export(exports, "symbolSquare2", ()=>(0, _square2JsDefault.default)); parcelHelpers.export(exports, "symbolStar", ()=>(0, _starJsDefault.default)); parcelHelpers.export(exports, "symbolTriangle", ()=>(0, _triangleJsDefault.default)); +parcelHelpers.export(exports, "symbolTriangle2", ()=>(0, _triangle2JsDefault.default)); parcelHelpers.export(exports, "symbolWye", ()=>(0, _wyeJsDefault.default)); +parcelHelpers.export(exports, "symbolX", ()=>(0, _xJsDefault.default)); parcelHelpers.export(exports, "curveBasisClosed", ()=>(0, _basisClosedJsDefault.default)); parcelHelpers.export(exports, "curveBasisOpen", ()=>(0, _basisOpenJsDefault.default)); parcelHelpers.export(exports, "curveBasis", ()=>(0, _basisJsDefault.default)); @@ -18930,23 +19058,35 @@ var _lineRadialJs = require("./lineRadial.js"); var _lineRadialJsDefault = parcelHelpers.interopDefault(_lineRadialJs); var _pointRadialJs = require("./pointRadial.js"); var _pointRadialJsDefault = parcelHelpers.interopDefault(_pointRadialJs); -var _indexJs = require("./link/index.js"); +var _linkJs = require("./link.js"); var _symbolJs = require("./symbol.js"); var _symbolJsDefault = parcelHelpers.interopDefault(_symbolJs); +var _asteriskJs = require("./symbol/asterisk.js"); +var _asteriskJsDefault = parcelHelpers.interopDefault(_asteriskJs); var _circleJs = require("./symbol/circle.js"); var _circleJsDefault = parcelHelpers.interopDefault(_circleJs); var _crossJs = require("./symbol/cross.js"); var _crossJsDefault = parcelHelpers.interopDefault(_crossJs); var _diamondJs = require("./symbol/diamond.js"); var _diamondJsDefault = parcelHelpers.interopDefault(_diamondJs); +var _diamond2Js = require("./symbol/diamond2.js"); +var _diamond2JsDefault = parcelHelpers.interopDefault(_diamond2Js); +var _plusJs = require("./symbol/plus.js"); +var _plusJsDefault = parcelHelpers.interopDefault(_plusJs); var _squareJs = require("./symbol/square.js"); var _squareJsDefault = parcelHelpers.interopDefault(_squareJs); +var _square2Js = require("./symbol/square2.js"); +var _square2JsDefault = parcelHelpers.interopDefault(_square2Js); var _starJs = require("./symbol/star.js"); var _starJsDefault = parcelHelpers.interopDefault(_starJs); var _triangleJs = require("./symbol/triangle.js"); var _triangleJsDefault = parcelHelpers.interopDefault(_triangleJs); +var _triangle2Js = require("./symbol/triangle2.js"); +var _triangle2JsDefault = parcelHelpers.interopDefault(_triangle2Js); var _wyeJs = require("./symbol/wye.js"); var _wyeJsDefault = parcelHelpers.interopDefault(_wyeJs); +var _xJs = require("./symbol/x.js"); +var _xJsDefault = parcelHelpers.interopDefault(_xJs); var _basisClosedJs = require("./curve/basisClosed.js"); var _basisClosedJsDefault = parcelHelpers.interopDefault(_basisClosedJs); var _basisOpenJs = require("./curve/basisOpen.js"); @@ -19002,7 +19142,7 @@ var _noneJsDefault1 = parcelHelpers.interopDefault(_noneJs1); var _reverseJs = require("./order/reverse.js"); var _reverseJsDefault = parcelHelpers.interopDefault(_reverseJs); -},{"./arc.js":"c3ptb","./area.js":"lblzF","./line.js":"jVTJi","./pie.js":false,"./areaRadial.js":false,"./lineRadial.js":false,"./pointRadial.js":false,"./link/index.js":false,"./symbol.js":"bcejp","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/square.js":"fXRAH","./symbol/star.js":"8nJiq","./symbol/triangle.js":"bClaq","./symbol/wye.js":"2D9bg","./curve/basisClosed.js":"3uf9r","./curve/basisOpen.js":"4LPKP","./curve/basis.js":"gNfFM","./curve/bump.js":false,"./curve/bundle.js":"7Gw48","./curve/cardinalClosed.js":"e0Ty2","./curve/cardinalOpen.js":"4cTvH","./curve/cardinal.js":"i0afA","./curve/catmullRomClosed.js":"kfNnJ","./curve/catmullRomOpen.js":"amodp","./curve/catmullRom.js":"8d6GP","./curve/linearClosed.js":"gpcM0","./curve/linear.js":"huz8f","./curve/monotone.js":"kghkb","./curve/natural.js":"4f94Q","./curve/step.js":"l5kmS","./stack.js":false,"./offset/expand.js":false,"./offset/diverging.js":false,"./offset/none.js":false,"./offset/silhouette.js":false,"./offset/wiggle.js":false,"./order/appearance.js":false,"./order/ascending.js":false,"./order/descending.js":false,"./order/insideOut.js":false,"./order/none.js":false,"./order/reverse.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c3ptb":[function(require,module,exports) { +},{"./arc.js":"c3ptb","./area.js":"lblzF","./line.js":"jVTJi","./pie.js":false,"./areaRadial.js":false,"./lineRadial.js":false,"./pointRadial.js":false,"./link.js":false,"./symbol.js":"bcejp","./symbol/asterisk.js":"kHR3A","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/diamond2.js":"WsFhi","./symbol/plus.js":"a9FVq","./symbol/square.js":"fXRAH","./symbol/square2.js":"69bxi","./symbol/star.js":"8nJiq","./symbol/triangle.js":"bClaq","./symbol/triangle2.js":"8s1uD","./symbol/wye.js":"2D9bg","./symbol/x.js":"fnfky","./curve/basisClosed.js":"3uf9r","./curve/basisOpen.js":"4LPKP","./curve/basis.js":"gNfFM","./curve/bump.js":false,"./curve/bundle.js":"7Gw48","./curve/cardinalClosed.js":"e0Ty2","./curve/cardinalOpen.js":"4cTvH","./curve/cardinal.js":"i0afA","./curve/catmullRomClosed.js":"kfNnJ","./curve/catmullRomOpen.js":"amodp","./curve/catmullRom.js":"8d6GP","./curve/linearClosed.js":"gpcM0","./curve/linear.js":"huz8f","./curve/monotone.js":"kghkb","./curve/natural.js":"4f94Q","./curve/step.js":"l5kmS","./stack.js":false,"./offset/expand.js":false,"./offset/diverging.js":false,"./offset/none.js":false,"./offset/silhouette.js":false,"./offset/wiggle.js":false,"./order/appearance.js":false,"./order/ascending.js":false,"./order/descending.js":false,"./order/insideOut.js":false,"./order/none.js":false,"./order/reverse.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"c3ptb":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _d3Path = require("d3-path"); @@ -19257,17 +19397,17 @@ parcelHelpers.export(exports, "halfPi", ()=>halfPi); parcelHelpers.export(exports, "tau", ()=>tau); parcelHelpers.export(exports, "acos", ()=>acos); parcelHelpers.export(exports, "asin", ()=>asin); -var abs = Math.abs; -var atan2 = Math.atan2; -var cos = Math.cos; -var max = Math.max; -var min = Math.min; -var sin = Math.sin; -var sqrt = Math.sqrt; -var epsilon = 1e-12; -var pi = Math.PI; -var halfPi = pi / 2; -var tau = 2 * pi; +const abs = Math.abs; +const atan2 = Math.atan2; +const cos = Math.cos; +const max = Math.max; +const min = Math.min; +const sin = Math.sin; +const sqrt = Math.sqrt; +const epsilon = 1e-12; +const pi = Math.PI; +const halfPi = pi / 2; +const tau = 2 * pi; function acos(x) { return x > 1 ? 0 : x < -1 ? pi : Math.acos(x); } @@ -19397,7 +19537,7 @@ Linear.prototype = { this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; case 1: - this._point = 2; // proceed + this._point = 2; // falls through default: this._context.lineTo(x, y); break; @@ -19468,25 +19608,38 @@ function y(p) { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bcejp":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "symbols", ()=>symbols); +parcelHelpers.export(exports, "symbolsFill", ()=>symbolsFill); +parcelHelpers.export(exports, "symbolsStroke", ()=>symbolsStroke); var _d3Path = require("d3-path"); +var _constantJs = require("./constant.js"); +var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); +var _asteriskJs = require("./symbol/asterisk.js"); +var _asteriskJsDefault = parcelHelpers.interopDefault(_asteriskJs); var _circleJs = require("./symbol/circle.js"); var _circleJsDefault = parcelHelpers.interopDefault(_circleJs); var _crossJs = require("./symbol/cross.js"); var _crossJsDefault = parcelHelpers.interopDefault(_crossJs); var _diamondJs = require("./symbol/diamond.js"); var _diamondJsDefault = parcelHelpers.interopDefault(_diamondJs); -var _starJs = require("./symbol/star.js"); -var _starJsDefault = parcelHelpers.interopDefault(_starJs); +var _diamond2Js = require("./symbol/diamond2.js"); +var _diamond2JsDefault = parcelHelpers.interopDefault(_diamond2Js); +var _plusJs = require("./symbol/plus.js"); +var _plusJsDefault = parcelHelpers.interopDefault(_plusJs); var _squareJs = require("./symbol/square.js"); var _squareJsDefault = parcelHelpers.interopDefault(_squareJs); +var _square2Js = require("./symbol/square2.js"); +var _square2JsDefault = parcelHelpers.interopDefault(_square2Js); +var _starJs = require("./symbol/star.js"); +var _starJsDefault = parcelHelpers.interopDefault(_starJs); var _triangleJs = require("./symbol/triangle.js"); var _triangleJsDefault = parcelHelpers.interopDefault(_triangleJs); +var _triangle2Js = require("./symbol/triangle2.js"); +var _triangle2JsDefault = parcelHelpers.interopDefault(_triangle2Js); var _wyeJs = require("./symbol/wye.js"); var _wyeJsDefault = parcelHelpers.interopDefault(_wyeJs); -var _constantJs = require("./constant.js"); -var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); -var symbols = [ +var _xJs = require("./symbol/x.js"); +var _xJsDefault = parcelHelpers.interopDefault(_xJs); +const symbolsFill = [ (0, _circleJsDefault.default), (0, _crossJsDefault.default), (0, _diamondJsDefault.default), @@ -19495,12 +19648,21 @@ var symbols = [ (0, _triangleJsDefault.default), (0, _wyeJsDefault.default) ]; -exports.default = function(type, size) { - var context = null; +const symbolsStroke = [ + (0, _circleJsDefault.default), + (0, _plusJsDefault.default), + (0, _xJsDefault.default), + (0, _triangle2JsDefault.default), + (0, _asteriskJsDefault.default), + (0, _square2JsDefault.default), + (0, _diamond2JsDefault.default) +]; +function Symbol(type, size) { + let context = null; type = typeof type === "function" ? type : (0, _constantJsDefault.default)(type || (0, _circleJsDefault.default)); size = typeof size === "function" ? size : (0, _constantJsDefault.default)(size === undefined ? 64 : +size); function symbol() { - var buffer; + let buffer; if (!context) context = buffer = (0, _d3Path.path)(); type.apply(this, arguments).draw(context, +size.apply(this, arguments)); if (buffer) return context = null, buffer + "" || null; @@ -19515,15 +19677,35 @@ exports.default = function(type, size) { return arguments.length ? (context = _ == null ? null : _, symbol) : context; }; return symbol; +} +exports.default = Symbol; + +},{"d3-path":"cRa94","./constant.js":"12DQf","./symbol/asterisk.js":"kHR3A","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/diamond2.js":"WsFhi","./symbol/plus.js":"a9FVq","./symbol/square.js":"fXRAH","./symbol/square2.js":"69bxi","./symbol/star.js":"8nJiq","./symbol/triangle.js":"bClaq","./symbol/triangle2.js":"8s1uD","./symbol/wye.js":"2D9bg","./symbol/x.js":"fnfky","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kHR3A":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size + (0, _mathJs.min)(size / 28, 0.75)) * 0.59436; + const t = r / 2; + const u = t * sqrt3; + context.moveTo(0, r); + context.lineTo(0, -r); + context.moveTo(-u, -t); + context.lineTo(u, t); + context.moveTo(-u, t); + context.lineTo(u, -t); + } }; -},{"d3-path":"cRa94","./symbol/circle.js":"7RXTA","./symbol/cross.js":"4cmA2","./symbol/diamond.js":"1gK3j","./symbol/star.js":"8nJiq","./symbol/square.js":"fXRAH","./symbol/triangle.js":"bClaq","./symbol/wye.js":"2D9bg","./constant.js":"12DQf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7RXTA":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"7RXTA":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / (0, _mathJs.pi)); + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / (0, _mathJs.pi)); context.moveTo(r, 0); context.arc(0, 0, r, 0, (0, _mathJs.tau)); } @@ -19532,9 +19714,10 @@ exports.default = { },{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4cmA2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / 5) / 2; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / 5) / 2; context.moveTo(-3 * r, -r); context.lineTo(-r, -r); context.lineTo(-r, -3 * r); @@ -19551,13 +19734,16 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1gK3j":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1gK3j":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2; +var _mathJs = require("../math.js"); +const tan30 = (0, _mathJs.sqrt)(1 / 3); +const tan30_2 = tan30 * 2; exports.default = { - draw: function(context, size) { - var y = Math.sqrt(size / tan30_2), x = y * tan30; + draw (context, size) { + const y = (0, _mathJs.sqrt)(size / tan30_2); + const x = y * tan30; context.moveTo(0, -y); context.lineTo(x, 0); context.lineTo(0, y); @@ -19566,42 +19752,96 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8nJiq":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"WsFhi":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _mathJs = require("../math.js"); -var ka = 0.89081309152928522810, kr = Math.sin((0, _mathJs.pi) / 10) / Math.sin(7 * (0, _mathJs.pi) / 10), kx = Math.sin((0, _mathJs.tau) / 10) * kr, ky = -Math.cos((0, _mathJs.tau) / 10) * kr; exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size * ka), x = kx * r, y = ky * r; + draw (context, size) { + const r = (0, _mathJs.sqrt)(size) * 0.62625; context.moveTo(0, -r); - context.lineTo(x, y); - for(var i = 1; i < 5; ++i){ - var a = (0, _mathJs.tau) * i / 5, c = Math.cos(a), s = Math.sin(a); - context.lineTo(s * r, -c * r); - context.lineTo(c * x - s * y, s * x + c * y); - } + context.lineTo(r, 0); + context.lineTo(0, r); + context.lineTo(-r, 0); context.closePath(); } }; +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"a9FVq":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size - (0, _mathJs.min)(size / 7, 2)) * 0.87559; + context.moveTo(-r, 0); + context.lineTo(r, 0); + context.moveTo(0, r); + context.lineTo(0, -r); + } +}; + },{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fXRAH":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var w = Math.sqrt(size), x = -w / 2; + draw (context, size) { + const w = (0, _mathJs.sqrt)(size); + const x = -w / 2; context.rect(x, x, w, w); } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bClaq":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"69bxi":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var sqrt3 = Math.sqrt(3); +var _mathJs = require("../math.js"); exports.default = { - draw: function(context, size) { - var y = -Math.sqrt(size / (sqrt3 * 3)); + draw (context, size) { + const r = (0, _mathJs.sqrt)(size) * 0.4431; + context.moveTo(r, r); + context.lineTo(r, -r); + context.lineTo(-r, -r); + context.lineTo(-r, r); + context.closePath(); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8nJiq":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const ka = 0.89081309152928522810; +const kr = (0, _mathJs.sin)((0, _mathJs.pi) / 10) / (0, _mathJs.sin)(7 * (0, _mathJs.pi) / 10); +const kx = (0, _mathJs.sin)((0, _mathJs.tau) / 10) * kr; +const ky = -(0, _mathJs.cos)((0, _mathJs.tau) / 10) * kr; +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size * ka); + const x = kx * r; + const y = ky * r; + context.moveTo(0, -r); + context.lineTo(x, y); + for(let i = 1; i < 5; ++i){ + const a = (0, _mathJs.tau) * i / 5; + const c = (0, _mathJs.cos)(a); + const s = (0, _mathJs.sin)(a); + context.lineTo(s * r, -c * r); + context.lineTo(c * x - s * y, s * x + c * y); + } + context.closePath(); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"bClaq":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); +exports.default = { + draw (context, size) { + const y = -(0, _mathJs.sqrt)(size / (sqrt3 * 3)); context.moveTo(0, y * 2); context.lineTo(-sqrt3 * y, -y); context.lineTo(sqrt3 * y, -y); @@ -19609,13 +19849,37 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2D9bg":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8s1uD":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3; +var _mathJs = require("../math.js"); +const sqrt3 = (0, _mathJs.sqrt)(3); exports.default = { - draw: function(context, size) { - var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1; + draw (context, size) { + const s = (0, _mathJs.sqrt)(size) * 0.6824; + const t = s / 2; + const u = s * sqrt3 / 2; // cos(Math.PI / 6) + context.moveTo(0, -s); + context.lineTo(u, t); + context.lineTo(-u, t); + context.closePath(); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2D9bg":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +const c = -0.5; +const s = (0, _mathJs.sqrt)(3) / 2; +const k = 1 / (0, _mathJs.sqrt)(12); +const a = (k / 2 + 1) * 3; +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size / a); + const x0 = r / 2, y0 = r * k; + const x1 = x0, y1 = r * k + r; + const x2 = -x1, y2 = y1; context.moveTo(x0, y0); context.lineTo(x1, y1); context.lineTo(x2, y2); @@ -19629,7 +19893,21 @@ exports.default = { } }; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3uf9r":[function(require,module,exports) { +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fnfky":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _mathJs = require("../math.js"); +exports.default = { + draw (context, size) { + const r = (0, _mathJs.sqrt)(size - (0, _mathJs.min)(size / 6, 1.7)) * 0.6189; + context.moveTo(-r, -r); + context.lineTo(r, r); + context.moveTo(-r, r); + context.lineTo(r, -r); + } +}; + +},{"../math.js":"OHDSf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3uf9r":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _noopJs = require("../noop.js"); @@ -19721,7 +19999,7 @@ Basis.prototype = { lineEnd: function() { switch(this._point){ case 3: - point(this, this._x1, this._y1); // proceed + point(this, this._x1, this._y1); // falls through case 2: this._context.lineTo(this._x1, this._y1); break; @@ -19741,7 +20019,7 @@ Basis.prototype = { break; case 2: this._point = 3; - this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed + this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through default: point(this, x, y); break; @@ -19791,7 +20069,7 @@ BasisOpen.prototype = { this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _basisJs.point)(this, x, y); break; @@ -19960,7 +20238,7 @@ Cardinal.prototype = { this._x1 = x, this._y1 = y; break; case 2: - this._point = 3; // proceed + this._point = 3; // falls through default: point(this, x, y); break; @@ -20017,7 +20295,7 @@ CardinalOpen.prototype = { this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _cardinalJs.point)(this, x, y); break; @@ -20172,7 +20450,7 @@ CatmullRom.prototype = { this._point = 2; break; case 2: - this._point = 3; // proceed + this._point = 3; // falls through default: point(this, x, y); break; @@ -20235,7 +20513,7 @@ CatmullRomOpen.prototype = { this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break; case 3: - this._point = 4; // proceed + this._point = 4; // falls through default: (0, _catmullRomJs.point)(this, x, y); break; @@ -20481,7 +20759,7 @@ Step.prototype = { this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break; case 1: - this._point = 2; // proceed + this._point = 2; // falls through default: if (this._t <= 0) { this._context.lineTo(this._x, y); @@ -20825,80 +21103,80 @@ function scale(type, scale, metadata) { return this; } else return isValidScaleType(type) ? scales[type] : undefined; } // identity scale -scale(Identity, (0, _d3Scale.scaleIdentity)); // continuous scales -scale(Linear, (0, _d3Scale.scaleLinear), Continuous); -scale(Log, (0, _d3Scale.scaleLog), [ +scale(Identity, _d3Scale.scaleIdentity); // continuous scales +scale(Linear, _d3Scale.scaleLinear, Continuous); +scale(Log, _d3Scale.scaleLog, [ Continuous, Log ]); -scale(Pow, (0, _d3Scale.scalePow), Continuous); -scale(Sqrt, (0, _d3Scale.scaleSqrt), Continuous); -scale(Symlog, (0, _d3Scale.scaleSymlog), Continuous); -scale(Time, (0, _d3Scale.scaleTime), [ +scale(Pow, _d3Scale.scalePow, Continuous); +scale(Sqrt, _d3Scale.scaleSqrt, Continuous); +scale(Symlog, _d3Scale.scaleSymlog, Continuous); +scale(Time, _d3Scale.scaleTime, [ Continuous, Temporal ]); -scale(UTC, (0, _d3Scale.scaleUtc), [ +scale(UTC, _d3Scale.scaleUtc, [ Continuous, Temporal ]); // sequential scales -scale(Sequential, (0, _d3Scale.scaleSequential), [ +scale(Sequential, _d3Scale.scaleSequential, [ Continuous, Interpolating ]); // backwards compat -scale("".concat(Sequential, "-").concat(Linear), (0, _d3Scale.scaleSequential), [ +scale("".concat(Sequential, "-").concat(Linear), _d3Scale.scaleSequential, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Log), (0, _d3Scale.scaleSequentialLog), [ +scale("".concat(Sequential, "-").concat(Log), _d3Scale.scaleSequentialLog, [ Continuous, Interpolating, Log ]); -scale("".concat(Sequential, "-").concat(Pow), (0, _d3Scale.scaleSequentialPow), [ +scale("".concat(Sequential, "-").concat(Pow), _d3Scale.scaleSequentialPow, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Sqrt), (0, _d3Scale.scaleSequentialSqrt), [ +scale("".concat(Sequential, "-").concat(Sqrt), _d3Scale.scaleSequentialSqrt, [ Continuous, Interpolating ]); -scale("".concat(Sequential, "-").concat(Symlog), (0, _d3Scale.scaleSequentialSymlog), [ +scale("".concat(Sequential, "-").concat(Symlog), _d3Scale.scaleSequentialSymlog, [ Continuous, Interpolating ]); // diverging scales -scale("".concat(Diverging, "-").concat(Linear), (0, _d3Scale.scaleDiverging), [ +scale("".concat(Diverging, "-").concat(Linear), _d3Scale.scaleDiverging, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Log), (0, _d3Scale.scaleDivergingLog), [ +scale("".concat(Diverging, "-").concat(Log), _d3Scale.scaleDivergingLog, [ Continuous, Interpolating, Log ]); -scale("".concat(Diverging, "-").concat(Pow), (0, _d3Scale.scaleDivergingPow), [ +scale("".concat(Diverging, "-").concat(Pow), _d3Scale.scaleDivergingPow, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Sqrt), (0, _d3Scale.scaleDivergingSqrt), [ +scale("".concat(Diverging, "-").concat(Sqrt), _d3Scale.scaleDivergingSqrt, [ Continuous, Interpolating ]); -scale("".concat(Diverging, "-").concat(Symlog), (0, _d3Scale.scaleDivergingSymlog), [ +scale("".concat(Diverging, "-").concat(Symlog), _d3Scale.scaleDivergingSymlog, [ Continuous, Interpolating ]); // discretizing scales -scale(Quantile, (0, _d3Scale.scaleQuantile), [ +scale(Quantile, _d3Scale.scaleQuantile, [ Discretizing, Quantile ]); -scale(Quantize, (0, _d3Scale.scaleQuantize), Discretizing); -scale(Threshold, (0, _d3Scale.scaleThreshold), Discretizing); // discrete scales +scale(Quantize, _d3Scale.scaleQuantize, Discretizing); +scale(Threshold, _d3Scale.scaleThreshold, Discretizing); // discrete scales scale(BinOrdinal, scaleBinOrdinal, [ Discrete, Discretizing ]); -scale(Ordinal, (0, _d3Scale.scaleOrdinal), Discrete); +scale(Ordinal, _d3Scale.scaleOrdinal, Discrete); scale(Band, band, Discrete); scale(Point, point, Discrete); function isValidScaleType(type) { @@ -20942,7 +21220,7 @@ function interpolateRange(interpolator, range) { }; } function interpolateColors(colors, type, gamma) { - return (0, _d3Interpolate.piecewise)(interpolate(type || "rgb", gamma), colors); + return _d3Interpolate.piecewise(interpolate(type || "rgb", gamma), colors); } function quantizeInterpolator(interpolator, count) { const samples = new Array(count), n = count + 1; @@ -21322,7 +21600,161 @@ var _divergingJsDefault = parcelHelpers.interopDefault(_divergingJs); var _tickFormatJs = require("./tickFormat.js"); var _tickFormatJsDefault = parcelHelpers.interopDefault(_tickFormatJs); -},{"./band.js":false,"./identity.js":"le9d2","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./ordinal.js":"1j3zZ","./pow.js":"i4lyo","./radial.js":false,"./quantile.js":"aAURo","./quantize.js":"jjcn6","./threshold.js":"8ndX3","./time.js":"cjAqm","./utcTime.js":"cM5gE","./sequential.js":"f1sM1","./sequentialQuantile.js":false,"./diverging.js":"9Qcq3","./tickFormat.js":"dksn9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"le9d2":[function(require,module,exports) { +},{"./band.js":"6WWiS","./identity.js":"le9d2","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./ordinal.js":"1j3zZ","./pow.js":"i4lyo","./radial.js":"5ODOz","./quantile.js":"aAURo","./quantize.js":"jjcn6","./threshold.js":"8ndX3","./time.js":"cjAqm","./utcTime.js":"cM5gE","./sequential.js":"f1sM1","./sequentialQuantile.js":"cSmYu","./diverging.js":"9Qcq3","./tickFormat.js":"dksn9","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"6WWiS":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "point", ()=>point); +var _d3Array = require("d3-array"); +var _initJs = require("./init.js"); +var _ordinalJs = require("./ordinal.js"); +var _ordinalJsDefault = parcelHelpers.interopDefault(_ordinalJs); +function band() { + var scale = (0, _ordinalJsDefault.default)().unknown(undefined), domain = scale.domain, ordinalRange = scale.range, r0 = 0, r1 = 1, step, bandwidth, round = false, paddingInner = 0, paddingOuter = 0, align = 0.5; + delete scale.unknown; + function rescale() { + var n = domain().length, reverse = r1 < r0, start = reverse ? r1 : r0, stop = reverse ? r0 : r1; + step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2); + if (round) step = Math.floor(step); + start += (stop - start - step * (n - paddingInner)) * align; + bandwidth = step * (1 - paddingInner); + if (round) start = Math.round(start), bandwidth = Math.round(bandwidth); + var values = (0, _d3Array.range)(n).map(function(i) { + return start + step * i; + }); + return ordinalRange(reverse ? values.reverse() : values); + } + scale.domain = function(_) { + return arguments.length ? (domain(_), rescale()) : domain(); + }; + scale.range = function(_) { + return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [ + r0, + r1 + ]; + }; + scale.rangeRound = function(_) { + return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale(); + }; + scale.bandwidth = function() { + return bandwidth; + }; + scale.step = function() { + return step; + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, rescale()) : round; + }; + scale.padding = function(_) { + return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner; + }; + scale.paddingInner = function(_) { + return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner; + }; + scale.paddingOuter = function(_) { + return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter; + }; + scale.align = function(_) { + return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align; + }; + scale.copy = function() { + return band(domain(), [ + r0, + r1 + ]).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align); + }; + return (0, _initJs.initRange).apply(rescale(), arguments); +} +exports.default = band; +function pointish(scale) { + var copy = scale.copy; + scale.padding = scale.paddingOuter; + delete scale.paddingInner; + delete scale.paddingOuter; + scale.copy = function() { + return pointish(copy()); + }; + return scale; +} +function point() { + return pointish(band.apply(null, arguments).paddingInner(1)); +} + +},{"d3-array":"6IwJG","./init.js":"kLKEv","./ordinal.js":"1j3zZ","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kLKEv":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "initRange", ()=>initRange); +parcelHelpers.export(exports, "initInterpolator", ()=>initInterpolator); +function initRange(domain, range) { + switch(arguments.length){ + case 0: + break; + case 1: + this.range(domain); + break; + default: + this.range(range).domain(domain); + break; + } + return this; +} +function initInterpolator(domain, interpolator) { + switch(arguments.length){ + case 0: + break; + case 1: + if (typeof domain === "function") this.interpolator(domain); + else this.range(domain); + break; + default: + this.domain(domain); + if (typeof interpolator === "function") this.interpolator(interpolator); + else this.range(interpolator); + break; + } + return this; +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1j3zZ":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "implicit", ()=>implicit); +var _d3Array = require("d3-array"); +var _initJs = require("./init.js"); +const implicit = Symbol("implicit"); +function ordinal() { + var index = new (0, _d3Array.InternMap)(), domain = [], range = [], unknown = implicit; + function scale(d) { + let i = index.get(d); + if (i === undefined) { + if (unknown !== implicit) return unknown; + index.set(d, i = domain.push(d) - 1); + } + return range[i % range.length]; + } + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = [], index = new (0, _d3Array.InternMap)(); + for (const value of _){ + if (index.has(value)) continue; + index.set(value, domain.push(value) - 1); + } + return scale; + }; + scale.range = function(_) { + return arguments.length ? (range = Array.from(_), scale) : range.slice(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return ordinal(domain, range).unknown(unknown); + }; + (0, _initJs.initRange).apply(scale, arguments); + return scale; +} +exports.default = ordinal; + +},{"d3-array":"6IwJG","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"le9d2":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _linearJs = require("./linear.js"); @@ -21647,34 +22079,7 @@ var _defineJsDefault = parcelHelpers.interopDefault(_defineJs); function Color() {} var darker = 0.7; var brighter = 1 / darker; -var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp("^rgb\\(" + [ - reI, - reI, - reI -] + "\\)$"), reRgbPercent = new RegExp("^rgb\\(" + [ - reP, - reP, - reP -] + "\\)$"), reRgbaInteger = new RegExp("^rgba\\(" + [ - reI, - reI, - reI, - reN -] + "\\)$"), reRgbaPercent = new RegExp("^rgba\\(" + [ - reP, - reP, - reP, - reN -] + "\\)$"), reHslPercent = new RegExp("^hsl\\(" + [ - reN, - reP, - reP -] + "\\)$"), reHslaPercent = new RegExp("^hsla\\(" + [ - reN, - reP, - reP, - reN -] + "\\)$"); +var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`); var named = { aliceblue: 0xf0f8ff, antiquewhite: 0xfaebd7, @@ -21826,14 +22231,15 @@ var named = { yellowgreen: 0x9acd32 }; (0, _defineJsDefault.default)(Color, color, { - copy: function(channels) { + copy (channels) { return Object.assign(new this.constructor, this, channels); }, - displayable: function() { + displayable () { return this.rgb().displayable(); }, hex: color_formatHex, formatHex: color_formatHex, + formatHex8: color_formatHex8, formatHsl: color_formatHsl, formatRgb: color_formatRgb, toString: color_formatRgb @@ -21841,6 +22247,9 @@ var named = { function color_formatHex() { return this.rgb().formatHex(); } +function color_formatHex8() { + return this.rgb().formatHex8(); +} function color_formatHsl() { return hslConvert(this).formatHsl(); } @@ -21888,35 +22297,47 @@ function Rgb(r, g, b, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Rgb, rgb, (0, _defineJs.extend)(Color, { - brighter: function(k) { + brighter (k) { k = k == null ? brighter : Math.pow(brighter, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? darker : Math.pow(darker, k); return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity); }, - rgb: function() { + rgb () { return this; }, - displayable: function() { + clamp () { + return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity)); + }, + displayable () { return -0.5 <= this.r && this.r < 255.5 && -0.5 <= this.g && this.g < 255.5 && -0.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1; }, hex: rgb_formatHex, formatHex: rgb_formatHex, + formatHex8: rgb_formatHex8, formatRgb: rgb_formatRgb, toString: rgb_formatRgb })); function rgb_formatHex() { - return "#" + hex(this.r) + hex(this.g) + hex(this.b); + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`; +} +function rgb_formatHex8() { + return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`; } function rgb_formatRgb() { - var a = this.opacity; - a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "rgb(" : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (a === 1 ? ")" : ", " + a + ")"); + const a = clampa(this.opacity); + return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`; +} +function clampa(opacity) { + return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity)); +} +function clampi(value) { + return Math.max(0, Math.min(255, Math.round(value) || 0)); } function hex(value) { - value = Math.max(0, Math.min(255, Math.round(value) || 0)); + value = clampi(value); return (value < 16 ? "0" : "") + value.toString(16); } function hsla(h, s, l, a) { @@ -21951,27 +22372,36 @@ function Hsl(h, s, l, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Hsl, hsl, (0, _defineJs.extend)(Color, { - brighter: function(k) { + brighter (k) { k = k == null ? brighter : Math.pow(brighter, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? darker : Math.pow(darker, k); return new Hsl(this.h, this.s, this.l * k, this.opacity); }, - rgb: function() { + rgb () { var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2; return new Rgb(hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2), hsl2rgb(h, m1, m2), hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2), this.opacity); }, - displayable: function() { + clamp () { + return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity)); + }, + displayable () { return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1; }, - formatHsl: function() { - var a = this.opacity; - a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a)); - return (a === 1 ? "hsl(" : "hsla(") + (this.h || 0) + ", " + (this.s || 0) * 100 + "%, " + (this.l || 0) * 100 + "%" + (a === 1 ? ")" : ", " + a + ")"); + formatHsl () { + const a = clampa(this.opacity); + return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`; } })); +function clamph(value) { + value = (value || 0) % 360; + return value < 0 ? value + 360 : value; +} +function clampt(value) { + return Math.max(0, Math.min(1, value || 0)); +} /* From FvD 13.37, CSS Color Module Level 3 */ function hsl2rgb(h, m1, m2) { return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255; } @@ -22030,13 +22460,13 @@ function Lab(l, a, b, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Lab, lab, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity); }, - darker: function(k) { + darker (k) { return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity); }, - rgb: function() { + rgb () { var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200; x = Xn * lab2xyz(x); y = Yn * lab2xyz(y); @@ -22081,13 +22511,13 @@ function hcl2lab(o) { return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity); } (0, _defineJsDefault.default)(Hcl, hcl, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity); }, - darker: function(k) { + darker (k) { return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity); }, - rgb: function() { + rgb () { return hcl2lab(this).rgb(); } })); @@ -22126,15 +22556,15 @@ function Cubehelix(h, s, l, opacity) { this.opacity = +opacity; } (0, _defineJsDefault.default)(Cubehelix, cubehelix, (0, _defineJs.extend)((0, _colorJs.Color), { - brighter: function(k) { + brighter (k) { k = k == null ? (0, _colorJs.brighter) : Math.pow((0, _colorJs.brighter), k); return new Cubehelix(this.h, this.s, this.l * k, this.opacity); }, - darker: function(k) { + darker (k) { k = k == null ? (0, _colorJs.darker) : Math.pow((0, _colorJs.darker), k); return new Cubehelix(this.h, this.s, this.l * k, this.opacity); }, - rgb: function() { + rgb () { var h = isNaN(this.h) ? 0 : (this.h + 120) * (0, _mathJs.radians), l = +this.l, a = isNaN(this.s) ? 0 : this.s * l * (1 - l), cosh = Math.cos(h), sinh = Math.sin(h); return new (0, _colorJs.Rgb)(255 * (l + a * (A * cosh + B * sinh)), 255 * (l + a * (C * cosh + D * sinh)), 255 * (l + a * (E * cosh)), this.opacity); } @@ -22716,41 +23146,6 @@ function number(x) { } exports.default = number; -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"kLKEv":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "initRange", ()=>initRange); -parcelHelpers.export(exports, "initInterpolator", ()=>initInterpolator); -function initRange(domain, range) { - switch(arguments.length){ - case 0: - break; - case 1: - this.range(domain); - break; - default: - this.range(range).domain(domain); - break; - } - return this; -} -function initInterpolator(domain, interpolator) { - switch(arguments.length){ - case 0: - break; - case 1: - if (typeof domain === "function") this.interpolator(domain); - else this.range(domain); - break; - default: - this.domain(domain); - if (typeof interpolator === "function") this.interpolator(interpolator); - else this.range(interpolator); - break; - } - return this; -} - },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dksn9":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); @@ -22806,22 +23201,20 @@ function pow10(x) { return isFinite(x) ? +("1e" + x) : x < 0 ? 0 : x; } function powp(base) { - return base === 10 ? pow10 : base === Math.E ? Math.exp : function(x) { - return Math.pow(base, x); - }; + return base === 10 ? pow10 : base === Math.E ? Math.exp : (x)=>Math.pow(base, x); } function logp(base) { - return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), function(x) { - return Math.log(x) / base; - }); + return base === Math.E ? Math.log : base === 10 && Math.log10 || base === 2 && Math.log2 || (base = Math.log(base), (x)=>Math.log(x) / base); } function reflect(f) { - return function(x) { - return -f(-x); - }; + return (x, k)=>-f(-x, k); } function loggish(transform) { - var scale = transform(transformLog, transformExp), domain = scale.domain, base = 10, logs, pows; + const scale = transform(transformLog, transformExp); + const domain = scale.domain; + let base = 10; + let logs; + let pows; function rescale() { logs = logp(base), pows = powp(base); if (domain()[0] < 0) { @@ -22836,20 +23229,31 @@ function loggish(transform) { scale.domain = function(_) { return arguments.length ? (domain(_), rescale()) : domain(); }; - scale.ticks = function(count) { - var d = domain(), u = d[0], v = d[d.length - 1], r; - if (r = v < u) i = u, u = v, v = i; - var i = logs(u), j = logs(v), p, k, t, n = count == null ? 10 : +count, z = []; + scale.ticks = (count)=>{ + const d = domain(); + let u = d[0]; + let v = d[d.length - 1]; + const r = v < u; + if (r) [u, v] = [ + v, + u + ]; + let i = logs(u); + let j = logs(v); + let k; + let t; + const n = count == null ? 10 : +count; + let z = []; if (!(base % 1) && j - i < n) { i = Math.floor(i), j = Math.ceil(j); - if (u > 0) for(; i <= j; ++i)for(k = 1, p = pows(i); k < base; ++k){ - t = p * k; + if (u > 0) for(; i <= j; ++i)for(k = 1; k < base; ++k){ + t = i < 0 ? k / pows(-i) : k * pows(i); if (t < u) continue; if (t > v) break; z.push(t); } - else for(; i <= j; ++i)for(k = base - 1, p = pows(i); k >= 1; --k){ - t = p * k; + else for(; i <= j; ++i)for(k = base - 1; k >= 1; --k){ + t = i > 0 ? k / pows(-i) : k * pows(i); if (t < u) continue; if (t > v) break; z.push(t); @@ -22858,38 +23262,35 @@ function loggish(transform) { } else z = (0, _d3Array.ticks)(i, j, Math.min(j - i, n)).map(pows); return r ? z.reverse() : z; }; - scale.tickFormat = function(count, specifier) { - if (specifier == null) specifier = base === 10 ? ".0e" : ","; - if (typeof specifier !== "function") specifier = (0, _d3Format.format)(specifier); - if (count === Infinity) return specifier; + scale.tickFormat = (count, specifier)=>{ if (count == null) count = 10; - var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? - return function(d) { - var i = d / pows(Math.round(logs(d))); + if (specifier == null) specifier = base === 10 ? "s" : ","; + if (typeof specifier !== "function") { + if (!(base % 1) && (specifier = (0, _d3Format.formatSpecifier)(specifier)).precision == null) specifier.trim = true; + specifier = (0, _d3Format.format)(specifier); + } + if (count === Infinity) return specifier; + const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate? + return (d)=>{ + let i = d / pows(Math.round(logs(d))); if (i * base < base - 0.5) i *= base; return i <= k ? specifier(d) : ""; }; }; - scale.nice = function() { + scale.nice = ()=>{ return domain((0, _niceJsDefault.default)(domain(), { - floor: function(x) { - return pows(Math.floor(logs(x))); - }, - ceil: function(x) { - return pows(Math.ceil(logs(x))); - } + floor: (x)=>pows(Math.floor(logs(x))), + ceil: (x)=>pows(Math.ceil(logs(x))) })); }; return scale; } function log() { - var scale = loggish((0, _continuousJs.transformer)()).domain([ + const scale = loggish((0, _continuousJs.transformer)()).domain([ 1, 10 ]); - scale.copy = function() { - return (0, _continuousJs.copy)(scale, log()).base(scale.base()); - }; + scale.copy = ()=>(0, _continuousJs.copy)(scale, log()).base(scale.base()); (0, _initJs.initRange).apply(scale, arguments); return scale; } @@ -22944,47 +23345,7 @@ function symlog() { } exports.default = symlog; -},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"1j3zZ":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "implicit", ()=>implicit); -var _initJs = require("./init.js"); -const implicit = Symbol("implicit"); -function ordinal() { - var index = new Map(), domain = [], range = [], unknown = implicit; - function scale(d) { - var key = d + "", i = index.get(key); - if (!i) { - if (unknown !== implicit) return unknown; - index.set(key, i = domain.push(d)); - } - return range[(i - 1) % range.length]; - } - scale.domain = function(_) { - if (!arguments.length) return domain.slice(); - domain = [], index = new Map(); - for (const value of _){ - const key = value + ""; - if (index.has(key)) continue; - index.set(key, domain.push(value)); - } - return scale; - }; - scale.range = function(_) { - return arguments.length ? (range = Array.from(_), scale) : range.slice(); - }; - scale.unknown = function(_) { - return arguments.length ? (unknown = _, scale) : unknown; - }; - scale.copy = function() { - return ordinal(domain, range).unknown(unknown); - }; - (0, _initJs.initRange).apply(scale, arguments); - return scale; -} -exports.default = ordinal; - -},{"./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i4lyo":[function(require,module,exports) { +},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i4lyo":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "powish", ()=>powish); @@ -23026,7 +23387,60 @@ function sqrt() { return pow.apply(null, arguments).exponent(0.5); } -},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"aAURo":[function(require,module,exports) { +},{"./linear.js":"5CETT","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"5ODOz":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _continuousJs = require("./continuous.js"); +var _continuousJsDefault = parcelHelpers.interopDefault(_continuousJs); +var _initJs = require("./init.js"); +var _linearJs = require("./linear.js"); +var _numberJs = require("./number.js"); +var _numberJsDefault = parcelHelpers.interopDefault(_numberJs); +function square(x) { + return Math.sign(x) * x * x; +} +function unsquare(x) { + return Math.sign(x) * Math.sqrt(Math.abs(x)); +} +function radial() { + var squared = (0, _continuousJsDefault.default)(), range = [ + 0, + 1 + ], round = false, unknown; + function scale(x) { + var y = unsquare(squared(x)); + return isNaN(y) ? unknown : round ? Math.round(y) : y; + } + scale.invert = function(y) { + return squared.invert(square(y)); + }; + scale.domain = function(_) { + return arguments.length ? (squared.domain(_), scale) : squared.domain(); + }; + scale.range = function(_) { + return arguments.length ? (squared.range((range = Array.from(_, (0, _numberJsDefault.default))).map(square)), scale) : range.slice(); + }; + scale.rangeRound = function(_) { + return scale.range(_).round(true); + }; + scale.round = function(_) { + return arguments.length ? (round = !!_, scale) : round; + }; + scale.clamp = function(_) { + return arguments.length ? (squared.clamp(_), scale) : squared.clamp(); + }; + scale.unknown = function(_) { + return arguments.length ? (unknown = _, scale) : unknown; + }; + scale.copy = function() { + return radial(squared.domain(), range).round(round).clamp(squared.clamp()).unknown(unknown); + }; + (0, _initJs.initRange).apply(scale, arguments); + return (0, _linearJs.linearish)(scale); +} +exports.default = radial; + +},{"./continuous.js":"it8xE","./init.js":"kLKEv","./linear.js":"5CETT","./number.js":"bOzsY","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"aAURo":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _d3Array = require("d3-array"); @@ -23335,7 +23749,43 @@ function sequentialSqrt() { return sequentialPow.apply(null, arguments).exponent(0.5); } -},{"d3-interpolate":"6gbPP","./continuous.js":"it8xE","./init.js":"kLKEv","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./pow.js":"i4lyo","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9Qcq3":[function(require,module,exports) { +},{"d3-interpolate":"6gbPP","./continuous.js":"it8xE","./init.js":"kLKEv","./linear.js":"5CETT","./log.js":"2gcSE","./symlog.js":"iUUr7","./pow.js":"i4lyo","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"cSmYu":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +var _d3Array = require("d3-array"); +var _continuousJs = require("./continuous.js"); +var _initJs = require("./init.js"); +function sequentialQuantile() { + var domain = [], interpolator = (0, _continuousJs.identity); + function scale(x) { + if (x != null && !isNaN(x = +x)) return interpolator(((0, _d3Array.bisect)(domain, x, 1) - 1) / (domain.length - 1)); + } + scale.domain = function(_) { + if (!arguments.length) return domain.slice(); + domain = []; + for (let d of _)if (d != null && !isNaN(d = +d)) domain.push(d); + domain.sort((0, _d3Array.ascending)); + return scale; + }; + scale.interpolator = function(_) { + return arguments.length ? (interpolator = _, scale) : interpolator; + }; + scale.range = function() { + return domain.map((d, i)=>interpolator(i / (domain.length - 1))); + }; + scale.quantiles = function(n) { + return Array.from({ + length: n + 1 + }, (_, i)=>(0, _d3Array.quantile)(domain, i / n)); + }; + scale.copy = function() { + return sequentialQuantile(interpolator).domain(domain); + }; + return (0, _initJs.initInterpolator).apply(scale, arguments); +} +exports.default = sequentialQuantile; + +},{"d3-array":"6IwJG","./continuous.js":"it8xE","./init.js":"kLKEv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9Qcq3":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "divergingLog", ()=>divergingLog); @@ -26834,8 +27284,7 @@ var _d3Array = require("d3-array"); var _cartesianJs = require("./cartesian.js"); var _mathJs = require("./math.js"); function longitude(point) { - if ((0, _mathJs.abs)(point[0]) <= (0, _mathJs.pi)) return point[0]; - else return (0, _mathJs.sign)(point[0]) * (((0, _mathJs.abs)(point[0]) + (0, _mathJs.pi)) % (0, _mathJs.tau) - (0, _mathJs.pi)); + return (0, _mathJs.abs)(point[0]) <= (0, _mathJs.pi) ? point[0] : (0, _mathJs.sign)(point[0]) * (((0, _mathJs.abs)(point[0]) + (0, _mathJs.pi)) % (0, _mathJs.tau) - (0, _mathJs.pi)); } exports.default = function(polygon, point) { var lambda = longitude(point), phi = point[1], sinPhi = (0, _mathJs.sin)(phi), normal = [ @@ -28849,41 +29298,41 @@ exports.default = function() { },{"../math.js":"74X19","./mercator.js":"iIGjZ","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"ixW8K":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "geoAiry", ()=>(0, _airyDefault.default)); -parcelHelpers.export(exports, "geoAiryRaw", ()=>(0, _airy.airyRaw)); -parcelHelpers.export(exports, "geoAitoff", ()=>(0, _aitoffDefault.default)); -parcelHelpers.export(exports, "geoAitoffRaw", ()=>(0, _aitoff.aitoffRaw)); -parcelHelpers.export(exports, "geoArmadillo", ()=>(0, _armadilloDefault.default)); -parcelHelpers.export(exports, "geoArmadilloRaw", ()=>(0, _armadillo.armadilloRaw)); -parcelHelpers.export(exports, "geoAugust", ()=>(0, _augustDefault.default)); -parcelHelpers.export(exports, "geoAugustRaw", ()=>(0, _august.augustRaw)); -parcelHelpers.export(exports, "geoBaker", ()=>(0, _bakerDefault.default)); -parcelHelpers.export(exports, "geoBakerRaw", ()=>(0, _baker.bakerRaw)); -parcelHelpers.export(exports, "geoBerghaus", ()=>(0, _berghausDefault.default)); -parcelHelpers.export(exports, "geoBerghausRaw", ()=>(0, _berghaus.berghausRaw)); -parcelHelpers.export(exports, "geoBertin1953", ()=>(0, _bertinDefault.default)); -parcelHelpers.export(exports, "geoBertin1953Raw", ()=>(0, _bertin.bertin1953Raw)); -parcelHelpers.export(exports, "geoBoggs", ()=>(0, _boggsDefault.default)); -parcelHelpers.export(exports, "geoBoggsRaw", ()=>(0, _boggs.boggsRaw)); -parcelHelpers.export(exports, "geoBonne", ()=>(0, _bonneDefault.default)); -parcelHelpers.export(exports, "geoBonneRaw", ()=>(0, _bonne.bonneRaw)); -parcelHelpers.export(exports, "geoBottomley", ()=>(0, _bottomleyDefault.default)); -parcelHelpers.export(exports, "geoBottomleyRaw", ()=>(0, _bottomley.bottomleyRaw)); -parcelHelpers.export(exports, "geoBromley", ()=>(0, _bromleyDefault.default)); -parcelHelpers.export(exports, "geoBromleyRaw", ()=>(0, _bromley.bromleyRaw)); -parcelHelpers.export(exports, "geoChamberlin", ()=>(0, _chamberlinDefault.default)); -parcelHelpers.export(exports, "geoChamberlinRaw", ()=>(0, _chamberlin.chamberlinRaw)); -parcelHelpers.export(exports, "geoChamberlinAfrica", ()=>(0, _chamberlin.chamberlinAfrica)); -parcelHelpers.export(exports, "geoCollignon", ()=>(0, _collignonDefault.default)); -parcelHelpers.export(exports, "geoCollignonRaw", ()=>(0, _collignon.collignonRaw)); -parcelHelpers.export(exports, "geoCraig", ()=>(0, _craigDefault.default)); -parcelHelpers.export(exports, "geoCraigRaw", ()=>(0, _craig.craigRaw)); -parcelHelpers.export(exports, "geoCraster", ()=>(0, _crasterDefault.default)); -parcelHelpers.export(exports, "geoCrasterRaw", ()=>(0, _craster.crasterRaw)); -parcelHelpers.export(exports, "geoCylindricalEqualArea", ()=>(0, _cylindricalEqualAreaDefault.default)); -parcelHelpers.export(exports, "geoCylindricalEqualAreaRaw", ()=>(0, _cylindricalEqualArea.cylindricalEqualAreaRaw)); -parcelHelpers.export(exports, "geoCylindricalStereographic", ()=>(0, _cylindricalStereographicDefault.default)); -parcelHelpers.export(exports, "geoCylindricalStereographicRaw", ()=>(0, _cylindricalStereographic.cylindricalStereographicRaw)); +parcelHelpers.export(exports, "geoAiry", ()=>(0, _airyJsDefault.default)); +parcelHelpers.export(exports, "geoAiryRaw", ()=>(0, _airyJs.airyRaw)); +parcelHelpers.export(exports, "geoAitoff", ()=>(0, _aitoffJsDefault.default)); +parcelHelpers.export(exports, "geoAitoffRaw", ()=>(0, _aitoffJs.aitoffRaw)); +parcelHelpers.export(exports, "geoArmadillo", ()=>(0, _armadilloJsDefault.default)); +parcelHelpers.export(exports, "geoArmadilloRaw", ()=>(0, _armadilloJs.armadilloRaw)); +parcelHelpers.export(exports, "geoAugust", ()=>(0, _augustJsDefault.default)); +parcelHelpers.export(exports, "geoAugustRaw", ()=>(0, _augustJs.augustRaw)); +parcelHelpers.export(exports, "geoBaker", ()=>(0, _bakerJsDefault.default)); +parcelHelpers.export(exports, "geoBakerRaw", ()=>(0, _bakerJs.bakerRaw)); +parcelHelpers.export(exports, "geoBerghaus", ()=>(0, _berghausJsDefault.default)); +parcelHelpers.export(exports, "geoBerghausRaw", ()=>(0, _berghausJs.berghausRaw)); +parcelHelpers.export(exports, "geoBertin1953", ()=>(0, _bertinJsDefault.default)); +parcelHelpers.export(exports, "geoBertin1953Raw", ()=>(0, _bertinJs.bertin1953Raw)); +parcelHelpers.export(exports, "geoBoggs", ()=>(0, _boggsJsDefault.default)); +parcelHelpers.export(exports, "geoBoggsRaw", ()=>(0, _boggsJs.boggsRaw)); +parcelHelpers.export(exports, "geoBonne", ()=>(0, _bonneJsDefault.default)); +parcelHelpers.export(exports, "geoBonneRaw", ()=>(0, _bonneJs.bonneRaw)); +parcelHelpers.export(exports, "geoBottomley", ()=>(0, _bottomleyJsDefault.default)); +parcelHelpers.export(exports, "geoBottomleyRaw", ()=>(0, _bottomleyJs.bottomleyRaw)); +parcelHelpers.export(exports, "geoBromley", ()=>(0, _bromleyJsDefault.default)); +parcelHelpers.export(exports, "geoBromleyRaw", ()=>(0, _bromleyJs.bromleyRaw)); +parcelHelpers.export(exports, "geoChamberlin", ()=>(0, _chamberlinJsDefault.default)); +parcelHelpers.export(exports, "geoChamberlinRaw", ()=>(0, _chamberlinJs.chamberlinRaw)); +parcelHelpers.export(exports, "geoChamberlinAfrica", ()=>(0, _chamberlinJs.chamberlinAfrica)); +parcelHelpers.export(exports, "geoCollignon", ()=>(0, _collignonJsDefault.default)); +parcelHelpers.export(exports, "geoCollignonRaw", ()=>(0, _collignonJs.collignonRaw)); +parcelHelpers.export(exports, "geoCraig", ()=>(0, _craigJsDefault.default)); +parcelHelpers.export(exports, "geoCraigRaw", ()=>(0, _craigJs.craigRaw)); +parcelHelpers.export(exports, "geoCraster", ()=>(0, _crasterJsDefault.default)); +parcelHelpers.export(exports, "geoCrasterRaw", ()=>(0, _crasterJs.crasterRaw)); +parcelHelpers.export(exports, "geoCylindricalEqualArea", ()=>(0, _cylindricalEqualAreaJsDefault.default)); +parcelHelpers.export(exports, "geoCylindricalEqualAreaRaw", ()=>(0, _cylindricalEqualAreaJs.cylindricalEqualAreaRaw)); +parcelHelpers.export(exports, "geoCylindricalStereographic", ()=>(0, _cylindricalStereographicJsDefault.default)); +parcelHelpers.export(exports, "geoCylindricalStereographicRaw", ()=>(0, _cylindricalStereographicJs.cylindricalStereographicRaw)); parcelHelpers.export(exports, "geoEckert1", ()=>(0, _eckert1JsDefault.default)); parcelHelpers.export(exports, "geoEckert1Raw", ()=>(0, _eckert1Js.eckert1Raw)); parcelHelpers.export(exports, "geoEckert2", ()=>(0, _eckert2JsDefault.default)); @@ -28933,91 +29382,91 @@ parcelHelpers.export(exports, "geoHomolosine", ()=>(0, _homolosineJsDefault.defa parcelHelpers.export(exports, "geoHomolosineRaw", ()=>(0, _homolosineJs.homolosineRaw)); parcelHelpers.export(exports, "geoHufnagel", ()=>(0, _hufnagelJsDefault.default)); parcelHelpers.export(exports, "geoHufnagelRaw", ()=>(0, _hufnagelJs.hufnagelRaw)); -parcelHelpers.export(exports, "geoHyperelliptical", ()=>(0, _hyperellipticalDefault.default)); -parcelHelpers.export(exports, "geoHyperellipticalRaw", ()=>(0, _hyperelliptical.hyperellipticalRaw)); -parcelHelpers.export(exports, "geoInterrupt", ()=>(0, _indexDefault.default)); -parcelHelpers.export(exports, "geoInterruptedBoggs", ()=>(0, _boggsDefault1.default)); -parcelHelpers.export(exports, "geoInterruptedHomolosine", ()=>(0, _homolosineDefault.default)); -parcelHelpers.export(exports, "geoInterruptedMollweide", ()=>(0, _mollweideDefault.default)); -parcelHelpers.export(exports, "geoInterruptedMollweideHemispheres", ()=>(0, _mollweideHemispheresDefault.default)); -parcelHelpers.export(exports, "geoInterruptedSinuMollweide", ()=>(0, _sinuMollweideDefault.default)); -parcelHelpers.export(exports, "geoInterruptedSinusoidal", ()=>(0, _sinusoidalDefault.default)); +parcelHelpers.export(exports, "geoHyperelliptical", ()=>(0, _hyperellipticalJsDefault.default)); +parcelHelpers.export(exports, "geoHyperellipticalRaw", ()=>(0, _hyperellipticalJs.hyperellipticalRaw)); +parcelHelpers.export(exports, "geoInterrupt", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedBoggs", ()=>(0, _boggsJsDefault1.default)); +parcelHelpers.export(exports, "geoInterruptedHomolosine", ()=>(0, _homolosineJsDefault1.default)); +parcelHelpers.export(exports, "geoInterruptedMollweide", ()=>(0, _mollweideJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedMollweideHemispheres", ()=>(0, _mollweideHemispheresJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedSinuMollweide", ()=>(0, _sinuMollweideJsDefault.default)); +parcelHelpers.export(exports, "geoInterruptedSinusoidal", ()=>(0, _sinusoidalJsDefault.default)); parcelHelpers.export(exports, "geoKavrayskiy7", ()=>(0, _kavrayskiy7JsDefault.default)); parcelHelpers.export(exports, "geoKavrayskiy7Raw", ()=>(0, _kavrayskiy7Js.kavrayskiy7Raw)); parcelHelpers.export(exports, "geoLagrange", ()=>(0, _lagrangeJsDefault.default)); parcelHelpers.export(exports, "geoLagrangeRaw", ()=>(0, _lagrangeJs.lagrangeRaw)); -parcelHelpers.export(exports, "geoLarrivee", ()=>(0, _larriveeDefault.default)); -parcelHelpers.export(exports, "geoLarriveeRaw", ()=>(0, _larrivee.larriveeRaw)); -parcelHelpers.export(exports, "geoLaskowski", ()=>(0, _laskowskiDefault.default)); -parcelHelpers.export(exports, "geoLaskowskiRaw", ()=>(0, _laskowski.laskowskiRaw)); +parcelHelpers.export(exports, "geoLarrivee", ()=>(0, _larriveeJsDefault.default)); +parcelHelpers.export(exports, "geoLarriveeRaw", ()=>(0, _larriveeJs.larriveeRaw)); +parcelHelpers.export(exports, "geoLaskowski", ()=>(0, _laskowskiJsDefault.default)); +parcelHelpers.export(exports, "geoLaskowskiRaw", ()=>(0, _laskowskiJs.laskowskiRaw)); parcelHelpers.export(exports, "geoLittrow", ()=>(0, _littrowJsDefault.default)); parcelHelpers.export(exports, "geoLittrowRaw", ()=>(0, _littrowJs.littrowRaw)); parcelHelpers.export(exports, "geoLoximuthal", ()=>(0, _loximuthalJsDefault.default)); parcelHelpers.export(exports, "geoLoximuthalRaw", ()=>(0, _loximuthalJs.loximuthalRaw)); -parcelHelpers.export(exports, "geoMiller", ()=>(0, _millerDefault.default)); -parcelHelpers.export(exports, "geoMillerRaw", ()=>(0, _miller.millerRaw)); -parcelHelpers.export(exports, "geoModifiedStereographic", ()=>(0, _modifiedStereographicDefault.default)); -parcelHelpers.export(exports, "geoModifiedStereographicRaw", ()=>(0, _modifiedStereographic.modifiedStereographicRaw)); -parcelHelpers.export(exports, "geoModifiedStereographicAlaska", ()=>(0, _modifiedStereographic.modifiedStereographicAlaska)); -parcelHelpers.export(exports, "geoModifiedStereographicGs48", ()=>(0, _modifiedStereographic.modifiedStereographicGs48)); -parcelHelpers.export(exports, "geoModifiedStereographicGs50", ()=>(0, _modifiedStereographic.modifiedStereographicGs50)); -parcelHelpers.export(exports, "geoModifiedStereographicMiller", ()=>(0, _modifiedStereographic.modifiedStereographicMiller)); -parcelHelpers.export(exports, "geoModifiedStereographicLee", ()=>(0, _modifiedStereographic.modifiedStereographicLee)); -parcelHelpers.export(exports, "geoMollweide", ()=>(0, _mollweideDefault1.default)); -parcelHelpers.export(exports, "geoMollweideRaw", ()=>(0, _mollweide1.mollweideRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarParabolic", ()=>(0, _mtFlatPolarParabolicDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarParabolicRaw", ()=>(0, _mtFlatPolarParabolic.mtFlatPolarParabolicRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarQuartic", ()=>(0, _mtFlatPolarQuarticDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarQuarticRaw", ()=>(0, _mtFlatPolarQuartic.mtFlatPolarQuarticRaw)); -parcelHelpers.export(exports, "geoMtFlatPolarSinusoidal", ()=>(0, _mtFlatPolarSinusoidalDefault.default)); -parcelHelpers.export(exports, "geoMtFlatPolarSinusoidalRaw", ()=>(0, _mtFlatPolarSinusoidal.mtFlatPolarSinusoidalRaw)); -parcelHelpers.export(exports, "geoNaturalEarth2", ()=>(0, _naturalEarth2Default.default)); -parcelHelpers.export(exports, "geoNaturalEarth2Raw", ()=>(0, _naturalEarth2.naturalEarth2Raw)); -parcelHelpers.export(exports, "geoNellHammer", ()=>(0, _nellHammerDefault.default)); -parcelHelpers.export(exports, "geoNellHammerRaw", ()=>(0, _nellHammer.nellHammerRaw)); -parcelHelpers.export(exports, "geoInterruptedQuarticAuthalic", ()=>(0, _quarticAuthalicDefault.default)); -parcelHelpers.export(exports, "geoNicolosi", ()=>(0, _nicolosiDefault.default)); -parcelHelpers.export(exports, "geoNicolosiRaw", ()=>(0, _nicolosi.nicolosiRaw)); -parcelHelpers.export(exports, "geoPatterson", ()=>(0, _pattersonDefault.default)); -parcelHelpers.export(exports, "geoPattersonRaw", ()=>(0, _patterson.pattersonRaw)); -parcelHelpers.export(exports, "geoPolyconic", ()=>(0, _polyconicDefault.default)); -parcelHelpers.export(exports, "geoPolyconicRaw", ()=>(0, _polyconic.polyconicRaw)); -parcelHelpers.export(exports, "geoPolyhedral", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "geoMiller", ()=>(0, _millerJsDefault.default)); +parcelHelpers.export(exports, "geoMillerRaw", ()=>(0, _millerJs.millerRaw)); +parcelHelpers.export(exports, "geoModifiedStereographic", ()=>(0, _modifiedStereographicJsDefault.default)); +parcelHelpers.export(exports, "geoModifiedStereographicRaw", ()=>(0, _modifiedStereographicJs.modifiedStereographicRaw)); +parcelHelpers.export(exports, "geoModifiedStereographicAlaska", ()=>(0, _modifiedStereographicJs.modifiedStereographicAlaska)); +parcelHelpers.export(exports, "geoModifiedStereographicGs48", ()=>(0, _modifiedStereographicJs.modifiedStereographicGs48)); +parcelHelpers.export(exports, "geoModifiedStereographicGs50", ()=>(0, _modifiedStereographicJs.modifiedStereographicGs50)); +parcelHelpers.export(exports, "geoModifiedStereographicMiller", ()=>(0, _modifiedStereographicJs.modifiedStereographicMiller)); +parcelHelpers.export(exports, "geoModifiedStereographicLee", ()=>(0, _modifiedStereographicJs.modifiedStereographicLee)); +parcelHelpers.export(exports, "geoMollweide", ()=>(0, _mollweideJsDefault1.default)); +parcelHelpers.export(exports, "geoMollweideRaw", ()=>(0, _mollweideJs1.mollweideRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarParabolic", ()=>(0, _mtFlatPolarParabolicJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarParabolicRaw", ()=>(0, _mtFlatPolarParabolicJs.mtFlatPolarParabolicRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarQuartic", ()=>(0, _mtFlatPolarQuarticJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarQuarticRaw", ()=>(0, _mtFlatPolarQuarticJs.mtFlatPolarQuarticRaw)); +parcelHelpers.export(exports, "geoMtFlatPolarSinusoidal", ()=>(0, _mtFlatPolarSinusoidalJsDefault.default)); +parcelHelpers.export(exports, "geoMtFlatPolarSinusoidalRaw", ()=>(0, _mtFlatPolarSinusoidalJs.mtFlatPolarSinusoidalRaw)); +parcelHelpers.export(exports, "geoNaturalEarth2", ()=>(0, _naturalEarth2JsDefault.default)); +parcelHelpers.export(exports, "geoNaturalEarth2Raw", ()=>(0, _naturalEarth2Js.naturalEarth2Raw)); +parcelHelpers.export(exports, "geoNellHammer", ()=>(0, _nellHammerJsDefault.default)); +parcelHelpers.export(exports, "geoNellHammerRaw", ()=>(0, _nellHammerJs.nellHammerRaw)); +parcelHelpers.export(exports, "geoInterruptedQuarticAuthalic", ()=>(0, _quarticAuthalicJsDefault.default)); +parcelHelpers.export(exports, "geoNicolosi", ()=>(0, _nicolosiJsDefault.default)); +parcelHelpers.export(exports, "geoNicolosiRaw", ()=>(0, _nicolosiJs.nicolosiRaw)); +parcelHelpers.export(exports, "geoPatterson", ()=>(0, _pattersonJsDefault.default)); +parcelHelpers.export(exports, "geoPattersonRaw", ()=>(0, _pattersonJs.pattersonRaw)); +parcelHelpers.export(exports, "geoPolyconic", ()=>(0, _polyconicJsDefault.default)); +parcelHelpers.export(exports, "geoPolyconicRaw", ()=>(0, _polyconicJs.polyconicRaw)); +parcelHelpers.export(exports, "geoPolyhedral", ()=>(0, _indexJsDefault1.default)); parcelHelpers.export(exports, "geoPolyhedralButterfly", ()=>(0, _butterflyJsDefault.default)); -parcelHelpers.export(exports, "geoPolyhedralCollignon", ()=>(0, _collignonJsDefault.default)); +parcelHelpers.export(exports, "geoPolyhedralCollignon", ()=>(0, _collignonJsDefault1.default)); parcelHelpers.export(exports, "geoPolyhedralWaterman", ()=>(0, _watermanJsDefault.default)); -parcelHelpers.export(exports, "geoProject", ()=>(0, _indexDefault1.default)); +parcelHelpers.export(exports, "geoProject", ()=>(0, _indexJsDefault2.default)); parcelHelpers.export(exports, "geoGringortenQuincuncial", ()=>(0, _gringortenJsDefault1.default)); parcelHelpers.export(exports, "geoPeirceQuincuncial", ()=>(0, _peirceJsDefault.default)); -parcelHelpers.export(exports, "geoQuantize", ()=>(0, _quantizeDefault.default)); -parcelHelpers.export(exports, "geoQuincuncial", ()=>(0, _indexJsDefault1.default)); -parcelHelpers.export(exports, "geoRectangularPolyconic", ()=>(0, _rectangularPolyconicDefault.default)); -parcelHelpers.export(exports, "geoRectangularPolyconicRaw", ()=>(0, _rectangularPolyconic.rectangularPolyconicRaw)); -parcelHelpers.export(exports, "geoRobinson", ()=>(0, _robinsonDefault.default)); -parcelHelpers.export(exports, "geoRobinsonRaw", ()=>(0, _robinson.robinsonRaw)); -parcelHelpers.export(exports, "geoSatellite", ()=>(0, _satelliteDefault.default)); -parcelHelpers.export(exports, "geoSatelliteRaw", ()=>(0, _satellite.satelliteRaw)); -parcelHelpers.export(exports, "geoSinuMollweide", ()=>(0, _sinuMollweideDefault1.default)); -parcelHelpers.export(exports, "geoSinuMollweideRaw", ()=>(0, _sinuMollweide1.sinuMollweideRaw)); -parcelHelpers.export(exports, "geoSinusoidal", ()=>(0, _sinusoidalDefault1.default)); -parcelHelpers.export(exports, "geoSinusoidalRaw", ()=>(0, _sinusoidal1.sinusoidalRaw)); -parcelHelpers.export(exports, "geoStitch", ()=>(0, _stitchDefault.default)); -parcelHelpers.export(exports, "geoTimes", ()=>(0, _timesDefault.default)); -parcelHelpers.export(exports, "geoTimesRaw", ()=>(0, _times.timesRaw)); -parcelHelpers.export(exports, "geoTwoPointAzimuthal", ()=>(0, _twoPointAzimuthalDefault.default)); -parcelHelpers.export(exports, "geoTwoPointAzimuthalRaw", ()=>(0, _twoPointAzimuthal.twoPointAzimuthalRaw)); -parcelHelpers.export(exports, "geoTwoPointAzimuthalUsa", ()=>(0, _twoPointAzimuthal.twoPointAzimuthalUsa)); -parcelHelpers.export(exports, "geoTwoPointEquidistant", ()=>(0, _twoPointEquidistantDefault.default)); -parcelHelpers.export(exports, "geoTwoPointEquidistantRaw", ()=>(0, _twoPointEquidistant.twoPointEquidistantRaw)); -parcelHelpers.export(exports, "geoTwoPointEquidistantUsa", ()=>(0, _twoPointEquidistant.twoPointEquidistantUsa)); -parcelHelpers.export(exports, "geoVanDerGrinten", ()=>(0, _vanDerGrintenDefault.default)); -parcelHelpers.export(exports, "geoVanDerGrintenRaw", ()=>(0, _vanDerGrinten.vanDerGrintenRaw)); -parcelHelpers.export(exports, "geoVanDerGrinten2", ()=>(0, _vanDerGrinten2Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten2Raw", ()=>(0, _vanDerGrinten2.vanDerGrinten2Raw)); -parcelHelpers.export(exports, "geoVanDerGrinten3", ()=>(0, _vanDerGrinten3Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten3Raw", ()=>(0, _vanDerGrinten3.vanDerGrinten3Raw)); -parcelHelpers.export(exports, "geoVanDerGrinten4", ()=>(0, _vanDerGrinten4Default.default)); -parcelHelpers.export(exports, "geoVanDerGrinten4Raw", ()=>(0, _vanDerGrinten4.vanDerGrinten4Raw)); +parcelHelpers.export(exports, "geoQuantize", ()=>(0, _quantizeJsDefault.default)); +parcelHelpers.export(exports, "geoQuincuncial", ()=>(0, _indexJsDefault3.default)); +parcelHelpers.export(exports, "geoRectangularPolyconic", ()=>(0, _rectangularPolyconicJsDefault.default)); +parcelHelpers.export(exports, "geoRectangularPolyconicRaw", ()=>(0, _rectangularPolyconicJs.rectangularPolyconicRaw)); +parcelHelpers.export(exports, "geoRobinson", ()=>(0, _robinsonJsDefault.default)); +parcelHelpers.export(exports, "geoRobinsonRaw", ()=>(0, _robinsonJs.robinsonRaw)); +parcelHelpers.export(exports, "geoSatellite", ()=>(0, _satelliteJsDefault.default)); +parcelHelpers.export(exports, "geoSatelliteRaw", ()=>(0, _satelliteJs.satelliteRaw)); +parcelHelpers.export(exports, "geoSinuMollweide", ()=>(0, _sinuMollweideJsDefault1.default)); +parcelHelpers.export(exports, "geoSinuMollweideRaw", ()=>(0, _sinuMollweideJs1.sinuMollweideRaw)); +parcelHelpers.export(exports, "geoSinusoidal", ()=>(0, _sinusoidalJsDefault1.default)); +parcelHelpers.export(exports, "geoSinusoidalRaw", ()=>(0, _sinusoidalJs1.sinusoidalRaw)); +parcelHelpers.export(exports, "geoStitch", ()=>(0, _stitchJsDefault.default)); +parcelHelpers.export(exports, "geoTimes", ()=>(0, _timesJsDefault.default)); +parcelHelpers.export(exports, "geoTimesRaw", ()=>(0, _timesJs.timesRaw)); +parcelHelpers.export(exports, "geoTwoPointAzimuthal", ()=>(0, _twoPointAzimuthalJsDefault.default)); +parcelHelpers.export(exports, "geoTwoPointAzimuthalRaw", ()=>(0, _twoPointAzimuthalJs.twoPointAzimuthalRaw)); +parcelHelpers.export(exports, "geoTwoPointAzimuthalUsa", ()=>(0, _twoPointAzimuthalJs.twoPointAzimuthalUsa)); +parcelHelpers.export(exports, "geoTwoPointEquidistant", ()=>(0, _twoPointEquidistantJsDefault.default)); +parcelHelpers.export(exports, "geoTwoPointEquidistantRaw", ()=>(0, _twoPointEquidistantJs.twoPointEquidistantRaw)); +parcelHelpers.export(exports, "geoTwoPointEquidistantUsa", ()=>(0, _twoPointEquidistantJs.twoPointEquidistantUsa)); +parcelHelpers.export(exports, "geoVanDerGrinten", ()=>(0, _vanDerGrintenJsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrintenRaw", ()=>(0, _vanDerGrintenJs.vanDerGrintenRaw)); +parcelHelpers.export(exports, "geoVanDerGrinten2", ()=>(0, _vanDerGrinten2JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten2Raw", ()=>(0, _vanDerGrinten2Js.vanDerGrinten2Raw)); +parcelHelpers.export(exports, "geoVanDerGrinten3", ()=>(0, _vanDerGrinten3JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten3Raw", ()=>(0, _vanDerGrinten3Js.vanDerGrinten3Raw)); +parcelHelpers.export(exports, "geoVanDerGrinten4", ()=>(0, _vanDerGrinten4JsDefault.default)); +parcelHelpers.export(exports, "geoVanDerGrinten4Raw", ()=>(0, _vanDerGrinten4Js.vanDerGrinten4Raw)); parcelHelpers.export(exports, "geoWagner", ()=>(0, _wagnerJsDefault.default)); parcelHelpers.export(exports, "geoWagner7", ()=>(0, _wagnerJs.wagner7)); parcelHelpers.export(exports, "geoWagnerRaw", ()=>(0, _wagnerJs.wagnerRaw)); @@ -29027,42 +29476,42 @@ parcelHelpers.export(exports, "geoWagner6", ()=>(0, _wagner6JsDefault.default)); parcelHelpers.export(exports, "geoWagner6Raw", ()=>(0, _wagner6Js.wagner6Raw)); parcelHelpers.export(exports, "geoWiechel", ()=>(0, _wiechelJsDefault.default)); parcelHelpers.export(exports, "geoWiechelRaw", ()=>(0, _wiechelJs.wiechelRaw)); -parcelHelpers.export(exports, "geoWinkel3", ()=>(0, _winkel3Default.default)); -parcelHelpers.export(exports, "geoWinkel3Raw", ()=>(0, _winkel3.winkel3Raw)); -var _airy = require("./airy"); -var _airyDefault = parcelHelpers.interopDefault(_airy); -var _aitoff = require("./aitoff"); -var _aitoffDefault = parcelHelpers.interopDefault(_aitoff); -var _armadillo = require("./armadillo"); -var _armadilloDefault = parcelHelpers.interopDefault(_armadillo); -var _august = require("./august"); -var _augustDefault = parcelHelpers.interopDefault(_august); -var _baker = require("./baker"); -var _bakerDefault = parcelHelpers.interopDefault(_baker); -var _berghaus = require("./berghaus"); -var _berghausDefault = parcelHelpers.interopDefault(_berghaus); -var _bertin = require("./bertin"); -var _bertinDefault = parcelHelpers.interopDefault(_bertin); -var _boggs = require("./boggs"); -var _boggsDefault = parcelHelpers.interopDefault(_boggs); -var _bonne = require("./bonne"); -var _bonneDefault = parcelHelpers.interopDefault(_bonne); -var _bottomley = require("./bottomley"); -var _bottomleyDefault = parcelHelpers.interopDefault(_bottomley); -var _bromley = require("./bromley"); -var _bromleyDefault = parcelHelpers.interopDefault(_bromley); -var _chamberlin = require("./chamberlin"); -var _chamberlinDefault = parcelHelpers.interopDefault(_chamberlin); -var _collignon = require("./collignon"); -var _collignonDefault = parcelHelpers.interopDefault(_collignon); -var _craig = require("./craig"); -var _craigDefault = parcelHelpers.interopDefault(_craig); -var _craster = require("./craster"); -var _crasterDefault = parcelHelpers.interopDefault(_craster); -var _cylindricalEqualArea = require("./cylindricalEqualArea"); -var _cylindricalEqualAreaDefault = parcelHelpers.interopDefault(_cylindricalEqualArea); -var _cylindricalStereographic = require("./cylindricalStereographic"); -var _cylindricalStereographicDefault = parcelHelpers.interopDefault(_cylindricalStereographic); +parcelHelpers.export(exports, "geoWinkel3", ()=>(0, _winkel3JsDefault.default)); +parcelHelpers.export(exports, "geoWinkel3Raw", ()=>(0, _winkel3Js.winkel3Raw)); +var _airyJs = require("./airy.js"); +var _airyJsDefault = parcelHelpers.interopDefault(_airyJs); +var _aitoffJs = require("./aitoff.js"); +var _aitoffJsDefault = parcelHelpers.interopDefault(_aitoffJs); +var _armadilloJs = require("./armadillo.js"); +var _armadilloJsDefault = parcelHelpers.interopDefault(_armadilloJs); +var _augustJs = require("./august.js"); +var _augustJsDefault = parcelHelpers.interopDefault(_augustJs); +var _bakerJs = require("./baker.js"); +var _bakerJsDefault = parcelHelpers.interopDefault(_bakerJs); +var _berghausJs = require("./berghaus.js"); +var _berghausJsDefault = parcelHelpers.interopDefault(_berghausJs); +var _bertinJs = require("./bertin.js"); +var _bertinJsDefault = parcelHelpers.interopDefault(_bertinJs); +var _boggsJs = require("./boggs.js"); +var _boggsJsDefault = parcelHelpers.interopDefault(_boggsJs); +var _bonneJs = require("./bonne.js"); +var _bonneJsDefault = parcelHelpers.interopDefault(_bonneJs); +var _bottomleyJs = require("./bottomley.js"); +var _bottomleyJsDefault = parcelHelpers.interopDefault(_bottomleyJs); +var _bromleyJs = require("./bromley.js"); +var _bromleyJsDefault = parcelHelpers.interopDefault(_bromleyJs); +var _chamberlinJs = require("./chamberlin.js"); +var _chamberlinJsDefault = parcelHelpers.interopDefault(_chamberlinJs); +var _collignonJs = require("./collignon.js"); +var _collignonJsDefault = parcelHelpers.interopDefault(_collignonJs); +var _craigJs = require("./craig.js"); +var _craigJsDefault = parcelHelpers.interopDefault(_craigJs); +var _crasterJs = require("./craster.js"); +var _crasterJsDefault = parcelHelpers.interopDefault(_crasterJs); +var _cylindricalEqualAreaJs = require("./cylindricalEqualArea.js"); +var _cylindricalEqualAreaJsDefault = parcelHelpers.interopDefault(_cylindricalEqualAreaJs); +var _cylindricalStereographicJs = require("./cylindricalStereographic.js"); +var _cylindricalStereographicJsDefault = parcelHelpers.interopDefault(_cylindricalStereographicJs); var _eckert1Js = require("./eckert1.js"); var _eckert1JsDefault = parcelHelpers.interopDefault(_eckert1Js); var _eckert2Js = require("./eckert2.js"); @@ -29113,102 +29562,102 @@ var _homolosineJs = require("./homolosine.js"); var _homolosineJsDefault = parcelHelpers.interopDefault(_homolosineJs); var _hufnagelJs = require("./hufnagel.js"); var _hufnagelJsDefault = parcelHelpers.interopDefault(_hufnagelJs); -var _hyperelliptical = require("./hyperelliptical"); -var _hyperellipticalDefault = parcelHelpers.interopDefault(_hyperelliptical); -var _index = require("./interrupted/index"); -var _indexDefault = parcelHelpers.interopDefault(_index); -var _boggs1 = require("./interrupted/boggs"); -var _boggsDefault1 = parcelHelpers.interopDefault(_boggs1); -var _homolosine = require("./interrupted/homolosine"); -var _homolosineDefault = parcelHelpers.interopDefault(_homolosine); -var _mollweide = require("./interrupted/mollweide"); -var _mollweideDefault = parcelHelpers.interopDefault(_mollweide); -var _mollweideHemispheres = require("./interrupted/mollweideHemispheres"); -var _mollweideHemispheresDefault = parcelHelpers.interopDefault(_mollweideHemispheres); -var _sinuMollweide = require("./interrupted/sinuMollweide"); -var _sinuMollweideDefault = parcelHelpers.interopDefault(_sinuMollweide); -var _sinusoidal = require("./interrupted/sinusoidal"); -var _sinusoidalDefault = parcelHelpers.interopDefault(_sinusoidal); +var _hyperellipticalJs = require("./hyperelliptical.js"); +var _hyperellipticalJsDefault = parcelHelpers.interopDefault(_hyperellipticalJs); +var _indexJs = require("./interrupted/index.js"); +var _indexJsDefault = parcelHelpers.interopDefault(_indexJs); +var _boggsJs1 = require("./interrupted/boggs.js"); +var _boggsJsDefault1 = parcelHelpers.interopDefault(_boggsJs1); +var _homolosineJs1 = require("./interrupted/homolosine.js"); +var _homolosineJsDefault1 = parcelHelpers.interopDefault(_homolosineJs1); +var _mollweideJs = require("./interrupted/mollweide.js"); +var _mollweideJsDefault = parcelHelpers.interopDefault(_mollweideJs); +var _mollweideHemispheresJs = require("./interrupted/mollweideHemispheres.js"); +var _mollweideHemispheresJsDefault = parcelHelpers.interopDefault(_mollweideHemispheresJs); +var _sinuMollweideJs = require("./interrupted/sinuMollweide.js"); +var _sinuMollweideJsDefault = parcelHelpers.interopDefault(_sinuMollweideJs); +var _sinusoidalJs = require("./interrupted/sinusoidal.js"); +var _sinusoidalJsDefault = parcelHelpers.interopDefault(_sinusoidalJs); var _kavrayskiy7Js = require("./kavrayskiy7.js"); var _kavrayskiy7JsDefault = parcelHelpers.interopDefault(_kavrayskiy7Js); var _lagrangeJs = require("./lagrange.js"); var _lagrangeJsDefault = parcelHelpers.interopDefault(_lagrangeJs); -var _larrivee = require("./larrivee"); -var _larriveeDefault = parcelHelpers.interopDefault(_larrivee); -var _laskowski = require("./laskowski"); -var _laskowskiDefault = parcelHelpers.interopDefault(_laskowski); +var _larriveeJs = require("./larrivee.js"); +var _larriveeJsDefault = parcelHelpers.interopDefault(_larriveeJs); +var _laskowskiJs = require("./laskowski.js"); +var _laskowskiJsDefault = parcelHelpers.interopDefault(_laskowskiJs); var _littrowJs = require("./littrow.js"); var _littrowJsDefault = parcelHelpers.interopDefault(_littrowJs); var _loximuthalJs = require("./loximuthal.js"); var _loximuthalJsDefault = parcelHelpers.interopDefault(_loximuthalJs); -var _miller = require("./miller"); -var _millerDefault = parcelHelpers.interopDefault(_miller); -var _modifiedStereographic = require("./modifiedStereographic"); -var _modifiedStereographicDefault = parcelHelpers.interopDefault(_modifiedStereographic); -var _mollweide1 = require("./mollweide"); -var _mollweideDefault1 = parcelHelpers.interopDefault(_mollweide1); -var _mtFlatPolarParabolic = require("./mtFlatPolarParabolic"); -var _mtFlatPolarParabolicDefault = parcelHelpers.interopDefault(_mtFlatPolarParabolic); -var _mtFlatPolarQuartic = require("./mtFlatPolarQuartic"); -var _mtFlatPolarQuarticDefault = parcelHelpers.interopDefault(_mtFlatPolarQuartic); -var _mtFlatPolarSinusoidal = require("./mtFlatPolarSinusoidal"); -var _mtFlatPolarSinusoidalDefault = parcelHelpers.interopDefault(_mtFlatPolarSinusoidal); -var _naturalEarth2 = require("./naturalEarth2"); -var _naturalEarth2Default = parcelHelpers.interopDefault(_naturalEarth2); -var _nellHammer = require("./nellHammer"); -var _nellHammerDefault = parcelHelpers.interopDefault(_nellHammer); -var _quarticAuthalic = require("./interrupted/quarticAuthalic"); -var _quarticAuthalicDefault = parcelHelpers.interopDefault(_quarticAuthalic); -var _nicolosi = require("./nicolosi"); -var _nicolosiDefault = parcelHelpers.interopDefault(_nicolosi); -var _patterson = require("./patterson"); -var _pattersonDefault = parcelHelpers.interopDefault(_patterson); -var _polyconic = require("./polyconic"); -var _polyconicDefault = parcelHelpers.interopDefault(_polyconic); -var _indexJs = require("./polyhedral/index.js"); -var _indexJsDefault = parcelHelpers.interopDefault(_indexJs); +var _millerJs = require("./miller.js"); +var _millerJsDefault = parcelHelpers.interopDefault(_millerJs); +var _modifiedStereographicJs = require("./modifiedStereographic.js"); +var _modifiedStereographicJsDefault = parcelHelpers.interopDefault(_modifiedStereographicJs); +var _mollweideJs1 = require("./mollweide.js"); +var _mollweideJsDefault1 = parcelHelpers.interopDefault(_mollweideJs1); +var _mtFlatPolarParabolicJs = require("./mtFlatPolarParabolic.js"); +var _mtFlatPolarParabolicJsDefault = parcelHelpers.interopDefault(_mtFlatPolarParabolicJs); +var _mtFlatPolarQuarticJs = require("./mtFlatPolarQuartic.js"); +var _mtFlatPolarQuarticJsDefault = parcelHelpers.interopDefault(_mtFlatPolarQuarticJs); +var _mtFlatPolarSinusoidalJs = require("./mtFlatPolarSinusoidal.js"); +var _mtFlatPolarSinusoidalJsDefault = parcelHelpers.interopDefault(_mtFlatPolarSinusoidalJs); +var _naturalEarth2Js = require("./naturalEarth2.js"); +var _naturalEarth2JsDefault = parcelHelpers.interopDefault(_naturalEarth2Js); +var _nellHammerJs = require("./nellHammer.js"); +var _nellHammerJsDefault = parcelHelpers.interopDefault(_nellHammerJs); +var _quarticAuthalicJs = require("./interrupted/quarticAuthalic.js"); +var _quarticAuthalicJsDefault = parcelHelpers.interopDefault(_quarticAuthalicJs); +var _nicolosiJs = require("./nicolosi.js"); +var _nicolosiJsDefault = parcelHelpers.interopDefault(_nicolosiJs); +var _pattersonJs = require("./patterson.js"); +var _pattersonJsDefault = parcelHelpers.interopDefault(_pattersonJs); +var _polyconicJs = require("./polyconic.js"); +var _polyconicJsDefault = parcelHelpers.interopDefault(_polyconicJs); +var _indexJs1 = require("./polyhedral/index.js"); +var _indexJsDefault1 = parcelHelpers.interopDefault(_indexJs1); var _butterflyJs = require("./polyhedral/butterfly.js"); var _butterflyJsDefault = parcelHelpers.interopDefault(_butterflyJs); -var _collignonJs = require("./polyhedral/collignon.js"); -var _collignonJsDefault = parcelHelpers.interopDefault(_collignonJs); +var _collignonJs1 = require("./polyhedral/collignon.js"); +var _collignonJsDefault1 = parcelHelpers.interopDefault(_collignonJs1); var _watermanJs = require("./polyhedral/waterman.js"); var _watermanJsDefault = parcelHelpers.interopDefault(_watermanJs); -var _index1 = require("./project/index"); -var _indexDefault1 = parcelHelpers.interopDefault(_index1); +var _indexJs2 = require("./project/index.js"); +var _indexJsDefault2 = parcelHelpers.interopDefault(_indexJs2); var _gringortenJs1 = require("./quincuncial/gringorten.js"); var _gringortenJsDefault1 = parcelHelpers.interopDefault(_gringortenJs1); var _peirceJs = require("./quincuncial/peirce.js"); var _peirceJsDefault = parcelHelpers.interopDefault(_peirceJs); -var _quantize = require("./quantize"); -var _quantizeDefault = parcelHelpers.interopDefault(_quantize); -var _indexJs1 = require("./quincuncial/index.js"); -var _indexJsDefault1 = parcelHelpers.interopDefault(_indexJs1); -var _rectangularPolyconic = require("./rectangularPolyconic"); -var _rectangularPolyconicDefault = parcelHelpers.interopDefault(_rectangularPolyconic); -var _robinson = require("./robinson"); -var _robinsonDefault = parcelHelpers.interopDefault(_robinson); -var _satellite = require("./satellite"); -var _satelliteDefault = parcelHelpers.interopDefault(_satellite); -var _sinuMollweide1 = require("./sinuMollweide"); -var _sinuMollweideDefault1 = parcelHelpers.interopDefault(_sinuMollweide1); -var _sinusoidal1 = require("./sinusoidal"); -var _sinusoidalDefault1 = parcelHelpers.interopDefault(_sinusoidal1); -var _stitch = require("./stitch"); -var _stitchDefault = parcelHelpers.interopDefault(_stitch); -var _times = require("./times"); -var _timesDefault = parcelHelpers.interopDefault(_times); -var _twoPointAzimuthal = require("./twoPointAzimuthal"); -var _twoPointAzimuthalDefault = parcelHelpers.interopDefault(_twoPointAzimuthal); -var _twoPointEquidistant = require("./twoPointEquidistant"); -var _twoPointEquidistantDefault = parcelHelpers.interopDefault(_twoPointEquidistant); -var _vanDerGrinten = require("./vanDerGrinten"); -var _vanDerGrintenDefault = parcelHelpers.interopDefault(_vanDerGrinten); -var _vanDerGrinten2 = require("./vanDerGrinten2"); -var _vanDerGrinten2Default = parcelHelpers.interopDefault(_vanDerGrinten2); -var _vanDerGrinten3 = require("./vanDerGrinten3"); -var _vanDerGrinten3Default = parcelHelpers.interopDefault(_vanDerGrinten3); -var _vanDerGrinten4 = require("./vanDerGrinten4"); -var _vanDerGrinten4Default = parcelHelpers.interopDefault(_vanDerGrinten4); +var _quantizeJs = require("./quantize.js"); +var _quantizeJsDefault = parcelHelpers.interopDefault(_quantizeJs); +var _indexJs3 = require("./quincuncial/index.js"); +var _indexJsDefault3 = parcelHelpers.interopDefault(_indexJs3); +var _rectangularPolyconicJs = require("./rectangularPolyconic.js"); +var _rectangularPolyconicJsDefault = parcelHelpers.interopDefault(_rectangularPolyconicJs); +var _robinsonJs = require("./robinson.js"); +var _robinsonJsDefault = parcelHelpers.interopDefault(_robinsonJs); +var _satelliteJs = require("./satellite.js"); +var _satelliteJsDefault = parcelHelpers.interopDefault(_satelliteJs); +var _sinuMollweideJs1 = require("./sinuMollweide.js"); +var _sinuMollweideJsDefault1 = parcelHelpers.interopDefault(_sinuMollweideJs1); +var _sinusoidalJs1 = require("./sinusoidal.js"); +var _sinusoidalJsDefault1 = parcelHelpers.interopDefault(_sinusoidalJs1); +var _stitchJs = require("./stitch.js"); +var _stitchJsDefault = parcelHelpers.interopDefault(_stitchJs); +var _timesJs = require("./times.js"); +var _timesJsDefault = parcelHelpers.interopDefault(_timesJs); +var _twoPointAzimuthalJs = require("./twoPointAzimuthal.js"); +var _twoPointAzimuthalJsDefault = parcelHelpers.interopDefault(_twoPointAzimuthalJs); +var _twoPointEquidistantJs = require("./twoPointEquidistant.js"); +var _twoPointEquidistantJsDefault = parcelHelpers.interopDefault(_twoPointEquidistantJs); +var _vanDerGrintenJs = require("./vanDerGrinten.js"); +var _vanDerGrintenJsDefault = parcelHelpers.interopDefault(_vanDerGrintenJs); +var _vanDerGrinten2Js = require("./vanDerGrinten2.js"); +var _vanDerGrinten2JsDefault = parcelHelpers.interopDefault(_vanDerGrinten2Js); +var _vanDerGrinten3Js = require("./vanDerGrinten3.js"); +var _vanDerGrinten3JsDefault = parcelHelpers.interopDefault(_vanDerGrinten3Js); +var _vanDerGrinten4Js = require("./vanDerGrinten4.js"); +var _vanDerGrinten4JsDefault = parcelHelpers.interopDefault(_vanDerGrinten4Js); var _wagnerJs = require("./wagner.js"); var _wagnerJsDefault = parcelHelpers.interopDefault(_wagnerJs); var _wagner4Js = require("./wagner4.js"); @@ -29217,10 +29666,10 @@ var _wagner6Js = require("./wagner6.js"); var _wagner6JsDefault = parcelHelpers.interopDefault(_wagner6Js); var _wiechelJs = require("./wiechel.js"); var _wiechelJsDefault = parcelHelpers.interopDefault(_wiechelJs); -var _winkel3 = require("./winkel3"); -var _winkel3Default = parcelHelpers.interopDefault(_winkel3); +var _winkel3Js = require("./winkel3.js"); +var _winkel3JsDefault = parcelHelpers.interopDefault(_winkel3Js); -},{"./airy":false,"./aitoff":false,"./armadillo":false,"./august":false,"./baker":false,"./berghaus":false,"./bertin":false,"./boggs":false,"./bonne":false,"./bottomley":false,"./bromley":false,"./chamberlin":false,"./collignon":false,"./craig":false,"./craster":false,"./cylindricalEqualArea":false,"./cylindricalStereographic":false,"./eckert1.js":false,"./eckert2.js":false,"./eckert3.js":false,"./eckert4.js":false,"./eckert5.js":false,"./eckert6.js":false,"./eisenlohr.js":false,"./fahey.js":false,"./foucaut.js":false,"./foucautSinusoidal.js":false,"./gilbert.js":false,"./gingery.js":false,"./ginzburg4.js":false,"./ginzburg5.js":false,"./ginzburg6.js":false,"./ginzburg8.js":false,"./ginzburg9.js":false,"./gringorten.js":false,"./guyou.js":false,"./hammer.js":false,"./hammerRetroazimuthal.js":false,"./healpix.js":false,"./hill.js":false,"./homolosine.js":false,"./hufnagel.js":false,"./hyperelliptical":false,"./interrupted/index":false,"./interrupted/boggs":false,"./interrupted/homolosine":false,"./interrupted/mollweide":false,"./interrupted/mollweideHemispheres":false,"./interrupted/sinuMollweide":false,"./interrupted/sinusoidal":false,"./kavrayskiy7.js":false,"./lagrange.js":false,"./larrivee":false,"./laskowski":false,"./littrow.js":false,"./loximuthal.js":false,"./miller":false,"./modifiedStereographic":false,"./mollweide":"dkpmT","./mtFlatPolarParabolic":false,"./mtFlatPolarQuartic":false,"./mtFlatPolarSinusoidal":false,"./naturalEarth2":false,"./nellHammer":false,"./interrupted/quarticAuthalic":false,"./nicolosi":false,"./patterson":false,"./polyconic":false,"./polyhedral/index.js":false,"./polyhedral/butterfly.js":false,"./polyhedral/collignon.js":false,"./polyhedral/waterman.js":false,"./project/index":false,"./quincuncial/gringorten.js":false,"./quincuncial/peirce.js":false,"./quantize":false,"./quincuncial/index.js":false,"./rectangularPolyconic":false,"./robinson":false,"./satellite":false,"./sinuMollweide":false,"./sinusoidal":false,"./stitch":false,"./times":false,"./twoPointAzimuthal":false,"./twoPointEquidistant":false,"./vanDerGrinten":false,"./vanDerGrinten2":false,"./vanDerGrinten3":false,"./vanDerGrinten4":false,"./wagner.js":false,"./wagner4.js":false,"./wagner6.js":false,"./wiechel.js":false,"./winkel3":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dkpmT":[function(require,module,exports) { +},{"./airy.js":false,"./aitoff.js":false,"./armadillo.js":false,"./august.js":false,"./baker.js":false,"./berghaus.js":false,"./bertin.js":false,"./boggs.js":false,"./bonne.js":false,"./bottomley.js":false,"./bromley.js":false,"./chamberlin.js":false,"./collignon.js":false,"./craig.js":false,"./craster.js":false,"./cylindricalEqualArea.js":false,"./cylindricalStereographic.js":false,"./eckert1.js":false,"./eckert2.js":false,"./eckert3.js":false,"./eckert4.js":false,"./eckert5.js":false,"./eckert6.js":false,"./eisenlohr.js":false,"./fahey.js":false,"./foucaut.js":false,"./foucautSinusoidal.js":false,"./gilbert.js":false,"./gingery.js":false,"./ginzburg4.js":false,"./ginzburg5.js":false,"./ginzburg6.js":false,"./ginzburg8.js":false,"./ginzburg9.js":false,"./gringorten.js":false,"./guyou.js":false,"./hammer.js":false,"./hammerRetroazimuthal.js":false,"./healpix.js":false,"./hill.js":false,"./homolosine.js":false,"./hufnagel.js":false,"./hyperelliptical.js":false,"./interrupted/index.js":false,"./interrupted/boggs.js":false,"./interrupted/homolosine.js":false,"./interrupted/mollweide.js":false,"./interrupted/mollweideHemispheres.js":false,"./interrupted/sinuMollweide.js":false,"./interrupted/sinusoidal.js":false,"./kavrayskiy7.js":false,"./lagrange.js":false,"./larrivee.js":false,"./laskowski.js":false,"./littrow.js":false,"./loximuthal.js":false,"./miller.js":false,"./modifiedStereographic.js":false,"./mollweide.js":"dkpmT","./mtFlatPolarParabolic.js":false,"./mtFlatPolarQuartic.js":false,"./mtFlatPolarSinusoidal.js":false,"./naturalEarth2.js":false,"./nellHammer.js":false,"./interrupted/quarticAuthalic.js":false,"./nicolosi.js":false,"./patterson.js":false,"./polyconic.js":false,"./polyhedral/index.js":false,"./polyhedral/butterfly.js":false,"./polyhedral/collignon.js":false,"./polyhedral/waterman.js":false,"./project/index.js":false,"./quincuncial/gringorten.js":false,"./quincuncial/peirce.js":false,"./quantize.js":false,"./quincuncial/index.js":false,"./rectangularPolyconic.js":false,"./robinson.js":false,"./satellite.js":false,"./sinuMollweide.js":false,"./sinusoidal.js":false,"./stitch.js":false,"./times.js":false,"./twoPointAzimuthal.js":false,"./twoPointEquidistant.js":false,"./vanDerGrinten.js":false,"./vanDerGrinten2.js":false,"./vanDerGrinten3.js":false,"./vanDerGrinten4.js":false,"./wagner.js":false,"./wagner4.js":false,"./wagner6.js":false,"./wiechel.js":false,"./winkel3.js":false,"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"dkpmT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "mollweideBromleyTheta", ()=>mollweideBromleyTheta); @@ -30631,7 +31080,7 @@ function timerFlush() { ++frame; // Pretend we’ve set an alarm, if we haven’t already. var t = taskHead, e; while(t){ - if ((e = clockNow - t._time) >= 0) t._call.call(null, e); + if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e); t = t._next; } --frame; @@ -30921,7 +31370,7 @@ function setFields(node, fields, as) { for(let i = 0; i < n; ++i)t[as[i]] = node[fields[i]]; t[as[n]] = node.children ? node.children.length : 0; } -const Output = [ +const Output$3 = [ "x", "y", "r", @@ -30971,8 +31420,8 @@ Pack.Definition = { "name": "as", "type": "string", "array": true, - "length": Output.length, - "default": Output + "length": Output$3.length, + "default": Output$3 } ] }; @@ -30983,9 +31432,9 @@ Pack.Definition = { "size", "padding" ], - fields: Output + fields: Output$3 }); -const Output$1 = [ +const Output$2 = [ "x0", "y0", "x1", @@ -31036,8 +31485,8 @@ Partition.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$1.length, - "default": Output$1 + "length": Output$2.length, + "default": Output$2 } ] }; @@ -31048,7 +31497,7 @@ Partition.Definition = { "round", "padding" ], - fields: Output$1 + fields: Output$2 }); /** * Stratify a collection of tuples into a tree structure based on @@ -31095,7 +31544,7 @@ const Layouts = { tidy: (0, _d3Hierarchy.tree), cluster: (0, _d3Hierarchy.cluster) }; -const Output$2 = [ +const Output$1 = [ "x", "y", "depth", @@ -31154,8 +31603,8 @@ Tree.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$2.length, - "default": Output$2 + "length": Output$1.length, + "default": Output$1 } ] }; @@ -31171,7 +31620,7 @@ Tree.Definition = { "size", "nodeSize" ], - fields: Output$2 + fields: Output$1 }); /** * Generate tuples representing links between tree nodes. @@ -31225,7 +31674,7 @@ const Tiles = { squarify: (0, _d3Hierarchy.treemapSquarify), resquarify: (0, _d3Hierarchy.treemapResquarify) }; -const Output$3 = [ +const Output = [ "x0", "y0", "x1", @@ -31324,8 +31773,8 @@ Treemap.Definition = { "name": "as", "type": "string", "array": true, - "length": Output$3.length, - "default": Output$3 + "length": Output.length, + "default": Output } ] }; @@ -31358,7 +31807,7 @@ Treemap.Definition = { "paddingBottom", "paddingLeft" ], - fields: Output$3 + fields: Output }); },{"vega-dataflow":"3NitK","vega-util":"bApja","d3-hierarchy":"4fr5p","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4fr5p":[function(require,module,exports) { @@ -31366,6 +31815,7 @@ var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "cluster", ()=>(0, _clusterJsDefault.default)); parcelHelpers.export(exports, "hierarchy", ()=>(0, _indexJsDefault.default)); +parcelHelpers.export(exports, "Node", ()=>(0, _indexJs.Node)); parcelHelpers.export(exports, "pack", ()=>(0, _indexJsDefault1.default)); parcelHelpers.export(exports, "packSiblings", ()=>(0, _siblingsJsDefault.default)); parcelHelpers.export(exports, "packEnclose", ()=>(0, _encloseJsDefault.default)); @@ -31750,19 +32200,22 @@ exports.default = function*() { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eQFOB":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -var _siblingsJs = require("./siblings.js"); var _accessorsJs = require("../accessors.js"); var _constantJs = require("../constant.js"); var _constantJsDefault = parcelHelpers.interopDefault(_constantJs); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); +var _siblingsJs = require("./siblings.js"); function defaultRadius(d) { return Math.sqrt(d.value); } exports.default = function() { var radius = null, dx = 1, dy = 1, padding = (0, _constantJs.constantZero); function pack(root) { + const random = (0, _lcgJsDefault.default)(); root.x = dx / 2, root.y = dy / 2; - if (radius) root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1)); - else root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren((0, _constantJs.constantZero), 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); + if (radius) root.eachBefore(radiusLeaf(radius)).eachAfter(packChildrenRandom(padding, 0.5, random)).eachBefore(translateChild(1)); + else root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildrenRandom((0, _constantJs.constantZero), 1, random)).eachAfter(packChildrenRandom(padding, root.r / Math.min(dx, dy), random)).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r))); return root; } pack.radius = function(x) { @@ -31784,12 +32237,12 @@ function radiusLeaf(radius) { if (!node.children) node.r = Math.max(0, +radius(node) || 0); }; } -function packChildren(padding, k) { +function packChildrenRandom(padding, k, random) { return function(node) { if (children = node.children) { var children, i, n = children.length, r = padding(node) * k || 0, e; if (r) for(i = 0; i < n; ++i)children[i].r += r; - e = (0, _siblingsJs.packEnclose)(children); + e = (0, _siblingsJs.packSiblingsRandom)(children, random); if (r) for(i = 0; i < n; ++i)children[i].r -= r; node.r = e + r; } @@ -31806,14 +32259,53 @@ function translateChild(k) { }; } -},{"./siblings.js":"8RhM7","../accessors.js":"i242w","../constant.js":"i6Ely","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8RhM7":[function(require,module,exports) { +},{"../accessors.js":"i242w","../constant.js":"i6Ely","../lcg.js":"9jKig","./siblings.js":"8RhM7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i242w":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "packEnclose", ()=>packEnclose); +parcelHelpers.export(exports, "optional", ()=>optional); +parcelHelpers.export(exports, "required", ()=>required); +function optional(f) { + return f == null ? null : required(f); +} +function required(f) { + if (typeof f !== "function") throw new Error; + return f; +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i6Ely":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "constantZero", ()=>constantZero); +function constantZero() { + return 0; +} +exports.default = function(x) { + return function() { + return x; + }; +}; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9jKig":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use +const a = 1664525; +const c = 1013904223; +const m = 4294967296; // 2^32 +exports.default = function() { + let s = 1; + return ()=>(s = (a * s + c) % m) / m; +}; + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"8RhM7":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "packSiblingsRandom", ()=>packSiblingsRandom); var _arrayJs = require("../array.js"); var _arrayJsDefault = parcelHelpers.interopDefault(_arrayJs); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); var _encloseJs = require("./enclose.js"); -var _encloseJsDefault = parcelHelpers.interopDefault(_encloseJs); function place(b, a, c) { var dx = b.x - a.x, x, a2, dy = b.y - a.y, y, b2, d2 = dx * dx + dy * dy; if (d2) { @@ -31848,7 +32340,7 @@ function Node(circle) { this.next = null; this.previous = null; } -function packEnclose(circles) { +function packSiblingsRandom(circles, random) { if (!(n = (circles = (0, _arrayJsDefault.default)(circles)).length)) return 0; var a, b, c, n, aa, ca, i, j, k, sj, sk; // Place the first circle. @@ -31897,17 +32389,17 @@ function packEnclose(circles) { b._ ], c = b; while((c = c.next) !== b)a.push(c._); - c = (0, _encloseJsDefault.default)(a); + c = (0, _encloseJs.packEncloseRandom)(a, random); // Translate the circles to put the enclosing circle around the origin. for(i = 0; i < n; ++i)a = circles[i], a.x -= c.x, a.y -= c.y; return c.r; } exports.default = function(circles) { - packEnclose(circles); + packSiblingsRandom(circles, (0, _lcgJsDefault.default)()); return circles; }; -},{"../array.js":"4vcaT","./enclose.js":"gBh5f","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4vcaT":[function(require,module,exports) { +},{"../array.js":"4vcaT","../lcg.js":"9jKig","./enclose.js":"gBh5f","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"4vcaT":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "shuffle", ()=>shuffle); @@ -31915,10 +32407,10 @@ exports.default = function(x) { return typeof x === "object" && "length" in x ? x // Array, TypedArray, NodeList, array-like : Array.from(x); // Map, Set, iterable, string, or anything else }; -function shuffle(array) { - var m = array.length, t, i; +function shuffle(array, random) { + let m = array.length, t, i; while(m){ - i = Math.random() * m-- | 0; + i = random() * m-- | 0; t = array[m]; array[m] = array[i]; array[i] = t; @@ -31929,16 +32421,22 @@ function shuffle(array) { },{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gBh5f":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "packEncloseRandom", ()=>packEncloseRandom); var _arrayJs = require("../array.js"); +var _lcgJs = require("../lcg.js"); +var _lcgJsDefault = parcelHelpers.interopDefault(_lcgJs); exports.default = function(circles) { - var i = 0, n = (circles = (0, _arrayJs.shuffle)(Array.from(circles))).length, B = [], p, e; + return packEncloseRandom(circles, (0, _lcgJsDefault.default)()); +}; +function packEncloseRandom(circles, random) { + var i = 0, n = (circles = (0, _arrayJs.shuffle)(Array.from(circles), random)).length, B = [], p, e; while(i < n){ p = circles[i]; if (e && enclosesWeak(e, p)) ++i; else e = encloseBasis(B = extendBasis(B, p)), i = 0; } return e; -}; +} function extendBasis(B, p) { var i, j; if (enclosesWeakAll(p, B)) return [ @@ -32002,7 +32500,7 @@ function encloseBasis2(a, b) { }; } function encloseBasis3(a, b, c) { - var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A = xb * xb + yb * yb - 1, B = 2 * (r1 + xa * xb + ya * yb), C = xa * xa + ya * ya - r1 * r1, r = -(A ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); + var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A = xb * xb + yb * yb - 1, B = 2 * (r1 + xa * xb + ya * yb), C = xa * xa + ya * ya - r1 * r1, r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B); return { x: x1 + xa + xb * r, y: y1 + ya + yb * r, @@ -32010,33 +32508,7 @@ function encloseBasis3(a, b, c) { }; } -},{"../array.js":"4vcaT","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i242w":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "optional", ()=>optional); -parcelHelpers.export(exports, "required", ()=>required); -function optional(f) { - return f == null ? null : required(f); -} -function required(f) { - if (typeof f !== "function") throw new Error; - return f; -} - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"i6Ely":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "constantZero", ()=>constantZero); -function constantZero() { - return 0; -} -exports.default = function(x) { - return function() { - return x; - }; -}; - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hfHoW":[function(require,module,exports) { +},{"../array.js":"4vcaT","../lcg.js":"9jKig","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hfHoW":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); var _roundJs = require("./treemap/round.js"); @@ -32109,7 +32581,7 @@ var _accessorsJs = require("./accessors.js"); var _indexJs = require("./hierarchy/index.js"); var preroot = { depth: -1 -}, ambiguous = {}; +}, ambiguous = {}, imputed = {}; function defaultId(d) { return d.id; } @@ -32117,16 +32589,29 @@ function defaultParentId(d) { return d.parentId; } exports.default = function() { - var id = defaultId, parentId = defaultParentId; + var id = defaultId, parentId = defaultParentId, path; function stratify(data) { - var nodes = Array.from(data), n = nodes.length, d, i, root, parent, node, nodeId, nodeKey, nodeByKey = new Map; - for(i = 0; i < n; ++i){ + var nodes = Array.from(data), currentId = id, currentParentId = parentId, n, d, i, root, parent, node, nodeId, nodeKey, nodeByKey = new Map; + if (path != null) { + const I = nodes.map((d, i)=>normalize(path(d, i, data))); + const P = I.map(parentof); + const S = new Set(I).add(""); + for (const i1 of P)if (!S.has(i1)) { + S.add(i1); + I.push(i1); + P.push(parentof(i1)); + nodes.push(imputed); + } + currentId = (_, i)=>I[i]; + currentParentId = (_, i)=>P[i]; + } + for(i = 0, n = nodes.length; i < n; ++i){ d = nodes[i], node = nodes[i] = new (0, _indexJs.Node)(d); - if ((nodeId = id(d, i, data)) != null && (nodeId += "")) { + if ((nodeId = currentId(d, i, data)) != null && (nodeId += "")) { nodeKey = node.id = nodeId; nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node); } - if ((nodeId = parentId(d, i, data)) != null && (nodeId += "")) node.parent = nodeId; + if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += "")) node.parent = nodeId; } for(i = 0; i < n; ++i){ node = nodes[i]; @@ -32145,6 +32630,16 @@ exports.default = function() { } } if (!root) throw new Error("no root"); + // When imputing internal nodes, only introduce roots if needed. + // Then replace the imputed marker data with null. + if (path != null) { + while(root.data === imputed && root.children.length === 1)root = root.children[0], --n; + for(let i2 = nodes.length - 1; i2 >= 0; --i2){ + node = nodes[i2]; + if (node.data !== imputed) break; + node.data = null; + } + } root.parent = preroot; root.eachBefore(function(node) { node.depth = node.parent.depth + 1; @@ -32155,13 +32650,45 @@ exports.default = function() { return root; } stratify.id = function(x) { - return arguments.length ? (id = (0, _accessorsJs.required)(x), stratify) : id; + return arguments.length ? (id = (0, _accessorsJs.optional)(x), stratify) : id; }; stratify.parentId = function(x) { - return arguments.length ? (parentId = (0, _accessorsJs.required)(x), stratify) : parentId; + return arguments.length ? (parentId = (0, _accessorsJs.optional)(x), stratify) : parentId; + }; + stratify.path = function(x) { + return arguments.length ? (path = (0, _accessorsJs.optional)(x), stratify) : path; }; return stratify; }; +// To normalize a path, we coerce to a string, strip the trailing slash if any +// (as long as the trailing slash is not immediately preceded by another slash), +// and add leading slash if missing. +function normalize(path) { + path = `${path}`; + let i = path.length; + if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1); + return path[0] === "/" ? path : `/${path}`; +} +// Walk backwards to find the first slash that is not the leading slash, e.g.: +// "/foo/bar" ⇥ "/foo", "/foo" ⇥ "/", "/" ↦ "". (The root is special-cased +// because the id of the root must be a truthy value.) +function parentof(path) { + let i = path.length; + if (i < 2) return ""; + while(--i > 1)if (slash(path, i)) break; + return path.slice(0, i); +} +// Slashes can be escaped; to determine whether a slash is a path delimiter, we +// count the number of preceding backslashes escaping the forward slash: an odd +// number indicates an escaped forward slash. +function slash(path, i) { + if (path[i] === "/") { + let k = 0; + while(i > 0 && path[--i] === "\\")++k; + if ((k & 1) === 0) return true; + } + return false; +} },{"./accessors.js":"i242w","./hierarchy/index.js":"jtgBj","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"5MDZW":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -32578,13 +33105,11 @@ exports.default = function custom(ratio) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "label", ()=>Label); +var _vegaScenegraph = require("vega-scenegraph"); var _vegaCanvas = require("vega-canvas"); var _vegaDataflow = require("vega-dataflow"); -var _vegaScenegraph = require("vega-scenegraph"); var _vegaUtil = require("vega-util"); -const ALPHA_MASK = 0xff000000; // alpha value equivalent to opacity 0.0625 -const INSIDE_OPACITY_IN_ALPHA = 0x10000000; -const INSIDE_OPACITY = 0.0625; +const ALPHA_MASK = 0xff000000; function baseBitmaps($, data) { const bitmap = $.bitmap(); // when there is no base mark but data points are to be avoided (data || []).forEach((d)=>bitmap.set($(d.boundary[0]), $(d.boundary[3]))); @@ -32593,19 +33118,25 @@ function baseBitmaps($, data) { undefined ]; } -function markBitmaps($, avoidMarks, labelInside, isGroupArea) { +function markBitmaps($, baseMark, avoidMarks, labelInside, isGroupArea) { // create canvas - const width = $.width, height = $.height, border = labelInside || isGroupArea, context = (0, _vegaCanvas.canvas)(width, height).getContext("2d"); // render all marks to be avoided into canvas - avoidMarks.forEach((items)=>draw(context, items, border)); // get canvas buffer, create bitmaps - const buffer = new Uint32Array(context.getImageData(0, 0, width, height).data.buffer), layer1 = $.bitmap(), layer2 = border && $.bitmap(); // populate bitmap layers - let x, y, u, v, alpha; + const width = $.width, height = $.height, border = labelInside || isGroupArea, context = (0, _vegaCanvas.canvas)(width, height).getContext("2d"), baseMarkContext = (0, _vegaCanvas.canvas)(width, height).getContext("2d"), strokeContext = border && (0, _vegaCanvas.canvas)(width, height).getContext("2d"); // render all marks to be avoided into canvas + avoidMarks.forEach((items)=>draw(context, items, false)); + draw(baseMarkContext, baseMark, false); + if (border) draw(strokeContext, baseMark, true); + // get canvas buffer, create bitmaps + const buffer = getBuffer(context, width, height), baseMarkBuffer = getBuffer(baseMarkContext, width, height), strokeBuffer = border && getBuffer(strokeContext, width, height), layer1 = $.bitmap(), layer2 = border && $.bitmap(); // populate bitmap layers + let x, y, u, v, index, alpha, strokeAlpha, baseMarkAlpha; for(y = 0; y < height; ++y)for(x = 0; x < width; ++x){ - alpha = buffer[y * width + x] & ALPHA_MASK; - if (alpha) { + index = y * width + x; + alpha = buffer[index] & ALPHA_MASK; + baseMarkAlpha = baseMarkBuffer[index] & ALPHA_MASK; + strokeAlpha = border && strokeBuffer[index] & ALPHA_MASK; + if (alpha || strokeAlpha || baseMarkAlpha) { u = $(x); v = $(y); - if (!isGroupArea) layer1.set(u, v); // update interior bitmap - if (border && alpha ^ INSIDE_OPACITY_IN_ALPHA) layer2.set(u, v); // update border bitmap + if (!isGroupArea && (alpha || baseMarkAlpha)) layer1.set(u, v); // update interior bitmap + if (border && (alpha || strokeAlpha)) layer2.set(u, v); // update border bitmap } } return [ @@ -32613,6 +33144,9 @@ function markBitmaps($, avoidMarks, labelInside, isGroupArea) { layer2 ]; } +function getBuffer(context, width, height) { + return new Uint32Array(context.getImageData(0, 0, width, height).data.buffer); +} function draw(context, items, interior) { if (!items.length) return; const type = items[0].mark.marktype; @@ -32629,13 +33163,12 @@ function draw(context, items, interior) { * @returns prepared item */ function prepare(source) { const item = (0, _vegaDataflow.rederive)(source, {}); - if (item.stroke) item.strokeOpacity = 1; - if (item.fill) { - item.fillOpacity = INSIDE_OPACITY; - item.stroke = "#000"; - item.strokeOpacity = 1; - item.strokeWidth = 2; - } + if (item.stroke && item.strokeOpacity !== 0 || item.fill && item.fillOpacity !== 0) return { + ...item, + strokeOpacity: 1, + stroke: "#000", + fillOpacity: 0 + }; return item; } const DIV = 5, // bit shift from x, y index to bit vector array index @@ -32963,9 +33496,10 @@ const Aligns = [ function placeMarkLabel($, bitmaps, anchors, offsets) { const width = $.width, height = $.height, bm0 = bitmaps[0], bm1 = bitmaps[1], n = offsets.length; return function(d) { + var _d$textWidth; const boundary = d.boundary, textHeight = d.datum.fontSize; // can not be placed if the mark is not visible in the graph bound if (boundary[2] < 0 || boundary[5] < 0 || boundary[0] > width || boundary[3] > height) return false; - let textWidth = 0, dx, dy, isInside, sizeFactor, insideFactor, x1, x2, y1, y2, xc, yc, _x1, _x2, _y1, _y2; // for each anchor and offset + let textWidth = (_d$textWidth = d.textWidth) !== null && _d$textWidth !== void 0 ? _d$textWidth : 0, dx, dy, isInside, sizeFactor, insideFactor, x1, x2, y1, y2, xc, yc, _x1, _x2, _y1, _y2; // for each anchor and offset for(let i = 0; i < n; ++i){ dx = (anchors[i] & 0x3) - 1; dy = (anchors[i] >>> 0x2 & 0x3) - 1; @@ -33004,10 +33538,7 @@ function placeMarkLabel($, bitmaps, anchors, offsets) { }; } // Test if a label with the given dimensions can be added without overlap function test(_x1, _x2, _y1, _y2, bm0, bm1, x1, x2, y1, y2, boundary, isInside) { - return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 ? bm1.getRange(_x1, _y1, _x2, _y2) || !isInMarkBound(x1, y1, x2, y2, boundary) : bm0.getRange(_x1, _y1, _x2, _y2))); -} -function isInMarkBound(x1, y1, x2, y2, boundary) { - return boundary[0] <= x1 && x2 <= boundary[2] && boundary[3] <= y1 && y2 <= boundary[5]; + return !(bm0.outOfBounds(_x1, _y1, _x2, _y2) || (isInside && bm1 || bm0).getRange(_x1, _y1, _x2, _y2)); } const TOP = 0x0, MIDDLE = 0x4, BOTTOM = 0x8, LEFT = 0x0, CENTER = 0x1, RIGHT = 0x2; // Mapping from text anchor to number representation const anchorCode = { @@ -33029,16 +33560,25 @@ const placeAreaLabel = { function labelLayout(texts, size, compare, offset, anchor, avoidMarks, avoidBaseMark, lineAnchor, markIndex, padding, method) { // early exit for empty data if (!texts.length) return texts; - const positions = Math.max(offset.length, anchor.length), offsets = getOffsets(offset, positions), anchors = getAnchors(anchor, positions), marktype = markType(texts[0].datum), grouptype = marktype === "group" && texts[0].datum.items[markIndex].marktype, isGroupArea = grouptype === "area", boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex), $ = scaler(size[0], size[1], padding), isNaiveGroupArea = isGroupArea && method === "naive"; // prepare text mark data for placing - const data = texts.map((d)=>({ + const positions = Math.max(offset.length, anchor.length), offsets = getOffsets(offset, positions), anchors = getAnchors(anchor, positions), marktype = markType(texts[0].datum), grouptype = marktype === "group" && texts[0].datum.items[markIndex].marktype, isGroupArea = grouptype === "area", boundary = markBoundary(marktype, grouptype, lineAnchor, markIndex), infPadding = padding === null || padding === Infinity, isNaiveGroupArea = isGroupArea && method === "naive"; + let maxTextWidth = -1, maxTextHeight = -1; // prepare text mark data for placing + const data = texts.map((d)=>{ + const textWidth = infPadding ? (0, _vegaScenegraph.textMetrics).width(d, d.text) : undefined; + maxTextWidth = Math.max(maxTextWidth, textWidth); + maxTextHeight = Math.max(maxTextHeight, d.fontSize); + return { datum: d, opacity: 0, x: undefined, y: undefined, align: undefined, baseline: undefined, - boundary: boundary(d) - })); + boundary: boundary(d), + textWidth + }; + }); + padding = padding === null || padding === Infinity ? Math.max(maxTextWidth, maxTextHeight) + Math.max(...offset) : padding; + const $ = scaler(size[0], size[1], padding); let bitmaps; if (!isNaiveGroupArea) { // sort labels in priority order, if comparator is provided @@ -33050,11 +33590,8 @@ function labelLayout(texts, size, compare, offset, anchor, avoidMarks, avoidBase labelInside = anchors[i] === 0x5 || offsets[i] < 0; // extract data information from base mark when base mark is to be avoided // base mark is implicitly avoided if it is a group area - if (marktype && (avoidBaseMark || isGroupArea)) avoidMarks = [ - texts.map((d)=>d.datum) - ].concat(avoidMarks); - // generate bitmaps for layout calculation - bitmaps = avoidMarks.length ? markBitmaps($, avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data); + const baseMark = (marktype && avoidBaseMark || isGroupArea) && texts.map((d)=>d.datum); // generate bitmaps for layout calculation + bitmaps = avoidMarks.length || baseMark ? markBitmaps($, baseMark || [], avoidMarks, labelInside, isGroupArea) : baseBitmaps($, avoidBaseMark && data); } // generate label placement function const place = isGroupArea ? placeAreaLabel[method]($, bitmaps, avoidBaseMark, markIndex) : placeMarkLabel($, bitmaps, anchors, offsets); // place all labels data.forEach((d)=>d.opacity = +place(d)); @@ -33079,7 +33616,7 @@ function markType(item) { * Factory function for function for getting base mark boundary, depending * on mark and group type. When mark type is undefined, line or area: boundary * is the coordinate of each data point. When base mark is grouped line, - * boundary is either at the beginning or end of the line depending on the + * boundary is either at the start or end of the line depending on the * value of lineAnchor. Otherwise, use bounds of base mark. */ function markBoundary(marktype, grouptype, lineAnchor, markIndex) { const xy = (d)=>[ @@ -33139,8 +33676,9 @@ const Anchors = [ * The available options are 'top-left', 'left', 'bottom-left', 'top', * 'bottom', 'top-right', 'right', 'bottom-right', 'middle'. * @param {Array} [params.offset] - Label offsets (in pixels) from the base mark bounding box. - * This parameter is parallel to the list of anchor points. - * @param {number} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size. + * This parameter is parallel to the list of anchor points. + * @param {number | null} [params.padding=0] - The amount (in pixels) that a label may exceed the layout size. + * If this parameter is null, a label may exceed the layout size without any boundary. * @param {string} [params.lineAnchor='end'] - For group line mark labels only, indicates the anchor * position for labels. One of 'start' or 'end'. * @param {string} [params.markIndex=0] - For group mark labels only, an index indicating @@ -33190,7 +33728,8 @@ Label.Definition = { { name: "padding", type: "number", - default: 0 + default: 0, + null: true }, { name: "lineAnchor", @@ -33240,7 +33779,7 @@ Label.Definition = { if (!(mod || pulse.changed(pulse.ADD_REM) || modp("sort"))) return; if (!_.size || _.size.length !== 2) (0, _vegaUtil.error)("Size parameter should be specified as a [width, height] array."); const as = _.as || Output; // run label layout - labelLayout(pulse.materialize(pulse.SOURCE).source, _.size, _.sort, (0, _vegaUtil.array)(_.offset || 1), (0, _vegaUtil.array)(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark === false ? false : true, _.lineAnchor || "end", _.markIndex || 0, _.padding || 0, _.method || "naive").forEach((l)=>{ + labelLayout(pulse.materialize(pulse.SOURCE).source || [], _.size, _.sort, (0, _vegaUtil.array)(_.offset == null ? 1 : _.offset), (0, _vegaUtil.array)(_.anchor || Anchors), _.avoidMarks || [], _.avoidBaseMark !== false, _.lineAnchor || "end", _.markIndex || 0, _.padding === undefined ? 0 : _.padding, _.method || "naive").forEach((l)=>{ // write layout results to data stream const t = l.datum; t[as[0]] = l.x; @@ -33253,7 +33792,7 @@ Label.Definition = { } }); -},{"vega-canvas":"f0yaA","vega-dataflow":"3NitK","vega-scenegraph":"jattk","vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"elv3U":[function(require,module,exports) { +},{"vega-scenegraph":"jattk","vega-canvas":"f0yaA","vega-dataflow":"3NitK","vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"elv3U":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "loess", ()=>Loess); @@ -33666,10 +34205,12 @@ class Delaunay { this.triangles = new Int32Array(3).fill(-1); this.halfedges = new Int32Array(3).fill(-1); this.triangles[0] = hull[0]; - this.triangles[1] = hull[1]; - this.triangles[2] = hull[1]; inedges[hull[0]] = 1; - if (hull.length === 2) inedges[hull[1]] = 0; + if (hull.length === 2) { + inedges[hull[1]] = 0; + this.triangles[1] = hull[1]; + this.triangles[2] = hull[1]; + } } } voronoi(bounds) { @@ -33744,7 +34285,9 @@ class Delaunay { this.renderHull(context); return buffer && buffer.value(); } - renderPoints(context, r = 2) { + renderPoints(context, r) { + if (r === undefined && (!context || typeof context.moveTo !== "function")) r = context, context = null; + r = r == undefined ? 2 : +r; const buffer = context == null ? context = new (0, _pathJsDefault.default) : undefined; const { points } = this; for(let i = 0, n = points.length; i < n; i += 2){ @@ -33816,6 +34359,7 @@ function* flatIterable(points, fx, fy, that) { },{"delaunator":"auyGo","./path.js":"60Yfe","./polygon.js":"5nsXD","./voronoi.js":"a33Bo","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"auyGo":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); +var _robustPredicates = require("robust-predicates"); const EPSILON = Math.pow(2, -52); const EDGE_STACK = new Uint32Array(512); class Delaunator { @@ -33923,7 +34467,7 @@ class Delaunator { return; } // swap the order of the seed points for counter-clockwise orientation - if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) { + if ((0, _robustPredicates.orient2d)(i0x, i0y, i1x, i1y, i2x, i2y) < 0) { const i8 = i1; const x1 = i1x; const y1 = i1y; @@ -33973,7 +34517,7 @@ class Delaunator { } start = hullPrev[start]; let e = start, q; - while(q = hullNext[e], !orient(x2, y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])){ + while(q = hullNext[e], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1]) >= 0){ e = q; if (e === start) { e = -1; @@ -33989,7 +34533,7 @@ class Delaunator { hullSize++; // walk forward through the hull, adding more triangles and flipping recursively let n1 = hullNext[e]; - while(q = hullNext[n1], orient(x2, y2, coords[2 * n1], coords[2 * n1 + 1], coords[2 * q], coords[2 * q + 1])){ + while(q = hullNext[n1], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * n1], coords[2 * n1 + 1], coords[2 * q], coords[2 * q + 1]) < 0){ t = this._addTriangle(n1, i10, q, hullTri[i10], -1, hullTri[n1]); hullTri[i10] = this._legalize(t + 2); hullNext[n1] = n1; // mark as removed @@ -33997,7 +34541,7 @@ class Delaunator { n1 = q; } // walk backward from the other side, adding more triangles and flipping - if (e === start) while(q = hullPrev[e], orient(x2, y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])){ + if (e === start) while(q = hullPrev[e], (0, _robustPredicates.orient2d)(x2, y2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1]) < 0){ t = this._addTriangle(q, i10, e, -1, hullTri[e], hullTri[q]); this._legalize(t + 2); hullTri[q] = t; @@ -34117,17 +34661,6 @@ function dist(ax, ay, bx, by) { const dy = ay - by; return dx * dx + dy * dy; } -// return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check -function orientIfSure(px, py, rx, ry, qx, qy) { - const l = (ry - py) * (qx - px); - const r = (rx - px) * (qy - py); - return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0; -} -// a more robust orientation test that's stable in a given triangle (to fix robustness issues) -function orient(rx, ry, qx, qy, px, py) { - const sign = orientIfSure(px, py, rx, ry, qx, qy) || orientIfSure(rx, ry, qx, qy, px, py) || orientIfSure(qx, qy, px, py, rx, ry); - return sign < 0; -} function inCircle(ax, ay, bx, by, cx, cy, px, py) { const dx = ax - px; const dy = ay - py; @@ -34216,7 +34749,2058 @@ function defaultGetY(p) { return p[1]; } -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60Yfe":[function(require,module,exports) { +},{"robust-predicates":"KLZHK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"KLZHK":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient2d", ()=>(0, _orient2DJs.orient2d)); +parcelHelpers.export(exports, "orient2dfast", ()=>(0, _orient2DJs.orient2dfast)); +parcelHelpers.export(exports, "orient3d", ()=>(0, _orient3DJs.orient3d)); +parcelHelpers.export(exports, "orient3dfast", ()=>(0, _orient3DJs.orient3dfast)); +parcelHelpers.export(exports, "incircle", ()=>(0, _incircleJs.incircle)); +parcelHelpers.export(exports, "incirclefast", ()=>(0, _incircleJs.incirclefast)); +parcelHelpers.export(exports, "insphere", ()=>(0, _insphereJs.insphere)); +parcelHelpers.export(exports, "inspherefast", ()=>(0, _insphereJs.inspherefast)); +var _orient2DJs = require("./esm/orient2d.js"); +var _orient3DJs = require("./esm/orient3d.js"); +var _incircleJs = require("./esm/incircle.js"); +var _insphereJs = require("./esm/insphere.js"); + +},{"./esm/orient2d.js":"9dV6v","./esm/orient3d.js":"60Ijp","./esm/incircle.js":"eSgV9","./esm/insphere.js":"lKwEh","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9dV6v":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient2d", ()=>orient2d); +parcelHelpers.export(exports, "orient2dfast", ()=>orient2dfast); +var _utilJs = require("./util.js"); +const ccwerrboundA = (3 + 16 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const ccwerrboundB = (2 + 12 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const ccwerrboundC = (9 + 64 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const B = (0, _utilJs.vec)(4); +const C1 = (0, _utilJs.vec)(8); +const C2 = (0, _utilJs.vec)(12); +const D = (0, _utilJs.vec)(16); +const u = (0, _utilJs.vec)(4); +function orient2dadapt(ax, ay, bx, by, cx, cy, detsum) { + let acxtail, acytail, bcxtail, bcytail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + const acx = ax - cx; + const bcx = bx - cx; + const acy = ay - cy; + const bcy = by - cy; + s1 = acx * bcy; + c = (0, _utilJs.splitter) * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = (0, _utilJs.splitter) * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcx; + c = (0, _utilJs.splitter) * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = (0, _utilJs.splitter) * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + B[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + B[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + B[2] = _j - (u3 - bvirt) + (_i - bvirt); + B[3] = u3; + let det = (0, _utilJs.estimate)(4, B); + let errbound = ccwerrboundB * detsum; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - acx; + acxtail = ax - (acx + bvirt) + (bvirt - cx); + bvirt = bx - bcx; + bcxtail = bx - (bcx + bvirt) + (bvirt - cx); + bvirt = ay - acy; + acytail = ay - (acy + bvirt) + (bvirt - cy); + bvirt = by - bcy; + bcytail = by - (bcy + bvirt) + (bvirt - cy); + if (acxtail === 0 && acytail === 0 && bcxtail === 0 && bcytail === 0) return det; + errbound = ccwerrboundC * detsum + (0, _utilJs.resulterrbound) * Math.abs(det); + det += acx * bcytail + bcy * acxtail - (acy * bcxtail + bcx * acytail); + if (det >= errbound || -det >= errbound) return det; + s1 = acxtail * bcy; + c = (0, _utilJs.splitter) * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = (0, _utilJs.splitter) * bcy; + bhi = c - (c - bcy); + blo = bcy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcx; + c = (0, _utilJs.splitter) * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = (0, _utilJs.splitter) * bcx; + bhi = c - (c - bcx); + blo = bcx - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C1len = (0, _utilJs.sum)(4, B, 4, u, C1); + s1 = acx * bcytail; + c = (0, _utilJs.splitter) * acx; + ahi = c - (c - acx); + alo = acx - ahi; + c = (0, _utilJs.splitter) * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acy * bcxtail; + c = (0, _utilJs.splitter) * acy; + ahi = c - (c - acy); + alo = acy - ahi; + c = (0, _utilJs.splitter) * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const C2len = (0, _utilJs.sum)(C1len, C1, 4, u, C2); + s1 = acxtail * bcytail; + c = (0, _utilJs.splitter) * acxtail; + ahi = c - (c - acxtail); + alo = acxtail - ahi; + c = (0, _utilJs.splitter) * bcytail; + bhi = c - (c - bcytail); + blo = bcytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = acytail * bcxtail; + c = (0, _utilJs.splitter) * acytail; + ahi = c - (c - acytail); + alo = acytail - ahi; + c = (0, _utilJs.splitter) * bcxtail; + bhi = c - (c - bcxtail); + blo = bcxtail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + u[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + u[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + const Dlen = (0, _utilJs.sum)(C2len, C2, 4, u, D); + return D[Dlen - 1]; +} +function orient2d(ax, ay, bx, by, cx, cy) { + const detleft = (ay - cy) * (bx - cx); + const detright = (ax - cx) * (by - cy); + const det = detleft - detright; + if (detleft === 0 || detright === 0 || detleft > 0 !== detright > 0) return det; + const detsum = Math.abs(detleft + detright); + if (Math.abs(det) >= ccwerrboundA * detsum) return det; + return -orient2dadapt(ax, ay, bx, by, cx, cy, detsum); +} +function orient2dfast(ax, ay, bx, by, cx, cy) { + return (ay - cy) * (bx - cx) - (ax - cx) * (by - cy); +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"3WWl7":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "epsilon", ()=>epsilon); +parcelHelpers.export(exports, "splitter", ()=>splitter); +parcelHelpers.export(exports, "resulterrbound", ()=>resulterrbound); +// fast_expansion_sum_zeroelim routine from oritinal code +parcelHelpers.export(exports, "sum", ()=>sum); +parcelHelpers.export(exports, "sum_three", ()=>sum_three); +// scale_expansion_zeroelim routine from oritinal code +parcelHelpers.export(exports, "scale", ()=>scale); +parcelHelpers.export(exports, "negate", ()=>negate); +parcelHelpers.export(exports, "estimate", ()=>estimate); +parcelHelpers.export(exports, "vec", ()=>vec); +const epsilon = 1.1102230246251565e-16; +const splitter = 134217729; +const resulterrbound = (3 + 8 * epsilon) * epsilon; +function sum(elen, e, flen, f, h) { + let Q, Qnew, hh, bvirt; + let enow = e[0]; + let fnow = f[0]; + let eindex = 0; + let findex = 0; + if (fnow > enow === fnow > -enow) { + Q = enow; + enow = e[++eindex]; + } else { + Q = fnow; + fnow = f[++findex]; + } + let hindex = 0; + if (eindex < elen && findex < flen) { + if (fnow > enow === fnow > -enow) { + Qnew = enow + Q; + hh = Q - (Qnew - enow); + enow = e[++eindex]; + } else { + Qnew = fnow + Q; + hh = Q - (Qnew - fnow); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + while(eindex < elen && findex < flen){ + if (fnow > enow === fnow > -enow) { + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + } else { + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + } + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + } + while(eindex < elen){ + Qnew = Q + enow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (enow - bvirt); + enow = e[++eindex]; + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + while(findex < flen){ + Qnew = Q + fnow; + bvirt = Qnew - Q; + hh = Q - (Qnew - bvirt) + (fnow - bvirt); + fnow = f[++findex]; + Q = Qnew; + if (hh !== 0) h[hindex++] = hh; + } + if (Q !== 0 || hindex === 0) h[hindex++] = Q; + return hindex; +} +function sum_three(alen, a, blen, b, clen, c, tmp, out) { + return sum(sum(alen, a, blen, b, tmp), tmp, clen, c, out); +} +function scale(elen, e, b, h) { + let Q, sum, hh, product1, product0; + let bvirt, c, ahi, alo, bhi, blo; + c = splitter * b; + bhi = c - (c - b); + blo = b - bhi; + let enow = e[0]; + Q = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + hh = alo * blo - (Q - ahi * bhi - alo * bhi - ahi * blo); + let hindex = 0; + if (hh !== 0) h[hindex++] = hh; + for(let i = 1; i < elen; i++){ + enow = e[i]; + product1 = enow * b; + c = splitter * enow; + ahi = c - (c - enow); + alo = enow - ahi; + product0 = alo * blo - (product1 - ahi * bhi - alo * bhi - ahi * blo); + sum = Q + product0; + bvirt = sum - Q; + hh = Q - (sum - bvirt) + (product0 - bvirt); + if (hh !== 0) h[hindex++] = hh; + Q = product1 + sum; + hh = sum - (Q - product1); + if (hh !== 0) h[hindex++] = hh; + } + if (Q !== 0 || hindex === 0) h[hindex++] = Q; + return hindex; +} +function negate(elen, e) { + for(let i = 0; i < elen; i++)e[i] = -e[i]; + return elen; +} +function estimate(elen, e) { + let Q = e[0]; + for(let i = 1; i < elen; i++)Q += e[i]; + return Q; +} +function vec(n) { + return new Float64Array(n); +} + +},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60Ijp":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "orient3d", ()=>orient3d); +parcelHelpers.export(exports, "orient3dfast", ()=>orient3dfast); +var _utilJs = require("./util.js"); +const o3derrboundA = (7 + 56 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const o3derrboundB = (3 + 28 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const o3derrboundC = (26 + 288 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const bc = (0, _utilJs.vec)(4); +const ca = (0, _utilJs.vec)(4); +const ab = (0, _utilJs.vec)(4); +const at_b = (0, _utilJs.vec)(4); +const at_c = (0, _utilJs.vec)(4); +const bt_c = (0, _utilJs.vec)(4); +const bt_a = (0, _utilJs.vec)(4); +const ct_a = (0, _utilJs.vec)(4); +const ct_b = (0, _utilJs.vec)(4); +const bct = (0, _utilJs.vec)(8); +const cat = (0, _utilJs.vec)(8); +const abt = (0, _utilJs.vec)(8); +const u = (0, _utilJs.vec)(4); +const _8 = (0, _utilJs.vec)(8); +const _8b = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(8); +const _12 = (0, _utilJs.vec)(12); +let fin = (0, _utilJs.vec)(192); +let fin2 = (0, _utilJs.vec)(192); +function finadd(finlen, alen, a) { + finlen = (0, _utilJs.sum)(finlen, fin, alen, a, fin2); + const tmp = fin; + fin = fin2; + fin2 = tmp; + return finlen; +} +function tailinit(xtail, ytail, ax, ay, bx, by, a, b) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3, negate; + if (xtail === 0) { + if (ytail === 0) { + a[0] = 0; + b[0] = 0; + return 1; + } else { + negate = -ytail; + s1 = negate * ax; + c = (0, _utilJs.splitter) * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = (0, _utilJs.splitter) * ax; + bhi = c - (c - ax); + blo = ax - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + s1 = ytail * bx; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * bx; + bhi = c - (c - bx); + blo = bx - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } + } else if (ytail === 0) { + s1 = xtail * ay; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + a[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + a[1] = s1; + negate = -xtail; + s1 = negate * by; + c = (0, _utilJs.splitter) * negate; + ahi = c - (c - negate); + alo = negate - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + b[0] = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + b[1] = s1; + return 2; + } else { + s1 = xtail * ay; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ytail * ax; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * ax; + bhi = c - (c - ax); + blo = ax - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + a[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + a[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + a[2] = _j - (u3 - bvirt) + (_i - bvirt); + a[3] = u3; + s1 = ytail * bx; + c = (0, _utilJs.splitter) * ytail; + ahi = c - (c - ytail); + alo = ytail - ahi; + c = (0, _utilJs.splitter) * bx; + bhi = c - (c - bx); + blo = bx - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = xtail * by; + c = (0, _utilJs.splitter) * xtail; + ahi = c - (c - xtail); + alo = xtail - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + b[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + b[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + b[2] = _j - (u3 - bvirt) + (_i - bvirt); + b[3] = u3; + return 4; + } +} +function tailadd(finlen, a, b, k, z) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, u3; + s1 = a * b; + c = (0, _utilJs.splitter) * a; + ahi = c - (c - a); + alo = a - ahi; + c = (0, _utilJs.splitter) * b; + bhi = c - (c - b); + blo = b - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + c = (0, _utilJs.splitter) * k; + bhi = c - (c - k); + blo = k - bhi; + _i = s0 * k; + c = (0, _utilJs.splitter) * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * k; + c = (0, _utilJs.splitter) * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + u[2] = _k - (u3 - _j); + u[3] = u3; + finlen = finadd(finlen, 4, u); + if (z !== 0) { + c = (0, _utilJs.splitter) * z; + bhi = c - (c - z); + blo = z - bhi; + _i = s0 * z; + c = (0, _utilJs.splitter) * s0; + ahi = c - (c - s0); + alo = s0 - ahi; + u[0] = alo * blo - (_i - ahi * bhi - alo * bhi - ahi * blo); + _j = s1 * z; + c = (0, _utilJs.splitter) * s1; + ahi = c - (c - s1); + alo = s1 - ahi; + _0 = alo * blo - (_j - ahi * bhi - alo * bhi - ahi * blo); + _k = _i + _0; + bvirt = _k - _i; + u[1] = _i - (_k - bvirt) + (_0 - bvirt); + u3 = _j + _k; + u[2] = _k - (u3 - _j); + u[3] = u3; + finlen = finadd(finlen, 4, u); + } + return finlen; +} +function orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail; + let adytail, bdytail, cdytail; + let adztail, bdztail, cdztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _k, _0, s1, s0, t1, t0, u3; + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + s1 = bdx * cdy; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.scale)(4, bc, adz, _8), _8, (0, _utilJs.scale)(4, ca, bdz, _8b), _8b, _16), _16, (0, _utilJs.scale)(4, ab, cdz, _8), _8, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = o3derrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + bvirt = az - adz; + adztail = az - (adz + bvirt) + (bvirt - dz); + bvirt = bz - bdz; + bdztail = bz - (bdz + bvirt) + (bvirt - dz); + bvirt = cz - cdz; + cdztail = cz - (cdz + bvirt) + (bvirt - dz); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0 && adztail === 0 && bdztail === 0 && cdztail === 0) return det; + errbound = o3derrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + det += adz * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + adztail * (bdx * cdy - bdy * cdx) + bdz * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + bdztail * (cdx * ady - cdy * adx) + cdz * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + cdztail * (adx * bdy - ady * bdx); + if (det >= errbound || -det >= errbound) return det; + const at_len = tailinit(adxtail, adytail, bdx, bdy, cdx, cdy, at_b, at_c); + const bt_len = tailinit(bdxtail, bdytail, cdx, cdy, adx, ady, bt_c, bt_a); + const ct_len = tailinit(cdxtail, cdytail, adx, ady, bdx, bdy, ct_a, ct_b); + const bctlen = (0, _utilJs.sum)(bt_len, bt_c, ct_len, ct_b, bct); + finlen = finadd(finlen, (0, _utilJs.scale)(bctlen, bct, adz, _16), _16); + const catlen = (0, _utilJs.sum)(ct_len, ct_a, at_len, at_c, cat); + finlen = finadd(finlen, (0, _utilJs.scale)(catlen, cat, bdz, _16), _16); + const abtlen = (0, _utilJs.sum)(at_len, at_b, bt_len, bt_a, abt); + finlen = finadd(finlen, (0, _utilJs.scale)(abtlen, abt, cdz, _16), _16); + if (adztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, bc, adztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(bctlen, bct, adztail, _16), _16); + } + if (bdztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, ca, bdztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(catlen, cat, bdztail, _16), _16); + } + if (cdztail !== 0) { + finlen = finadd(finlen, (0, _utilJs.scale)(4, ab, cdztail, _12), _12); + finlen = finadd(finlen, (0, _utilJs.scale)(abtlen, abt, cdztail, _16), _16); + } + if (adxtail !== 0) { + if (bdytail !== 0) finlen = tailadd(finlen, adxtail, bdytail, cdz, cdztail); + if (cdytail !== 0) finlen = tailadd(finlen, -adxtail, cdytail, bdz, bdztail); + } + if (bdxtail !== 0) { + if (cdytail !== 0) finlen = tailadd(finlen, bdxtail, cdytail, adz, adztail); + if (adytail !== 0) finlen = tailadd(finlen, -bdxtail, adytail, cdz, cdztail); + } + if (cdxtail !== 0) { + if (adytail !== 0) finlen = tailadd(finlen, cdxtail, adytail, bdz, bdztail); + if (bdytail !== 0) finlen = tailadd(finlen, -cdxtail, bdytail, adz, adztail); + } + return fin[finlen - 1]; +} +function orient3d(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady); + const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz); + const errbound = o3derrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return orient3dadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, permanent); +} +function orient3dfast(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const adz = az - dz; + const bdz = bz - dz; + const cdz = cz - dz; + return adx * (bdy * cdz - bdz * cdy) + bdx * (cdy * adz - cdz * ady) + cdx * (ady * bdz - adz * bdy); +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"eSgV9":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "incircle", ()=>incircle); +parcelHelpers.export(exports, "incirclefast", ()=>incirclefast); +var _utilJs = require("./util.js"); +const iccerrboundA = (10 + 96 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const iccerrboundB = (4 + 48 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const iccerrboundC = (44 + 576 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const bc = (0, _utilJs.vec)(4); +const ca = (0, _utilJs.vec)(4); +const ab = (0, _utilJs.vec)(4); +const aa = (0, _utilJs.vec)(4); +const bb = (0, _utilJs.vec)(4); +const cc = (0, _utilJs.vec)(4); +const u = (0, _utilJs.vec)(4); +const v = (0, _utilJs.vec)(4); +const axtbc = (0, _utilJs.vec)(8); +const aytbc = (0, _utilJs.vec)(8); +const bxtca = (0, _utilJs.vec)(8); +const bytca = (0, _utilJs.vec)(8); +const cxtab = (0, _utilJs.vec)(8); +const cytab = (0, _utilJs.vec)(8); +const abt = (0, _utilJs.vec)(8); +const bct = (0, _utilJs.vec)(8); +const cat = (0, _utilJs.vec)(8); +const abtt = (0, _utilJs.vec)(4); +const bctt = (0, _utilJs.vec)(4); +const catt = (0, _utilJs.vec)(4); +const _8 = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(16); +const _16b = (0, _utilJs.vec)(16); +const _16c = (0, _utilJs.vec)(16); +const _32 = (0, _utilJs.vec)(32); +const _32b = (0, _utilJs.vec)(32); +const _48 = (0, _utilJs.vec)(48); +const _64 = (0, _utilJs.vec)(64); +let fin = (0, _utilJs.vec)(1152); +let fin2 = (0, _utilJs.vec)(1152); +function finadd(finlen, a, alen) { + finlen = (0, _utilJs.sum)(finlen, fin, a, alen, fin2); + const tmp = fin; + fin = fin2; + fin2 = tmp; + return finlen; +} +function incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent) { + let finlen; + let adxtail, bdxtail, cdxtail, adytail, bdytail, cdytail; + let axtbclen, aytbclen, bxtcalen, bytcalen, cxtablen, cytablen; + let abtlen, bctlen, catlen; + let abttlen, bcttlen, cattlen; + let n1, n0; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + s1 = bdx * cdy; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * bdy; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cdx * ady; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * cdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ca[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ca[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ca[2] = _j - (u3 - bvirt) + (_i - bvirt); + ca[3] = u3; + s1 = adx * bdy; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * ady; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, bc, adx, _8), _8, adx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bc, ady, _8), _8, ady, _16b), _16b, _32), _32, (0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, ca, bdx, _8), _8, bdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, ca, bdy, _8), _8, bdy, _16b), _16b, _32b), _32b, _64), _64, (0, _utilJs.sum)((0, _utilJs.scale)((0, _utilJs.scale)(4, ab, cdx, _8), _8, cdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, ab, cdy, _8), _8, cdy, _16b), _16b, _32), _32, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = iccerrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - adx; + adxtail = ax - (adx + bvirt) + (bvirt - dx); + bvirt = ay - ady; + adytail = ay - (ady + bvirt) + (bvirt - dy); + bvirt = bx - bdx; + bdxtail = bx - (bdx + bvirt) + (bvirt - dx); + bvirt = by - bdy; + bdytail = by - (bdy + bvirt) + (bvirt - dy); + bvirt = cx - cdx; + cdxtail = cx - (cdx + bvirt) + (bvirt - dx); + bvirt = cy - cdy; + cdytail = cy - (cdy + bvirt) + (bvirt - dy); + if (adxtail === 0 && bdxtail === 0 && cdxtail === 0 && adytail === 0 && bdytail === 0 && cdytail === 0) return det; + errbound = iccerrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + det += (adx * adx + ady * ady) * (bdx * cdytail + cdy * bdxtail - (bdy * cdxtail + cdx * bdytail)) + 2 * (adx * adxtail + ady * adytail) * (bdx * cdy - bdy * cdx) + ((bdx * bdx + bdy * bdy) * (cdx * adytail + ady * cdxtail - (cdy * adxtail + adx * cdytail)) + 2 * (bdx * bdxtail + bdy * bdytail) * (cdx * ady - cdy * adx)) + ((cdx * cdx + cdy * cdy) * (adx * bdytail + bdy * adxtail - (ady * bdxtail + bdx * adytail)) + 2 * (cdx * cdxtail + cdy * cdytail) * (adx * bdy - ady * bdx)); + if (det >= errbound || -det >= errbound) return det; + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = adx * adx; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = ady * ady; + c = (0, _utilJs.splitter) * ady; + ahi = c - (c - ady); + alo = ady - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + aa[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + aa[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + aa[2] = _j - (u3 - bvirt) + (_i - bvirt); + aa[3] = u3; + } + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = bdx * bdx; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = bdy * bdy; + c = (0, _utilJs.splitter) * bdy; + ahi = c - (c - bdy); + alo = bdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + bb[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + bb[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + bb[2] = _j - (u3 - bvirt) + (_i - bvirt); + bb[3] = u3; + } + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = cdx * cdx; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + s0 = alo * alo - (s1 - ahi * ahi - (ahi + ahi) * alo); + t1 = cdy * cdy; + c = (0, _utilJs.splitter) * cdy; + ahi = c - (c - cdy); + alo = cdy - ahi; + t0 = alo * alo - (t1 - ahi * ahi - (ahi + ahi) * alo); + _i = s0 + t0; + bvirt = _i - s0; + cc[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + cc[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + cc[2] = _j - (u3 - bvirt) + (_i - bvirt); + cc[3] = u3; + } + if (adxtail !== 0) { + axtbclen = (0, _utilJs.scale)(4, bc, adxtail, axtbc); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(axtbclen, axtbc, 2 * adx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adxtail, _8), _8, bdy, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, adxtail, _8), _8, -cdy, _16c), _16c, _32, _48), _48); + } + if (adytail !== 0) { + aytbclen = (0, _utilJs.scale)(4, bc, adytail, aytbc); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(aytbclen, aytbc, 2 * ady, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, adytail, _8), _8, cdx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adytail, _8), _8, -bdx, _16c), _16c, _32, _48), _48); + } + if (bdxtail !== 0) { + bxtcalen = (0, _utilJs.scale)(4, ca, bdxtail, bxtca); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(bxtcalen, bxtca, 2 * bdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdxtail, _8), _8, cdy, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, bdxtail, _8), _8, -ady, _16c), _16c, _32, _48), _48); + } + if (bdytail !== 0) { + bytcalen = (0, _utilJs.scale)(4, ca, bdytail, bytca); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(bytcalen, bytca, 2 * bdy, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, bdytail, _8), _8, adx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdytail, _8), _8, -cdx, _16c), _16c, _32, _48), _48); + } + if (cdxtail !== 0) { + cxtablen = (0, _utilJs.scale)(4, ab, cdxtail, cxtab); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(cxtablen, cxtab, 2 * cdx, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdxtail, _8), _8, ady, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, cdxtail, _8), _8, -bdy, _16c), _16c, _32, _48), _48); + } + if (cdytail !== 0) { + cytablen = (0, _utilJs.scale)(4, ab, cdytail, cytab); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(cytablen, cytab, 2 * cdy, _16), _16, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, cdytail, _8), _8, bdx, _16b), _16b, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdytail, _8), _8, -adx, _16c), _16c, _32, _48), _48); + } + if (adxtail !== 0 || adytail !== 0) { + if (bdxtail !== 0 || bdytail !== 0 || cdxtail !== 0 || cdytail !== 0) { + s1 = bdxtail * cdy; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * cdy; + bhi = c - (c - cdy); + blo = cdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * cdytail; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + s1 = cdxtail * -bdy; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * -bdy; + bhi = c - (c - -bdy); + blo = -bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * -bdytail; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * -bdytail; + bhi = c - (c - -bdytail); + blo = -bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + bctlen = (0, _utilJs.sum)(4, u, 4, v, bct); + s1 = bdxtail * cdytail; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdxtail * bdytail; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bctt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bctt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bctt[2] = _j - (u3 - bvirt) + (_i - bvirt); + bctt[3] = u3; + bcttlen = 4; + } else { + bct[0] = 0; + bctlen = 1; + bctt[0] = 0; + bcttlen = 1; + } + if (adxtail !== 0) { + const len = (0, _utilJs.scale)(bctlen, bct, adxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(axtbclen, axtbc, adxtail, _16), _16, (0, _utilJs.scale)(len, _16c, 2 * adx, _32), _32, _48), _48); + const len2 = (0, _utilJs.scale)(bcttlen, bctt, adxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len2, _8, 2 * adx, _16), _16, (0, _utilJs.scale)(len2, _8, adxtail, _16b), _16b, (0, _utilJs.scale)(len, _16c, adxtail, _32), _32, _32b, _64), _64); + if (bdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, adxtail, _8), _8, bdytail, _16), _16); + if (cdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, -adxtail, _8), _8, cdytail, _16), _16); + } + if (adytail !== 0) { + const len1 = (0, _utilJs.scale)(bctlen, bct, adytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(aytbclen, aytbc, adytail, _16), _16, (0, _utilJs.scale)(len1, _16c, 2 * ady, _32), _32, _48), _48); + const len21 = (0, _utilJs.scale)(bcttlen, bctt, adytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len21, _8, 2 * ady, _16), _16, (0, _utilJs.scale)(len21, _8, adytail, _16b), _16b, (0, _utilJs.scale)(len1, _16c, adytail, _32), _32, _32b, _64), _64); + } + } + if (bdxtail !== 0 || bdytail !== 0) { + if (cdxtail !== 0 || cdytail !== 0 || adxtail !== 0 || adytail !== 0) { + s1 = cdxtail * ady; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * ady; + bhi = c - (c - ady); + blo = ady - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cdx * adytail; + c = (0, _utilJs.splitter) * cdx; + ahi = c - (c - cdx); + alo = cdx - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + n1 = -cdy; + n0 = -cdytail; + s1 = adxtail * n1; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * n0; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + catlen = (0, _utilJs.sum)(4, u, 4, v, cat); + s1 = cdxtail * adytail; + c = (0, _utilJs.splitter) * cdxtail; + ahi = c - (c - cdxtail); + alo = cdxtail - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adxtail * cdytail; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * cdytail; + bhi = c - (c - cdytail); + blo = cdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + catt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + catt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + catt[2] = _j - (u3 - bvirt) + (_i - bvirt); + catt[3] = u3; + cattlen = 4; + } else { + cat[0] = 0; + catlen = 1; + catt[0] = 0; + cattlen = 1; + } + if (bdxtail !== 0) { + const len3 = (0, _utilJs.scale)(catlen, cat, bdxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(bxtcalen, bxtca, bdxtail, _16), _16, (0, _utilJs.scale)(len3, _16c, 2 * bdx, _32), _32, _48), _48); + const len22 = (0, _utilJs.scale)(cattlen, catt, bdxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len22, _8, 2 * bdx, _16), _16, (0, _utilJs.scale)(len22, _8, bdxtail, _16b), _16b, (0, _utilJs.scale)(len3, _16c, bdxtail, _32), _32, _32b, _64), _64); + if (cdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, bdxtail, _8), _8, cdytail, _16), _16); + if (adytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, cc, -bdxtail, _8), _8, adytail, _16), _16); + } + if (bdytail !== 0) { + const len4 = (0, _utilJs.scale)(catlen, cat, bdytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(bytcalen, bytca, bdytail, _16), _16, (0, _utilJs.scale)(len4, _16c, 2 * bdy, _32), _32, _48), _48); + const len23 = (0, _utilJs.scale)(cattlen, catt, bdytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len23, _8, 2 * bdy, _16), _16, (0, _utilJs.scale)(len23, _8, bdytail, _16b), _16b, (0, _utilJs.scale)(len4, _16c, bdytail, _32), _32, _32b, _64), _64); + } + } + if (cdxtail !== 0 || cdytail !== 0) { + if (adxtail !== 0 || adytail !== 0 || bdxtail !== 0 || bdytail !== 0) { + s1 = adxtail * bdy; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * bdy; + bhi = c - (c - bdy); + blo = bdy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = adx * bdytail; + c = (0, _utilJs.splitter) * adx; + ahi = c - (c - adx); + alo = adx - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + u[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + u[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + u[2] = _j - (u3 - bvirt) + (_i - bvirt); + u[3] = u3; + n1 = -ady; + n0 = -adytail; + s1 = bdxtail * n1; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * n1; + bhi = c - (c - n1); + blo = n1 - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdx * n0; + c = (0, _utilJs.splitter) * bdx; + ahi = c - (c - bdx); + alo = bdx - ahi; + c = (0, _utilJs.splitter) * n0; + bhi = c - (c - n0); + blo = n0 - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 + t0; + bvirt = _i - s0; + v[0] = s0 - (_i - bvirt) + (t0 - bvirt); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 + t1; + bvirt = _i - _0; + v[1] = _0 - (_i - bvirt) + (t1 - bvirt); + u3 = _j + _i; + bvirt = u3 - _j; + v[2] = _j - (u3 - bvirt) + (_i - bvirt); + v[3] = u3; + abtlen = (0, _utilJs.sum)(4, u, 4, v, abt); + s1 = adxtail * bdytail; + c = (0, _utilJs.splitter) * adxtail; + ahi = c - (c - adxtail); + alo = adxtail - ahi; + c = (0, _utilJs.splitter) * bdytail; + bhi = c - (c - bdytail); + blo = bdytail - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bdxtail * adytail; + c = (0, _utilJs.splitter) * bdxtail; + ahi = c - (c - bdxtail); + alo = bdxtail - ahi; + c = (0, _utilJs.splitter) * adytail; + bhi = c - (c - adytail); + blo = adytail - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + abtt[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + abtt[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + abtt[2] = _j - (u3 - bvirt) + (_i - bvirt); + abtt[3] = u3; + abttlen = 4; + } else { + abt[0] = 0; + abtlen = 1; + abtt[0] = 0; + abttlen = 1; + } + if (cdxtail !== 0) { + const len5 = (0, _utilJs.scale)(abtlen, abt, cdxtail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(cxtablen, cxtab, cdxtail, _16), _16, (0, _utilJs.scale)(len5, _16c, 2 * cdx, _32), _32, _48), _48); + const len24 = (0, _utilJs.scale)(abttlen, abtt, cdxtail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len24, _8, 2 * cdx, _16), _16, (0, _utilJs.scale)(len24, _8, cdxtail, _16b), _16b, (0, _utilJs.scale)(len5, _16c, cdxtail, _32), _32, _32b, _64), _64); + if (adytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, bb, cdxtail, _8), _8, adytail, _16), _16); + if (bdytail !== 0) finlen = finadd(finlen, (0, _utilJs.scale)((0, _utilJs.scale)(4, aa, -cdxtail, _8), _8, bdytail, _16), _16); + } + if (cdytail !== 0) { + const len6 = (0, _utilJs.scale)(abtlen, abt, cdytail, _16c); + finlen = finadd(finlen, (0, _utilJs.sum)((0, _utilJs.scale)(cytablen, cytab, cdytail, _16), _16, (0, _utilJs.scale)(len6, _16c, 2 * cdy, _32), _32, _48), _48); + const len25 = (0, _utilJs.scale)(abttlen, abtt, cdytail, _8); + finlen = finadd(finlen, (0, _utilJs.sum_three)((0, _utilJs.scale)(len25, _8, 2 * cdy, _16), _16, (0, _utilJs.scale)(len25, _8, cdytail, _16b), _16b, (0, _utilJs.scale)(len6, _16c, cdytail, _32), _32, _32b, _64), _64); + } + } + return fin[finlen - 1]; +} +function incircle(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const bdx = bx - dx; + const cdx = cx - dx; + const ady = ay - dy; + const bdy = by - dy; + const cdy = cy - dy; + const bdxcdy = bdx * cdy; + const cdxbdy = cdx * bdy; + const alift = adx * adx + ady * ady; + const cdxady = cdx * ady; + const adxcdy = adx * cdy; + const blift = bdx * bdx + bdy * bdy; + const adxbdy = adx * bdy; + const bdxady = bdx * ady; + const clift = cdx * cdx + cdy * cdy; + const det = alift * (bdxcdy - cdxbdy) + blift * (cdxady - adxcdy) + clift * (adxbdy - bdxady); + const permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * alift + (Math.abs(cdxady) + Math.abs(adxcdy)) * blift + (Math.abs(adxbdy) + Math.abs(bdxady)) * clift; + const errbound = iccerrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return incircleadapt(ax, ay, bx, by, cx, cy, dx, dy, permanent); +} +function incirclefast(ax, ay, bx, by, cx, cy, dx, dy) { + const adx = ax - dx; + const ady = ay - dy; + const bdx = bx - dx; + const bdy = by - dy; + const cdx = cx - dx; + const cdy = cy - dy; + const abdet = adx * bdy - bdx * ady; + const bcdet = bdx * cdy - cdx * bdy; + const cadet = cdx * ady - adx * cdy; + const alift = adx * adx + ady * ady; + const blift = bdx * bdx + bdy * bdy; + const clift = cdx * cdx + cdy * cdy; + return alift * bcdet + blift * cadet + clift * abdet; +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lKwEh":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "insphere", ()=>insphere); +parcelHelpers.export(exports, "inspherefast", ()=>inspherefast); +var _utilJs = require("./util.js"); +const isperrboundA = (16 + 224 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const isperrboundB = (5 + 72 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon); +const isperrboundC = (71 + 1408 * (0, _utilJs.epsilon)) * (0, _utilJs.epsilon) * (0, _utilJs.epsilon); +const ab = (0, _utilJs.vec)(4); +const bc = (0, _utilJs.vec)(4); +const cd = (0, _utilJs.vec)(4); +const de = (0, _utilJs.vec)(4); +const ea = (0, _utilJs.vec)(4); +const ac = (0, _utilJs.vec)(4); +const bd = (0, _utilJs.vec)(4); +const ce = (0, _utilJs.vec)(4); +const da = (0, _utilJs.vec)(4); +const eb = (0, _utilJs.vec)(4); +const abc = (0, _utilJs.vec)(24); +const bcd = (0, _utilJs.vec)(24); +const cde = (0, _utilJs.vec)(24); +const dea = (0, _utilJs.vec)(24); +const eab = (0, _utilJs.vec)(24); +const abd = (0, _utilJs.vec)(24); +const bce = (0, _utilJs.vec)(24); +const cda = (0, _utilJs.vec)(24); +const deb = (0, _utilJs.vec)(24); +const eac = (0, _utilJs.vec)(24); +const adet = (0, _utilJs.vec)(1152); +const bdet = (0, _utilJs.vec)(1152); +const cdet = (0, _utilJs.vec)(1152); +const ddet = (0, _utilJs.vec)(1152); +const edet = (0, _utilJs.vec)(1152); +const abdet = (0, _utilJs.vec)(2304); +const cddet = (0, _utilJs.vec)(2304); +const cdedet = (0, _utilJs.vec)(3456); +const deter = (0, _utilJs.vec)(5760); +const _8 = (0, _utilJs.vec)(8); +const _8b = (0, _utilJs.vec)(8); +const _8c = (0, _utilJs.vec)(8); +const _16 = (0, _utilJs.vec)(16); +const _24 = (0, _utilJs.vec)(24); +const _48 = (0, _utilJs.vec)(48); +const _48b = (0, _utilJs.vec)(48); +const _96 = (0, _utilJs.vec)(96); +const _192 = (0, _utilJs.vec)(192); +const _384x = (0, _utilJs.vec)(384); +const _384y = (0, _utilJs.vec)(384); +const _384z = (0, _utilJs.vec)(384); +const _768 = (0, _utilJs.vec)(768); +function sum_three_scale(a, b, c, az, bz, cz, out) { + return (0, _utilJs.sum_three)((0, _utilJs.scale)(4, a, az, _8), _8, (0, _utilJs.scale)(4, b, bz, _8b), _8b, (0, _utilJs.scale)(4, c, cz, _8c), _8c, _16, out); +} +function liftexact(alen, a, blen, b, clen, c, dlen, d, x, y, z, out) { + const len = (0, _utilJs.sum)((0, _utilJs.sum)(alen, a, blen, b, _48), _48, (0, _utilJs.negate)((0, _utilJs.sum)(clen, c, dlen, d, _48b), _48b), _48b, _96); + return (0, _utilJs.sum_three)((0, _utilJs.scale)((0, _utilJs.scale)(len, _96, x, _192), _192, x, _384x), _384x, (0, _utilJs.scale)((0, _utilJs.scale)(len, _96, y, _192), _192, y, _384y), _384y, (0, _utilJs.scale)((0, _utilJs.scale)(len, _96, z, _192), _192, z, _384z), _384z, _768, out); +} +function insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0, u3; + s1 = ax * by; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ay; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ab[2] = _j - (u3 - bvirt) + (_i - bvirt); + ab[3] = u3; + s1 = bx * cy; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * by; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bc[2] = _j - (u3 - bvirt) + (_i - bvirt); + bc[3] = u3; + s1 = cx * dy; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * cy; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + cd[2] = _j - (u3 - bvirt) + (_i - bvirt); + cd[3] = u3; + s1 = dx * ey; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * dy; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + de[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + de[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + de[2] = _j - (u3 - bvirt) + (_i - bvirt); + de[3] = u3; + s1 = ex * ay; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * ey; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ea[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ea[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ea[2] = _j - (u3 - bvirt) + (_i - bvirt); + ea[3] = u3; + s1 = ax * cy; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cx * ay; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ac[2] = _j - (u3 - bvirt) + (_i - bvirt); + ac[3] = u3; + s1 = bx * dy; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dx * by; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + bd[2] = _j - (u3 - bvirt) + (_i - bvirt); + bd[3] = u3; + s1 = cx * ey; + c = (0, _utilJs.splitter) * cx; + ahi = c - (c - cx); + alo = cx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ex * cy; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * cy; + bhi = c - (c - cy); + blo = cy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ce[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ce[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + ce[2] = _j - (u3 - bvirt) + (_i - bvirt); + ce[3] = u3; + s1 = dx * ay; + c = (0, _utilJs.splitter) * dx; + ahi = c - (c - dx); + alo = dx - ahi; + c = (0, _utilJs.splitter) * ay; + bhi = c - (c - ay); + blo = ay - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = ax * dy; + c = (0, _utilJs.splitter) * ax; + ahi = c - (c - ax); + alo = ax - ahi; + c = (0, _utilJs.splitter) * dy; + bhi = c - (c - dy); + blo = dy - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + da[2] = _j - (u3 - bvirt) + (_i - bvirt); + da[3] = u3; + s1 = ex * by; + c = (0, _utilJs.splitter) * ex; + ahi = c - (c - ex); + alo = ex - ahi; + c = (0, _utilJs.splitter) * by; + bhi = c - (c - by); + blo = by - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bx * ey; + c = (0, _utilJs.splitter) * bx; + ahi = c - (c - bx); + alo = bx - ahi; + c = (0, _utilJs.splitter) * ey; + bhi = c - (c - ey); + blo = ey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + eb[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + eb[1] = _0 - (_i + bvirt) + (bvirt - t1); + u3 = _j + _i; + bvirt = u3 - _j; + eb[2] = _j - (u3 - bvirt) + (_i - bvirt); + eb[3] = u3; + const abclen = sum_three_scale(ab, bc, ac, cz, az, -bz, abc); + const bcdlen = sum_three_scale(bc, cd, bd, dz, bz, -cz, bcd); + const cdelen = sum_three_scale(cd, de, ce, ez, cz, -dz, cde); + const dealen = sum_three_scale(de, ea, da, az, dz, -ez, dea); + const eablen = sum_three_scale(ea, ab, eb, bz, ez, -az, eab); + const abdlen = sum_three_scale(ab, bd, da, dz, az, bz, abd); + const bcelen = sum_three_scale(bc, ce, eb, ez, bz, cz, bce); + const cdalen = sum_three_scale(cd, da, ac, az, cz, dz, cda); + const deblen = sum_three_scale(de, eb, bd, bz, dz, ez, deb); + const eaclen = sum_three_scale(ea, ac, ce, cz, ez, az, eac); + const deterlen = (0, _utilJs.sum_three)(liftexact(cdelen, cde, bcelen, bce, deblen, deb, bcdlen, bcd, ax, ay, az, adet), adet, liftexact(dealen, dea, cdalen, cda, eaclen, eac, cdelen, cde, bx, by, bz, bdet), bdet, (0, _utilJs.sum_three)(liftexact(eablen, eab, deblen, deb, abdlen, abd, dealen, dea, cx, cy, cz, cdet), cdet, liftexact(abclen, abc, eaclen, eac, bcelen, bce, eablen, eab, dx, dy, dz, ddet), ddet, liftexact(bcdlen, bcd, abdlen, abd, cdalen, cda, abclen, abc, ex, ey, ez, edet), edet, cddet, cdedet), cdedet, abdet, deter); + return deter[deterlen - 1]; +} +const xdet = (0, _utilJs.vec)(96); +const ydet = (0, _utilJs.vec)(96); +const zdet = (0, _utilJs.vec)(96); +const fin = (0, _utilJs.vec)(1152); +function liftadapt(a, b, c, az, bz, cz, x, y, z, out) { + const len = sum_three_scale(a, b, c, az, bz, cz, _24); + return (0, _utilJs.sum_three)((0, _utilJs.scale)((0, _utilJs.scale)(len, _24, x, _48), _48, x, xdet), xdet, (0, _utilJs.scale)((0, _utilJs.scale)(len, _24, y, _48), _48, y, ydet), ydet, (0, _utilJs.scale)((0, _utilJs.scale)(len, _24, z, _48), _48, z, zdet), zdet, _192, out); +} +function insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent) { + let ab3, bc3, cd3, da3, ac3, bd3; + let aextail, bextail, cextail, dextail; + let aeytail, beytail, ceytail, deytail; + let aeztail, beztail, ceztail, deztail; + let bvirt, c, ahi, alo, bhi, blo, _i, _j, _0, s1, s0, t1, t0; + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + s1 = aex * bey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = bex * aey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ab[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ab[1] = _0 - (_i + bvirt) + (bvirt - t1); + ab3 = _j + _i; + bvirt = ab3 - _j; + ab[2] = _j - (ab3 - bvirt) + (_i - bvirt); + ab[3] = ab3; + s1 = bex * cey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * bey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bc[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bc[1] = _0 - (_i + bvirt) + (bvirt - t1); + bc3 = _j + _i; + bvirt = bc3 - _j; + bc[2] = _j - (bc3 - bvirt) + (_i - bvirt); + bc[3] = bc3; + s1 = cex * dey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * cey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + cd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + cd[1] = _0 - (_i + bvirt) + (bvirt - t1); + cd3 = _j + _i; + bvirt = cd3 - _j; + cd[2] = _j - (cd3 - bvirt) + (_i - bvirt); + cd[3] = cd3; + s1 = dex * aey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = aex * dey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + da[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + da[1] = _0 - (_i + bvirt) + (bvirt - t1); + da3 = _j + _i; + bvirt = da3 - _j; + da[2] = _j - (da3 - bvirt) + (_i - bvirt); + da[3] = da3; + s1 = aex * cey; + c = (0, _utilJs.splitter) * aex; + ahi = c - (c - aex); + alo = aex - ahi; + c = (0, _utilJs.splitter) * cey; + bhi = c - (c - cey); + blo = cey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = cex * aey; + c = (0, _utilJs.splitter) * cex; + ahi = c - (c - cex); + alo = cex - ahi; + c = (0, _utilJs.splitter) * aey; + bhi = c - (c - aey); + blo = aey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + ac[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + ac[1] = _0 - (_i + bvirt) + (bvirt - t1); + ac3 = _j + _i; + bvirt = ac3 - _j; + ac[2] = _j - (ac3 - bvirt) + (_i - bvirt); + ac[3] = ac3; + s1 = bex * dey; + c = (0, _utilJs.splitter) * bex; + ahi = c - (c - bex); + alo = bex - ahi; + c = (0, _utilJs.splitter) * dey; + bhi = c - (c - dey); + blo = dey - bhi; + s0 = alo * blo - (s1 - ahi * bhi - alo * bhi - ahi * blo); + t1 = dex * bey; + c = (0, _utilJs.splitter) * dex; + ahi = c - (c - dex); + alo = dex - ahi; + c = (0, _utilJs.splitter) * bey; + bhi = c - (c - bey); + blo = bey - bhi; + t0 = alo * blo - (t1 - ahi * bhi - alo * bhi - ahi * blo); + _i = s0 - t0; + bvirt = s0 - _i; + bd[0] = s0 - (_i + bvirt) + (bvirt - t0); + _j = s1 + _i; + bvirt = _j - s1; + _0 = s1 - (_j - bvirt) + (_i - bvirt); + _i = _0 - t1; + bvirt = _0 - _i; + bd[1] = _0 - (_i + bvirt) + (bvirt - t1); + bd3 = _j + _i; + bvirt = bd3 - _j; + bd[2] = _j - (bd3 - bvirt) + (_i - bvirt); + bd[3] = bd3; + const finlen = (0, _utilJs.sum)((0, _utilJs.sum)((0, _utilJs.negate)(liftadapt(bc, cd, bd, dez, bez, -cez, aex, aey, aez, adet), adet), adet, liftadapt(cd, da, ac, aez, cez, dez, bex, bey, bez, bdet), bdet, abdet), abdet, (0, _utilJs.sum)((0, _utilJs.negate)(liftadapt(da, ab, bd, bez, dez, aez, cex, cey, cez, cdet), cdet), cdet, liftadapt(ab, bc, ac, cez, aez, -bez, dex, dey, dez, ddet), ddet, cddet), cddet, fin); + let det = (0, _utilJs.estimate)(finlen, fin); + let errbound = isperrboundB * permanent; + if (det >= errbound || -det >= errbound) return det; + bvirt = ax - aex; + aextail = ax - (aex + bvirt) + (bvirt - ex); + bvirt = ay - aey; + aeytail = ay - (aey + bvirt) + (bvirt - ey); + bvirt = az - aez; + aeztail = az - (aez + bvirt) + (bvirt - ez); + bvirt = bx - bex; + bextail = bx - (bex + bvirt) + (bvirt - ex); + bvirt = by - bey; + beytail = by - (bey + bvirt) + (bvirt - ey); + bvirt = bz - bez; + beztail = bz - (bez + bvirt) + (bvirt - ez); + bvirt = cx - cex; + cextail = cx - (cex + bvirt) + (bvirt - ex); + bvirt = cy - cey; + ceytail = cy - (cey + bvirt) + (bvirt - ey); + bvirt = cz - cez; + ceztail = cz - (cez + bvirt) + (bvirt - ez); + bvirt = dx - dex; + dextail = dx - (dex + bvirt) + (bvirt - ex); + bvirt = dy - dey; + deytail = dy - (dey + bvirt) + (bvirt - ey); + bvirt = dz - dez; + deztail = dz - (dez + bvirt) + (bvirt - ez); + if (aextail === 0 && aeytail === 0 && aeztail === 0 && bextail === 0 && beytail === 0 && beztail === 0 && cextail === 0 && ceytail === 0 && ceztail === 0 && dextail === 0 && deytail === 0 && deztail === 0) return det; + errbound = isperrboundC * permanent + (0, _utilJs.resulterrbound) * Math.abs(det); + const abeps = aex * beytail + bey * aextail - (aey * bextail + bex * aeytail); + const bceps = bex * ceytail + cey * bextail - (bey * cextail + cex * beytail); + const cdeps = cex * deytail + dey * cextail - (cey * dextail + dex * ceytail); + const daeps = dex * aeytail + aey * dextail - (dey * aextail + aex * deytail); + const aceps = aex * ceytail + cey * aextail - (aey * cextail + cex * aeytail); + const bdeps = bex * deytail + dey * bextail - (bey * dextail + dex * beytail); + det += (bex * bex + bey * bey + bez * bez) * (cez * daeps + dez * aceps + aez * cdeps + (ceztail * da3 + deztail * ac3 + aeztail * cd3)) + (dex * dex + dey * dey + dez * dez) * (aez * bceps - bez * aceps + cez * abeps + (aeztail * bc3 - beztail * ac3 + ceztail * ab3)) - ((aex * aex + aey * aey + aez * aez) * (bez * cdeps - cez * bdeps + dez * bceps + (beztail * cd3 - ceztail * bd3 + deztail * bc3)) + (cex * cex + cey * cey + cez * cez) * (dez * abeps + aez * bdeps + bez * daeps + (deztail * ab3 + aeztail * bd3 + beztail * da3))) + 2 * ((bex * bextail + bey * beytail + bez * beztail) * (cez * da3 + dez * ac3 + aez * cd3) + (dex * dextail + dey * deytail + dez * deztail) * (aez * bc3 - bez * ac3 + cez * ab3) - ((aex * aextail + aey * aeytail + aez * aeztail) * (bez * cd3 - cez * bd3 + dez * bc3) + (cex * cextail + cey * ceytail + cez * ceztail) * (dez * ab3 + aez * bd3 + bez * da3))); + if (det >= errbound || -det >= errbound) return det; + return insphereexact(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez); +} +function insphere(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez) { + const aex = ax - ex; + const bex = bx - ex; + const cex = cx - ex; + const dex = dx - ex; + const aey = ay - ey; + const bey = by - ey; + const cey = cy - ey; + const dey = dy - ey; + const aez = az - ez; + const bez = bz - ez; + const cez = cz - ez; + const dez = dz - ez; + const aexbey = aex * bey; + const bexaey = bex * aey; + const ab = aexbey - bexaey; + const bexcey = bex * cey; + const cexbey = cex * bey; + const bc = bexcey - cexbey; + const cexdey = cex * dey; + const dexcey = dex * cey; + const cd = cexdey - dexcey; + const dexaey = dex * aey; + const aexdey = aex * dey; + const da = dexaey - aexdey; + const aexcey = aex * cey; + const cexaey = cex * aey; + const ac = aexcey - cexaey; + const bexdey = bex * dey; + const dexbey = dex * bey; + const bd = bexdey - dexbey; + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + const det = clift * dab - dlift * abc + (alift * bcd - blift * cda); + const aezplus = Math.abs(aez); + const bezplus = Math.abs(bez); + const cezplus = Math.abs(cez); + const dezplus = Math.abs(dez); + const aexbeyplus = Math.abs(aexbey); + const bexaeyplus = Math.abs(bexaey); + const bexceyplus = Math.abs(bexcey); + const cexbeyplus = Math.abs(cexbey); + const cexdeyplus = Math.abs(cexdey); + const dexceyplus = Math.abs(dexcey); + const dexaeyplus = Math.abs(dexaey); + const aexdeyplus = Math.abs(aexdey); + const aexceyplus = Math.abs(aexcey); + const cexaeyplus = Math.abs(cexaey); + const bexdeyplus = Math.abs(bexdey); + const dexbeyplus = Math.abs(dexbey); + const permanent = ((cexdeyplus + dexceyplus) * bezplus + (dexbeyplus + bexdeyplus) * cezplus + (bexceyplus + cexbeyplus) * dezplus) * alift + ((dexaeyplus + aexdeyplus) * cezplus + (aexceyplus + cexaeyplus) * dezplus + (cexdeyplus + dexceyplus) * aezplus) * blift + ((aexbeyplus + bexaeyplus) * dezplus + (bexdeyplus + dexbeyplus) * aezplus + (dexaeyplus + aexdeyplus) * bezplus) * clift + ((bexceyplus + cexbeyplus) * aezplus + (cexaeyplus + aexceyplus) * bezplus + (aexbeyplus + bexaeyplus) * cezplus) * dlift; + const errbound = isperrboundA * permanent; + if (det > errbound || -det > errbound) return det; + return -insphereadapt(ax, ay, az, bx, by, bz, cx, cy, cz, dx, dy, dz, ex, ey, ez, permanent); +} +function inspherefast(pax, pay, paz, pbx, pby, pbz, pcx, pcy, pcz, pdx, pdy, pdz, pex, pey, pez) { + const aex = pax - pex; + const bex = pbx - pex; + const cex = pcx - pex; + const dex = pdx - pex; + const aey = pay - pey; + const bey = pby - pey; + const cey = pcy - pey; + const dey = pdy - pey; + const aez = paz - pez; + const bez = pbz - pez; + const cez = pcz - pez; + const dez = pdz - pez; + const ab = aex * bey - bex * aey; + const bc = bex * cey - cex * bey; + const cd = cex * dey - dex * cey; + const da = dex * aey - aex * dey; + const ac = aex * cey - cex * aey; + const bd = bex * dey - dex * bey; + const abc = aez * bc - bez * ac + cez * ab; + const bcd = bez * cd - cez * bd + dez * bc; + const cda = cez * da + dez * ac + aez * cd; + const dab = dez * ab + aez * bd + bez * da; + const alift = aex * aex + aey * aey + aez * aez; + const blift = bex * bex + bey * bey + bez * bez; + const clift = cex * cex + cey * cey + cez * cez; + const dlift = dex * dex + dey * dey + dez * dez; + return clift * dab - dlift * abc + (alift * bcd - blift * cda); +} + +},{"./util.js":"3WWl7","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"60Yfe":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); const epsilon = 1e-6; @@ -34329,19 +36913,25 @@ class Voronoi { const dy = y2 - y1; const ex = x3 - x1; const ey = y3 - y1; - const bl = dx * dx + dy * dy; - const cl = ex * ex + ey * ey; const ab = (dx * ey - dy * ex) * 2; - if (!ab) { + if (Math.abs(ab) < 1e-9) { // degenerate case (collinear diagram) - x = (x1 + x3) / 2 - 1e8 * ey; - y = (y1 + y3) / 2 + 1e8 * ex; - } else if (Math.abs(ab) < 1e-8) { // almost equal points (degenerate triangle) - x = (x1 + x3) / 2; - y = (y1 + y3) / 2; + // the circumcenter is at the infinity, in a + // direction that is: + // 1. orthogonal to the halfedge. + let a = 1e9; + // 2. points away from the center; since the list of triangles starts + // in the center, the first point of the first triangle + // will be our reference + const r = triangles[0] * 2; + a *= Math.sign((points[r] - x1) * ey - (points[r + 1] - y1) * ex); + x = (x1 + x3) / 2 - a * ey; + y = (y1 + y3) / 2 + a * ex; } else { const d = 1 / ab; + const bl = dx * dx + dy * dy; + const cl = ex * ex + ey * ey; x = x1 + (ey * bl - dy * cl) * d; y = y1 + (dx * cl - ex * bl) * d; } @@ -34484,7 +37074,7 @@ class Voronoi { let P = null; let x0, y0, x1 = points[n - 2], y1 = points[n - 1]; let c0, c1 = this._regioncode(x1, y1); - let e0, e1; + let e0, e1 = 0; for(let j = 0; j < n; j += 2){ x0 = x1, y0 = y1, x1 = points[j], y1 = points[j + 1]; c0 = c1, c1 = this._regioncode(x1, y1); @@ -34602,6 +37192,8 @@ class Voronoi { e0 = 5, x = this.xmin, y = this.ymin; break; // left } + // Note: this implicitly checks for out of bounds: if P[j] or P[j+1] are + // undefined, the conditional statement will be executed. if ((P[j] !== x || P[j + 1] !== y) && this.contains(i, x, y)) P.splice(j, 0, x, y), j += 2; } if (P.length > 4) for(let i1 = 0; i1 < P.length; i1 += 2){ @@ -35827,7 +38419,7 @@ function prevent(view, type) { function permit(view, key, type) { const rule = view._eventConfig && view._eventConfig[key]; if (rule === false || (0, _vegaUtil.isObject)(rule) && !rule[type]) { - view.warn(`Blocked ${key} ${type} event listener.`); + view.warn("Blocked ".concat(key, " ").concat(type, " event listener.")); return false; } return true; @@ -36176,7 +38768,7 @@ function lookup(view, el, clear) { } } if (el && clear) try { - el.innerHTML = ""; + el.textContent = ""; } catch (e) { el = null; view.error(e); @@ -36824,9 +39416,9 @@ function internalScaleFunctions(codegen, fnctx, visitors) { const ref = (arg)=>"_[" + (arg.type === (0, _vegaExpression.Literal) ? (0, _vegaUtil.stringValue)(ScalePrefix + arg.value) : (0, _vegaUtil.stringValue)(ScalePrefix) + "+" + codegen(arg)) + "]"; // define and return internal scale function code generators // these internal functions are called by mark encoders return { - _bandwidth: (args)=>`this.__bandwidth(${ref(args[0])})`, - _range: (args)=>`${ref(args[0])}.range()`, - _scale: (args)=>`${ref(args[0])}(${codegen(args[1])})` + _bandwidth: (args)=>"this.__bandwidth(".concat(ref(args[0]), ")"), + _range: (args)=>"".concat(ref(args[0]), ".range()"), + _scale: (args)=>"".concat(ref(args[0]), "(").concat(codegen(args[1]), ")") }; } function geoMethod(methodName, globalMethod) { @@ -36954,16 +39546,20 @@ function array(seq) { function sequence(seq) { return array(seq) || ((0, _vegaUtil.isString)(seq) ? seq : null); } -function join(seq, ...args) { +function join(seq) { + for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++)args[_key - 1] = arguments[_key]; return array(seq).join(...args); } -function indexof(seq, ...args) { +function indexof(seq) { + for(var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++)args[_key2 - 1] = arguments[_key2]; return sequence(seq).indexOf(...args); } -function lastindexof(seq, ...args) { +function lastindexof(seq) { + for(var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++)args[_key3 - 1] = arguments[_key3]; return sequence(seq).lastIndexOf(...args); } -function slice(seq, ...args) { +function slice(seq) { + for(var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++)args[_key4 - 1] = arguments[_key4]; return sequence(seq).slice(...args); } function replace(str, pattern, repl) { @@ -37081,6 +39677,87 @@ function filter(opt) { } return p; } +/** + * Appends a new point to the lasso + * + * @param {*} lasso the lasso in pixel space + * @param {*} x the x coordinate in pixel space + * @param {*} y the y coordinate in pixel space + * @param {*} minDist the minimum distance, in pixels, that thenew point needs to be apart from the last point + * @returns a new array containing the lasso with the new point + */ function lassoAppend(lasso, x, y) { + let minDist = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5; + const last = lasso[lasso.length - 1]; // Add point to lasso if distance to last point exceed minDist or its the first point + if (last === undefined || Math.sqrt((last[0] - x) ** 2 + (last[1] - y) ** 2) > minDist) { + lasso.push([ + x, + y + ]); + return [ + ...lasso + ]; + } + return lasso; +} +/** + * Generates a svg path command which draws a lasso + * + * @param {*} lasso the lasso in pixel space in the form [[x,y], [x,y], ...] + * @returns the svg path command that draws the lasso + */ function lassoPath(lasso) { + return (lasso !== null && lasso !== void 0 ? lasso : []).reduce((svg, _ref, i)=>{ + let [x, y] = _ref; + return svg += i == 0 ? "M ".concat(x, ",").concat(y, " ") : i === lasso.length - 1 ? " Z" : "L ".concat(x, ",").concat(y, " "); + }, ""); +} +/** + * Inverts the lasso from pixel space to an array of vega scenegraph tuples + * + * @param {*} data the dataset + * @param {*} pixelLasso the lasso in pixel space, [[x,y], [x,y], ...] + * @param {*} unit the unit where the lasso is defined + * + * @returns an array of vega scenegraph tuples + */ function intersectLasso(markname, pixelLasso, unit) { + const { x , y , mark } = unit; + const bb = new (0, _vegaScenegraph.Bounds)().set(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER, Number.MIN_SAFE_INTEGER); // Get bounding box around lasso + for (const [px, py] of pixelLasso){ + if (px < bb.x1) bb.x1 = px; + if (px > bb.x2) bb.x2 = px; + if (py < bb.y1) bb.y1 = py; + if (py > bb.y2) bb.y2 = py; + } // Translate bb against unit coordinates + bb.translate(x, y); + const intersection = intersect([ + [ + bb.x1, + bb.y1 + ], + [ + bb.x2, + bb.y2 + ] + ], markname, mark); // Check every point against the lasso + return intersection.filter((tuple)=>pointInPolygon(tuple.x, tuple.y, pixelLasso)); +} +/** + * Performs a test if a point is inside a polygon based on the idea from + * https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html + * + * This method will not need the same start/end point since it wraps around the edges of the array + * + * @param {*} test a point to test against + * @param {*} polygon a polygon in the form [[x,y], [x,y], ...] + * @returns true if the point lies inside the polygon, false otherwise + */ function pointInPolygon(testx, testy, polygon) { + let intersections = 0; + for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){ + const [prevX, prevY] = polygon[j]; + const [x, y] = polygon[i]; // count intersections + if (y > testy != prevY > testy && testx < (prevX - x) * (testy - y) / (prevY - y) + x) intersections++; + } // point is in polygon if intersection count is odd + return intersections & 1; +} const functionContext = { random () { return (0, _vegaStatistics.random)(); @@ -37113,8 +39790,11 @@ const functionContext = { return _ != null && _ === _; }, toBoolean: (0, _vegaUtil.toBoolean), - toDate: (0, _vegaUtil.toDate), - toNumber: (0, _vegaUtil.toNumber), + toDate (_) { + return (0, _vegaUtil.toDate)(_); + }, + toNumber: // suppress extra arguments + (0, _vegaUtil.toNumber), toString: (0, _vegaUtil.toString), indexof, join, @@ -37161,7 +39841,10 @@ const functionContext = { warn, info, debug, - extent: (0, _vegaUtil.extent), + extent (_) { + return (0, _vegaUtil.extent)(_); + }, + // suppress extra arguments inScope, intersect, clampRange: (0, _vegaUtil.clampRange), @@ -37182,7 +39865,10 @@ const functionContext = { zoomPow: (0, _vegaUtil.zoomPow), zoomSymlog: (0, _vegaUtil.zoomSymlog), encode, - modify + modify, + lassoAppend, + lassoPath, + intersectLasso }; const eventFunctions = [ "view", @@ -37206,7 +39892,7 @@ const codegenParams = { "item" ], fieldvar: "datum", - globalvar: (id)=>`_[${(0, _vegaUtil.stringValue)(SignalPrefix + id)}]`, + globalvar: (id)=>"_[".concat((0, _vegaUtil.stringValue)(SignalPrefix + id), "]"), functions: buildFunctions, constants: (0, _vegaExpression.constants), visitors: astVisitors @@ -37277,7 +39963,7 @@ function parser(expr, scope) { }; } -},{"vega-util":"bApja","vega-expression":"53Uxk","d3-geo":"lY61T","d3-color":"7SCp9","vega-dataflow":"3NitK","vega-scale":"bEydG","vega-scenegraph":"jattk","vega-selections":"674qo","vega-statistics":"5ncfv","vega-time":"27kpp","d3-array":"6IwJG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"53Uxk":[function(require,module,exports) { +},{"vega-util":"bApja","vega-expression":"2l1no","d3-geo":"lY61T","d3-color":"7SCp9","vega-dataflow":"3NitK","vega-scale":"bEydG","vega-scenegraph":"jattk","vega-selections":"674qo","vega-statistics":"5ncfv","vega-time":"27kpp","d3-array":"6IwJG","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2l1no":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); @@ -38756,7 +41442,7 @@ function selectionVisitor(name, args, scope, params) { if (!(0, _vegaUtil.hasOwnProperty)(params, dataName)) params[dataName] = scope.getData(data).tuplesRef(); } -},{"d3-array":"lLsmU","vega-util":"bApja","vega-expression":"9KcWf","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lLsmU":[function(require,module,exports) { +},{"d3-array":"lLsmU","vega-util":"bApja","vega-expression":"2l1no","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"lLsmU":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); parcelHelpers.export(exports, "bisect", ()=>(0, _bisectJsDefault.default)); @@ -39033,2836 +41719,1591 @@ function union(...others) { } exports.default = union; -},{"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"9KcWf":[function(require,module,exports) { +},{"internmap":"3ULAv","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k7ppL":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); -parcelHelpers.export(exports, "ArrayExpression", ()=>ArrayExpression); -parcelHelpers.export(exports, "BinaryExpression", ()=>BinaryExpression); -parcelHelpers.export(exports, "CallExpression", ()=>CallExpression); -parcelHelpers.export(exports, "ConditionalExpression", ()=>ConditionalExpression); -parcelHelpers.export(exports, "Identifier", ()=>Identifier); -parcelHelpers.export(exports, "Literal", ()=>Literal); -parcelHelpers.export(exports, "LogicalExpression", ()=>LogicalExpression); -parcelHelpers.export(exports, "MemberExpression", ()=>MemberExpression); -parcelHelpers.export(exports, "ObjectExpression", ()=>ObjectExpression); -parcelHelpers.export(exports, "Property", ()=>Property); -parcelHelpers.export(exports, "RawCode", ()=>RawCode); -parcelHelpers.export(exports, "UnaryExpression", ()=>UnaryExpression); -parcelHelpers.export(exports, "codegenExpression", ()=>codegen); -parcelHelpers.export(exports, "constants", ()=>Constants); -parcelHelpers.export(exports, "functions", ()=>Functions); -parcelHelpers.export(exports, "parseExpression", ()=>parser); +parcelHelpers.export(exports, "context", ()=>context); var _vegaUtil = require("vega-util"); -const RawCode = "RawCode"; -const Literal = "Literal"; -const Property = "Property"; -const Identifier = "Identifier"; -const ArrayExpression = "ArrayExpression"; -const BinaryExpression = "BinaryExpression"; -const CallExpression = "CallExpression"; -const ConditionalExpression = "ConditionalExpression"; -const LogicalExpression = "LogicalExpression"; -const MemberExpression = "MemberExpression"; -const ObjectExpression = "ObjectExpression"; -const UnaryExpression = "UnaryExpression"; -function ASTNode(type) { - this.type = type; +var _vegaDataflow = require("vega-dataflow"); +/** + * Parse a serialized dataflow specification. + */ function parse(spec) { + const ctx = this, operators = spec.operators || []; // parse background + if (spec.background) ctx.background = spec.background; + // parse event configuration + if (spec.eventConfig) ctx.eventConfig = spec.eventConfig; + // parse locale configuration + if (spec.locale) ctx.locale = spec.locale; + // parse operators + operators.forEach((entry)=>ctx.parseOperator(entry)); // parse operator parameters + operators.forEach((entry)=>ctx.parseOperatorParameters(entry)); // parse streams + (spec.streams || []).forEach((entry)=>ctx.parseStream(entry)); // parse updates + (spec.updates || []).forEach((entry)=>ctx.parseUpdate(entry)); + return ctx.resolve(); } -ASTNode.prototype.visit = function(visitor) { - let c, i, n; - if (visitor(this)) return 1; - for(c = children(this), i = 0, n = c.length; i < n; ++i){ - if (c[i].visit(visitor)) return 1; +const Skip = (0, _vegaUtil.toSet)([ + "rule" +]), Swap = (0, _vegaUtil.toSet)([ + "group", + "image", + "rect" +]); +function adjustSpatial(encode, marktype) { + let code = ""; + if (Skip[marktype]) return code; + if (encode.x2) { + if (encode.x) { + if (Swap[marktype]) code += "if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"; + code += "o.width=o.x2-o.x;"; + } else code += "o.x=o.x2-(o.width||0);"; } -}; -function children(node) { - switch(node.type){ - case ArrayExpression: - return node.elements; - case BinaryExpression: - case LogicalExpression: - return [ - node.left, - node.right - ]; - case CallExpression: - return [ - node.callee - ].concat(node.arguments); - case ConditionalExpression: - return [ - node.test, - node.consequent, - node.alternate - ]; - case MemberExpression: - return [ - node.object, - node.property - ]; - case ObjectExpression: - return node.properties; - case Property: - return [ - node.key, - node.value - ]; - case UnaryExpression: - return [ - node.argument - ]; - case Identifier: - case Literal: - case RawCode: - default: - return []; + if (encode.xc) code += "o.x=o.xc-(o.width||0)/2;"; + if (encode.y2) { + if (encode.y) { + if (Swap[marktype]) code += "if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"; + code += "o.height=o.y2-o.y;"; + } else code += "o.y=o.y2-(o.height||0);"; } + if (encode.yc) code += "o.y=o.yc-(o.height||0)/2;"; + return code; } -/* - The following expression parser is based on Esprima (http://esprima.org/). - Original header comment and license for Esprima is included here: - - Copyright (C) 2013 Ariya Hidayat - Copyright (C) 2013 Thaddee Tyl - Copyright (C) 2013 Mathias Bynens - Copyright (C) 2012 Ariya Hidayat - Copyright (C) 2012 Mathias Bynens - Copyright (C) 2012 Joost-Wim Boekesteijn - Copyright (C) 2012 Kris Kowal - Copyright (C) 2012 Yusuke Suzuki - Copyright (C) 2012 Arpad Borsos - Copyright (C) 2011 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ var TokenName, source, index, length, lookahead; -var TokenBooleanLiteral = 1, TokenEOF = 2, TokenIdentifier = 3, TokenKeyword = 4, TokenNullLiteral = 5, TokenNumericLiteral = 6, TokenPunctuator = 7, TokenStringLiteral = 8, TokenRegularExpression = 9; -TokenName = {}; -TokenName[TokenBooleanLiteral] = "Boolean"; -TokenName[TokenEOF] = ""; -TokenName[TokenIdentifier] = "Identifier"; -TokenName[TokenKeyword] = "Keyword"; -TokenName[TokenNullLiteral] = "Null"; -TokenName[TokenNumericLiteral] = "Numeric"; -TokenName[TokenPunctuator] = "Punctuator"; -TokenName[TokenStringLiteral] = "String"; -TokenName[TokenRegularExpression] = "RegularExpression"; -var SyntaxArrayExpression = "ArrayExpression", SyntaxBinaryExpression = "BinaryExpression", SyntaxCallExpression = "CallExpression", SyntaxConditionalExpression = "ConditionalExpression", SyntaxIdentifier = "Identifier", SyntaxLiteral = "Literal", SyntaxLogicalExpression = "LogicalExpression", SyntaxMemberExpression = "MemberExpression", SyntaxObjectExpression = "ObjectExpression", SyntaxProperty = "Property", SyntaxUnaryExpression = "UnaryExpression"; // Error messages should be identical to V8. -var MessageUnexpectedToken = "Unexpected token %0", MessageUnexpectedNumber = "Unexpected number", MessageUnexpectedString = "Unexpected string", MessageUnexpectedIdentifier = "Unexpected identifier", MessageUnexpectedReserved = "Unexpected reserved word", MessageUnexpectedEOS = "Unexpected end of input", MessageInvalidRegExp = "Invalid regular expression", MessageUnterminatedRegExp = "Invalid regular expression: missing /", MessageStrictOctalLiteral = "Octal literals are not allowed in strict mode.", MessageStrictDuplicateProperty = "Duplicate data property in object literal not allowed in strict mode"; -var ILLEGAL = "ILLEGAL", DISABLED = "Disabled."; // See also tools/generate-unicode-regex.py. -var RegexNonAsciiIdentifierStart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), // eslint-disable-next-line no-misleading-character-class -RegexNonAsciiIdentifierPart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"); // Ensure the condition is true, otherwise throw an error. -// This is only to have a better contract semantic, i.e. another safety net -// to catch a logic error. The condition shall be fulfilled in normal case. -// Do NOT use this to enforce a certain condition on any user input. -function assert(condition, message) { - /* istanbul ignore next */ if (!condition) throw new Error("ASSERT: " + message); +function canonicalType(type) { + return (type + "").toLowerCase(); } -function isDecimalDigit(ch) { - return ch >= 0x30 && ch <= 0x39; // 0..9 +function isOperator(type) { + return canonicalType(type) === "operator"; } -function isHexDigit(ch) { - return "0123456789abcdefABCDEF".indexOf(ch) >= 0; +function isCollect(type) { + return canonicalType(type) === "collect"; } -function isOctalDigit(ch) { - return "01234567".indexOf(ch) >= 0; -} // 7.2 White Space -function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [ - 0x1680, - 0x180E, - 0x2000, - 0x2001, - 0x2002, - 0x2003, - 0x2004, - 0x2005, - 0x2006, - 0x2007, - 0x2008, - 0x2009, - 0x200A, - 0x202F, - 0x205F, - 0x3000, - 0xFEFF - ].indexOf(ch) >= 0; -} // 7.3 Line Terminators -function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; -} // 7.6 Identifier Names and Identifiers -function isIdentifierStart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch)); +function expression(ctx, args, code) { + // wrap code in return statement if expression does not terminate + if (code[code.length - 1] !== ";") code = "return(" + code + ");"; + const fn = Function(...args.concat(code)); + return ctx && ctx.functions ? fn.bind(ctx.functions) : fn; +} // generate code for comparing a single field +function _compare(u, v, lt, gt) { + return "((u = ".concat(u, ") < (v = ").concat(v, ") || u == null) && v != null ? ").concat(lt, "\n : (u > v || v == null) && u != null ? ").concat(gt, "\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(lt, "\n : v !== v && u === u ? ").concat(gt, " : "); } -function isIdentifierPart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch >= 0x30 && ch <= 0x39 || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch)); -} // 7.6.1.1 Keywords -const keywords = { - "if": 1, - "in": 1, - "do": 1, - "var": 1, - "for": 1, - "new": 1, - "try": 1, - "let": 1, - "this": 1, - "else": 1, - "case": 1, - "void": 1, - "with": 1, - "enum": 1, - "while": 1, - "break": 1, - "catch": 1, - "throw": 1, - "const": 1, - "yield": 1, - "class": 1, - "super": 1, - "return": 1, - "typeof": 1, - "delete": 1, - "switch": 1, - "export": 1, - "import": 1, - "public": 1, - "static": 1, - "default": 1, - "finally": 1, - "extends": 1, - "package": 1, - "private": 1, - "function": 1, - "continue": 1, - "debugger": 1, - "interface": 1, - "protected": 1, - "instanceof": 1, - "implements": 1 -}; -function skipComment() { - while(index < length){ - const ch = source.charCodeAt(index); - if (isWhiteSpace(ch) || isLineTerminator(ch)) ++index; - else break; +var expressionCodegen = { + /** + * Parse an expression used to update an operator value. + */ operator: (ctx, expr)=>expression(ctx, [ + "_" + ], expr.code), + /** + * Parse an expression provided as an operator parameter value. + */ parameter: (ctx, expr)=>expression(ctx, [ + "datum", + "_" + ], expr.code), + /** + * Parse an expression applied to an event stream. + */ event: (ctx, expr)=>expression(ctx, [ + "event" + ], expr.code), + /** + * Parse an expression used to handle an event-driven operator update. + */ handler: (ctx, expr)=>{ + const code = "var datum=event.item&&event.item.datum;return ".concat(expr.code, ";"); + return expression(ctx, [ + "_", + "event" + ], code); + }, + /** + * Parse an expression that performs visual encoding. + */ encode: (ctx, encode)=>{ + const { marktype , channels } = encode; + let code = "var o=item,datum=o.datum,m=0,$;"; + for(const name in channels){ + const o = "o[" + (0, _vegaUtil.stringValue)(name) + "]"; + code += "$=".concat(channels[name].code, ";if(").concat(o, "!==$)").concat(o, "=$,m=1;"); + } + code += adjustSpatial(channels, marktype); + code += "return m;"; + return expression(ctx, [ + "item", + "_" + ], code); + }, + /** + * Optimized code generators for access and comparison. + */ codegen: { + get (path) { + const ref = "[".concat(path.map((0, _vegaUtil.stringValue)).join("]["), "]"); + const get = Function("_", "return _".concat(ref, ";")); + get.path = ref; + return get; + }, + comparator (fields, orders) { + let t; + const map = (f, i)=>{ + const o = orders[i]; + let u, v; + if (f.path) { + u = "a".concat(f.path); + v = "b".concat(f.path); + } else { + (t = t || {})["f" + i] = f; + u = "this.f".concat(i, "(a)"); + v = "this.f".concat(i, "(b)"); + } + return _compare(u, v, -o, o); + }; + const fn = Function("a", "b", "var u, v; return " + fields.map(map).join("") + "0;"); + return t ? fn.bind(t) : fn; + } } +}; +/** + * Parse a dataflow operator. + */ function parseOperator(spec) { + const ctx = this; + if (isOperator(spec.type) || !spec.type) ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null); + else ctx.transform(spec, spec.type); } -function scanHexEscape(prefix) { - var i, len, ch, code = 0; - len = prefix === "u" ? 4 : 2; - for(i = 0; i < len; ++i)if (index < length && isHexDigit(source[index])) { - ch = source[index++]; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } else throwError({}, MessageUnexpectedToken, ILLEGAL); - return String.fromCharCode(code); -} -function scanUnicodeCodePointEscape() { - var ch, code, cu1, cu2; - ch = source[index]; - code = 0; // At least, one hex digit is required. - if (ch === "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - while(index < length){ - ch = source[index++]; - if (!isHexDigit(ch)) break; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); +/** + * Parse and assign operator parameters. + */ function parseOperatorParameters(spec) { + const ctx = this; + if (spec.params) { + const op = ctx.get(spec.id); + if (!op) (0, _vegaUtil.error)("Invalid operator id: " + spec.id); + ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly)); } - if (code > 0x10FFFF || ch !== "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - // UTF-16 Encoding - if (code <= 0xFFFF) return String.fromCharCode(code); - cu1 = (code - 0x10000 >> 10) + 0xD800; - cu2 = (code - 0x10000 & 1023) + 0xDC00; - return String.fromCharCode(cu1, cu2); } -function getEscapedIdentifier() { - var ch, id; - ch = source.charCodeAt(index++); - id = String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierStart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id = ch; +/** + * Parse a set of operator parameters. + */ function parseParameters(spec, params) { + params = params || {}; + const ctx = this; + for(const key in spec){ + const value = spec[key]; + params[key] = (0, _vegaUtil.isArray)(value) ? value.map((v)=>parseParameter(v, ctx, params)) : parseParameter(value, ctx, params); } - while(index < length){ - ch = source.charCodeAt(index); - if (!isIdentifierPart(ch)) break; - ++index; - id += String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - id = id.substr(0, id.length - 1); - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierPart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id += ch; - } + return params; +} +/** + * Parse a single parameter. + */ function parseParameter(spec, ctx, params) { + if (!spec || !(0, _vegaUtil.isObject)(spec)) return spec; + for(let i = 0, n = PARSERS.length, p; i < n; ++i){ + p = PARSERS[i]; + if ((0, _vegaUtil.hasOwnProperty)(spec, p.key)) return p.parse(spec, ctx, params); } - return id; + return spec; } -function getIdentifier() { - var start, ch; - start = index++; - while(index < length){ - ch = source.charCodeAt(index); - if (ch === 0x5C) { - // Blackslash (U+005C) marks Unicode escape sequence. - index = start; - return getEscapedIdentifier(); - } - if (isIdentifierPart(ch)) ++index; - else break; +/** Reference parsers. */ var PARSERS = [ + { + key: "$ref", + parse: getOperator + }, + { + key: "$key", + parse: getKey + }, + { + key: "$expr", + parse: getExpression + }, + { + key: "$field", + parse: getField + }, + { + key: "$encode", + parse: getEncode + }, + { + key: "$compare", + parse: getCompare + }, + { + key: "$context", + parse: getContext + }, + { + key: "$subflow", + parse: getSubflow + }, + { + key: "$tupleid", + parse: getTupleId } - return source.slice(start, index); +]; +/** + * Resolve an operator reference. + */ function getOperator(_, ctx) { + return ctx.get(_.$ref) || (0, _vegaUtil.error)("Operator not defined: " + _.$ref); } -function scanIdentifier() { - var start, id, type; - start = index; // Backslash (U+005C) starts an escaped character. - id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character. - // Thus, it must be an identifier. - if (id.length === 1) type = TokenIdentifier; - else if (keywords.hasOwnProperty(id)) // eslint-disable-line no-prototype-builtins - type = TokenKeyword; - else if (id === "null") type = TokenNullLiteral; - else if (id === "true" || id === "false") type = TokenBooleanLiteral; - else type = TokenIdentifier; - return { - type: type, - value: id, - start: start, - end: index - }; -} // 7.7 Punctuators -function scanPunctuator() { - var start = index, code = source.charCodeAt(index), code2, ch1 = source[index], ch2, ch3, ch4; - switch(code){ - // Check for most common single-character punctuators. - case 0x2E: - case 0x28: - case 0x29: - case 0x3B: - case 0x2C: - case 0x7B: - case 0x7D: - case 0x5B: - case 0x5D: - case 0x3A: - case 0x3F: - case 0x7E: - // ~ - ++index; - return { - type: TokenPunctuator, - value: String.fromCharCode(code), - start: start, - end: index - }; - default: - code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator. - if (code2 === 0x3D) switch(code){ - case 0x2B: - case 0x2D: - case 0x2F: - case 0x3C: - case 0x3E: - case 0x5E: - case 0x7C: - case 0x25: - case 0x26: - case 0x2A: - // * - index += 2; - return { - type: TokenPunctuator, - value: String.fromCharCode(code) + String.fromCharCode(code2), - start: start, - end: index - }; - case 0x21: - case 0x3D: - // = - index += 2; // !== and === - if (source.charCodeAt(index) === 0x3D) ++index; - return { - type: TokenPunctuator, - value: source.slice(start, index), - start: start, - end: index - }; - } - } // 4-character punctuator: >>>= - ch4 = source.substr(index, 4); - if (ch4 === ">>>=") { - index += 4; - return { - type: TokenPunctuator, - value: ch4, - start: start, - end: index - }; - } // 3-character punctuators: === !== >>> <<= >>= - ch3 = ch4.substr(0, 3); - if (ch3 === ">>>" || ch3 === "<<=" || ch3 === ">>=") { - index += 3; - return { - type: TokenPunctuator, - value: ch3, - start: start, - end: index - }; - } // Other 2-character punctuators: ++ -- << >> && || - ch2 = ch3.substr(0, 2); - if (ch1 === ch2[1] && "+-<>&|".indexOf(ch1) >= 0 || ch2 === "=>") { - index += 2; - return { - type: TokenPunctuator, - value: ch2, - start: start, - end: index - }; - } - if (ch2 === "//") throwError({}, MessageUnexpectedToken, ILLEGAL); - // 1-character punctuators: < > = ! + - * % & | ^ / - if ("<>=!+-*%&|^/".indexOf(ch1) >= 0) { - ++index; - return { - type: TokenPunctuator, - value: ch1, - start: start, - end: index - }; - } - throwError({}, MessageUnexpectedToken, ILLEGAL); -} // 7.8.3 Numeric Literals -function scanHexLiteral(start) { - let number = ""; - while(index < length){ - if (!isHexDigit(source[index])) break; - number += source[index++]; - } - if (number.length === 0) throwError({}, MessageUnexpectedToken, ILLEGAL); - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt("0x" + number, 16), - start: start, - end: index - }; +/** + * Resolve an expression reference. + */ function getExpression(_, ctx, params) { + if (_.$params) // parse expression parameters + ctx.parseParameters(_.$params, params); + const k = "e:" + _.$expr.code + "_" + _.$name; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.accessor)(ctx.parameterExpression(_.$expr), _.$fields, _.$name)); } -function scanOctalLiteral(start) { - let number = "0" + source[index++]; - while(index < length){ - if (!isOctalDigit(source[index])) break; - number += source[index++]; - } - if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt(number, 8), - octal: true, - start: start, - end: index - }; +/** + * Resolve a key accessor reference. + */ function getKey(_, ctx) { + const k = "k:" + _.$key + "_" + !!_.$flat; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.key)(_.$key, _.$flat, ctx.expr.codegen)); } -function scanNumericLiteral() { - var number, start, ch; - ch = source[index]; - assert(isDecimalDigit(ch.charCodeAt(0)) || ch === ".", "Numeric literal must start with a decimal digit or a decimal point"); - start = index; - number = ""; - if (ch !== ".") { - number = source[index++]; - ch = source[index]; // Hex number starts with '0x'. - // Octal number starts with '0'. - if (number === "0") { - if (ch === "x" || ch === "X") { - ++index; - return scanHexLiteral(start); - } - if (isOctalDigit(ch)) return scanOctalLiteral(start); - // decimal number starts with '0' such as '09' is illegal. - if (ch && isDecimalDigit(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - } - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === ".") { - number += source[index++]; - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === "e" || ch === "E") { - number += source[index++]; - ch = source[index]; - if (ch === "+" || ch === "-") number += source[index++]; - if (isDecimalDigit(source.charCodeAt(index))) while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - else throwError({}, MessageUnexpectedToken, ILLEGAL); - } - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseFloat(number), - start: start, - end: index - }; -} // 7.8.4 String Literals -function scanStringLiteral() { - var str = "", quote, start, ch, code, octal = false; - quote = source[index]; - assert(quote === "'" || quote === '"', "String literal must starts with a quote"); - start = index; - ++index; - while(index < length){ - ch = source[index++]; - if (ch === quote) { - quote = ""; - break; - } else if (ch === "\\") { - ch = source[index++]; - if (!ch || !isLineTerminator(ch.charCodeAt(0))) switch(ch){ - case "u": - case "x": - if (source[index] === "{") { - ++index; - str += scanUnicodeCodePointEscape(); - } else str += scanHexEscape(ch); - break; - case "n": - str += "\n"; - break; - case "r": - str += "\r"; - break; - case "t": - str += " "; - break; - case "b": - str += "\b"; - break; - case "f": - str += "\f"; - break; - case "v": - str += "\v"; - break; - default: - if (isOctalDigit(ch)) { - code = "01234567".indexOf(ch); // \0 is not octal escape sequence - if (code !== 0) octal = true; - if (index < length && isOctalDigit(source[index])) { - octal = true; - code = code * 8 + "01234567".indexOf(source[index++]); // 3 digits are only allowed when string starts - // with 0, 1, 2, 3 - if ("0123".indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) code = code * 8 + "01234567".indexOf(source[index++]); - } - str += String.fromCharCode(code); - } else str += ch; - break; - } - else if (ch === "\r" && source[index] === "\n") ++index; - } else if (isLineTerminator(ch.charCodeAt(0))) break; - else str += ch; - } - if (quote !== "") throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenStringLiteral, - value: str, - octal: octal, - start: start, - end: index - }; +/** + * Resolve a field accessor reference. + */ function getField(_, ctx) { + if (!_.$field) return null; + const k = "f:" + _.$field + "_" + _.$name; + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.field)(_.$field, _.$name, ctx.expr.codegen)); } -function testRegExp(pattern, flags) { - let tmp = pattern; - if (flags.indexOf("u") >= 0) // Replace each astral symbol and every Unicode code point - // escape sequence with a single ASCII symbol to avoid throwing on - // regular expressions that are only valid in combination with the - // `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it - // would be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, ($0, $1)=>{ - if (parseInt($1, 16) <= 0x10FFFF) return "x"; - throwError({}, MessageInvalidRegExp); - }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - // First, detect invalid regular expressions. - try { - new RegExp(tmp); - } catch (e) { - throwError({}, MessageInvalidRegExp); - } // Return a regular expression object for this pattern-flag pair, or - // `null` in case the current environment doesn't support the flags it - // uses. - try { - return new RegExp(pattern, flags); - } catch (exception) { - return null; - } +/** + * Resolve a comparator function reference. + */ function getCompare(_, ctx) { + // As of Vega 5.5.3, $tupleid sort is no longer used. + // Keep here for now for backwards compatibility. + const k = "c:" + _.$compare + "_" + _.$order, c = (0, _vegaUtil.array)(_.$compare).map((_)=>_ && _.$tupleid ? (0, _vegaDataflow.tupleid) : _); + return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.compare)(c, _.$order, ctx.expr.codegen)); } -function scanRegExpBody() { - var ch, str, classMarker, terminated, body; - ch = source[index]; - assert(ch === "/", "Regular expression literal must start with a slash"); - str = source[index++]; - classMarker = false; - terminated = false; - while(index < length){ - ch = source[index++]; - str += ch; - if (ch === "\\") { - ch = source[index++]; // ECMA-262 7.8.5 - if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - str += ch; - } else if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - else if (classMarker) { - if (ch === "]") classMarker = false; - } else { - if (ch === "/") { - terminated = true; - break; - } else if (ch === "[") classMarker = true; - } +/** + * Resolve an encode operator reference. + */ function getEncode(_, ctx) { + const spec = _.$encode, encode = {}; + for(const name in spec){ + const enc = spec[name]; + encode[name] = (0, _vegaUtil.accessor)(ctx.encodeExpression(enc.$expr), enc.$fields); + encode[name].output = enc.$output; } - if (!terminated) throwError({}, MessageUnterminatedRegExp); - // Exclude leading and trailing slash. - body = str.substr(1, str.length - 2); - return { - value: body, - literal: str - }; + return encode; } -function scanRegExpFlags() { - var ch, str, flags; - str = ""; - flags = ""; - while(index < length){ - ch = source[index]; - if (!isIdentifierPart(ch.charCodeAt(0))) break; - ++index; - if (ch === "\\" && index < length) throwError({}, MessageUnexpectedToken, ILLEGAL); - else { - flags += ch; - str += ch; - } - } - if (flags.search(/[^gimuy]/g) >= 0) throwError({}, MessageInvalidRegExp, flags); - return { - value: flags, - literal: str - }; +/** + * Resolve a context reference. + */ function getContext(_, ctx) { + return ctx; } -function scanRegExp() { - var start, body, flags, value; - lookahead = null; - skipComment(); - start = index; - body = scanRegExpBody(); - flags = scanRegExpFlags(); - value = testRegExp(body.value, flags.value); - return { - literal: body.literal + flags.literal, - value: value, - regex: { - pattern: body.value, - flags: flags.value - }, - start: start, - end: index +/** + * Resolve a recursive subflow specification. + */ function getSubflow(_, ctx) { + const spec = _.$subflow; + return function(dataflow, key, parent) { + const subctx = ctx.fork().parse(spec), op = subctx.get(spec.operators[0].id), p = subctx.signals.parent; + if (p) p.set(parent); + op.detachSubflow = ()=>ctx.detach(subctx); + return op; }; } -function isIdentifierName(token) { - return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral; +/** + * Resolve a tuple id reference. + */ function getTupleId() { + return 0, _vegaDataflow.tupleid; } -function advance() { - skipComment(); - if (index >= length) return { - type: TokenEOF, - start: index, - end: index - }; - const ch = source.charCodeAt(index); - if (isIdentifierStart(ch)) return scanIdentifier(); - // Very common: ( and ) and ; - if (ch === 0x28 || ch === 0x29 || ch === 0x3B) return scanPunctuator(); - // String literal starts with single quote (U+0027) or double quote (U+0022). - if (ch === 0x27 || ch === 0x22) return scanStringLiteral(); - // Dot (.) U+002E can also start a floating-point number, hence the need - // to check the next character. - if (ch === 0x2E) { - if (isDecimalDigit(source.charCodeAt(index + 1))) return scanNumericLiteral(); - return scanPunctuator(); +/** + * Parse an event stream specification. + */ function parseStream(spec) { + var ctx = this, filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined, stream = spec.stream != null ? ctx.get(spec.stream) : undefined, args; + if (spec.source) stream = ctx.events(spec.source, spec.type, filter); + else if (spec.merge) { + args = spec.merge.map((_)=>ctx.get(_)); + stream = args[0].merge.apply(args[0], args.slice(1)); } - if (isDecimalDigit(ch)) return scanNumericLiteral(); - return scanPunctuator(); + if (spec.between) { + args = spec.between.map((_)=>ctx.get(_)); + stream = stream.between(args[0], args[1]); + } + if (spec.filter) stream = stream.filter(filter); + if (spec.throttle != null) stream = stream.throttle(+spec.throttle); + if (spec.debounce != null) stream = stream.debounce(+spec.debounce); + if (stream == null) (0, _vegaUtil.error)("Invalid stream definition: " + JSON.stringify(spec)); + if (spec.consume) stream.consume(true); + ctx.stream(spec, stream); } -function lex() { - const token = lookahead; - index = token.end; - lookahead = advance(); - index = token.end; - return token; +/** + * Parse an event-driven operator update. + */ function parseUpdate(spec) { + var ctx = this, srcid = (0, _vegaUtil.isObject)(srcid = spec.source) ? srcid.$ref : srcid, source = ctx.get(srcid), target = null, update = spec.update, params = undefined; + if (!source) (0, _vegaUtil.error)("Source not defined: " + spec.source); + target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target); + if (update && update.$expr) { + if (update.$params) params = ctx.parseParameters(update.$params); + update = ctx.handlerExpression(update.$expr); + } + ctx.update(spec, source, target, update, params); } -function peek() { - const pos = index; - lookahead = advance(); - index = pos; -} -function finishArrayExpression(elements) { - const node = new ASTNode(SyntaxArrayExpression); - node.elements = elements; - return node; -} -function finishBinaryExpression(operator, left, right) { - const node = new ASTNode(operator === "||" || operator === "&&" ? SyntaxLogicalExpression : SyntaxBinaryExpression); - node.operator = operator; - node.left = left; - node.right = right; - return node; +const SKIP = { + skip: true +}; +function getState(options) { + var ctx = this, state = {}; + if (options.signals) { + var signals = state.signals = {}; + Object.keys(ctx.signals).forEach((key)=>{ + const op = ctx.signals[key]; + if (options.signals(key, op)) signals[key] = op.value; + }); + } + if (options.data) { + var data = state.data = {}; + Object.keys(ctx.data).forEach((key)=>{ + const dataset = ctx.data[key]; + if (options.data(key, dataset)) data[key] = dataset.input.value; + }); + } + if (ctx.subcontext && options.recurse !== false) state.subcontext = ctx.subcontext.map((ctx)=>ctx.getState(options)); + return state; } -function finishCallExpression(callee, args) { - const node = new ASTNode(SyntaxCallExpression); - node.callee = callee; - node.arguments = args; - return node; +function setState(state) { + var ctx = this, df = ctx.dataflow, data = state.data, signals = state.signals; + Object.keys(signals || {}).forEach((key)=>{ + df.update(ctx.signals[key], signals[key], SKIP); + }); + Object.keys(data || {}).forEach((key)=>{ + df.pulse(ctx.data[key].input, df.changeset().remove((0, _vegaUtil.truthy)).insert(data[key])); + }); + (state.subcontext || []).forEach((substate, i)=>{ + const subctx = ctx.subcontext[i]; + if (subctx) subctx.setState(substate); + }); } -function finishConditionalExpression(test, consequent, alternate) { - const node = new ASTNode(SyntaxConditionalExpression); - node.test = test; - node.consequent = consequent; - node.alternate = alternate; - return node; +/** + * Context objects store the current parse state. + * Enables lookup of parsed operators, event streams, accessors, etc. + * Provides a 'fork' method for creating child contexts for subflows. + */ function context(df, transforms, functions, expr) { + return new Context(df, transforms, functions, expr); } -function finishIdentifier(name) { - const node = new ASTNode(SyntaxIdentifier); - node.name = name; - return node; +function Context(df, transforms, functions, expr) { + this.dataflow = df; + this.transforms = transforms; + this.events = df.events.bind(df); + this.expr = expr || expressionCodegen, this.signals = {}; + this.scales = {}; + this.nodes = {}; + this.data = {}; + this.fn = {}; + if (functions) { + this.functions = Object.create(functions); + this.functions.context = this; + } } -function finishLiteral(token) { - const node = new ASTNode(SyntaxLiteral); - node.value = token.value; - node.raw = source.slice(token.start, token.end); - if (token.regex) { - if (node.raw === "//") node.raw = "/(?:)/"; - node.regex = token.regex; +function Subcontext(ctx) { + this.dataflow = ctx.dataflow; + this.transforms = ctx.transforms; + this.events = ctx.events; + this.expr = ctx.expr; + this.signals = Object.create(ctx.signals); + this.scales = Object.create(ctx.scales); + this.nodes = Object.create(ctx.nodes); + this.data = Object.create(ctx.data); + this.fn = Object.create(ctx.fn); + if (ctx.functions) { + this.functions = Object.create(ctx.functions); + this.functions.context = this; } - return node; } -function finishMemberExpression(accessor, object, property) { - const node = new ASTNode(SyntaxMemberExpression); - node.computed = accessor === "["; - node.object = object; - node.property = property; - if (!node.computed) property.member = true; - return node; +Context.prototype = Subcontext.prototype = { + fork () { + const ctx = new Subcontext(this); + (this.subcontext || (this.subcontext = [])).push(ctx); + return ctx; + }, + detach (ctx) { + this.subcontext = this.subcontext.filter((c)=>c !== ctx); // disconnect all nodes in the subcontext + // wipe out targets first for better efficiency + const keys = Object.keys(ctx.nodes); + for (const key of keys)ctx.nodes[key]._targets = null; + for (const key1 of keys)ctx.nodes[key1].detach(); + ctx.nodes = null; + }, + get (id) { + return this.nodes[id]; + }, + set (id, node) { + return this.nodes[id] = node; + }, + add (spec, op) { + const ctx = this, df = ctx.dataflow, data = spec.value; + ctx.set(spec.id, op); + if (isCollect(spec.type) && data) { + if (data.$ingest) df.ingest(op, data.$ingest, data.$format); + else if (data.$request) df.preload(op, data.$request, data.$format); + else df.pulse(op, df.changeset().insert(data)); + } + if (spec.root) ctx.root = op; + if (spec.parent) { + let p = ctx.get(spec.parent.$ref); + if (p) { + df.connect(p, [ + op + ]); + op.targets().add(p); + } else (ctx.unresolved = ctx.unresolved || []).push(()=>{ + p = ctx.get(spec.parent.$ref); + df.connect(p, [ + op + ]); + op.targets().add(p); + }); + } + if (spec.signal) ctx.signals[spec.signal] = op; + if (spec.scale) ctx.scales[spec.scale] = op; + if (spec.data) for(const name in spec.data){ + const data1 = ctx.data[name] || (ctx.data[name] = {}); + spec.data[name].forEach((role)=>data1[role] = op); + } + }, + resolve () { + (this.unresolved || []).forEach((fn)=>fn()); + delete this.unresolved; + return this; + }, + operator (spec, update) { + this.add(spec, this.dataflow.add(spec.value, update)); + }, + transform (spec, type) { + this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)])); + }, + stream (spec, stream) { + this.set(spec.id, stream); + }, + update (spec, stream, target, update, params) { + this.dataflow.on(stream, target, update, params, spec.options); + }, + // expression parsing + operatorExpression (expr) { + return this.expr.operator(this, expr); + }, + parameterExpression (expr) { + return this.expr.parameter(this, expr); + }, + eventExpression (expr) { + return this.expr.event(this, expr); + }, + handlerExpression (expr) { + return this.expr.handler(this, expr); + }, + encodeExpression (encode) { + return this.expr.encode(this, encode); + }, + // parse methods + parse, + parseOperator, + parseOperatorParameters, + parseParameters, + parseStream, + parseUpdate, + // state methods + getState, + setState +}; + +},{"vega-util":"bApja","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hsy9Z":[function(require,module,exports) { +var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); +parcelHelpers.defineInteropFlag(exports); +parcelHelpers.export(exports, "AxisDomainRole", ()=>AxisDomainRole); +parcelHelpers.export(exports, "AxisGridRole", ()=>AxisGridRole); +parcelHelpers.export(exports, "AxisLabelRole", ()=>AxisLabelRole); +parcelHelpers.export(exports, "AxisRole", ()=>AxisRole); +parcelHelpers.export(exports, "AxisTickRole", ()=>AxisTickRole); +parcelHelpers.export(exports, "AxisTitleRole", ()=>AxisTitleRole); +parcelHelpers.export(exports, "DataScope", ()=>DataScope); +parcelHelpers.export(exports, "FrameRole", ()=>FrameRole); +parcelHelpers.export(exports, "LegendEntryRole", ()=>LegendEntryRole); +parcelHelpers.export(exports, "LegendLabelRole", ()=>LegendLabelRole); +parcelHelpers.export(exports, "LegendRole", ()=>LegendRole); +parcelHelpers.export(exports, "LegendSymbolRole", ()=>LegendSymbolRole); +parcelHelpers.export(exports, "LegendTitleRole", ()=>LegendTitleRole); +parcelHelpers.export(exports, "MarkRole", ()=>MarkRole); +parcelHelpers.export(exports, "Scope", ()=>Scope); +parcelHelpers.export(exports, "ScopeRole", ()=>ScopeRole); +parcelHelpers.export(exports, "config", ()=>defaults); +parcelHelpers.export(exports, "parse", ()=>parse); +parcelHelpers.export(exports, "signal", ()=>parseSignal); +parcelHelpers.export(exports, "signalUpdates", ()=>parseSignalUpdates); +parcelHelpers.export(exports, "stream", ()=>parseStream); +var _vegaUtil = require("vega-util"); +var _vegaFunctions = require("vega-functions"); +var _vegaEventSelector = require("vega-event-selector"); +var _vegaScale = require("vega-scale"); +var _vegaDataflow = require("vega-dataflow"); +function parseAutosize(spec) { + return (0, _vegaUtil.isObject)(spec) ? spec : { + type: spec || "pad" + }; } -function finishObjectExpression(properties) { - const node = new ASTNode(SyntaxObjectExpression); - node.properties = properties; - return node; +const number = (_)=>+_ || 0; +const paddingObject = (_)=>({ + top: _, + bottom: _, + left: _, + right: _ + }); +function parsePadding(spec) { + return !(0, _vegaUtil.isObject)(spec) ? paddingObject(number(spec)) : spec.signal ? spec : { + top: number(spec.top), + bottom: number(spec.bottom), + left: number(spec.left), + right: number(spec.right) + }; } -function finishProperty(kind, key, value) { - const node = new ASTNode(SyntaxProperty); - node.key = key; - node.value = value; - node.kind = kind; - return node; +const encoder = (_)=>(0, _vegaUtil.isObject)(_) && !(0, _vegaUtil.isArray)(_) ? (0, _vegaUtil.extend)({}, _) : { + value: _ + }; +function addEncode(object, name, value, set) { + if (value != null) { + const isEncoder = (0, _vegaUtil.isObject)(value) && !(0, _vegaUtil.isArray)(value) || (0, _vegaUtil.isArray)(value) && value.length && (0, _vegaUtil.isObject)(value[0]); // Always assign signal to update, even if the signal is from the enter block + if (isEncoder) object.update[name] = value; + else object[set || "enter"][name] = { + value: value + }; + return 1; + } else return 0; } -function finishUnaryExpression(operator, argument) { - const node = new ASTNode(SyntaxUnaryExpression); - node.operator = operator; - node.argument = argument; - node.prefix = true; - return node; -} // Throw an exception -function throwError(token, messageFormat) { - var error, args = Array.prototype.slice.call(arguments, 2), msg = messageFormat.replace(/%(\d)/g, (whole, index)=>{ - assert(index < args.length, "Message reference must be in range"); - return args[index]; - }); - error = new Error(msg); - error.index = index; - error.description = msg; - throw error; -} // Throw an exception because of the token. -function throwUnexpected(token) { - if (token.type === TokenEOF) throwError(token, MessageUnexpectedEOS); - if (token.type === TokenNumericLiteral) throwError(token, MessageUnexpectedNumber); - if (token.type === TokenStringLiteral) throwError(token, MessageUnexpectedString); - if (token.type === TokenIdentifier) throwError(token, MessageUnexpectedIdentifier); - if (token.type === TokenKeyword) throwError(token, MessageUnexpectedReserved); - // BooleanLiteral, NullLiteral, or Punctuator. - throwError(token, MessageUnexpectedToken, token.value); -} // Expect the next token to match the specified punctuator. -// If not, an exception will be thrown. -function expect(value) { - const token = lex(); - if (token.type !== TokenPunctuator || token.value !== value) throwUnexpected(token); -} // Return true if the next token matches the specified punctuator. -function match(value) { - return lookahead.type === TokenPunctuator && lookahead.value === value; -} // Return true if the next token matches the specified keyword -function matchKeyword(keyword) { - return lookahead.type === TokenKeyword && lookahead.value === keyword; -} // 11.1.4 Array Initialiser -function parseArrayInitialiser() { - const elements = []; - index = lookahead.start; - expect("["); - while(!match("]"))if (match(",")) { - lex(); - elements.push(null); - } else { - elements.push(parseConditionalExpression()); - if (!match("]")) expect(","); - } - lex(); - return finishArrayExpression(elements); -} // 11.1.5 Object Initialiser -function parseObjectPropertyKey() { - index = lookahead.start; - const token = lex(); // Note: This function is called only from parseObjectProperty(), where - // EOF and Punctuator tokens are already filtered out. - if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) { - if (token.octal) throwError(token, MessageStrictOctalLiteral); - return finishLiteral(token); - } - return finishIdentifier(token.value); +function addEncoders(object, enter, update) { + for(const name in enter)addEncode(object, name, enter[name]); + for(const name1 in update)addEncode(object, name1, update[name1], "update"); } -function parseObjectProperty() { - var token, key, id, value; - index = lookahead.start; - token = lookahead; - if (token.type === TokenIdentifier) { - id = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", id, value); - } - if (token.type === TokenEOF || token.type === TokenPunctuator) throwUnexpected(token); - else { - key = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", key, value); +function extendEncode(encode, extra, skip) { + for(const name in extra){ + if (skip && (0, _vegaUtil.hasOwnProperty)(skip, name)) continue; + encode[name] = (0, _vegaUtil.extend)(encode[name] || {}, extra[name]); } + return encode; } -function parseObjectInitialiser() { - var properties = [], property, name, key, map = {}, toString = String; - index = lookahead.start; - expect("{"); - while(!match("}")){ - property = parseObjectProperty(); - if (property.key.type === SyntaxIdentifier) name = property.key.name; - else name = toString(property.key.value); - key = "$" + name; - if (Object.prototype.hasOwnProperty.call(map, key)) throwError({}, MessageStrictDuplicateProperty); - else map[key] = true; - properties.push(property); - if (!match("}")) expect(","); - } - expect("}"); - return finishObjectExpression(properties); -} // 11.1.6 The Grouping Operator -function parseGroupExpression() { - expect("("); - const expr = parseExpression(); - expect(")"); - return expr; -} // 11.1 Primary Expressions -const legalKeywords = { - "if": 1 -}; -function parsePrimaryExpression() { - var type, token, expr; - if (match("(")) return parseGroupExpression(); - if (match("[")) return parseArrayInitialiser(); - if (match("{")) return parseObjectInitialiser(); - type = lookahead.type; - index = lookahead.start; - if (type === TokenIdentifier || legalKeywords[lookahead.value]) expr = finishIdentifier(lex().value); - else if (type === TokenStringLiteral || type === TokenNumericLiteral) { - if (lookahead.octal) throwError(lookahead, MessageStrictOctalLiteral); - expr = finishLiteral(lex()); - } else if (type === TokenKeyword) throw new Error(DISABLED); - else if (type === TokenBooleanLiteral) { - token = lex(); - token.value = token.value === "true"; - expr = finishLiteral(token); - } else if (type === TokenNullLiteral) { - token = lex(); - token.value = null; - expr = finishLiteral(token); - } else if (match("/") || match("/=")) { - expr = finishLiteral(scanRegExp()); - peek(); - } else throwUnexpected(lex()); - return expr; -} // 11.2 Left-Hand-Side Expressions -function parseArguments() { - const args = []; - expect("("); - if (!match(")")) while(index < length){ - args.push(parseConditionalExpression()); - if (match(")")) break; - expect(","); +function has(key, encode) { + return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]); +} +const MarkRole = "mark"; +const FrameRole = "frame"; +const ScopeRole = "scope"; +const AxisRole = "axis"; +const AxisDomainRole = "axis-domain"; +const AxisGridRole = "axis-grid"; +const AxisLabelRole = "axis-label"; +const AxisTickRole = "axis-tick"; +const AxisTitleRole = "axis-title"; +const LegendRole = "legend"; +const LegendBandRole = "legend-band"; +const LegendEntryRole = "legend-entry"; +const LegendGradientRole = "legend-gradient"; +const LegendLabelRole = "legend-label"; +const LegendSymbolRole = "legend-symbol"; +const LegendTitleRole = "legend-title"; +const TitleRole = "title"; +const TitleTextRole = "title-text"; +const TitleSubtitleRole = "title-subtitle"; +function applyDefaults(encode, type, role, style, config) { + const defaults = {}, enter = {}; + let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370) + key = "lineBreak"; + if (type === "text" && config[key] != null && !has(key, encode)) applyDefault(defaults, key, config[key]); + // ignore legend and axis roles + if (role == "legend" || String(role).startsWith("axis")) role = null; + // resolve mark config + props = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; + for(key in props){ + // do not apply defaults if relevant fields are defined + skip = has(key, encode) || (key === "fill" || key === "stroke") && (has("fill", encode) || has("stroke", encode)); + if (!skip) applyDefault(defaults, key, props[key]); + } // resolve styles, apply with increasing precedence + (0, _vegaUtil.array)(style).forEach((name)=>{ + const props = config.style && config.style[name]; + for(const key in props)if (!has(key, encode)) applyDefault(defaults, key, props[key]); + }); + encode = (0, _vegaUtil.extend)({}, encode); // defensive copy + for(key in defaults){ + props = defaults[key]; + if (props.signal) (update = update || {})[key] = props; + else enter[key] = props; } - expect(")"); - return args; + encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); + if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); + return encode; } -function parseNonComputedProperty() { - index = lookahead.start; - const token = lex(); - if (!isIdentifierName(token)) throwUnexpected(token); - return finishIdentifier(token.value); +function applyDefault(defaults, key, value) { + defaults[key] = value && value.signal ? { + signal: value.signal + } : { + value: value + }; } -function parseNonComputedMember() { - expect("."); - return parseNonComputedProperty(); +const scaleRef = (scale)=>(0, _vegaUtil.isString)(scale) ? (0, _vegaUtil.stringValue)(scale) : scale.signal ? `(${scale.signal})` : field(scale); +function entry$1(enc) { + if (enc.gradient != null) return gradient(enc); + let value = enc.signal ? `(${enc.signal})` : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? (0, _vegaUtil.stringValue)(enc.value) : undefined; + if (enc.scale != null) value = scale(enc, value); + if (value === undefined) value = null; + if (enc.exponent != null) value = `pow(${value},${property(enc.exponent)})`; + if (enc.mult != null) value += `*${property(enc.mult)}`; + if (enc.offset != null) value += `+${property(enc.offset)}`; + if (enc.round) value = `round(${value})`; + return value; } -function parseComputedMember() { - expect("["); - const expr = parseExpression(); - expect("]"); - return expr; +const _color = (type, x, y, z)=>`(${type}(${[ + x, + y, + z + ].map(entry$1).join(",")})+'')`; +function color(enc) { + return enc.c ? _color("hcl", enc.h, enc.c, enc.l) : enc.h || enc.s ? _color("hsl", enc.h, enc.s, enc.l) : enc.l || enc.a ? _color("lab", enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color("rgb", enc.r, enc.g, enc.b) : null; } -function parseLeftHandSideExpressionAllowCall() { - var expr, args, property; - expr = parsePrimaryExpression(); - for(;;){ - if (match(".")) { - property = parseNonComputedMember(); - expr = finishMemberExpression(".", expr, property); - } else if (match("(")) { - args = parseArguments(); - expr = finishCallExpression(expr, args); - } else if (match("[")) { - property = parseComputedMember(); - expr = finishMemberExpression("[", expr, property); - } else break; - } - return expr; -} // 11.3 Postfix Expressions -function parsePostfixExpression() { - const expr = parseLeftHandSideExpressionAllowCall(); - if (lookahead.type === TokenPunctuator) { - if (match("++") || match("--")) throw new Error(DISABLED); - } - return expr; -} // 11.4 Unary Operators -function parseUnaryExpression() { - var token, expr; - if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) expr = parsePostfixExpression(); - else if (match("++") || match("--")) throw new Error(DISABLED); - else if (match("+") || match("-") || match("~") || match("!")) { - token = lex(); - expr = parseUnaryExpression(); - expr = finishUnaryExpression(token.value, expr); - } else if (matchKeyword("delete") || matchKeyword("void") || matchKeyword("typeof")) throw new Error(DISABLED); - else expr = parsePostfixExpression(); - return expr; +function gradient(enc) { + // map undefined to null; expression lang does not allow undefined + const args = [ + enc.start, + enc.stop, + enc.count + ].map((_)=>_ == null ? null : (0, _vegaUtil.stringValue)(_)); // trim null inputs from the end + while(args.length && (0, _vegaUtil.peek)(args) == null)args.pop(); + args.unshift(scaleRef(enc.gradient)); + return `gradient(${args.join(",")})`; } -function binaryPrecedence(token) { - let prec = 0; - if (token.type !== TokenPunctuator && token.type !== TokenKeyword) return 0; - switch(token.value){ - case "||": - prec = 1; - break; - case "&&": - prec = 2; - break; - case "|": - prec = 3; - break; - case "^": - prec = 4; - break; - case "&": - prec = 5; - break; - case "==": - case "!=": - case "===": - case "!==": - prec = 6; - break; - case "<": - case ">": - case "<=": - case ">=": - case "instanceof": - case "in": - prec = 7; - break; - case "<<": - case ">>": - case ">>>": - prec = 8; - break; - case "+": - case "-": - prec = 9; - break; - case "*": - case "/": - case "%": - prec = 11; - break; - } - return prec; -} // 11.5 Multiplicative Operators -// 11.6 Additive Operators -// 11.7 Bitwise Shift Operators -// 11.8 Relational Operators -// 11.9 Equality Operators -// 11.10 Binary Bitwise Operators -// 11.11 Binary Logical Operators -function parseBinaryExpression() { - var marker, markers, expr, token, prec, stack, right, operator, left, i; - marker = lookahead; - left = parseUnaryExpression(); - token = lookahead; - prec = binaryPrecedence(token); - if (prec === 0) return left; - token.prec = prec; - lex(); - markers = [ - marker, - lookahead - ]; - right = parseUnaryExpression(); - stack = [ - left, - token, - right - ]; - while((prec = binaryPrecedence(lookahead)) > 0){ - // Reduce: make a binary expression from the three topmost entries. - while(stack.length > 2 && prec <= stack[stack.length - 2].prec){ - right = stack.pop(); - operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - expr = finishBinaryExpression(operator, left, right); - stack.push(expr); - } // Shift. - token = lex(); - token.prec = prec; - stack.push(token); - markers.push(lookahead); - expr = parseUnaryExpression(); - stack.push(expr); - } // Final reduce to clean-up the stack. - i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while(i > 1){ - markers.pop(); - expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); - i -= 2; - } - return expr; -} // 11.12 Conditional Operator -function parseConditionalExpression() { - var expr, consequent, alternate; - expr = parseBinaryExpression(); - if (match("?")) { - lex(); - consequent = parseConditionalExpression(); - expect(":"); - alternate = parseConditionalExpression(); - expr = finishConditionalExpression(expr, consequent, alternate); - } - return expr; -} // 11.14 Comma Operator -function parseExpression() { - const expr = parseConditionalExpression(); - if (match(",")) throw new Error(DISABLED); // no sequence expressions - return expr; +function property(property) { + return (0, _vegaUtil.isObject)(property) ? "(" + entry$1(property) + ")" : property; } -function parser(code) { - source = code; - index = 0; - length = source.length; - lookahead = null; - peek(); - const expr = parseExpression(); - if (lookahead.type !== TokenEOF) throw new Error("Unexpect token after expression."); - return expr; +function field(ref) { + return resolveField((0, _vegaUtil.isObject)(ref) ? ref : { + datum: ref + }); } -var Constants = { - NaN: "NaN", - E: "Math.E", - LN2: "Math.LN2", - LN10: "Math.LN10", - LOG2E: "Math.LOG2E", - LOG10E: "Math.LOG10E", - PI: "Math.PI", - SQRT1_2: "Math.SQRT1_2", - SQRT2: "Math.SQRT2", - MIN_VALUE: "Number.MIN_VALUE", - MAX_VALUE: "Number.MAX_VALUE" -}; -function Functions(codegen) { - function fncall(name, args, cast, type) { - let obj = codegen(args[0]); - if (cast) { - obj = cast + "(" + obj + ")"; - if (cast.lastIndexOf("new ", 0) === 0) obj = "(" + obj + ")"; +function resolveField(ref) { + let object, level, field; + if (ref.signal) { + object = "datum"; + field = ref.signal; + } else if (ref.group || ref.parent) { + level = Math.max(1, ref.level || 1); + object = "item"; + while(level-- > 0)object += ".mark.group"; + if (ref.parent) { + field = ref.parent; + object += ".datum"; + } else field = ref.group; + } else if (ref.datum) { + object = "datum"; + field = ref.datum; + } else (0, _vegaUtil.error)("Invalid field reference: " + (0, _vegaUtil.stringValue)(ref)); + if (!ref.signal) field = (0, _vegaUtil.isString)(field) ? (0, _vegaUtil.splitAccessPath)(field).map((0, _vegaUtil.stringValue)).join("][") : resolveField(field); + return object + "[" + field + "]"; +} +function scale(enc, value) { + const scale = scaleRef(enc.scale); + if (enc.range != null) // pull value from scale range + value = `lerp(_range(${scale}), ${+enc.range})`; + else { + // run value through scale and/or pull scale bandwidth + if (value !== undefined) value = `_scale(${scale}, ${value})`; + if (enc.band) { + value = (value ? value + "+" : "") + `_bandwidth(${scale})` + (+enc.band === 1 ? "" : "*" + property(enc.band)); + if (enc.extra) // include logic to handle extraneous elements + value = `(datum.extra ? _scale(${scale}, datum.extra.value) : ${value})`; } - return obj + "." + name + (type < 0 ? "" : type === 0 ? "()" : "(" + args.slice(1).map(codegen).join(",") + ")"); - } - function fn(name, cast, type) { - return (args)=>fncall(name, args, cast, type); + if (value == null) value = "0"; } - const DATE = "new Date", STRING = "String", REGEXP = "RegExp"; + return value; +} +function rule(enc) { + let code = ""; + enc.forEach((rule)=>{ + const value = entry$1(rule); + code += rule.test ? `(${rule.test})?${value}:` : value; + }); // if no else clause, terminate with null (#1366) + if ((0, _vegaUtil.peek)(code) === ":") code += "null"; + return code; +} +function parseEncode(encode, type, role, style, scope, params) { + const enc = {}; + params = params || {}; + params.encoders = { + $encode: enc + }; + encode = applyDefaults(encode, type, role, style, scope.config); + for(const key in encode)enc[key] = parseBlock(encode[key], type, params, scope); + return params; +} +function parseBlock(block, marktype, params, scope) { + const channels = {}, fields = {}; + for(const name in block)if (block[name] != null) // skip any null entries + channels[name] = parse$1(expr(block[name]), scope, params, fields); return { - // MATH functions - isNaN: "Number.isNaN", - isFinite: "Number.isFinite", - abs: "Math.abs", - acos: "Math.acos", - asin: "Math.asin", - atan: "Math.atan", - atan2: "Math.atan2", - ceil: "Math.ceil", - cos: "Math.cos", - exp: "Math.exp", - floor: "Math.floor", - log: "Math.log", - max: "Math.max", - min: "Math.min", - pow: "Math.pow", - random: "Math.random", - round: "Math.round", - sin: "Math.sin", - sqrt: "Math.sqrt", - tan: "Math.tan", - clamp: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to clamp function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to clamp function."); - const a = args.map(codegen); - return "Math.max(" + a[1] + ", Math.min(" + a[2] + "," + a[0] + "))"; + $expr: { + marktype, + channels }, - // DATE functions - now: "Date.now", - utc: "Date.UTC", - datetime: DATE, - date: fn("getDate", DATE, 0), - day: fn("getDay", DATE, 0), - year: fn("getFullYear", DATE, 0), - month: fn("getMonth", DATE, 0), - hours: fn("getHours", DATE, 0), - minutes: fn("getMinutes", DATE, 0), - seconds: fn("getSeconds", DATE, 0), - milliseconds: fn("getMilliseconds", DATE, 0), - time: fn("getTime", DATE, 0), - timezoneoffset: fn("getTimezoneOffset", DATE, 0), - utcdate: fn("getUTCDate", DATE, 0), - utcday: fn("getUTCDay", DATE, 0), - utcyear: fn("getUTCFullYear", DATE, 0), - utcmonth: fn("getUTCMonth", DATE, 0), - utchours: fn("getUTCHours", DATE, 0), - utcminutes: fn("getUTCMinutes", DATE, 0), - utcseconds: fn("getUTCSeconds", DATE, 0), - utcmilliseconds: fn("getUTCMilliseconds", DATE, 0), - // sequence functions - length: fn("length", null, -1), - // STRING functions - parseFloat: "parseFloat", - parseInt: "parseInt", - upper: fn("toUpperCase", STRING, 0), - lower: fn("toLowerCase", STRING, 0), - substring: fn("substring", STRING), - split: fn("split", STRING), - trim: fn("trim", STRING, 0), - // REGEXP functions - regexp: REGEXP, - test: fn("test", REGEXP), - // Control Flow functions - if: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to if function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to if function."); - const a = args.map(codegen); - return "(" + a[0] + "?" + a[1] + ":" + a[2] + ")"; - } + $fields: Object.keys(fields), + $output: Object.keys(block) }; } -function stripQuotes(s) { - const n = s && s.length - 1; - return n && (s[0] === '"' && s[n] === '"' || s[0] === "'" && s[n] === "'") ? s.slice(1, -1) : s; +function expr(enc) { + return (0, _vegaUtil.isArray)(enc) ? rule(enc) : entry$1(enc); } -function codegen(opt) { - opt = opt || {}; - const allowed = opt.allowed ? (0, _vegaUtil.toSet)(opt.allowed) : {}, forbidden = opt.forbidden ? (0, _vegaUtil.toSet)(opt.forbidden) : {}, constants = opt.constants || Constants, functions = (opt.functions || Functions)(visit), globalvar = opt.globalvar, fieldvar = opt.fieldvar, outputGlobal = (0, _vegaUtil.isFunction)(globalvar) ? globalvar : (id)=>`${globalvar}["${id}"]`; - let globals = {}, fields = {}, memberDepth = 0; - function visit(ast) { - if ((0, _vegaUtil.isString)(ast)) return ast; - const generator = Generators[ast.type]; - if (generator == null) (0, _vegaUtil.error)("Unsupported type: " + ast.type); - return generator(ast); - } - const Generators = { - Literal: (n)=>n.raw, - Identifier: (n)=>{ - const id = n.name; - if (memberDepth > 0) return id; - else if ((0, _vegaUtil.hasOwnProperty)(forbidden, id)) return (0, _vegaUtil.error)("Illegal identifier: " + id); - else if ((0, _vegaUtil.hasOwnProperty)(constants, id)) return constants[id]; - else if ((0, _vegaUtil.hasOwnProperty)(allowed, id)) return id; - else { - globals[id] = 1; - return outputGlobal(id); - } - }, - MemberExpression: (n)=>{ - const d = !n.computed, o = visit(n.object); - if (d) memberDepth += 1; - const p = visit(n.property); - if (o === fieldvar) // strip quotes to sanitize field name (#1653) - fields[stripQuotes(p)] = 1; - if (d) memberDepth -= 1; - return o + (d ? "." + p : "[" + p + "]"); - }, - CallExpression: (n)=>{ - if (n.callee.type !== "Identifier") (0, _vegaUtil.error)("Illegal callee type: " + n.callee.type); - const callee = n.callee.name, args = n.arguments, fn = (0, _vegaUtil.hasOwnProperty)(functions, callee) && functions[callee]; - if (!fn) (0, _vegaUtil.error)("Unrecognized function: " + callee); - return (0, _vegaUtil.isFunction)(fn) ? fn(args) : fn + "(" + args.map(visit).join(",") + ")"; - }, - ArrayExpression: (n)=>"[" + n.elements.map(visit).join(",") + "]", - BinaryExpression: (n)=>"(" + visit(n.left) + " " + n.operator + " " + visit(n.right) + ")", - UnaryExpression: (n)=>"(" + n.operator + visit(n.argument) + ")", - ConditionalExpression: (n)=>"(" + visit(n.test) + "?" + visit(n.consequent) + ":" + visit(n.alternate) + ")", - LogicalExpression: (n)=>"(" + visit(n.left) + n.operator + visit(n.right) + ")", - ObjectExpression: (n)=>"{" + n.properties.map(visit).join(",") + "}", - Property: (n)=>{ - memberDepth += 1; - const k = visit(n.key); - memberDepth -= 1; - return k + ":" + visit(n.value); - } - }; - function codegen(ast) { - const result = { - code: visit(ast), - globals: Object.keys(globals), - fields: Object.keys(fields) - }; - globals = {}; - fields = {}; - return result; - } - codegen.functions = functions; - codegen.constants = constants; - return codegen; +function parse$1(code, scope, params, fields) { + const expr = (0, _vegaFunctions.parseExpression)(code, scope); + expr.$fields.forEach((name)=>fields[name] = 1); + (0, _vegaUtil.extend)(params, expr.$params); + return expr.$expr; } - -},{"vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"k7ppL":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "context", ()=>context); -var _vegaUtil = require("vega-util"); -var _vegaDataflow = require("vega-dataflow"); -/** - * Parse a serialized dataflow specification. - */ function parse(spec) { - const ctx = this, operators = spec.operators || []; // parse background - if (spec.background) ctx.background = spec.background; - // parse event configuration - if (spec.eventConfig) ctx.eventConfig = spec.eventConfig; - // parse locale configuration - if (spec.locale) ctx.locale = spec.locale; - // parse operators - operators.forEach((entry)=>ctx.parseOperator(entry)); // parse operator parameters - operators.forEach((entry)=>ctx.parseOperatorParameters(entry)); // parse streams - (spec.streams || []).forEach((entry)=>ctx.parseStream(entry)); // parse updates - (spec.updates || []).forEach((entry)=>ctx.parseUpdate(entry)); - return ctx.resolve(); +const OUTER = "outer", OUTER_INVALID = [ + "value", + "update", + "init", + "react", + "bind" +]; +function outerError(prefix, name) { + (0, _vegaUtil.error)(prefix + ' for "outer" push: ' + (0, _vegaUtil.stringValue)(name)); } -const Skip = (0, _vegaUtil.toSet)([ - "rule" -]), Swap = (0, _vegaUtil.toSet)([ - "group", - "image", - "rect" -]); -function adjustSpatial(encode, marktype) { - let code = ""; - if (Skip[marktype]) return code; - if (encode.x2) { - if (encode.x) { - if (Swap[marktype]) code += "if(o.x>o.x2)$=o.x,o.x=o.x2,o.x2=$;"; - code += "o.width=o.x2-o.x;"; - } else code += "o.x=o.x2-(o.width||0);"; - } - if (encode.xc) code += "o.x=o.xc-(o.width||0)/2;"; - if (encode.y2) { - if (encode.y) { - if (Swap[marktype]) code += "if(o.y>o.y2)$=o.y,o.y=o.y2,o.y2=$;"; - code += "o.height=o.y2-o.y;"; - } else code += "o.y=o.y2-(o.height||0);"; +function parseSignal(signal, scope) { + const name = signal.name; + if (signal.push === OUTER) { + // signal must already be defined, raise error if not + if (!scope.signals[name]) outerError("No prior signal definition", name); // signal push must not use properties reserved for standard definition + OUTER_INVALID.forEach((prop)=>{ + if (signal[prop] !== undefined) outerError("Invalid property ", prop); + }); + } else { + // define a new signal in the current scope + const op = scope.addSignal(name, signal.value); + if (signal.react === false) op.react = false; + if (signal.bind) scope.addBinding(name, signal.bind); } - if (encode.yc) code += "o.y=o.yc-(o.height||0)/2;"; - return code; } -function canonicalType(type) { - return (type + "").toLowerCase(); +function Entry(type, value, params, parent) { + this.id = -1; + this.type = type; + this.value = value; + this.params = params; + if (parent) this.parent = parent; } -function isOperator(type) { - return canonicalType(type) === "operator"; +function entry(type, value, params, parent) { + return new Entry(type, value, params, parent); } -function isCollect(type) { - return canonicalType(type) === "collect"; +function operator(value, params) { + return entry("operator", value, params); +} // ----- +function ref(op) { + const ref = { + $ref: op.id + }; // if operator not yet registered, cache ref to resolve later + if (op.id < 0) (op.refs = op.refs || []).push(ref); + return ref; } -function expression(ctx, args, code) { - // wrap code in return statement if expression does not terminate - if (code[code.length - 1] !== ";") code = "return(" + code + ");"; - const fn = Function(...args.concat(code)); - return ctx && ctx.functions ? fn.bind(ctx.functions) : fn; -} // generate code for comparing a single field -function _compare(u, v, lt, gt) { - return "((u = ".concat(u, ") < (v = ").concat(v, ") || u == null) && v != null ? ").concat(lt, "\n : (u > v || v == null) && u != null ? ").concat(gt, "\n : ((v = v instanceof Date ? +v : v), (u = u instanceof Date ? +u : u)) !== u && v === v ? ").concat(lt, "\n : v !== v && u === u ? ").concat(gt, " : "); +function fieldRef$1(field, name) { + return name ? { + $field: field, + $name: name + } : { + $field: field + }; } -var expressionCodegen = { - /** - * Parse an expression used to update an operator value. - */ operator: (ctx, expr)=>expression(ctx, [ - "_" - ], expr.code), - /** - * Parse an expression provided as an operator parameter value. - */ parameter: (ctx, expr)=>expression(ctx, [ - "datum", - "_" - ], expr.code), - /** - * Parse an expression applied to an event stream. - */ event: (ctx, expr)=>expression(ctx, [ - "event" - ], expr.code), - /** - * Parse an expression used to handle an event-driven operator update. - */ handler: (ctx, expr)=>{ - const code = "var datum=event.item&&event.item.datum;return ".concat(expr.code, ";"); - return expression(ctx, [ - "_", - "event" - ], code); - }, - /** - * Parse an expression that performs visual encoding. - */ encode: (ctx, encode)=>{ - const { marktype , channels } = encode; - let code = "var o=item,datum=o.datum,m=0,$;"; - for(const name in channels){ - const o = "o[" + (0, _vegaUtil.stringValue)(name) + "]"; - code += "$=".concat(channels[name].code, ";if(").concat(o, "!==$)").concat(o, "=$,m=1;"); - } - code += adjustSpatial(channels, marktype); - code += "return m;"; - return expression(ctx, [ - "item", - "_" - ], code); - }, - /** - * Optimized code generators for access and comparison. - */ codegen: { - get (path) { - const ref = "[".concat(path.map((0, _vegaUtil.stringValue)).join("]["), "]"); - const get = Function("_", "return _".concat(ref, ";")); - get.path = ref; - return get; - }, - comparator (fields, orders) { - let t; - const map = (f, i)=>{ - const o = orders[i]; - let u, v; - if (f.path) { - u = "a".concat(f.path); - v = "b".concat(f.path); - } else { - (t = t || {})["f" + i] = f; - u = "this.f".concat(i, "(a)"); - v = "this.f".concat(i, "(b)"); - } - return _compare(u, v, -o, o); - }; - const fn = Function("a", "b", "var u, v; return " + fields.map(map).join("") + "0;"); - return t ? fn.bind(t) : fn; - } - } -}; -/** - * Parse a dataflow operator. - */ function parseOperator(spec) { - const ctx = this; - if (isOperator(spec.type) || !spec.type) ctx.operator(spec, spec.update ? ctx.operatorExpression(spec.update) : null); - else ctx.transform(spec, spec.type); +const keyFieldRef = fieldRef$1("key"); +function compareRef(fields, orders) { + return { + $compare: fields, + $order: orders + }; } -/** - * Parse and assign operator parameters. - */ function parseOperatorParameters(spec) { - const ctx = this; - if (spec.params) { - const op = ctx.get(spec.id); - if (!op) (0, _vegaUtil.error)("Invalid operator id: " + spec.id); - ctx.dataflow.connect(op, op.parameters(ctx.parseParameters(spec.params), spec.react, spec.initonly)); - } +function keyRef(fields, flat) { + const ref = { + $key: fields + }; + if (flat) ref.$flat = true; + return ref; +} // ----- +const Ascending = "ascending"; +const Descending = "descending"; +function sortKey(sort) { + return !(0, _vegaUtil.isObject)(sort) ? "" : (sort.order === Descending ? "-" : "+") + aggrField(sort.op, sort.field); } -/** - * Parse a set of operator parameters. - */ function parseParameters(spec, params) { - params = params || {}; - const ctx = this; - for(const key in spec){ - const value = spec[key]; - params[key] = (0, _vegaUtil.isArray)(value) ? value.map((v)=>parseParameter(v, ctx, params)) : parseParameter(value, ctx, params); - } - return params; +function aggrField(op, field) { + return (op && op.signal ? "$" + op.signal : op || "") + (op && field ? "_" : "") + (field && field.signal ? "$" + field.signal : field || ""); +} // ----- +const Scope$1 = "scope"; +const View = "view"; +function isSignal(_) { + return _ && _.signal; } -/** - * Parse a single parameter. - */ function parseParameter(spec, ctx, params) { - if (!spec || !(0, _vegaUtil.isObject)(spec)) return spec; - for(let i = 0, n = PARSERS.length, p; i < n; ++i){ - p = PARSERS[i]; - if ((0, _vegaUtil.hasOwnProperty)(spec, p.key)) return p.parse(spec, ctx, params); - } - return spec; +function isExpr$1(_) { + return _ && _.expr; } -/** Reference parsers. */ var PARSERS = [ - { - key: "$ref", - parse: getOperator - }, - { - key: "$key", - parse: getKey - }, - { - key: "$expr", - parse: getExpression - }, - { - key: "$field", - parse: getField - }, - { - key: "$encode", - parse: getEncode - }, - { - key: "$compare", - parse: getCompare - }, - { - key: "$context", - parse: getContext - }, - { - key: "$subflow", - parse: getSubflow - }, - { - key: "$tupleid", - parse: getTupleId +function hasSignal(_) { + if (isSignal(_)) return true; + if ((0, _vegaUtil.isObject)(_)) for(const key in _){ + if (hasSignal(_[key])) return true; } -]; -/** - * Resolve an operator reference. - */ function getOperator(_, ctx) { - return ctx.get(_.$ref) || (0, _vegaUtil.error)("Operator not defined: " + _.$ref); + return false; } -/** - * Resolve an expression reference. - */ function getExpression(_, ctx, params) { - if (_.$params) // parse expression parameters - ctx.parseParameters(_.$params, params); - const k = "e:" + _.$expr.code + "_" + _.$name; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.accessor)(ctx.parameterExpression(_.$expr), _.$fields, _.$name)); +function value(specValue, defaultValue) { + return specValue != null ? specValue : defaultValue; } -/** - * Resolve a key accessor reference. - */ function getKey(_, ctx) { - const k = "k:" + _.$key + "_" + !!_.$flat; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.key)(_.$key, _.$flat, ctx.expr.codegen)); +function deref(v) { + return v && v.signal || v; } -/** - * Resolve a field accessor reference. - */ function getField(_, ctx) { - if (!_.$field) return null; - const k = "f:" + _.$field + "_" + _.$name; - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.field)(_.$field, _.$name, ctx.expr.codegen)); +const Timer = "timer"; +function parseStream(stream, scope) { + const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : (0, _vegaUtil.error)("Invalid stream specification: " + (0, _vegaUtil.stringValue)(stream)); + return method(stream, scope); } -/** - * Resolve a comparator function reference. - */ function getCompare(_, ctx) { - // As of Vega 5.5.3, $tupleid sort is no longer used. - // Keep here for now for backwards compatibility. - const k = "c:" + _.$compare + "_" + _.$order, c = (0, _vegaUtil.array)(_.$compare).map((_)=>_ && _.$tupleid ? (0, _vegaDataflow.tupleid) : _); - return ctx.fn[k] || (ctx.fn[k] = (0, _vegaUtil.compare)(c, _.$order, ctx.expr.codegen)); +function eventSource(source) { + return source === Scope$1 ? View : source || View; } -/** - * Resolve an encode operator reference. - */ function getEncode(_, ctx) { - const spec = _.$encode, encode = {}; - for(const name in spec){ - const enc = spec[name]; - encode[name] = (0, _vegaUtil.accessor)(ctx.encodeExpression(enc.$expr), enc.$fields); - encode[name].output = enc.$output; +function mergeStream(stream, scope) { + const list = stream.merge.map((s)=>parseStream(s, scope)), entry = streamParameters({ + merge: list + }, stream, scope); + return scope.addStream(entry).id; +} +function nestedStream(stream, scope) { + const id = parseStream(stream.stream, scope), entry = streamParameters({ + stream: id + }, stream, scope); + return scope.addStream(entry).id; +} +function eventStream(stream, scope) { + let id; + if (stream.type === Timer) { + id = scope.event(Timer, stream.throttle); + stream = { + between: stream.between, + filter: stream.filter + }; + } else id = scope.event(eventSource(stream.source), stream.type); + const entry = streamParameters({ + stream: id + }, stream, scope); + return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id; +} +function streamParameters(entry, stream, scope) { + let param = stream.between; + if (param) { + if (param.length !== 2) (0, _vegaUtil.error)('Stream "between" parameter must have 2 entries: ' + (0, _vegaUtil.stringValue)(stream)); + entry.between = [ + parseStream(param[0], scope), + parseStream(param[1], scope) + ]; } - return encode; + param = stream.filter ? [].concat(stream.filter) : []; + if (stream.marktype || stream.markname || stream.markrole) // add filter for mark type, name and/or role + param.push(filterMark(stream.marktype, stream.markname, stream.markrole)); + if (stream.source === Scope$1) // add filter to limit events from sub-scope only + param.push("inScope(event.item)"); + if (param.length) entry.filter = (0, _vegaFunctions.parseExpression)("(" + param.join(")&&(") + ")", scope).$expr; + if ((param = stream.throttle) != null) entry.throttle = +param; + if ((param = stream.debounce) != null) entry.debounce = +param; + if (stream.consume) entry.consume = true; + return entry; } -/** - * Resolve a context reference. - */ function getContext(_, ctx) { - return ctx; +function filterMark(type, name, role) { + const item = "event.item"; + return item + (type && type !== "*" ? "&&" + item + ".mark.marktype==='" + type + "'" : "") + (role ? "&&" + item + ".mark.role==='" + role + "'" : "") + (name ? "&&" + item + ".mark.name==='" + name + "'" : ""); } -/** - * Resolve a recursive subflow specification. - */ function getSubflow(_, ctx) { - const spec = _.$subflow; - return function(dataflow, key, parent) { - const subctx = ctx.fork().parse(spec), op = subctx.get(spec.operators[0].id), p = subctx.signals.parent; - if (p) p.set(parent); - op.detachSubflow = ()=>ctx.detach(subctx); - return op; +const OP_VALUE_EXPR = { + code: "_.$value", + ast: { + type: "Identifier", + value: "value" + } +}; +function parseUpdate(spec, scope, target) { + const encode = spec.encode, entry = { + target: target + }; + let events = spec.events, update = spec.update, sources = []; + if (!events) (0, _vegaUtil.error)("Signal update missing events specification."); + // interpret as an event selector string + if ((0, _vegaUtil.isString)(events)) events = (0, _vegaEventSelector.parseSelector)(events, scope.isSubscope() ? Scope$1 : View); + // separate event streams from signal updates + events = (0, _vegaUtil.array)(events).filter((s)=>s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners + if (sources.length > 1) sources = [ + mergeSources(sources) + ]; + // merge event streams, include as source + if (events.length) sources.push(events.length > 1 ? { + merge: events + } : events[0]); + if (encode != null) { + if (update) (0, _vegaUtil.error)("Signal encode and update are mutually exclusive."); + update = "encode(item()," + (0, _vegaUtil.stringValue)(encode) + ")"; + } // resolve update value + entry.update = (0, _vegaUtil.isString)(update) ? (0, _vegaFunctions.parseExpression)(update, scope) : update.expr != null ? (0, _vegaFunctions.parseExpression)(update.expr, scope) : update.value != null ? update.value : update.signal != null ? { + $expr: OP_VALUE_EXPR, + $params: { + $value: scope.signalRef(update.signal) + } + } : (0, _vegaUtil.error)("Invalid signal update specification."); + if (spec.force) entry.options = { + force: true }; + sources.forEach((source)=>scope.addUpdate((0, _vegaUtil.extend)(streamSource(source, scope), entry))); } -/** - * Resolve a tuple id reference. - */ function getTupleId() { - return 0, _vegaDataflow.tupleid; +function streamSource(stream, scope) { + return { + source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope) + }; } -/** - * Parse an event stream specification. - */ function parseStream(spec) { - var ctx = this, filter = spec.filter != null ? ctx.eventExpression(spec.filter) : undefined, stream = spec.stream != null ? ctx.get(spec.stream) : undefined, args; - if (spec.source) stream = ctx.events(spec.source, spec.type, filter); - else if (spec.merge) { - args = spec.merge.map((_)=>ctx.get(_)); - stream = args[0].merge.apply(args[0], args.slice(1)); - } - if (spec.between) { - args = spec.between.map((_)=>ctx.get(_)); - stream = stream.between(args[0], args[1]); - } - if (spec.filter) stream = stream.filter(filter); - if (spec.throttle != null) stream = stream.throttle(+spec.throttle); - if (spec.debounce != null) stream = stream.debounce(+spec.debounce); - if (stream == null) (0, _vegaUtil.error)("Invalid stream definition: " + JSON.stringify(spec)); - if (spec.consume) stream.consume(true); - ctx.stream(spec, stream); +function mergeSources(sources) { + return { + signal: "[" + sources.map((s)=>s.scale ? 'scale("' + s.scale + '")' : s.signal) + "]" + }; } -/** - * Parse an event-driven operator update. - */ function parseUpdate(spec) { - var ctx = this, srcid = (0, _vegaUtil.isObject)(srcid = spec.source) ? srcid.$ref : srcid, source = ctx.get(srcid), target = null, update = spec.update, params = undefined; - if (!source) (0, _vegaUtil.error)("Source not defined: " + spec.source); - target = spec.target && spec.target.$expr ? ctx.eventExpression(spec.target.$expr) : ctx.get(spec.target); - if (update && update.$expr) { - if (update.$params) params = ctx.parseParameters(update.$params); - update = ctx.handlerExpression(update.$expr); +function parseSignalUpdates(signal, scope) { + const op = scope.getSignal(signal.name); + let expr = signal.update; + if (signal.init) { + if (expr) (0, _vegaUtil.error)("Signals can not include both init and update expressions."); + else { + expr = signal.init; + op.initonly = true; + } } - ctx.update(spec, source, target, update, params); + if (expr) { + expr = (0, _vegaFunctions.parseExpression)(expr, scope); + op.update = expr.$expr; + op.params = expr.$params; + } + if (signal.on) signal.on.forEach((_)=>parseUpdate(_, scope, op.id)); } -const SKIP = { - skip: true +const transform = (name)=>(params, value, parent)=>entry(name, value, params || undefined, parent); +const Aggregate = transform("aggregate"); +const AxisTicks = transform("axisticks"); +const Bound = transform("bound"); +const Collect = transform("collect"); +const Compare = transform("compare"); +const DataJoin = transform("datajoin"); +const Encode = transform("encode"); +const Expression = transform("expression"); +const Facet = transform("facet"); +const Field = transform("field"); +const Key = transform("key"); +const LegendEntries = transform("legendentries"); +const Load = transform("load"); +const Mark = transform("mark"); +const MultiExtent = transform("multiextent"); +const MultiValues = transform("multivalues"); +const Overlap = transform("overlap"); +const Params = transform("params"); +const PreFacet = transform("prefacet"); +const Projection = transform("projection"); +const Proxy = transform("proxy"); +const Relay = transform("relay"); +const Render = transform("render"); +const Scale = transform("scale"); +const Sieve = transform("sieve"); +const SortItems = transform("sortitems"); +const ViewLayout = transform("viewlayout"); +const Values = transform("values"); +let FIELD_REF_ID = 0; +const MULTIDOMAIN_SORT_OPS = { + min: "min", + max: "max", + count: "sum" }; -function getState(options) { - var ctx = this, state = {}; - if (options.signals) { - var signals = state.signals = {}; - Object.keys(ctx.signals).forEach((key)=>{ - const op = ctx.signals[key]; - if (options.signals(key, op)) signals[key] = op.value; - }); - } - if (options.data) { - var data = state.data = {}; - Object.keys(ctx.data).forEach((key)=>{ - const dataset = ctx.data[key]; - if (options.data(key, dataset)) data[key] = dataset.input.value; - }); +function initScale(spec, scope) { + const type = spec.type || "linear"; + if (!(0, _vegaScale.isValidScaleType)(type)) (0, _vegaUtil.error)("Unrecognized scale type: " + (0, _vegaUtil.stringValue)(type)); + scope.addScale(spec.name, { + type, + domain: undefined + }); +} +function parseScale(spec, scope) { + const params = scope.getScale(spec.name).params; + let key; + params.domain = parseScaleDomain(spec.domain, spec, scope); + if (spec.range != null) params.range = parseScaleRange(spec, scope, params); + if (spec.interpolate != null) parseScaleInterpolate(spec.interpolate, params); + if (spec.nice != null) params.nice = parseScaleNice(spec.nice); + if (spec.bins != null) params.bins = parseScaleBins(spec.bins, scope); + for(key in spec){ + if ((0, _vegaUtil.hasOwnProperty)(params, key) || key === "name") continue; + params[key] = parseLiteral(spec[key], scope); } - if (ctx.subcontext && options.recurse !== false) state.subcontext = ctx.subcontext.map((ctx)=>ctx.getState(options)); - return state; } -function setState(state) { - var ctx = this, df = ctx.dataflow, data = state.data, signals = state.signals; - Object.keys(signals || {}).forEach((key)=>{ - df.update(ctx.signals[key], signals[key], SKIP); - }); - Object.keys(data || {}).forEach((key)=>{ - df.pulse(ctx.data[key].input, df.changeset().remove((0, _vegaUtil.truthy)).insert(data[key])); - }); - (state.subcontext || []).forEach((substate, i)=>{ - const subctx = ctx.subcontext[i]; - if (subctx) subctx.setState(substate); - }); +function parseLiteral(v, scope) { + return !(0, _vegaUtil.isObject)(v) ? v : v.signal ? scope.signalRef(v.signal) : (0, _vegaUtil.error)("Unsupported object: " + (0, _vegaUtil.stringValue)(v)); } -/** - * Context objects store the current parse state. - * Enables lookup of parsed operators, event streams, accessors, etc. - * Provides a 'fork' method for creating child contexts for subflows. - */ function context(df, transforms, functions, expr) { - return new Context(df, transforms, functions, expr); +function parseArray(v, scope) { + return v.signal ? scope.signalRef(v.signal) : v.map((v)=>parseLiteral(v, scope)); } -function Context(df, transforms, functions, expr) { - this.dataflow = df; - this.transforms = transforms; - this.events = df.events.bind(df); - this.expr = expr || expressionCodegen, this.signals = {}; - this.scales = {}; - this.nodes = {}; - this.data = {}; - this.fn = {}; - if (functions) { - this.functions = Object.create(functions); - this.functions.context = this; +function dataLookupError(name) { + (0, _vegaUtil.error)("Can not find data set: " + (0, _vegaUtil.stringValue)(name)); +} // -- SCALE DOMAIN ---- +function parseScaleDomain(domain, spec, scope) { + if (!domain) { + if (spec.domainMin != null || spec.domainMax != null) (0, _vegaUtil.error)("No scale domain defined for domainMin/domainMax to override."); + return; // default domain } + return domain.signal ? scope.signalRef(domain.signal) : ((0, _vegaUtil.isArray)(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope); } -function Subcontext(ctx) { - this.dataflow = ctx.dataflow; - this.transforms = ctx.transforms; - this.events = ctx.events; - this.expr = ctx.expr; - this.signals = Object.create(ctx.signals); - this.scales = Object.create(ctx.scales); - this.nodes = Object.create(ctx.nodes); - this.data = Object.create(ctx.data); - this.fn = Object.create(ctx.fn); - if (ctx.functions) { - this.functions = Object.create(ctx.functions); - this.functions.context = this; - } +function explicitDomain(domain, spec, scope) { + return domain.map((v)=>parseLiteral(v, scope)); } -Context.prototype = Subcontext.prototype = { - fork () { - const ctx = new Subcontext(this); - (this.subcontext || (this.subcontext = [])).push(ctx); - return ctx; - }, - detach (ctx) { - this.subcontext = this.subcontext.filter((c)=>c !== ctx); // disconnect all nodes in the subcontext - // wipe out targets first for better efficiency - const keys = Object.keys(ctx.nodes); - for (const key of keys)ctx.nodes[key]._targets = null; - for (const key1 of keys)ctx.nodes[key1].detach(); - ctx.nodes = null; - }, - get (id) { - return this.nodes[id]; - }, - set (id, node) { - return this.nodes[id] = node; - }, - add (spec, op) { - const ctx = this, df = ctx.dataflow, data = spec.value; - ctx.set(spec.id, op); - if (isCollect(spec.type) && data) { - if (data.$ingest) df.ingest(op, data.$ingest, data.$format); - else if (data.$request) df.preload(op, data.$request, data.$format); - else df.pulse(op, df.changeset().insert(data)); - } - if (spec.root) ctx.root = op; - if (spec.parent) { - let p = ctx.get(spec.parent.$ref); - if (p) { - df.connect(p, [ - op - ]); - op.targets().add(p); - } else (ctx.unresolved = ctx.unresolved || []).push(()=>{ - p = ctx.get(spec.parent.$ref); - df.connect(p, [ - op - ]); - op.targets().add(p); - }); - } - if (spec.signal) ctx.signals[spec.signal] = op; - if (spec.scale) ctx.scales[spec.scale] = op; - if (spec.data) for(const name in spec.data){ - const data1 = ctx.data[name] || (ctx.data[name] = {}); - spec.data[name].forEach((role)=>data1[role] = op); - } - }, - resolve () { - (this.unresolved || []).forEach((fn)=>fn()); - delete this.unresolved; - return this; - }, - operator (spec, update) { - this.add(spec, this.dataflow.add(spec.value, update)); - }, - transform (spec, type) { - this.add(spec, this.dataflow.add(this.transforms[canonicalType(type)])); - }, - stream (spec, stream) { - this.set(spec.id, stream); - }, - update (spec, stream, target, update, params) { - this.dataflow.on(stream, target, update, params, spec.options); - }, - // expression parsing - operatorExpression (expr) { - return this.expr.operator(this, expr); - }, - parameterExpression (expr) { - return this.expr.parameter(this, expr); - }, - eventExpression (expr) { - return this.expr.event(this, expr); - }, - handlerExpression (expr) { - return this.expr.handler(this, expr); - }, - encodeExpression (encode) { - return this.expr.encode(this, encode); - }, - // parse methods - parse, - parseOperator, - parseOperatorParameters, - parseParameters, - parseStream, - parseUpdate, - // state methods - getState, - setState -}; - -},{"vega-util":"bApja","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"hsy9Z":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "AxisDomainRole", ()=>AxisDomainRole); -parcelHelpers.export(exports, "AxisGridRole", ()=>AxisGridRole); -parcelHelpers.export(exports, "AxisLabelRole", ()=>AxisLabelRole); -parcelHelpers.export(exports, "AxisRole", ()=>AxisRole); -parcelHelpers.export(exports, "AxisTickRole", ()=>AxisTickRole); -parcelHelpers.export(exports, "AxisTitleRole", ()=>AxisTitleRole); -parcelHelpers.export(exports, "DataScope", ()=>DataScope); -parcelHelpers.export(exports, "FrameRole", ()=>FrameRole); -parcelHelpers.export(exports, "LegendEntryRole", ()=>LegendEntryRole); -parcelHelpers.export(exports, "LegendLabelRole", ()=>LegendLabelRole); -parcelHelpers.export(exports, "LegendRole", ()=>LegendRole); -parcelHelpers.export(exports, "LegendSymbolRole", ()=>LegendSymbolRole); -parcelHelpers.export(exports, "LegendTitleRole", ()=>LegendTitleRole); -parcelHelpers.export(exports, "MarkRole", ()=>MarkRole); -parcelHelpers.export(exports, "Scope", ()=>Scope); -parcelHelpers.export(exports, "ScopeRole", ()=>ScopeRole); -parcelHelpers.export(exports, "config", ()=>defaults); -parcelHelpers.export(exports, "parse", ()=>parse); -parcelHelpers.export(exports, "signal", ()=>parseSignal); -parcelHelpers.export(exports, "signalUpdates", ()=>parseSignalUpdates); -parcelHelpers.export(exports, "stream", ()=>parseStream); -var _vegaUtil = require("vega-util"); -var _vegaFunctions = require("vega-functions"); -var _vegaEventSelector = require("vega-event-selector"); -var _vegaScale = require("vega-scale"); -var _vegaDataflow = require("vega-dataflow"); -function parseAutosize(spec) { - return (0, _vegaUtil.isObject)(spec) ? spec : { - type: spec || "pad" - }; +function singularDomain(domain, spec, scope) { + const data = scope.getData(domain.data); + if (!data) dataLookupError(domain.data); + return (0, _vegaScale.isDiscrete)(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : (0, _vegaScale.isQuantile)(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field); } -const number = (_)=>+_ || 0; -const paddingObject = (_)=>({ - top: _, - bottom: _, - left: _, - right: _ - }); -function parsePadding(spec) { - return !(0, _vegaUtil.isObject)(spec) ? paddingObject(number(spec)) : spec.signal ? spec : { - top: number(spec.top), - bottom: number(spec.bottom), - left: number(spec.left), - right: number(spec.right) - }; +function multipleDomain(domain, spec, scope) { + const data = domain.data, fields = domain.fields.reduce((dom, d)=>{ + d = (0, _vegaUtil.isString)(d) ? { + data: data, + field: d + } : (0, _vegaUtil.isArray)(d) || d.signal ? fieldRef(d, scope) : d; + dom.push(d); + return dom; + }, []); + return ((0, _vegaScale.isDiscrete)(spec.type) ? ordinalMultipleDomain : (0, _vegaScale.isQuantile)(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields); } -const encoder = (_)=>(0, _vegaUtil.isObject)(_) && !(0, _vegaUtil.isArray)(_) ? (0, _vegaUtil.extend)({}, _) : { - value: _ +function fieldRef(data, scope) { + const name = "_:vega:_" + FIELD_REF_ID++, coll = Collect({}); + if ((0, _vegaUtil.isArray)(data)) coll.value = { + $ingest: data }; -function addEncode(object, name, value, set) { - if (value != null) { - const isEncoder = (0, _vegaUtil.isObject)(value) && !(0, _vegaUtil.isArray)(value) || (0, _vegaUtil.isArray)(value) && value.length && (0, _vegaUtil.isObject)(value[0]); // Always assign signal to update, even if the signal is from the enter block - if (isEncoder) object.update[name] = value; - else object[set || "enter"][name] = { - value: value - }; - return 1; - } else return 0; -} -function addEncoders(object, enter, update) { - for(const name in enter)addEncode(object, name, enter[name]); - for(const name1 in update)addEncode(object, name1, update[name1], "update"); -} -function extendEncode(encode, extra, skip) { - for(const name in extra){ - if (skip && (0, _vegaUtil.hasOwnProperty)(skip, name)) continue; - encode[name] = (0, _vegaUtil.extend)(encode[name] || {}, extra[name]); + else if (data.signal) { + const code = "setdata(" + (0, _vegaUtil.stringValue)(name) + "," + data.signal + ")"; + coll.params.input = scope.signalRef(code); } - return encode; + scope.addDataPipeline(name, [ + coll, + Sieve({}) + ]); + return { + data: name, + field: "data" + }; } -function has(key, encode) { - return encode && (encode.enter && encode.enter[key] || encode.update && encode.update[key]); +function ordinalMultipleDomain(domain, scope, fields) { + const sort = parseSort(domain.sort, true); + let a, v; // get value counts for each domain field + const counts = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.countsRef(scope, f.field, sort); + }); // aggregate the results from each domain field + const p = { + groupby: keyFieldRef, + pulse: counts + }; + if (sort) { + a = sort.op || "count"; + v = sort.field ? aggrField(a, sort.field) : "count"; + p.ops = [ + MULTIDOMAIN_SORT_OPS[a] + ]; + p.fields = [ + scope.fieldRef(v) + ]; + p.as = [ + v + ]; + } + a = scope.add(Aggregate(p)); // collect aggregate output + const c = scope.add(Collect({ + pulse: ref(a) + })); // extract values for combined domain + v = scope.add(Values({ + field: keyFieldRef, + sort: scope.sortRef(sort), + pulse: ref(c) + })); + return ref(v); } -const MarkRole = "mark"; -const FrameRole = "frame"; -const ScopeRole = "scope"; -const AxisRole = "axis"; -const AxisDomainRole = "axis-domain"; -const AxisGridRole = "axis-grid"; -const AxisLabelRole = "axis-label"; -const AxisTickRole = "axis-tick"; -const AxisTitleRole = "axis-title"; -const LegendRole = "legend"; -const LegendBandRole = "legend-band"; -const LegendEntryRole = "legend-entry"; -const LegendGradientRole = "legend-gradient"; -const LegendLabelRole = "legend-label"; -const LegendSymbolRole = "legend-symbol"; -const LegendTitleRole = "legend-title"; -const TitleRole = "title"; -const TitleTextRole = "title-text"; -const TitleSubtitleRole = "title-subtitle"; -function applyDefaults(encode, type, role, style, config) { - const defaults = {}, enter = {}; - let update, key, skip, props; // if text mark, apply global lineBreak settings (#2370) - key = "lineBreak"; - if (type === "text" && config[key] != null && !has(key, encode)) applyDefault(defaults, key, config[key]); - // ignore legend and axis roles - if (role == "legend" || String(role).startsWith("axis")) role = null; - // resolve mark config - props = role === FrameRole ? config.group : role === MarkRole ? (0, _vegaUtil.extend)({}, config.mark, config[type]) : null; - for(key in props){ - // do not apply defaults if relevant fields are defined - skip = has(key, encode) || (key === "fill" || key === "stroke") && (has("fill", encode) || has("stroke", encode)); - if (!skip) applyDefault(defaults, key, props[key]); - } // resolve styles, apply with increasing precedence - (0, _vegaUtil.array)(style).forEach((name)=>{ - const props = config.style && config.style[name]; - for(const key in props)if (!has(key, encode)) applyDefault(defaults, key, props[key]); - }); - encode = (0, _vegaUtil.extend)({}, encode); // defensive copy - for(key in defaults){ - props = defaults[key]; - if (props.signal) (update = update || {})[key] = props; - else enter[key] = props; +function parseSort(sort, multidomain) { + if (sort) { + if (!sort.field && !sort.op) { + if ((0, _vegaUtil.isObject)(sort)) sort.field = "key"; + else sort = { + field: "key" + }; + } else if (!sort.field && sort.op !== "count") (0, _vegaUtil.error)("No field provided for sort aggregate op: " + sort.op); + else if (multidomain && sort.field) { + if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) (0, _vegaUtil.error)("Multiple domain scales can not be sorted using " + sort.op); + } } - encode.enter = (0, _vegaUtil.extend)(enter, encode.enter); - if (update) encode.update = (0, _vegaUtil.extend)(update, encode.update); - return encode; + return sort; } -function applyDefault(defaults, key, value) { - defaults[key] = value && value.signal ? { - signal: value.signal - } : { - value: value - }; +function quantileMultipleDomain(domain, scope, fields) { + // get value arrays for each domain field + const values = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.domainRef(scope, f.field); + }); // combine value arrays + return ref(scope.add(MultiValues({ + values: values + }))); } -const scaleRef = (scale)=>(0, _vegaUtil.isString)(scale) ? (0, _vegaUtil.stringValue)(scale) : scale.signal ? `(${scale.signal})` : field(scale); -function entry$1(enc) { - if (enc.gradient != null) return gradient(enc); - let value = enc.signal ? `(${enc.signal})` : enc.color ? color(enc.color) : enc.field != null ? field(enc.field) : enc.value !== undefined ? (0, _vegaUtil.stringValue)(enc.value) : undefined; - if (enc.scale != null) value = scale(enc, value); - if (value === undefined) value = null; - if (enc.exponent != null) value = `pow(${value},${property(enc.exponent)})`; - if (enc.mult != null) value += `*${property(enc.mult)}`; - if (enc.offset != null) value += `+${property(enc.offset)}`; - if (enc.round) value = `round(${value})`; - return value; +function numericMultipleDomain(domain, scope, fields) { + // get extents for each domain field + const extents = fields.map((f)=>{ + const data = scope.getData(f.data); + if (!data) dataLookupError(f.data); + return data.extentRef(scope, f.field); + }); // combine extents + return ref(scope.add(MultiExtent({ + extents: extents + }))); +} // -- SCALE BINS ----- +function parseScaleBins(v, scope) { + return v.signal || (0, _vegaUtil.isArray)(v) ? parseArray(v, scope) : scope.objectProperty(v); +} // -- SCALE NICE ----- +function parseScaleNice(nice) { + return (0, _vegaUtil.isObject)(nice) ? { + interval: parseLiteral(nice.interval), + step: parseLiteral(nice.step) + } : parseLiteral(nice); +} // -- SCALE INTERPOLATION ----- +function parseScaleInterpolate(interpolate, params) { + params.interpolate = parseLiteral(interpolate.type || interpolate); + if (interpolate.gamma != null) params.interpolateGamma = parseLiteral(interpolate.gamma); +} // -- SCALE RANGE ----- +function parseScaleRange(spec, scope, params) { + const config = scope.config.range; + let range = spec.range; + if (range.signal) return scope.signalRef(range.signal); + else if ((0, _vegaUtil.isString)(range)) { + if (config && (0, _vegaUtil.hasOwnProperty)(config, range)) { + spec = (0, _vegaUtil.extend)({}, spec, { + range: config[range] + }); + return parseScaleRange(spec, scope, params); + } else if (range === "width") range = [ + 0, + { + signal: "width" + } + ]; + else if (range === "height") range = (0, _vegaScale.isDiscrete)(spec.type) ? [ + 0, + { + signal: "height" + } + ] : [ + { + signal: "height" + }, + 0 + ]; + else (0, _vegaUtil.error)("Unrecognized scale range value: " + (0, _vegaUtil.stringValue)(range)); + } else if (range.scheme) { + params.scheme = (0, _vegaUtil.isArray)(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope); + if (range.extent) params.schemeExtent = parseArray(range.extent, scope); + if (range.count) params.schemeCount = parseLiteral(range.count, scope); + return; + } else if (range.step) { + params.rangeStep = parseLiteral(range.step, scope); + return; + } else if ((0, _vegaScale.isDiscrete)(spec.type) && !(0, _vegaUtil.isArray)(range)) return parseScaleDomain(range, spec, scope); + else if (!(0, _vegaUtil.isArray)(range)) (0, _vegaUtil.error)("Unsupported range type: " + (0, _vegaUtil.stringValue)(range)); + return range.map((v)=>((0, _vegaUtil.isArray)(v) ? parseArray : parseLiteral)(v, scope)); } -const _color = (type, x, y, z)=>`(${type}(${[ - x, - y, - z - ].map(entry$1).join(",")})+'')`; -function color(enc) { - return enc.c ? _color("hcl", enc.h, enc.c, enc.l) : enc.h || enc.s ? _color("hsl", enc.h, enc.s, enc.l) : enc.l || enc.a ? _color("lab", enc.l, enc.a, enc.b) : enc.r || enc.g || enc.b ? _color("rgb", enc.r, enc.g, enc.b) : null; +function parseProjection(proj, scope) { + const config = scope.config.projection || {}, params = {}; + for(const name in proj){ + if (name === "name") continue; + params[name] = parseParameter$1(proj[name], name, scope); + } // apply projection defaults from config + for(const name1 in config)if (params[name1] == null) params[name1] = parseParameter$1(config[name1], name1, scope); + scope.addProjection(proj.name, params); } -function gradient(enc) { - // map undefined to null; expression lang does not allow undefined - const args = [ - enc.start, - enc.stop, - enc.count - ].map((_)=>_ == null ? null : (0, _vegaUtil.stringValue)(_)); // trim null inputs from the end - while(args.length && (0, _vegaUtil.peek)(args) == null)args.pop(); - args.unshift(scaleRef(enc.gradient)); - return `gradient(${args.join(",")})`; +function parseParameter$1(_, name, scope) { + return (0, _vegaUtil.isArray)(_) ? _.map((_)=>parseParameter$1(_, name, scope)) : !(0, _vegaUtil.isObject)(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === "fit" ? _ : (0, _vegaUtil.error)("Unsupported parameter object: " + (0, _vegaUtil.stringValue)(_)); } -function property(property) { - return (0, _vegaUtil.isObject)(property) ? "(" + entry$1(property) + ")" : property; +const Top = "top"; +const Left = "left"; +const Right = "right"; +const Bottom = "bottom"; +const Center = "center"; +const Vertical = "vertical"; +const Start = "start"; +const Middle = "middle"; +const End = "end"; +const Index = "index"; +const Label = "label"; +const Offset = "offset"; +const Perc = "perc"; +const Perc2 = "perc2"; +const Value = "value"; +const GuideLabelStyle = "guide-label"; +const GuideTitleStyle = "guide-title"; +const GroupTitleStyle = "group-title"; +const GroupSubtitleStyle = "group-subtitle"; +const Symbols = "symbol"; +const Gradient = "gradient"; +const Discrete = "discrete"; +const Size = "size"; +const Shape = "shape"; +const Fill = "fill"; +const Stroke = "stroke"; +const StrokeWidth = "strokeWidth"; +const StrokeDash = "strokeDash"; +const Opacity = "opacity"; // Encoding channels supported by legends +// In priority order of 'canonical' scale +const LegendScales = [ + Size, + Shape, + Fill, + Stroke, + StrokeWidth, + StrokeDash, + Opacity +]; +const Skip = { + name: 1, + style: 1, + interactive: 1 +}; +const zero = { + value: 0 +}; +const one = { + value: 1 +}; +const GroupMark = "group"; +const RectMark = "rect"; +const RuleMark = "rule"; +const SymbolMark = "symbol"; +const TextMark = "text"; +function guideGroup(mark) { + mark.type = GroupMark; + mark.interactive = mark.interactive || false; + return mark; } -function field(ref) { - return resolveField((0, _vegaUtil.isObject)(ref) ? ref : { - datum: ref - }); +function lookup(spec, config) { + const _ = (name, dflt)=>value(spec[name], value(config[name], dflt)); + _.isVertical = (s)=>Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection)); + _.gradientLength = ()=>value(spec.gradientLength, config.gradientLength || config.gradientWidth); + _.gradientThickness = ()=>value(spec.gradientThickness, config.gradientThickness || config.gradientHeight); + _.entryColumns = ()=>value(spec.columns, value(config.columns, +_.isVertical(true))); + return _; } -function resolveField(ref) { - let object, level, field; - if (ref.signal) { - object = "datum"; - field = ref.signal; - } else if (ref.group || ref.parent) { - level = Math.max(1, ref.level || 1); - object = "item"; - while(level-- > 0)object += ".mark.group"; - if (ref.parent) { - field = ref.parent; - object += ".datum"; - } else field = ref.group; - } else if (ref.datum) { - object = "datum"; - field = ref.datum; - } else (0, _vegaUtil.error)("Invalid field reference: " + (0, _vegaUtil.stringValue)(ref)); - if (!ref.signal) field = (0, _vegaUtil.isString)(field) ? (0, _vegaUtil.splitAccessPath)(field).map((0, _vegaUtil.stringValue)).join("][") : resolveField(field); - return object + "[" + field + "]"; +function getEncoding(name, encode) { + const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]); + return v && v.signal ? v : v ? v.value : null; } -function scale(enc, value) { - const scale = scaleRef(enc.scale); - if (enc.range != null) // pull value from scale range - value = `lerp(_range(${scale}), ${+enc.range})`; - else { - // run value through scale and/or pull scale bandwidth - if (value !== undefined) value = `_scale(${scale}, ${value})`; - if (enc.band) { - value = (value ? value + "+" : "") + `_bandwidth(${scale})` + (+enc.band === 1 ? "" : "*" + property(enc.band)); - if (enc.extra) // include logic to handle extraneous elements - value = `(datum.extra ? _scale(${scale}, datum.extra.value) : ${value})`; - } - if (value == null) value = "0"; - } - return value; +function getStyle(name, scope, style) { + const s = scope.config.style[style]; + return s && s[name]; } -function rule(enc) { - let code = ""; - enc.forEach((rule)=>{ - const value = entry$1(rule); - code += rule.test ? `(${rule.test})?${value}:` : value; - }); // if no else clause, terminate with null (#1366) - if ((0, _vegaUtil.peek)(code) === ":") code += "null"; - return code; +function anchorExpr(s, e, m) { + return `item.anchor === '${Start}' ? ${s} : item.anchor === '${End}' ? ${e} : ${m}`; } -function parseEncode(encode, type, role, style, scope, params) { - const enc = {}; - params = params || {}; - params.encoders = { - $encode: enc - }; - encode = applyDefaults(encode, type, role, style, scope.config); - for(const key in encode)enc[key] = parseBlock(encode[key], type, params, scope); - return params; -} -function parseBlock(block, marktype, params, scope) { - const channels = {}, fields = {}; - for(const name in block)if (block[name] != null) // skip any null entries - channels[name] = parse$1(expr(block[name]), scope, params, fields); +const alignExpr$1 = anchorExpr((0, _vegaUtil.stringValue)(Left), (0, _vegaUtil.stringValue)(Right), (0, _vegaUtil.stringValue)(Center)); +function tickBand(_) { + const v = _("tickBand"); + let offset = _("tickOffset"), band, extra; + if (!v) { + // if no tick band entry, fall back on other properties + band = _("bandPosition"); + extra = _("tickExtra"); + } else if (v.signal) { + // if signal, augment code to interpret values + band = { + signal: `(${v.signal}) === 'extent' ? 1 : 0.5` + }; + extra = { + signal: `(${v.signal}) === 'extent'` + }; + if (!(0, _vegaUtil.isObject)(offset)) offset = { + signal: `(${v.signal}) === 'extent' ? 0 : ${offset}` + }; + } else if (v === "extent") { + // if constant, simply set values + band = 1; + extra = true; + offset = 0; + } else { + band = 0.5; + extra = false; + } return { - $expr: { - marktype, - channels - }, - $fields: Object.keys(fields), - $output: Object.keys(block) + extra, + band, + offset }; } -function expr(enc) { - return (0, _vegaUtil.isArray)(enc) ? rule(enc) : entry$1(enc); -} -function parse$1(code, scope, params, fields) { - const expr = (0, _vegaFunctions.parseExpression)(code, scope); - expr.$fields.forEach((name)=>fields[name] = 1); - (0, _vegaUtil.extend)(params, expr.$params); - return expr.$expr; +function extendOffset(value, offset) { + return !offset ? value : !value ? offset : !(0, _vegaUtil.isObject)(value) ? { + value, + offset + } : Object.assign({}, value, { + offset: extendOffset(value.offset, offset) + }); } -const OUTER = "outer", OUTER_INVALID = [ - "value", - "update", - "init", - "react", - "bind" -]; -function outerError(prefix, name) { - (0, _vegaUtil.error)(prefix + ' for "outer" push: ' + (0, _vegaUtil.stringValue)(name)); +function guideMark(mark, extras) { + if (extras) { + mark.name = extras.name; + mark.style = extras.style || mark.style; + mark.interactive = !!extras.interactive; + mark.encode = extendEncode(mark.encode, extras, Skip); + } else mark.interactive = false; + return mark; } -function parseSignal(signal, scope) { - const name = signal.name; - if (signal.push === OUTER) { - // signal must already be defined, raise error if not - if (!scope.signals[name]) outerError("No prior signal definition", name); // signal push must not use properties reserved for standard definition - OUTER_INVALID.forEach((prop)=>{ - if (signal[prop] !== undefined) outerError("Invalid property ", prop); - }); +function legendGradient(spec, scale, config, userEncode) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); + let enter, start, stop, width, height; + if (vertical) { + start = [ + 0, + 1 + ]; + stop = [ + 0, + 0 + ]; + width = thickness; + height = length; } else { - // define a new signal in the current scope - const op = scope.addSignal(name, signal.value); - if (signal.react === false) op.react = false; - if (signal.bind) scope.addBinding(name, signal.bind); + start = [ + 0, + 0 + ]; + stop = [ + 1, + 0 + ]; + width = length; + height = thickness; } -} -function Entry(type, value, params, parent) { - this.id = -1; - this.type = type; - this.value = value; - this.params = params; - if (parent) this.parent = parent; -} -function entry(type, value, params, parent) { - return new Entry(type, value, params, parent); -} -function operator(value, params) { - return entry("operator", value, params); -} // ----- -function ref(op) { - const ref = { - $ref: op.id - }; // if operator not yet registered, cache ref to resolve later - if (op.id < 0) (op.refs = op.refs || []).push(ref); - return ref; -} -function fieldRef$1(field, name) { - return name ? { - $field: field, - $name: name - } : { - $field: field + const encode = { + enter: enter = { + opacity: zero, + x: zero, + y: zero, + width: encoder(width), + height: encoder(height) + }, + update: (0, _vegaUtil.extend)({}, enter, { + opacity: one, + fill: { + gradient: scale, + start: start, + stop: stop + } + }), + exit: { + opacity: zero + } }; + addEncoders(encode, { + stroke: _("gradientStrokeColor"), + strokeWidth: _("gradientStrokeWidth") + }, { + // update + opacity: _("gradientOpacity") + }); + return guideMark({ + type: RectMark, + role: LegendGradientRole, + encode + }, userEncode); } -const keyFieldRef = fieldRef$1("key"); -function compareRef(fields, orders) { - return { - $compare: fields, - $order: orders +function legendGradientDiscrete(spec, scale, config, userEncode, dataRef) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); + let u, v, uu, vv, adjust = ""; + vertical ? (u = "y", uu = "y2", v = "x", vv = "width", adjust = "1-") : (u = "x", uu = "x2", v = "y", vv = "height"); + const enter = { + opacity: zero, + fill: { + scale: scale, + field: Value + } }; -} -function keyRef(fields, flat) { - const ref = { - $key: fields + enter[u] = { + signal: adjust + "datum." + Perc, + mult: length }; - if (flat) ref.$flat = true; - return ref; -} // ----- -const Ascending = "ascending"; -const Descending = "descending"; -function sortKey(sort) { - return !(0, _vegaUtil.isObject)(sort) ? "" : (sort.order === Descending ? "-" : "+") + aggrField(sort.op, sort.field); -} -function aggrField(op, field) { - return (op && op.signal ? "$" + op.signal : op || "") + (op && field ? "_" : "") + (field && field.signal ? "$" + field.signal : field || ""); -} // ----- -const Scope$1 = "scope"; -const View = "view"; -function isSignal(_) { - return _ && _.signal; -} -function isExpr$1(_) { - return _ && _.expr; -} -function hasSignal(_) { - if (isSignal(_)) return true; - if ((0, _vegaUtil.isObject)(_)) for(const key in _){ - if (hasSignal(_[key])) return true; - } - return false; -} -function value(specValue, defaultValue) { - return specValue != null ? specValue : defaultValue; -} -function deref(v) { - return v && v.signal || v; -} -const Timer = "timer"; -function parseStream(stream, scope) { - const method = stream.merge ? mergeStream : stream.stream ? nestedStream : stream.type ? eventStream : (0, _vegaUtil.error)("Invalid stream specification: " + (0, _vegaUtil.stringValue)(stream)); - return method(stream, scope); -} -function eventSource(source) { - return source === Scope$1 ? View : source || View; -} -function mergeStream(stream, scope) { - const list = stream.merge.map((s)=>parseStream(s, scope)), entry = streamParameters({ - merge: list - }, stream, scope); - return scope.addStream(entry).id; -} -function nestedStream(stream, scope) { - const id = parseStream(stream.stream, scope), entry = streamParameters({ - stream: id - }, stream, scope); - return scope.addStream(entry).id; -} -function eventStream(stream, scope) { - let id; - if (stream.type === Timer) { - id = scope.event(Timer, stream.throttle); - stream = { - between: stream.between, - filter: stream.filter - }; - } else id = scope.event(eventSource(stream.source), stream.type); - const entry = streamParameters({ - stream: id - }, stream, scope); - return Object.keys(entry).length === 1 ? id : scope.addStream(entry).id; -} -function streamParameters(entry, stream, scope) { - let param = stream.between; - if (param) { - if (param.length !== 2) (0, _vegaUtil.error)('Stream "between" parameter must have 2 entries: ' + (0, _vegaUtil.stringValue)(stream)); - entry.between = [ - parseStream(param[0], scope), - parseStream(param[1], scope) - ]; - } - param = stream.filter ? [].concat(stream.filter) : []; - if (stream.marktype || stream.markname || stream.markrole) // add filter for mark type, name and/or role - param.push(filterMark(stream.marktype, stream.markname, stream.markrole)); - if (stream.source === Scope$1) // add filter to limit events from sub-scope only - param.push("inScope(event.item)"); - if (param.length) entry.filter = (0, _vegaFunctions.parseExpression)("(" + param.join(")&&(") + ")", scope).$expr; - if ((param = stream.throttle) != null) entry.throttle = +param; - if ((param = stream.debounce) != null) entry.debounce = +param; - if (stream.consume) entry.consume = true; - return entry; -} -function filterMark(type, name, role) { - const item = "event.item"; - return item + (type && type !== "*" ? "&&" + item + ".mark.marktype==='" + type + "'" : "") + (role ? "&&" + item + ".mark.role==='" + role + "'" : "") + (name ? "&&" + item + ".mark.name==='" + name + "'" : ""); -} -const OP_VALUE_EXPR = { - code: "_.$value", - ast: { - type: "Identifier", - value: "value" - } -}; -function parseUpdate(spec, scope, target) { - const encode = spec.encode, entry = { - target: target + enter[v] = zero; + enter[uu] = { + signal: adjust + "datum." + Perc2, + mult: length }; - let events = spec.events, update = spec.update, sources = []; - if (!events) (0, _vegaUtil.error)("Signal update missing events specification."); - // interpret as an event selector string - if ((0, _vegaUtil.isString)(events)) events = (0, _vegaEventSelector.parseSelector)(events, scope.isSubscope() ? Scope$1 : View); - // separate event streams from signal updates - events = (0, _vegaUtil.array)(events).filter((s)=>s.signal || s.scale ? (sources.push(s), 0) : 1); // merge internal operator listeners - if (sources.length > 1) sources = [ - mergeSources(sources) - ]; - // merge event streams, include as source - if (events.length) sources.push(events.length > 1 ? { - merge: events - } : events[0]); - if (encode != null) { - if (update) (0, _vegaUtil.error)("Signal encode and update are mutually exclusive."); - update = "encode(item()," + (0, _vegaUtil.stringValue)(encode) + ")"; - } // resolve update value - entry.update = (0, _vegaUtil.isString)(update) ? (0, _vegaFunctions.parseExpression)(update, scope) : update.expr != null ? (0, _vegaFunctions.parseExpression)(update.expr, scope) : update.value != null ? update.value : update.signal != null ? { - $expr: OP_VALUE_EXPR, - $params: { - $value: scope.signalRef(update.signal) + enter[vv] = encoder(thickness); + const encode = { + enter: enter, + update: (0, _vegaUtil.extend)({}, enter, { + opacity: one + }), + exit: { + opacity: zero } - } : (0, _vegaUtil.error)("Invalid signal update specification."); - if (spec.force) entry.options = { - force: true }; - sources.forEach((source)=>scope.addUpdate((0, _vegaUtil.extend)(streamSource(source, scope), entry))); + addEncoders(encode, { + stroke: _("gradientStrokeColor"), + strokeWidth: _("gradientStrokeWidth") + }, { + // update + opacity: _("gradientOpacity") + }); + return guideMark({ + type: RectMark, + role: LegendBandRole, + key: Value, + from: dataRef, + encode + }, userEncode); } -function streamSource(stream, scope) { - return { - source: stream.signal ? scope.signalRef(stream.signal) : stream.scale ? scope.scaleRef(stream.scale) : parseStream(stream, scope) +const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; +function legendGradientLabels(spec, config, userEncode, dataRef) { + const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); + let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; + const encode = { + enter: enter = { + opacity: zero + }, + update: update = { + opacity: one, + text: { + field: Label + } + }, + exit: { + opacity: zero + } }; -} -function mergeSources(sources) { - return { - signal: "[" + sources.map((s)=>s.scale ? 'scale("' + s.scale + '")' : s.signal) + "]" + addEncoders(encode, { + fill: _("labelColor"), + fillOpacity: _("labelOpacity"), + font: _("labelFont"), + fontSize: _("labelFontSize"), + fontStyle: _("labelFontStyle"), + fontWeight: _("labelFontWeight"), + limit: value(spec.labelLimit, config.gradientLabelLimit) + }); + if (vertical) { + enter.align = { + value: "left" + }; + enter.baseline = update.baseline = { + signal: baselineExpr + }; + u = "y"; + v = "x"; + adjust = "1-"; + } else { + enter.align = update.align = { + signal: alignExpr + }; + enter.baseline = { + value: "top" + }; + u = "x"; + v = "y"; + } + enter[u] = update[u] = { + signal: adjust + "datum." + Perc, + mult: length }; + enter[v] = update[v] = thickness; + thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; + overlap = overlap ? { + separation: _("labelSeparation"), + method: overlap, + order: "datum." + Index + } : undefined; // type, role, style, key, dataRef, encode, extras + return guideMark({ + type: TextMark, + role: LegendLabelRole, + style: GuideLabelStyle, + key: Value, + from: dataRef, + encode, + overlap + }, userEncode); } -function parseSignalUpdates(signal, scope) { - const op = scope.getSignal(signal.name); - let expr = signal.update; - if (signal.init) { - if (expr) (0, _vegaUtil.error)("Signals can not include both init and update expressions."); - else { - expr = signal.init; - op.initonly = true; +function legendSymbolGroups(spec, config, userEncode, dataRef, columns) { + const _ = lookup(spec, config), entries = userEncode.entries, interactive = !!(entries && entries.interactive), name = entries ? entries.name : undefined, height = _("clipHeight"), symbolOffset = _("symbolOffset"), valueRef = { + data: "value" + }, xSignal = `(${columns}) ? datum.${Offset} : datum.${Size}`, yEncode = height ? encoder(height) : { + field: Size + }, index = `datum.${Index}`, ncols = `max(1, ${columns})`; + let encode, enter, update, nrows, sort; + yEncode.mult = 0.5; // -- LEGEND SYMBOLS -- + encode = { + enter: enter = { + opacity: zero, + x: { + signal: xSignal, + mult: 0.5, + offset: symbolOffset + }, + y: yEncode + }, + update: update = { + opacity: one, + x: enter.x, + y: enter.y + }, + exit: { + opacity: zero } + }; + let baseFill = null, baseStroke = null; + if (!spec.fill) { + baseFill = config.symbolBaseFillColor; + baseStroke = config.symbolBaseStrokeColor; } - if (expr) { - expr = (0, _vegaFunctions.parseExpression)(expr, scope); - op.update = expr.$expr; - op.params = expr.$params; - } - if (signal.on) signal.on.forEach((_)=>parseUpdate(_, scope, op.id)); -} -const transform = (name)=>(params, value, parent)=>entry(name, value, params || undefined, parent); -const Aggregate = transform("aggregate"); -const AxisTicks = transform("axisticks"); -const Bound = transform("bound"); -const Collect = transform("collect"); -const Compare = transform("compare"); -const DataJoin = transform("datajoin"); -const Encode = transform("encode"); -const Expression = transform("expression"); -const Facet = transform("facet"); -const Field = transform("field"); -const Key = transform("key"); -const LegendEntries = transform("legendentries"); -const Load = transform("load"); -const Mark = transform("mark"); -const MultiExtent = transform("multiextent"); -const MultiValues = transform("multivalues"); -const Overlap = transform("overlap"); -const Params = transform("params"); -const PreFacet = transform("prefacet"); -const Projection = transform("projection"); -const Proxy = transform("proxy"); -const Relay = transform("relay"); -const Render = transform("render"); -const Scale = transform("scale"); -const Sieve = transform("sieve"); -const SortItems = transform("sortitems"); -const ViewLayout = transform("viewlayout"); -const Values = transform("values"); -let FIELD_REF_ID = 0; -const MULTIDOMAIN_SORT_OPS = { - min: "min", - max: "max", - count: "sum" -}; -function initScale(spec, scope) { - const type = spec.type || "linear"; - if (!(0, _vegaScale.isValidScaleType)(type)) (0, _vegaUtil.error)("Unrecognized scale type: " + (0, _vegaUtil.stringValue)(type)); - scope.addScale(spec.name, { - type, - domain: undefined - }); -} -function parseScale(spec, scope) { - const params = scope.getScale(spec.name).params; - let key; - params.domain = parseScaleDomain(spec.domain, spec, scope); - if (spec.range != null) params.range = parseScaleRange(spec, scope, params); - if (spec.interpolate != null) parseScaleInterpolate(spec.interpolate, params); - if (spec.nice != null) params.nice = parseScaleNice(spec.nice); - if (spec.bins != null) params.bins = parseScaleBins(spec.bins, scope); - for(key in spec){ - if ((0, _vegaUtil.hasOwnProperty)(params, key) || key === "name") continue; - params[key] = parseLiteral(spec[key], scope); - } -} -function parseLiteral(v, scope) { - return !(0, _vegaUtil.isObject)(v) ? v : v.signal ? scope.signalRef(v.signal) : (0, _vegaUtil.error)("Unsupported object: " + (0, _vegaUtil.stringValue)(v)); -} -function parseArray(v, scope) { - return v.signal ? scope.signalRef(v.signal) : v.map((v)=>parseLiteral(v, scope)); -} -function dataLookupError(name) { - (0, _vegaUtil.error)("Can not find data set: " + (0, _vegaUtil.stringValue)(name)); -} // -- SCALE DOMAIN ---- -function parseScaleDomain(domain, spec, scope) { - if (!domain) { - if (spec.domainMin != null || spec.domainMax != null) (0, _vegaUtil.error)("No scale domain defined for domainMin/domainMax to override."); - return; // default domain - } - return domain.signal ? scope.signalRef(domain.signal) : ((0, _vegaUtil.isArray)(domain) ? explicitDomain : domain.fields ? multipleDomain : singularDomain)(domain, spec, scope); -} -function explicitDomain(domain, spec, scope) { - return domain.map((v)=>parseLiteral(v, scope)); -} -function singularDomain(domain, spec, scope) { - const data = scope.getData(domain.data); - if (!data) dataLookupError(domain.data); - return (0, _vegaScale.isDiscrete)(spec.type) ? data.valuesRef(scope, domain.field, parseSort(domain.sort, false)) : (0, _vegaScale.isQuantile)(spec.type) ? data.domainRef(scope, domain.field) : data.extentRef(scope, domain.field); -} -function multipleDomain(domain, spec, scope) { - const data = domain.data, fields = domain.fields.reduce((dom, d)=>{ - d = (0, _vegaUtil.isString)(d) ? { - data: data, - field: d - } : (0, _vegaUtil.isArray)(d) || d.signal ? fieldRef(d, scope) : d; - dom.push(d); - return dom; - }, []); - return ((0, _vegaScale.isDiscrete)(spec.type) ? ordinalMultipleDomain : (0, _vegaScale.isQuantile)(spec.type) ? quantileMultipleDomain : numericMultipleDomain)(domain, scope, fields); -} -function fieldRef(data, scope) { - const name = "_:vega:_" + FIELD_REF_ID++, coll = Collect({}); - if ((0, _vegaUtil.isArray)(data)) coll.value = { - $ingest: data - }; - else if (data.signal) { - const code = "setdata(" + (0, _vegaUtil.stringValue)(name) + "," + data.signal + ")"; - coll.params.input = scope.signalRef(code); - } - scope.addDataPipeline(name, [ - coll, - Sieve({}) - ]); - return { - data: name, - field: "data" - }; -} -function ordinalMultipleDomain(domain, scope, fields) { - const sort = parseSort(domain.sort, true); - let a, v; // get value counts for each domain field - const counts = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.countsRef(scope, f.field, sort); - }); // aggregate the results from each domain field - const p = { - groupby: keyFieldRef, - pulse: counts - }; - if (sort) { - a = sort.op || "count"; - v = sort.field ? aggrField(a, sort.field) : "count"; - p.ops = [ - MULTIDOMAIN_SORT_OPS[a] - ]; - p.fields = [ - scope.fieldRef(v) - ]; - p.as = [ - v - ]; - } - a = scope.add(Aggregate(p)); // collect aggregate output - const c = scope.add(Collect({ - pulse: ref(a) - })); // extract values for combined domain - v = scope.add(Values({ - field: keyFieldRef, - sort: scope.sortRef(sort), - pulse: ref(c) - })); - return ref(v); -} -function parseSort(sort, multidomain) { - if (sort) { - if (!sort.field && !sort.op) { - if ((0, _vegaUtil.isObject)(sort)) sort.field = "key"; - else sort = { - field: "key" - }; - } else if (!sort.field && sort.op !== "count") (0, _vegaUtil.error)("No field provided for sort aggregate op: " + sort.op); - else if (multidomain && sort.field) { - if (sort.op && !MULTIDOMAIN_SORT_OPS[sort.op]) (0, _vegaUtil.error)("Multiple domain scales can not be sorted using " + sort.op); - } - } - return sort; -} -function quantileMultipleDomain(domain, scope, fields) { - // get value arrays for each domain field - const values = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.domainRef(scope, f.field); - }); // combine value arrays - return ref(scope.add(MultiValues({ - values: values - }))); -} -function numericMultipleDomain(domain, scope, fields) { - // get extents for each domain field - const extents = fields.map((f)=>{ - const data = scope.getData(f.data); - if (!data) dataLookupError(f.data); - return data.extentRef(scope, f.field); - }); // combine extents - return ref(scope.add(MultiExtent({ - extents: extents - }))); -} // -- SCALE BINS ----- -function parseScaleBins(v, scope) { - return v.signal || (0, _vegaUtil.isArray)(v) ? parseArray(v, scope) : scope.objectProperty(v); -} // -- SCALE NICE ----- -function parseScaleNice(nice) { - return (0, _vegaUtil.isObject)(nice) ? { - interval: parseLiteral(nice.interval), - step: parseLiteral(nice.step) - } : parseLiteral(nice); -} // -- SCALE INTERPOLATION ----- -function parseScaleInterpolate(interpolate, params) { - params.interpolate = parseLiteral(interpolate.type || interpolate); - if (interpolate.gamma != null) params.interpolateGamma = parseLiteral(interpolate.gamma); -} // -- SCALE RANGE ----- -function parseScaleRange(spec, scope, params) { - const config = scope.config.range; - let range = spec.range; - if (range.signal) return scope.signalRef(range.signal); - else if ((0, _vegaUtil.isString)(range)) { - if (config && (0, _vegaUtil.hasOwnProperty)(config, range)) { - spec = (0, _vegaUtil.extend)({}, spec, { - range: config[range] - }); - return parseScaleRange(spec, scope, params); - } else if (range === "width") range = [ - 0, - { - signal: "width" - } - ]; - else if (range === "height") range = (0, _vegaScale.isDiscrete)(spec.type) ? [ - 0, - { - signal: "height" - } - ] : [ - { - signal: "height" - }, - 0 - ]; - else (0, _vegaUtil.error)("Unrecognized scale range value: " + (0, _vegaUtil.stringValue)(range)); - } else if (range.scheme) { - params.scheme = (0, _vegaUtil.isArray)(range.scheme) ? parseArray(range.scheme, scope) : parseLiteral(range.scheme, scope); - if (range.extent) params.schemeExtent = parseArray(range.extent, scope); - if (range.count) params.schemeCount = parseLiteral(range.count, scope); - return; - } else if (range.step) { - params.rangeStep = parseLiteral(range.step, scope); - return; - } else if ((0, _vegaScale.isDiscrete)(spec.type) && !(0, _vegaUtil.isArray)(range)) return parseScaleDomain(range, spec, scope); - else if (!(0, _vegaUtil.isArray)(range)) (0, _vegaUtil.error)("Unsupported range type: " + (0, _vegaUtil.stringValue)(range)); - return range.map((v)=>((0, _vegaUtil.isArray)(v) ? parseArray : parseLiteral)(v, scope)); -} -function parseProjection(proj, scope) { - const config = scope.config.projection || {}, params = {}; - for(const name in proj){ - if (name === "name") continue; - params[name] = parseParameter$1(proj[name], name, scope); - } // apply projection defaults from config - for(const name1 in config)if (params[name1] == null) params[name1] = parseParameter$1(config[name1], name1, scope); - scope.addProjection(proj.name, params); -} -function parseParameter$1(_, name, scope) { - return (0, _vegaUtil.isArray)(_) ? _.map((_)=>parseParameter$1(_, name, scope)) : !(0, _vegaUtil.isObject)(_) ? _ : _.signal ? scope.signalRef(_.signal) : name === "fit" ? _ : (0, _vegaUtil.error)("Unsupported parameter object: " + (0, _vegaUtil.stringValue)(_)); -} -const Top = "top"; -const Left = "left"; -const Right = "right"; -const Bottom = "bottom"; -const Center = "center"; -const Vertical = "vertical"; -const Start = "start"; -const Middle = "middle"; -const End = "end"; -const Index = "index"; -const Label = "label"; -const Offset = "offset"; -const Perc = "perc"; -const Perc2 = "perc2"; -const Value = "value"; -const GuideLabelStyle = "guide-label"; -const GuideTitleStyle = "guide-title"; -const GroupTitleStyle = "group-title"; -const GroupSubtitleStyle = "group-subtitle"; -const Symbols = "symbol"; -const Gradient = "gradient"; -const Discrete = "discrete"; -const Size = "size"; -const Shape = "shape"; -const Fill = "fill"; -const Stroke = "stroke"; -const StrokeWidth = "strokeWidth"; -const StrokeDash = "strokeDash"; -const Opacity = "opacity"; // Encoding channels supported by legends -// In priority order of 'canonical' scale -const LegendScales = [ - Size, - Shape, - Fill, - Stroke, - StrokeWidth, - StrokeDash, - Opacity -]; -const Skip = { - name: 1, - style: 1, - interactive: 1 -}; -const zero = { - value: 0 -}; -const one = { - value: 1 -}; -const GroupMark = "group"; -const RectMark = "rect"; -const RuleMark = "rule"; -const SymbolMark = "symbol"; -const TextMark = "text"; -function guideGroup(mark) { - mark.type = GroupMark; - mark.interactive = mark.interactive || false; - return mark; -} -function lookup(spec, config) { - const _ = (name, dflt)=>value(spec[name], value(config[name], dflt)); - _.isVertical = (s)=>Vertical === value(spec.direction, config.direction || (s ? config.symbolDirection : config.gradientDirection)); - _.gradientLength = ()=>value(spec.gradientLength, config.gradientLength || config.gradientWidth); - _.gradientThickness = ()=>value(spec.gradientThickness, config.gradientThickness || config.gradientHeight); - _.entryColumns = ()=>value(spec.columns, value(config.columns, +_.isVertical(true))); - return _; -} -function getEncoding(name, encode) { - const v = encode && (encode.update && encode.update[name] || encode.enter && encode.enter[name]); - return v && v.signal ? v : v ? v.value : null; -} -function getStyle(name, scope, style) { - const s = scope.config.style[style]; - return s && s[name]; -} -function anchorExpr(s, e, m) { - return `item.anchor === '${Start}' ? ${s} : item.anchor === '${End}' ? ${e} : ${m}`; -} -const alignExpr$1 = anchorExpr((0, _vegaUtil.stringValue)(Left), (0, _vegaUtil.stringValue)(Right), (0, _vegaUtil.stringValue)(Center)); -function tickBand(_) { - const v = _("tickBand"); - let offset = _("tickOffset"), band, extra; - if (!v) { - // if no tick band entry, fall back on other properties - band = _("bandPosition"); - extra = _("tickExtra"); - } else if (v.signal) { - // if signal, augment code to interpret values - band = { - signal: `(${v.signal}) === 'extent' ? 1 : 0.5` - }; - extra = { - signal: `(${v.signal}) === 'extent'` - }; - if (!(0, _vegaUtil.isObject)(offset)) offset = { - signal: `(${v.signal}) === 'extent' ? 0 : ${offset}` - }; - } else if (v === "extent") { - // if constant, simply set values - band = 1; - extra = true; - offset = 0; - } else { - band = 0.5; - extra = false; - } - return { - extra, - band, - offset - }; -} -function extendOffset(value, offset) { - return !offset ? value : !value ? offset : !(0, _vegaUtil.isObject)(value) ? { - value, - offset - } : Object.assign({}, value, { - offset: extendOffset(value.offset, offset) - }); -} -function guideMark(mark, extras) { - if (extras) { - mark.name = extras.name; - mark.style = extras.style || mark.style; - mark.interactive = !!extras.interactive; - mark.encode = extendEncode(mark.encode, extras, Skip); - } else mark.interactive = false; - return mark; -} -function legendGradient(spec, scale, config, userEncode) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); - let enter, start, stop, width, height; - if (vertical) { - start = [ - 0, - 1 - ]; - stop = [ - 0, - 0 - ]; - width = thickness; - height = length; - } else { - start = [ - 0, - 0 - ]; - stop = [ - 1, - 0 - ]; - width = length; - height = thickness; - } - const encode = { - enter: enter = { - opacity: zero, - x: zero, - y: zero, - width: encoder(width), - height: encoder(height) - }, - update: (0, _vegaUtil.extend)({}, enter, { - opacity: one, - fill: { - gradient: scale, - start: start, - stop: stop - } - }), - exit: { - opacity: zero - } - }; addEncoders(encode, { - stroke: _("gradientStrokeColor"), - strokeWidth: _("gradientStrokeWidth") + fill: _("symbolFillColor", baseFill), + shape: _("symbolType"), + size: _("symbolSize"), + stroke: _("symbolStrokeColor", baseStroke), + strokeDash: _("symbolDash"), + strokeDashOffset: _("symbolDashOffset"), + strokeWidth: _("symbolStrokeWidth") }, { // update - opacity: _("gradientOpacity") + opacity: _("symbolOpacity") }); - return guideMark({ - type: RectMark, - role: LegendGradientRole, - encode - }, userEncode); -} -function legendGradientDiscrete(spec, scale, config, userEncode, dataRef) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = _.gradientThickness(), length = _.gradientLength(); - let u, v, uu, vv, adjust = ""; - vertical ? (u = "y", uu = "y2", v = "x", vv = "width", adjust = "1-") : (u = "x", uu = "x2", v = "y", vv = "height"); - const enter = { - opacity: zero, - fill: { - scale: scale, + LegendScales.forEach((scale)=>{ + if (spec[scale]) update[scale] = enter[scale] = { + scale: spec[scale], field: Value - } - }; - enter[u] = { - signal: adjust + "datum." + Perc, - mult: length - }; - enter[v] = zero; - enter[uu] = { - signal: adjust + "datum." + Perc2, - mult: length - }; - enter[vv] = encoder(thickness); - const encode = { - enter: enter, - update: (0, _vegaUtil.extend)({}, enter, { - opacity: one - }), - exit: { - opacity: zero - } - }; - addEncoders(encode, { - stroke: _("gradientStrokeColor"), - strokeWidth: _("gradientStrokeWidth") - }, { - // update - opacity: _("gradientOpacity") + }; }); - return guideMark({ - type: RectMark, - role: LegendBandRole, + const symbols = guideMark({ + type: SymbolMark, + role: LegendSymbolRole, key: Value, - from: dataRef, + from: valueRef, + clip: height ? true : undefined, encode - }, userEncode); -} -const alignExpr = `datum.${Perc}<=0?"${Left}":datum.${Perc}>=1?"${Right}":"${Center}"`, baselineExpr = `datum.${Perc}<=0?"${Bottom}":datum.${Perc}>=1?"${Top}":"${Middle}"`; -function legendGradientLabels(spec, config, userEncode, dataRef) { - const _ = lookup(spec, config), vertical = _.isVertical(), thickness = encoder(_.gradientThickness()), length = _.gradientLength(); - let overlap = _("labelOverlap"), enter, update, u, v, adjust = ""; - const encode = { + }, userEncode.symbols); // -- LEGEND LABELS -- + const labelOffset = encoder(symbolOffset); + labelOffset.offset = _("labelOffset"); + encode = { enter: enter = { - opacity: zero + opacity: zero, + x: { + signal: xSignal, + offset: labelOffset + }, + y: yEncode }, update: update = { opacity: one, text: { field: Label - } + }, + x: enter.x, + y: enter.y }, exit: { opacity: zero } }; addEncoders(encode, { + align: _("labelAlign"), + baseline: _("labelBaseline"), fill: _("labelColor"), fillOpacity: _("labelOpacity"), font: _("labelFont"), fontSize: _("labelFontSize"), fontStyle: _("labelFontStyle"), fontWeight: _("labelFontWeight"), - limit: value(spec.labelLimit, config.gradientLabelLimit) + limit: _("labelLimit") }); - if (vertical) { - enter.align = { - value: "left" - }; - enter.baseline = update.baseline = { - signal: baselineExpr - }; - u = "y"; - v = "x"; - adjust = "1-"; - } else { - enter.align = update.align = { - signal: alignExpr - }; - enter.baseline = { - value: "top" - }; - u = "x"; - v = "y"; - } - enter[u] = update[u] = { - signal: adjust + "datum." + Perc, - mult: length - }; - enter[v] = update[v] = thickness; - thickness.offset = value(spec.labelOffset, config.gradientLabelOffset) || 0; - overlap = overlap ? { - separation: _("labelSeparation"), - method: overlap, - order: "datum." + Index - } : undefined; // type, role, style, key, dataRef, encode, extras - return guideMark({ - type: TextMark, - role: LegendLabelRole, - style: GuideLabelStyle, - key: Value, - from: dataRef, - encode, - overlap - }, userEncode); -} -function legendSymbolGroups(spec, config, userEncode, dataRef, columns) { - const _ = lookup(spec, config), entries = userEncode.entries, interactive = !!(entries && entries.interactive), name = entries ? entries.name : undefined, height = _("clipHeight"), symbolOffset = _("symbolOffset"), valueRef = { - data: "value" - }, xSignal = `(${columns}) ? datum.${Offset} : datum.${Size}`, yEncode = height ? encoder(height) : { - field: Size - }, index = `datum.${Index}`, ncols = `max(1, ${columns})`; - let encode, enter, update, nrows, sort; - yEncode.mult = 0.5; // -- LEGEND SYMBOLS -- - encode = { - enter: enter = { - opacity: zero, - x: { - signal: xSignal, - mult: 0.5, - offset: symbolOffset - }, - y: yEncode - }, - update: update = { - opacity: one, - x: enter.x, - y: enter.y - }, - exit: { - opacity: zero - } - }; - let baseFill = null, baseStroke = null; - if (!spec.fill) { - baseFill = config.symbolBaseFillColor; - baseStroke = config.symbolBaseStrokeColor; - } - addEncoders(encode, { - fill: _("symbolFillColor", baseFill), - shape: _("symbolType"), - size: _("symbolSize"), - stroke: _("symbolStrokeColor", baseStroke), - strokeDash: _("symbolDash"), - strokeDashOffset: _("symbolDashOffset"), - strokeWidth: _("symbolStrokeWidth") - }, { - // update - opacity: _("symbolOpacity") - }); - LegendScales.forEach((scale)=>{ - if (spec[scale]) update[scale] = enter[scale] = { - scale: spec[scale], - field: Value - }; - }); - const symbols = guideMark({ - type: SymbolMark, - role: LegendSymbolRole, - key: Value, - from: valueRef, - clip: height ? true : undefined, - encode - }, userEncode.symbols); // -- LEGEND LABELS -- - const labelOffset = encoder(symbolOffset); - labelOffset.offset = _("labelOffset"); - encode = { - enter: enter = { - opacity: zero, - x: { - signal: xSignal, - offset: labelOffset - }, - y: yEncode - }, - update: update = { - opacity: one, - text: { - field: Label - }, - x: enter.x, - y: enter.y - }, - exit: { - opacity: zero - } - }; - addEncoders(encode, { - align: _("labelAlign"), - baseline: _("labelBaseline"), - fill: _("labelColor"), - fillOpacity: _("labelOpacity"), - font: _("labelFont"), - fontSize: _("labelFontSize"), - fontStyle: _("labelFontStyle"), - fontWeight: _("labelFontWeight"), - limit: _("labelLimit") - }); - const labels = guideMark({ + const labels = guideMark({ type: TextMark, role: LegendLabelRole, style: GuideLabelStyle, @@ -43600,1752 +45041,364 @@ Scope.prototype = Subscope.prototype = { // ---- event (source, type) { const key = source + ":" + type; - if (!this.events[key]) { - const id = this.id(); - this.streams.push({ - id: id, - source: source, - type: type - }); - this.events[key] = id; - } - return this.events[key]; - }, - // ---- - hasOwnSignal (name) { - return (0, _vegaUtil.hasOwnProperty)(this.signals, name); - }, - addSignal (name, value) { - if (this.hasOwnSignal(name)) (0, _vegaUtil.error)("Duplicate signal name: " + (0, _vegaUtil.stringValue)(name)); - const op = value instanceof Entry ? value : this.add(operator(value)); - return this.signals[name] = op; - }, - getSignal (name) { - if (!this.signals[name]) (0, _vegaUtil.error)("Unrecognized signal name: " + (0, _vegaUtil.stringValue)(name)); - return this.signals[name]; - }, - signalRef (s) { - if (this.signals[s]) return ref(this.signals[s]); - else if (!(0, _vegaUtil.hasOwnProperty)(this.lambdas, s)) this.lambdas[s] = this.add(operator(null)); - return ref(this.lambdas[s]); - }, - parseLambdas () { - const code = Object.keys(this.lambdas); - for(let i = 0, n = code.length; i < n; ++i){ - const s = code[i], e = (0, _vegaFunctions.parseExpression)(s, this), op = this.lambdas[s]; - op.params = e.$params; - op.update = e.$expr; - } - }, - property (spec) { - return spec && spec.signal ? this.signalRef(spec.signal) : spec; - }, - objectProperty (spec) { - return !spec || !(0, _vegaUtil.isObject)(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec)); - }, - exprRef (code, name) { - const params = { - expr: (0, _vegaFunctions.parseExpression)(code, this) - }; - if (name) params.expr.$name = name; - return ref(this.add(Expression(params))); - }, - addBinding (name, bind) { - if (!this.bindings) (0, _vegaUtil.error)("Nested signals do not support binding: " + (0, _vegaUtil.stringValue)(name)); - this.bindings.push((0, _vegaUtil.extend)({ - signal: name - }, bind)); - }, - // ---- - addScaleProj (name, transform) { - if ((0, _vegaUtil.hasOwnProperty)(this.scales, name)) (0, _vegaUtil.error)("Duplicate scale or projection name: " + (0, _vegaUtil.stringValue)(name)); - this.scales[name] = this.add(transform); - }, - addScale (name, params) { - this.addScaleProj(name, Scale(params)); - }, - addProjection (name, params) { - this.addScaleProj(name, Projection(params)); - }, - getScale (name) { - if (!this.scales[name]) (0, _vegaUtil.error)("Unrecognized scale name: " + (0, _vegaUtil.stringValue)(name)); - return this.scales[name]; - }, - scaleRef (name) { - return ref(this.getScale(name)); - }, - scaleType (name) { - return this.getScale(name).params.type; - }, - projectionRef (name) { - return this.scaleRef(name); - }, - projectionType (name) { - return this.scaleType(name); - }, - // ---- - addData (name, dataScope) { - if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.data[name] = dataScope; - }, - getData (name) { - if (!this.data[name]) (0, _vegaUtil.error)("Undefined data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.data[name]; - }, - addDataPipeline (name, entries) { - if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); - return this.addData(name, DataScope.fromEntries(this, entries)); - } -}; -function propertyLambda(spec) { - return ((0, _vegaUtil.isArray)(spec) ? arrayLambda : objectLambda)(spec); -} -function arrayLambda(array) { - const n = array.length; - let code = "["; - for(let i = 0; i < n; ++i){ - const value = array[i]; - code += (i > 0 ? "," : "") + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); - } - return code + "]"; -} -function objectLambda(obj) { - let code = "{", i = 0, key, value; - for(key in obj){ - value = obj[key]; - code += (++i > 1 ? "," : "") + (0, _vegaUtil.stringValue)(key) + ":" + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); - } - return code + "}"; -} -/** - * Standard configuration defaults for Vega specification parsing. - * Users can provide their own (sub-)set of these default values - * by passing in a config object to the top-level parse method. - */ function defaults() { - const defaultFont = "sans-serif", defaultSymbolSize = 30, defaultStrokeWidth = 2, defaultColor = "#4c78a8", black = "#000", gray = "#888", lightGray = "#ddd"; - return { - // default visualization description - description: "Vega visualization", - // default padding around visualization - padding: 0, - // default for automatic sizing; options: 'none', 'pad', 'fit' - // or provide an object (e.g., {'type': 'pad', 'resize': true}) - autosize: "pad", - // default view background color - // covers the entire view component - background: null, - // default event handling configuration - // preventDefault for view-sourced event types except 'wheel' - events: { - defaults: { - allow: [ - "wheel" - ] - } - }, - // defaults for top-level group marks - // accepts mark properties (fill, stroke, etc) - // covers the data rectangle within group width/height - group: null, - // defaults for basic mark types - // each subset accepts mark properties (fill, stroke, etc) - mark: null, - arc: { - fill: defaultColor - }, - area: { - fill: defaultColor - }, - image: null, - line: { - stroke: defaultColor, - strokeWidth: defaultStrokeWidth - }, - path: { - stroke: defaultColor - }, - rect: { - fill: defaultColor - }, - rule: { - stroke: black - }, - shape: { - stroke: defaultColor - }, - symbol: { - fill: defaultColor, - size: 64 - }, - text: { - fill: black, - font: defaultFont, - fontSize: 11 - }, - trail: { - fill: defaultColor, - size: defaultStrokeWidth - }, - // style definitions - style: { - // axis & legend labels - "guide-label": { - fill: black, - font: defaultFont, - fontSize: 10 - }, - // axis & legend titles - "guide-title": { - fill: black, - font: defaultFont, - fontSize: 11, - fontWeight: "bold" - }, - // headers, including chart title - "group-title": { - fill: black, - font: defaultFont, - fontSize: 13, - fontWeight: "bold" - }, - // chart subtitle - "group-subtitle": { - fill: black, - font: defaultFont, - fontSize: 12 - }, - // defaults for styled point marks in Vega-Lite - point: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth, - shape: "circle" - }, - circle: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth - }, - square: { - size: defaultSymbolSize, - strokeWidth: defaultStrokeWidth, - shape: "square" - }, - // defaults for styled group marks in Vega-Lite - cell: { - fill: "transparent", - stroke: lightGray - } - }, - // defaults for title - title: { - orient: "top", - anchor: "middle", - offset: 4, - subtitlePadding: 3 - }, - // defaults for axes - axis: { - minExtent: 0, - maxExtent: 200, - bandPosition: 0.5, - domain: true, - domainWidth: 1, - domainColor: gray, - grid: false, - gridWidth: 1, - gridColor: lightGray, - labels: true, - labelAngle: 0, - labelLimit: 180, - labelOffset: 0, - labelPadding: 2, - ticks: true, - tickColor: gray, - tickOffset: 0, - tickRound: true, - tickSize: 5, - tickWidth: 1, - titlePadding: 4 - }, - // correction for centering bias - axisBand: { - tickOffset: -0.5 - }, - // defaults for cartographic projection - projection: { - type: "mercator" - }, - // defaults for legends - legend: { - orient: "right", - padding: 0, - gridAlign: "each", - columnPadding: 10, - rowPadding: 2, - symbolDirection: "vertical", - gradientDirection: "vertical", - gradientLength: 200, - gradientThickness: 16, - gradientStrokeColor: lightGray, - gradientStrokeWidth: 0, - gradientLabelOffset: 2, - labelAlign: "left", - labelBaseline: "middle", - labelLimit: 160, - labelOffset: 4, - labelOverlap: true, - symbolLimit: 30, - symbolType: "circle", - symbolSize: 100, - symbolOffset: 0, - symbolStrokeWidth: 1.5, - symbolBaseFillColor: "transparent", - symbolBaseStrokeColor: gray, - titleLimit: 180, - titleOrient: "top", - titlePadding: 5, - layout: { - offset: 18, - direction: "horizontal", - left: { - direction: "vertical" - }, - right: { - direction: "vertical" - } - } - }, - // defaults for scale ranges - range: { - category: { - scheme: "tableau10" - }, - ordinal: { - scheme: "blues" - }, - heatmap: { - scheme: "yellowgreenblue" - }, - ramp: { - scheme: "blues" - }, - diverging: { - scheme: "blueorange", - extent: [ - 1, - 0 - ] - }, - symbol: [ - "circle", - "square", - "triangle-up", - "cross", - "diamond", - "triangle-right", - "triangle-down", - "triangle-left" - ] - } - }; -} -function parse(spec, config, options) { - if (!(0, _vegaUtil.isObject)(spec)) (0, _vegaUtil.error)("Input Vega specification must be an object."); - config = (0, _vegaUtil.mergeConfig)(defaults(), config, spec.config); - return parseView(spec, new Scope(config, options)).toRuntime(); -} - -},{"vega-util":"bApja","vega-functions":"iuqsd","vega-event-selector":"fFzhr","vega-scale":"bEydG","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"fFzhr":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "parseSelector", ()=>eventSelector); -const VIEW = "view", LBRACK = "[", RBRACK = "]", LBRACE = "{", RBRACE = "}", COLON = ":", COMMA = ",", NAME = "@", GT = ">", ILLEGAL = /[[\]{}]/, DEFAULT_MARKS = { - "*": 1, - arc: 1, - area: 1, - group: 1, - image: 1, - line: 1, - path: 1, - rect: 1, - rule: 1, - shape: 1, - symbol: 1, - text: 1, - trail: 1 -}; -let DEFAULT_SOURCE, MARKS; -/** - * Parse an event selector string. - * Returns an array of event stream definitions. - */ function eventSelector(selector, source, marks) { - DEFAULT_SOURCE = source || VIEW; - MARKS = marks || DEFAULT_MARKS; - return parseMerge(selector.trim()).map(parseSelector); -} -function isMarkType(type) { - return MARKS[type]; -} -function find(s, i, endChar, pushChar, popChar) { - const n = s.length; - let count = 0, c; - for(; i < n; ++i){ - c = s[i]; - if (!count && c === endChar) return i; - else if (popChar && popChar.indexOf(c) >= 0) --count; - else if (pushChar && pushChar.indexOf(c) >= 0) ++count; - } - return i; -} -function parseMerge(s) { - const output = [], n = s.length; - let start = 0, i = 0; - while(i < n){ - i = find(s, i, COMMA, LBRACK + LBRACE, RBRACK + RBRACE); - output.push(s.substring(start, i).trim()); - start = ++i; - } - if (output.length === 0) throw "Empty event selector: " + s; - return output; -} -function parseSelector(s) { - return s[0] === "[" ? parseBetween(s) : parseStream(s); -} -function parseBetween(s) { - const n = s.length; - let i = 1, b; - i = find(s, i, RBRACK, LBRACK, RBRACK); - if (i === n) throw "Empty between selector: " + s; - b = parseMerge(s.substring(1, i)); - if (b.length !== 2) throw "Between selector must have two elements: " + s; - s = s.slice(i + 1).trim(); - if (s[0] !== GT) throw "Expected '>' after between selector: " + s; - b = b.map(parseSelector); - const stream = parseSelector(s.slice(1).trim()); - if (stream.between) return { - between: b, - stream: stream - }; - else stream.between = b; - return stream; -} -function parseStream(s) { - const stream = { - source: DEFAULT_SOURCE - }, source = []; - let throttle = [ - 0, - 0 - ], markname = 0, start = 0, n = s.length, i = 0, j, filter; // extract throttle from end - if (s[n - 1] === RBRACE) { - i = s.lastIndexOf(LBRACE); - if (i >= 0) { - try { - throttle = parseThrottle(s.substring(i + 1, n - 1)); - } catch (e) { - throw "Invalid throttle specification: " + s; - } - s = s.slice(0, i).trim(); - n = s.length; - } else throw "Unmatched right brace: " + s; - i = 0; - } - if (!n) throw s; // set name flag based on first char - if (s[0] === NAME) markname = ++i; // extract first part of multi-part stream selector - j = find(s, i, COLON); - if (j < n) { - source.push(s.substring(start, j).trim()); - start = i = ++j; - } // extract remaining part of stream selector - i = find(s, i, LBRACK); - if (i === n) source.push(s.substring(start, n).trim()); - else { - source.push(s.substring(start, i).trim()); - filter = []; - start = ++i; - if (start === n) throw "Unmatched left bracket: " + s; - } // extract filters - while(i < n){ - i = find(s, i, RBRACK); - if (i === n) throw "Unmatched left bracket: " + s; - filter.push(s.substring(start, i).trim()); - if (i < n - 1 && s[++i] !== LBRACK) throw "Expected left bracket: " + s; - start = ++i; - } // marshall event stream specification - if (!(n = source.length) || ILLEGAL.test(source[n - 1])) throw "Invalid event selector: " + s; - if (n > 1) { - stream.type = source[1]; - if (markname) stream.markname = source[0].slice(1); - else if (isMarkType(source[0])) stream.marktype = source[0]; - else stream.source = source[0]; - } else stream.type = source[0]; - if (stream.type.slice(-1) === "!") { - stream.consume = true; - stream.type = stream.type.slice(0, -1); - } - if (filter != null) stream.filter = filter; - if (throttle[0]) stream.throttle = throttle[0]; - if (throttle[1]) stream.debounce = throttle[1]; - return stream; -} -function parseThrottle(s) { - const a = s.split(COMMA); - if (!s.length || a.length > 2) throw s; - return a.map((_)=>{ - const x = +_; - if (x !== x) throw s; - return x; - }); -} - -},{"@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"2l1no":[function(require,module,exports) { -var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); -parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "ASTNode", ()=>ASTNode); -parcelHelpers.export(exports, "ArrayExpression", ()=>ArrayExpression); -parcelHelpers.export(exports, "BinaryExpression", ()=>BinaryExpression); -parcelHelpers.export(exports, "CallExpression", ()=>CallExpression); -parcelHelpers.export(exports, "ConditionalExpression", ()=>ConditionalExpression); -parcelHelpers.export(exports, "Identifier", ()=>Identifier); -parcelHelpers.export(exports, "Literal", ()=>Literal); -parcelHelpers.export(exports, "LogicalExpression", ()=>LogicalExpression); -parcelHelpers.export(exports, "MemberExpression", ()=>MemberExpression); -parcelHelpers.export(exports, "ObjectExpression", ()=>ObjectExpression); -parcelHelpers.export(exports, "Property", ()=>Property); -parcelHelpers.export(exports, "RawCode", ()=>RawCode); -parcelHelpers.export(exports, "UnaryExpression", ()=>UnaryExpression); -parcelHelpers.export(exports, "codegen", ()=>codegen); -parcelHelpers.export(exports, "constants", ()=>Constants); -parcelHelpers.export(exports, "functions", ()=>Functions); -parcelHelpers.export(exports, "parse", ()=>parser); -var _vegaUtil = require("vega-util"); -const RawCode = "RawCode"; -const Literal = "Literal"; -const Property = "Property"; -const Identifier = "Identifier"; -const ArrayExpression = "ArrayExpression"; -const BinaryExpression = "BinaryExpression"; -const CallExpression = "CallExpression"; -const ConditionalExpression = "ConditionalExpression"; -const LogicalExpression = "LogicalExpression"; -const MemberExpression = "MemberExpression"; -const ObjectExpression = "ObjectExpression"; -const UnaryExpression = "UnaryExpression"; -function ASTNode(type) { - this.type = type; -} -ASTNode.prototype.visit = function(visitor) { - let c, i, n; - if (visitor(this)) return 1; - for(c = children(this), i = 0, n = c.length; i < n; ++i){ - if (c[i].visit(visitor)) return 1; - } -}; -function children(node) { - switch(node.type){ - case ArrayExpression: - return node.elements; - case BinaryExpression: - case LogicalExpression: - return [ - node.left, - node.right - ]; - case CallExpression: - return [ - node.callee - ].concat(node.arguments); - case ConditionalExpression: - return [ - node.test, - node.consequent, - node.alternate - ]; - case MemberExpression: - return [ - node.object, - node.property - ]; - case ObjectExpression: - return node.properties; - case Property: - return [ - node.key, - node.value - ]; - case UnaryExpression: - return [ - node.argument - ]; - case Identifier: - case Literal: - case RawCode: - default: - return []; - } -} -/* - The following expression parser is based on Esprima (http://esprima.org/). - Original header comment and license for Esprima is included here: - - Copyright (C) 2013 Ariya Hidayat - Copyright (C) 2013 Thaddee Tyl - Copyright (C) 2013 Mathias Bynens - Copyright (C) 2012 Ariya Hidayat - Copyright (C) 2012 Mathias Bynens - Copyright (C) 2012 Joost-Wim Boekesteijn - Copyright (C) 2012 Kris Kowal - Copyright (C) 2012 Yusuke Suzuki - Copyright (C) 2012 Arpad Borsos - Copyright (C) 2011 Ariya Hidayat - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ var TokenName, source, index, length, lookahead; -var TokenBooleanLiteral = 1, TokenEOF = 2, TokenIdentifier = 3, TokenKeyword = 4, TokenNullLiteral = 5, TokenNumericLiteral = 6, TokenPunctuator = 7, TokenStringLiteral = 8, TokenRegularExpression = 9; -TokenName = {}; -TokenName[TokenBooleanLiteral] = "Boolean"; -TokenName[TokenEOF] = ""; -TokenName[TokenIdentifier] = "Identifier"; -TokenName[TokenKeyword] = "Keyword"; -TokenName[TokenNullLiteral] = "Null"; -TokenName[TokenNumericLiteral] = "Numeric"; -TokenName[TokenPunctuator] = "Punctuator"; -TokenName[TokenStringLiteral] = "String"; -TokenName[TokenRegularExpression] = "RegularExpression"; -var SyntaxArrayExpression = "ArrayExpression", SyntaxBinaryExpression = "BinaryExpression", SyntaxCallExpression = "CallExpression", SyntaxConditionalExpression = "ConditionalExpression", SyntaxIdentifier = "Identifier", SyntaxLiteral = "Literal", SyntaxLogicalExpression = "LogicalExpression", SyntaxMemberExpression = "MemberExpression", SyntaxObjectExpression = "ObjectExpression", SyntaxProperty = "Property", SyntaxUnaryExpression = "UnaryExpression"; // Error messages should be identical to V8. -var MessageUnexpectedToken = "Unexpected token %0", MessageUnexpectedNumber = "Unexpected number", MessageUnexpectedString = "Unexpected string", MessageUnexpectedIdentifier = "Unexpected identifier", MessageUnexpectedReserved = "Unexpected reserved word", MessageUnexpectedEOS = "Unexpected end of input", MessageInvalidRegExp = "Invalid regular expression", MessageUnterminatedRegExp = "Invalid regular expression: missing /", MessageStrictOctalLiteral = "Octal literals are not allowed in strict mode.", MessageStrictDuplicateProperty = "Duplicate data property in object literal not allowed in strict mode"; -var ILLEGAL = "ILLEGAL", DISABLED = "Disabled."; // See also tools/generate-unicode-regex.py. -var RegexNonAsciiIdentifierStart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), // eslint-disable-next-line no-misleading-character-class -RegexNonAsciiIdentifierPart = new RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"); // Ensure the condition is true, otherwise throw an error. -// This is only to have a better contract semantic, i.e. another safety net -// to catch a logic error. The condition shall be fulfilled in normal case. -// Do NOT use this to enforce a certain condition on any user input. -function assert(condition, message) { - /* istanbul ignore next */ if (!condition) throw new Error("ASSERT: " + message); -} -function isDecimalDigit(ch) { - return ch >= 0x30 && ch <= 0x39; // 0..9 -} -function isHexDigit(ch) { - return "0123456789abcdefABCDEF".indexOf(ch) >= 0; -} -function isOctalDigit(ch) { - return "01234567".indexOf(ch) >= 0; -} // 7.2 White Space -function isWhiteSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0B || ch === 0x0C || ch === 0xA0 || ch >= 0x1680 && [ - 0x1680, - 0x180E, - 0x2000, - 0x2001, - 0x2002, - 0x2003, - 0x2004, - 0x2005, - 0x2006, - 0x2007, - 0x2008, - 0x2009, - 0x200A, - 0x202F, - 0x205F, - 0x3000, - 0xFEFF - ].indexOf(ch) >= 0; -} // 7.3 Line Terminators -function isLineTerminator(ch) { - return ch === 0x0A || ch === 0x0D || ch === 0x2028 || ch === 0x2029; -} // 7.6 Identifier Names and Identifiers -function isIdentifierStart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierStart.test(String.fromCharCode(ch)); -} -function isIdentifierPart(ch) { - return ch === 0x24 || ch === 0x5F || ch >= 0x41 && ch <= 0x5A || ch >= 0x61 && ch <= 0x7A || ch >= 0x30 && ch <= 0x39 || ch === 0x5C || ch >= 0x80 && RegexNonAsciiIdentifierPart.test(String.fromCharCode(ch)); -} // 7.6.1.1 Keywords -const keywords = { - "if": 1, - "in": 1, - "do": 1, - "var": 1, - "for": 1, - "new": 1, - "try": 1, - "let": 1, - "this": 1, - "else": 1, - "case": 1, - "void": 1, - "with": 1, - "enum": 1, - "while": 1, - "break": 1, - "catch": 1, - "throw": 1, - "const": 1, - "yield": 1, - "class": 1, - "super": 1, - "return": 1, - "typeof": 1, - "delete": 1, - "switch": 1, - "export": 1, - "import": 1, - "public": 1, - "static": 1, - "default": 1, - "finally": 1, - "extends": 1, - "package": 1, - "private": 1, - "function": 1, - "continue": 1, - "debugger": 1, - "interface": 1, - "protected": 1, - "instanceof": 1, - "implements": 1 -}; -function skipComment() { - while(index < length){ - const ch = source.charCodeAt(index); - if (isWhiteSpace(ch) || isLineTerminator(ch)) ++index; - else break; - } -} -function scanHexEscape(prefix) { - var i, len, ch, code = 0; - len = prefix === "u" ? 4 : 2; - for(i = 0; i < len; ++i)if (index < length && isHexDigit(source[index])) { - ch = source[index++]; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } else throwError({}, MessageUnexpectedToken, ILLEGAL); - return String.fromCharCode(code); -} -function scanUnicodeCodePointEscape() { - var ch, code, cu1, cu2; - ch = source[index]; - code = 0; // At least, one hex digit is required. - if (ch === "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - while(index < length){ - ch = source[index++]; - if (!isHexDigit(ch)) break; - code = code * 16 + "0123456789abcdef".indexOf(ch.toLowerCase()); - } - if (code > 0x10FFFF || ch !== "}") throwError({}, MessageUnexpectedToken, ILLEGAL); - // UTF-16 Encoding - if (code <= 0xFFFF) return String.fromCharCode(code); - cu1 = (code - 0x10000 >> 10) + 0xD800; - cu2 = (code - 0x10000 & 1023) + 0xDC00; - return String.fromCharCode(cu1, cu2); -} -function getEscapedIdentifier() { - var ch, id; - ch = source.charCodeAt(index++); - id = String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierStart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id = ch; - } - while(index < length){ - ch = source.charCodeAt(index); - if (!isIdentifierPart(ch)) break; - ++index; - id += String.fromCharCode(ch); // '\u' (U+005C, U+0075) denotes an escaped character. - if (ch === 0x5C) { - id = id.substr(0, id.length - 1); - if (source.charCodeAt(index) !== 0x75) throwError({}, MessageUnexpectedToken, ILLEGAL); - ++index; - ch = scanHexEscape("u"); - if (!ch || ch === "\\" || !isIdentifierPart(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - id += ch; - } - } - return id; -} -function getIdentifier() { - var start, ch; - start = index++; - while(index < length){ - ch = source.charCodeAt(index); - if (ch === 0x5C) { - // Blackslash (U+005C) marks Unicode escape sequence. - index = start; - return getEscapedIdentifier(); - } - if (isIdentifierPart(ch)) ++index; - else break; - } - return source.slice(start, index); -} -function scanIdentifier() { - var start, id, type; - start = index; // Backslash (U+005C) starts an escaped character. - id = source.charCodeAt(index) === 0x5C ? getEscapedIdentifier() : getIdentifier(); // There is no keyword or literal with only one character. - // Thus, it must be an identifier. - if (id.length === 1) type = TokenIdentifier; - else if (keywords.hasOwnProperty(id)) // eslint-disable-line no-prototype-builtins - type = TokenKeyword; - else if (id === "null") type = TokenNullLiteral; - else if (id === "true" || id === "false") type = TokenBooleanLiteral; - else type = TokenIdentifier; - return { - type: type, - value: id, - start: start, - end: index - }; -} // 7.7 Punctuators -function scanPunctuator() { - var start = index, code = source.charCodeAt(index), code2, ch1 = source[index], ch2, ch3, ch4; - switch(code){ - // Check for most common single-character punctuators. - case 0x2E: - case 0x28: - case 0x29: - case 0x3B: - case 0x2C: - case 0x7B: - case 0x7D: - case 0x5B: - case 0x5D: - case 0x3A: - case 0x3F: - case 0x7E: - // ~ - ++index; - return { - type: TokenPunctuator, - value: String.fromCharCode(code), - start: start, - end: index - }; - default: - code2 = source.charCodeAt(index + 1); // '=' (U+003D) marks an assignment or comparison operator. - if (code2 === 0x3D) switch(code){ - case 0x2B: - case 0x2D: - case 0x2F: - case 0x3C: - case 0x3E: - case 0x5E: - case 0x7C: - case 0x25: - case 0x26: - case 0x2A: - // * - index += 2; - return { - type: TokenPunctuator, - value: String.fromCharCode(code) + String.fromCharCode(code2), - start: start, - end: index - }; - case 0x21: - case 0x3D: - // = - index += 2; // !== and === - if (source.charCodeAt(index) === 0x3D) ++index; - return { - type: TokenPunctuator, - value: source.slice(start, index), - start: start, - end: index - }; - } - } // 4-character punctuator: >>>= - ch4 = source.substr(index, 4); - if (ch4 === ">>>=") { - index += 4; - return { - type: TokenPunctuator, - value: ch4, - start: start, - end: index - }; - } // 3-character punctuators: === !== >>> <<= >>= - ch3 = ch4.substr(0, 3); - if (ch3 === ">>>" || ch3 === "<<=" || ch3 === ">>=") { - index += 3; - return { - type: TokenPunctuator, - value: ch3, - start: start, - end: index - }; - } // Other 2-character punctuators: ++ -- << >> && || - ch2 = ch3.substr(0, 2); - if (ch1 === ch2[1] && "+-<>&|".indexOf(ch1) >= 0 || ch2 === "=>") { - index += 2; - return { - type: TokenPunctuator, - value: ch2, - start: start, - end: index - }; - } - if (ch2 === "//") throwError({}, MessageUnexpectedToken, ILLEGAL); - // 1-character punctuators: < > = ! + - * % & | ^ / - if ("<>=!+-*%&|^/".indexOf(ch1) >= 0) { - ++index; - return { - type: TokenPunctuator, - value: ch1, - start: start, - end: index - }; - } - throwError({}, MessageUnexpectedToken, ILLEGAL); -} // 7.8.3 Numeric Literals -function scanHexLiteral(start) { - let number = ""; - while(index < length){ - if (!isHexDigit(source[index])) break; - number += source[index++]; - } - if (number.length === 0) throwError({}, MessageUnexpectedToken, ILLEGAL); - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt("0x" + number, 16), - start: start, - end: index - }; -} -function scanOctalLiteral(start) { - let number = "0" + source[index++]; - while(index < length){ - if (!isOctalDigit(source[index])) break; - number += source[index++]; - } - if (isIdentifierStart(source.charCodeAt(index)) || isDecimalDigit(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseInt(number, 8), - octal: true, - start: start, - end: index - }; -} -function scanNumericLiteral() { - var number, start, ch; - ch = source[index]; - assert(isDecimalDigit(ch.charCodeAt(0)) || ch === ".", "Numeric literal must start with a decimal digit or a decimal point"); - start = index; - number = ""; - if (ch !== ".") { - number = source[index++]; - ch = source[index]; // Hex number starts with '0x'. - // Octal number starts with '0'. - if (number === "0") { - if (ch === "x" || ch === "X") { - ++index; - return scanHexLiteral(start); - } - if (isOctalDigit(ch)) return scanOctalLiteral(start); - // decimal number starts with '0' such as '09' is illegal. - if (ch && isDecimalDigit(ch.charCodeAt(0))) throwError({}, MessageUnexpectedToken, ILLEGAL); - } - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === ".") { - number += source[index++]; - while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - ch = source[index]; - } - if (ch === "e" || ch === "E") { - number += source[index++]; - ch = source[index]; - if (ch === "+" || ch === "-") number += source[index++]; - if (isDecimalDigit(source.charCodeAt(index))) while(isDecimalDigit(source.charCodeAt(index)))number += source[index++]; - else throwError({}, MessageUnexpectedToken, ILLEGAL); - } - if (isIdentifierStart(source.charCodeAt(index))) throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenNumericLiteral, - value: parseFloat(number), - start: start, - end: index - }; -} // 7.8.4 String Literals -function scanStringLiteral() { - var str = "", quote, start, ch, code, octal = false; - quote = source[index]; - assert(quote === "'" || quote === '"', "String literal must starts with a quote"); - start = index; - ++index; - while(index < length){ - ch = source[index++]; - if (ch === quote) { - quote = ""; - break; - } else if (ch === "\\") { - ch = source[index++]; - if (!ch || !isLineTerminator(ch.charCodeAt(0))) switch(ch){ - case "u": - case "x": - if (source[index] === "{") { - ++index; - str += scanUnicodeCodePointEscape(); - } else str += scanHexEscape(ch); - break; - case "n": - str += "\n"; - break; - case "r": - str += "\r"; - break; - case "t": - str += " "; - break; - case "b": - str += "\b"; - break; - case "f": - str += "\f"; - break; - case "v": - str += "\v"; - break; - default: - if (isOctalDigit(ch)) { - code = "01234567".indexOf(ch); // \0 is not octal escape sequence - if (code !== 0) octal = true; - if (index < length && isOctalDigit(source[index])) { - octal = true; - code = code * 8 + "01234567".indexOf(source[index++]); // 3 digits are only allowed when string starts - // with 0, 1, 2, 3 - if ("0123".indexOf(ch) >= 0 && index < length && isOctalDigit(source[index])) code = code * 8 + "01234567".indexOf(source[index++]); - } - str += String.fromCharCode(code); - } else str += ch; - break; - } - else if (ch === "\r" && source[index] === "\n") ++index; - } else if (isLineTerminator(ch.charCodeAt(0))) break; - else str += ch; - } - if (quote !== "") throwError({}, MessageUnexpectedToken, ILLEGAL); - return { - type: TokenStringLiteral, - value: str, - octal: octal, - start: start, - end: index - }; -} -function testRegExp(pattern, flags) { - let tmp = pattern; - if (flags.indexOf("u") >= 0) // Replace each astral symbol and every Unicode code point - // escape sequence with a single ASCII symbol to avoid throwing on - // regular expressions that are only valid in combination with the - // `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it - // would be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, ($0, $1)=>{ - if (parseInt($1, 16) <= 0x10FFFF) return "x"; - throwError({}, MessageInvalidRegExp); - }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - // First, detect invalid regular expressions. - try { - new RegExp(tmp); - } catch (e) { - throwError({}, MessageInvalidRegExp); - } // Return a regular expression object for this pattern-flag pair, or - // `null` in case the current environment doesn't support the flags it - // uses. - try { - return new RegExp(pattern, flags); - } catch (exception) { - return null; - } -} -function scanRegExpBody() { - var ch, str, classMarker, terminated, body; - ch = source[index]; - assert(ch === "/", "Regular expression literal must start with a slash"); - str = source[index++]; - classMarker = false; - terminated = false; - while(index < length){ - ch = source[index++]; - str += ch; - if (ch === "\\") { - ch = source[index++]; // ECMA-262 7.8.5 - if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - str += ch; - } else if (isLineTerminator(ch.charCodeAt(0))) throwError({}, MessageUnterminatedRegExp); - else if (classMarker) { - if (ch === "]") classMarker = false; - } else { - if (ch === "/") { - terminated = true; - break; - } else if (ch === "[") classMarker = true; - } - } - if (!terminated) throwError({}, MessageUnterminatedRegExp); - // Exclude leading and trailing slash. - body = str.substr(1, str.length - 2); - return { - value: body, - literal: str - }; -} -function scanRegExpFlags() { - var ch, str, flags; - str = ""; - flags = ""; - while(index < length){ - ch = source[index]; - if (!isIdentifierPart(ch.charCodeAt(0))) break; - ++index; - if (ch === "\\" && index < length) throwError({}, MessageUnexpectedToken, ILLEGAL); - else { - flags += ch; - str += ch; - } - } - if (flags.search(/[^gimuy]/g) >= 0) throwError({}, MessageInvalidRegExp, flags); - return { - value: flags, - literal: str - }; -} -function scanRegExp() { - var start, body, flags, value; - lookahead = null; - skipComment(); - start = index; - body = scanRegExpBody(); - flags = scanRegExpFlags(); - value = testRegExp(body.value, flags.value); - return { - literal: body.literal + flags.literal, - value: value, - regex: { - pattern: body.value, - flags: flags.value - }, - start: start, - end: index - }; -} -function isIdentifierName(token) { - return token.type === TokenIdentifier || token.type === TokenKeyword || token.type === TokenBooleanLiteral || token.type === TokenNullLiteral; -} -function advance() { - skipComment(); - if (index >= length) return { - type: TokenEOF, - start: index, - end: index - }; - const ch = source.charCodeAt(index); - if (isIdentifierStart(ch)) return scanIdentifier(); - // Very common: ( and ) and ; - if (ch === 0x28 || ch === 0x29 || ch === 0x3B) return scanPunctuator(); - // String literal starts with single quote (U+0027) or double quote (U+0022). - if (ch === 0x27 || ch === 0x22) return scanStringLiteral(); - // Dot (.) U+002E can also start a floating-point number, hence the need - // to check the next character. - if (ch === 0x2E) { - if (isDecimalDigit(source.charCodeAt(index + 1))) return scanNumericLiteral(); - return scanPunctuator(); - } - if (isDecimalDigit(ch)) return scanNumericLiteral(); - return scanPunctuator(); -} -function lex() { - const token = lookahead; - index = token.end; - lookahead = advance(); - index = token.end; - return token; -} -function peek() { - const pos = index; - lookahead = advance(); - index = pos; -} -function finishArrayExpression(elements) { - const node = new ASTNode(SyntaxArrayExpression); - node.elements = elements; - return node; -} -function finishBinaryExpression(operator, left, right) { - const node = new ASTNode(operator === "||" || operator === "&&" ? SyntaxLogicalExpression : SyntaxBinaryExpression); - node.operator = operator; - node.left = left; - node.right = right; - return node; -} -function finishCallExpression(callee, args) { - const node = new ASTNode(SyntaxCallExpression); - node.callee = callee; - node.arguments = args; - return node; -} -function finishConditionalExpression(test, consequent, alternate) { - const node = new ASTNode(SyntaxConditionalExpression); - node.test = test; - node.consequent = consequent; - node.alternate = alternate; - return node; -} -function finishIdentifier(name) { - const node = new ASTNode(SyntaxIdentifier); - node.name = name; - return node; -} -function finishLiteral(token) { - const node = new ASTNode(SyntaxLiteral); - node.value = token.value; - node.raw = source.slice(token.start, token.end); - if (token.regex) { - if (node.raw === "//") node.raw = "/(?:)/"; - node.regex = token.regex; - } - return node; -} -function finishMemberExpression(accessor, object, property) { - const node = new ASTNode(SyntaxMemberExpression); - node.computed = accessor === "["; - node.object = object; - node.property = property; - if (!node.computed) property.member = true; - return node; -} -function finishObjectExpression(properties) { - const node = new ASTNode(SyntaxObjectExpression); - node.properties = properties; - return node; -} -function finishProperty(kind, key, value) { - const node = new ASTNode(SyntaxProperty); - node.key = key; - node.value = value; - node.kind = kind; - return node; -} -function finishUnaryExpression(operator, argument) { - const node = new ASTNode(SyntaxUnaryExpression); - node.operator = operator; - node.argument = argument; - node.prefix = true; - return node; -} // Throw an exception -function throwError(token, messageFormat) { - var error, args = Array.prototype.slice.call(arguments, 2), msg = messageFormat.replace(/%(\d)/g, (whole, index)=>{ - assert(index < args.length, "Message reference must be in range"); - return args[index]; - }); - error = new Error(msg); - error.index = index; - error.description = msg; - throw error; -} // Throw an exception because of the token. -function throwUnexpected(token) { - if (token.type === TokenEOF) throwError(token, MessageUnexpectedEOS); - if (token.type === TokenNumericLiteral) throwError(token, MessageUnexpectedNumber); - if (token.type === TokenStringLiteral) throwError(token, MessageUnexpectedString); - if (token.type === TokenIdentifier) throwError(token, MessageUnexpectedIdentifier); - if (token.type === TokenKeyword) throwError(token, MessageUnexpectedReserved); - // BooleanLiteral, NullLiteral, or Punctuator. - throwError(token, MessageUnexpectedToken, token.value); -} // Expect the next token to match the specified punctuator. -// If not, an exception will be thrown. -function expect(value) { - const token = lex(); - if (token.type !== TokenPunctuator || token.value !== value) throwUnexpected(token); -} // Return true if the next token matches the specified punctuator. -function match(value) { - return lookahead.type === TokenPunctuator && lookahead.value === value; -} // Return true if the next token matches the specified keyword -function matchKeyword(keyword) { - return lookahead.type === TokenKeyword && lookahead.value === keyword; -} // 11.1.4 Array Initialiser -function parseArrayInitialiser() { - const elements = []; - index = lookahead.start; - expect("["); - while(!match("]"))if (match(",")) { - lex(); - elements.push(null); - } else { - elements.push(parseConditionalExpression()); - if (!match("]")) expect(","); - } - lex(); - return finishArrayExpression(elements); -} // 11.1.5 Object Initialiser -function parseObjectPropertyKey() { - index = lookahead.start; - const token = lex(); // Note: This function is called only from parseObjectProperty(), where - // EOF and Punctuator tokens are already filtered out. - if (token.type === TokenStringLiteral || token.type === TokenNumericLiteral) { - if (token.octal) throwError(token, MessageStrictOctalLiteral); - return finishLiteral(token); - } - return finishIdentifier(token.value); -} -function parseObjectProperty() { - var token, key, id, value; - index = lookahead.start; - token = lookahead; - if (token.type === TokenIdentifier) { - id = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", id, value); - } - if (token.type === TokenEOF || token.type === TokenPunctuator) throwUnexpected(token); - else { - key = parseObjectPropertyKey(); - expect(":"); - value = parseConditionalExpression(); - return finishProperty("init", key, value); - } -} -function parseObjectInitialiser() { - var properties = [], property, name, key, map = {}, toString = String; - index = lookahead.start; - expect("{"); - while(!match("}")){ - property = parseObjectProperty(); - if (property.key.type === SyntaxIdentifier) name = property.key.name; - else name = toString(property.key.value); - key = "$" + name; - if (Object.prototype.hasOwnProperty.call(map, key)) throwError({}, MessageStrictDuplicateProperty); - else map[key] = true; - properties.push(property); - if (!match("}")) expect(","); - } - expect("}"); - return finishObjectExpression(properties); -} // 11.1.6 The Grouping Operator -function parseGroupExpression() { - expect("("); - const expr = parseExpression(); - expect(")"); - return expr; -} // 11.1 Primary Expressions -const legalKeywords = { - "if": 1 -}; -function parsePrimaryExpression() { - var type, token, expr; - if (match("(")) return parseGroupExpression(); - if (match("[")) return parseArrayInitialiser(); - if (match("{")) return parseObjectInitialiser(); - type = lookahead.type; - index = lookahead.start; - if (type === TokenIdentifier || legalKeywords[lookahead.value]) expr = finishIdentifier(lex().value); - else if (type === TokenStringLiteral || type === TokenNumericLiteral) { - if (lookahead.octal) throwError(lookahead, MessageStrictOctalLiteral); - expr = finishLiteral(lex()); - } else if (type === TokenKeyword) throw new Error(DISABLED); - else if (type === TokenBooleanLiteral) { - token = lex(); - token.value = token.value === "true"; - expr = finishLiteral(token); - } else if (type === TokenNullLiteral) { - token = lex(); - token.value = null; - expr = finishLiteral(token); - } else if (match("/") || match("/=")) { - expr = finishLiteral(scanRegExp()); - peek(); - } else throwUnexpected(lex()); - return expr; -} // 11.2 Left-Hand-Side Expressions -function parseArguments() { - const args = []; - expect("("); - if (!match(")")) while(index < length){ - args.push(parseConditionalExpression()); - if (match(")")) break; - expect(","); - } - expect(")"); - return args; -} -function parseNonComputedProperty() { - index = lookahead.start; - const token = lex(); - if (!isIdentifierName(token)) throwUnexpected(token); - return finishIdentifier(token.value); -} -function parseNonComputedMember() { - expect("."); - return parseNonComputedProperty(); -} -function parseComputedMember() { - expect("["); - const expr = parseExpression(); - expect("]"); - return expr; -} -function parseLeftHandSideExpressionAllowCall() { - var expr, args, property; - expr = parsePrimaryExpression(); - for(;;){ - if (match(".")) { - property = parseNonComputedMember(); - expr = finishMemberExpression(".", expr, property); - } else if (match("(")) { - args = parseArguments(); - expr = finishCallExpression(expr, args); - } else if (match("[")) { - property = parseComputedMember(); - expr = finishMemberExpression("[", expr, property); - } else break; - } - return expr; -} // 11.3 Postfix Expressions -function parsePostfixExpression() { - const expr = parseLeftHandSideExpressionAllowCall(); - if (lookahead.type === TokenPunctuator) { - if (match("++") || match("--")) throw new Error(DISABLED); - } - return expr; -} // 11.4 Unary Operators -function parseUnaryExpression() { - var token, expr; - if (lookahead.type !== TokenPunctuator && lookahead.type !== TokenKeyword) expr = parsePostfixExpression(); - else if (match("++") || match("--")) throw new Error(DISABLED); - else if (match("+") || match("-") || match("~") || match("!")) { - token = lex(); - expr = parseUnaryExpression(); - expr = finishUnaryExpression(token.value, expr); - } else if (matchKeyword("delete") || matchKeyword("void") || matchKeyword("typeof")) throw new Error(DISABLED); - else expr = parsePostfixExpression(); - return expr; -} -function binaryPrecedence(token) { - let prec = 0; - if (token.type !== TokenPunctuator && token.type !== TokenKeyword) return 0; - switch(token.value){ - case "||": - prec = 1; - break; - case "&&": - prec = 2; - break; - case "|": - prec = 3; - break; - case "^": - prec = 4; - break; - case "&": - prec = 5; - break; - case "==": - case "!=": - case "===": - case "!==": - prec = 6; - break; - case "<": - case ">": - case "<=": - case ">=": - case "instanceof": - case "in": - prec = 7; - break; - case "<<": - case ">>": - case ">>>": - prec = 8; - break; - case "+": - case "-": - prec = 9; - break; - case "*": - case "/": - case "%": - prec = 11; - break; - } - return prec; -} // 11.5 Multiplicative Operators -// 11.6 Additive Operators -// 11.7 Bitwise Shift Operators -// 11.8 Relational Operators -// 11.9 Equality Operators -// 11.10 Binary Bitwise Operators -// 11.11 Binary Logical Operators -function parseBinaryExpression() { - var marker, markers, expr, token, prec, stack, right, operator, left, i; - marker = lookahead; - left = parseUnaryExpression(); - token = lookahead; - prec = binaryPrecedence(token); - if (prec === 0) return left; - token.prec = prec; - lex(); - markers = [ - marker, - lookahead - ]; - right = parseUnaryExpression(); - stack = [ - left, - token, - right - ]; - while((prec = binaryPrecedence(lookahead)) > 0){ - // Reduce: make a binary expression from the three topmost entries. - while(stack.length > 2 && prec <= stack[stack.length - 2].prec){ - right = stack.pop(); - operator = stack.pop().value; - left = stack.pop(); - markers.pop(); - expr = finishBinaryExpression(operator, left, right); - stack.push(expr); - } // Shift. - token = lex(); - token.prec = prec; - stack.push(token); - markers.push(lookahead); - expr = parseUnaryExpression(); - stack.push(expr); - } // Final reduce to clean-up the stack. - i = stack.length - 1; - expr = stack[i]; - markers.pop(); - while(i > 1){ - markers.pop(); - expr = finishBinaryExpression(stack[i - 1].value, stack[i - 2], expr); - i -= 2; - } - return expr; -} // 11.12 Conditional Operator -function parseConditionalExpression() { - var expr, consequent, alternate; - expr = parseBinaryExpression(); - if (match("?")) { - lex(); - consequent = parseConditionalExpression(); - expect(":"); - alternate = parseConditionalExpression(); - expr = finishConditionalExpression(expr, consequent, alternate); + if (!this.events[key]) { + const id = this.id(); + this.streams.push({ + id: id, + source: source, + type: type + }); + this.events[key] = id; + } + return this.events[key]; + }, + // ---- + hasOwnSignal (name) { + return (0, _vegaUtil.hasOwnProperty)(this.signals, name); + }, + addSignal (name, value) { + if (this.hasOwnSignal(name)) (0, _vegaUtil.error)("Duplicate signal name: " + (0, _vegaUtil.stringValue)(name)); + const op = value instanceof Entry ? value : this.add(operator(value)); + return this.signals[name] = op; + }, + getSignal (name) { + if (!this.signals[name]) (0, _vegaUtil.error)("Unrecognized signal name: " + (0, _vegaUtil.stringValue)(name)); + return this.signals[name]; + }, + signalRef (s) { + if (this.signals[s]) return ref(this.signals[s]); + else if (!(0, _vegaUtil.hasOwnProperty)(this.lambdas, s)) this.lambdas[s] = this.add(operator(null)); + return ref(this.lambdas[s]); + }, + parseLambdas () { + const code = Object.keys(this.lambdas); + for(let i = 0, n = code.length; i < n; ++i){ + const s = code[i], e = (0, _vegaFunctions.parseExpression)(s, this), op = this.lambdas[s]; + op.params = e.$params; + op.update = e.$expr; + } + }, + property (spec) { + return spec && spec.signal ? this.signalRef(spec.signal) : spec; + }, + objectProperty (spec) { + return !spec || !(0, _vegaUtil.isObject)(spec) ? spec : this.signalRef(spec.signal || propertyLambda(spec)); + }, + exprRef (code, name) { + const params = { + expr: (0, _vegaFunctions.parseExpression)(code, this) + }; + if (name) params.expr.$name = name; + return ref(this.add(Expression(params))); + }, + addBinding (name, bind) { + if (!this.bindings) (0, _vegaUtil.error)("Nested signals do not support binding: " + (0, _vegaUtil.stringValue)(name)); + this.bindings.push((0, _vegaUtil.extend)({ + signal: name + }, bind)); + }, + // ---- + addScaleProj (name, transform) { + if ((0, _vegaUtil.hasOwnProperty)(this.scales, name)) (0, _vegaUtil.error)("Duplicate scale or projection name: " + (0, _vegaUtil.stringValue)(name)); + this.scales[name] = this.add(transform); + }, + addScale (name, params) { + this.addScaleProj(name, Scale(params)); + }, + addProjection (name, params) { + this.addScaleProj(name, Projection(params)); + }, + getScale (name) { + if (!this.scales[name]) (0, _vegaUtil.error)("Unrecognized scale name: " + (0, _vegaUtil.stringValue)(name)); + return this.scales[name]; + }, + scaleRef (name) { + return ref(this.getScale(name)); + }, + scaleType (name) { + return this.getScale(name).params.type; + }, + projectionRef (name) { + return this.scaleRef(name); + }, + projectionType (name) { + return this.scaleType(name); + }, + // ---- + addData (name, dataScope) { + if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.data[name] = dataScope; + }, + getData (name) { + if (!this.data[name]) (0, _vegaUtil.error)("Undefined data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.data[name]; + }, + addDataPipeline (name, entries) { + if ((0, _vegaUtil.hasOwnProperty)(this.data, name)) (0, _vegaUtil.error)("Duplicate data set name: " + (0, _vegaUtil.stringValue)(name)); + return this.addData(name, DataScope.fromEntries(this, entries)); } - return expr; -} // 11.14 Comma Operator -function parseExpression() { - const expr = parseConditionalExpression(); - if (match(",")) throw new Error(DISABLED); // no sequence expressions - return expr; -} -function parser(code) { - source = code; - index = 0; - length = source.length; - lookahead = null; - peek(); - const expr = parseExpression(); - if (lookahead.type !== TokenEOF) throw new Error("Unexpect token after expression."); - return expr; -} -var Constants = { - NaN: "NaN", - E: "Math.E", - LN2: "Math.LN2", - LN10: "Math.LN10", - LOG2E: "Math.LOG2E", - LOG10E: "Math.LOG10E", - PI: "Math.PI", - SQRT1_2: "Math.SQRT1_2", - SQRT2: "Math.SQRT2", - MIN_VALUE: "Number.MIN_VALUE", - MAX_VALUE: "Number.MAX_VALUE" }; -function Functions(codegen) { - function fncall(name, args, cast, type) { - let obj = codegen(args[0]); - if (cast) { - obj = cast + "(" + obj + ")"; - if (cast.lastIndexOf("new ", 0) === 0) obj = "(" + obj + ")"; - } - return obj + "." + name + (type < 0 ? "" : type === 0 ? "()" : "(" + args.slice(1).map(codegen).join(",") + ")"); +function propertyLambda(spec) { + return ((0, _vegaUtil.isArray)(spec) ? arrayLambda : objectLambda)(spec); +} +function arrayLambda(array) { + const n = array.length; + let code = "["; + for(let i = 0; i < n; ++i){ + const value = array[i]; + code += (i > 0 ? "," : "") + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); } - function fn(name, cast, type) { - return (args)=>fncall(name, args, cast, type); + return code + "]"; +} +function objectLambda(obj) { + let code = "{", i = 0, key, value; + for(key in obj){ + value = obj[key]; + code += (++i > 1 ? "," : "") + (0, _vegaUtil.stringValue)(key) + ":" + ((0, _vegaUtil.isObject)(value) ? value.signal || propertyLambda(value) : (0, _vegaUtil.stringValue)(value)); } - const DATE = "new Date", STRING = "String", REGEXP = "RegExp"; + return code + "}"; +} +/** + * Standard configuration defaults for Vega specification parsing. + * Users can provide their own (sub-)set of these default values + * by passing in a config object to the top-level parse method. + */ function defaults() { + const defaultFont = "sans-serif", defaultSymbolSize = 30, defaultStrokeWidth = 2, defaultColor = "#4c78a8", black = "#000", gray = "#888", lightGray = "#ddd"; return { - // MATH functions - isNaN: "Number.isNaN", - isFinite: "Number.isFinite", - abs: "Math.abs", - acos: "Math.acos", - asin: "Math.asin", - atan: "Math.atan", - atan2: "Math.atan2", - ceil: "Math.ceil", - cos: "Math.cos", - exp: "Math.exp", - floor: "Math.floor", - log: "Math.log", - max: "Math.max", - min: "Math.min", - pow: "Math.pow", - random: "Math.random", - round: "Math.round", - sin: "Math.sin", - sqrt: "Math.sqrt", - tan: "Math.tan", - clamp: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to clamp function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to clamp function."); - const a = args.map(codegen); - return "Math.max(" + a[1] + ", Math.min(" + a[2] + "," + a[0] + "))"; + // default visualization description + description: "Vega visualization", + // default padding around visualization + padding: 0, + // default for automatic sizing; options: 'none', 'pad', 'fit' + // or provide an object (e.g., {'type': 'pad', 'resize': true}) + autosize: "pad", + // default view background color + // covers the entire view component + background: null, + // default event handling configuration + // preventDefault for view-sourced event types except 'wheel' + events: { + defaults: { + allow: [ + "wheel" + ] + } }, - // DATE functions - now: "Date.now", - utc: "Date.UTC", - datetime: DATE, - date: fn("getDate", DATE, 0), - day: fn("getDay", DATE, 0), - year: fn("getFullYear", DATE, 0), - month: fn("getMonth", DATE, 0), - hours: fn("getHours", DATE, 0), - minutes: fn("getMinutes", DATE, 0), - seconds: fn("getSeconds", DATE, 0), - milliseconds: fn("getMilliseconds", DATE, 0), - time: fn("getTime", DATE, 0), - timezoneoffset: fn("getTimezoneOffset", DATE, 0), - utcdate: fn("getUTCDate", DATE, 0), - utcday: fn("getUTCDay", DATE, 0), - utcyear: fn("getUTCFullYear", DATE, 0), - utcmonth: fn("getUTCMonth", DATE, 0), - utchours: fn("getUTCHours", DATE, 0), - utcminutes: fn("getUTCMinutes", DATE, 0), - utcseconds: fn("getUTCSeconds", DATE, 0), - utcmilliseconds: fn("getUTCMilliseconds", DATE, 0), - // sequence functions - length: fn("length", null, -1), - // STRING functions - parseFloat: "parseFloat", - parseInt: "parseInt", - upper: fn("toUpperCase", STRING, 0), - lower: fn("toLowerCase", STRING, 0), - substring: fn("substring", STRING), - split: fn("split", STRING), - trim: fn("trim", STRING, 0), - // REGEXP functions - regexp: REGEXP, - test: fn("test", REGEXP), - // Control Flow functions - if: function(args) { - if (args.length < 3) (0, _vegaUtil.error)("Missing arguments to if function."); - if (args.length > 3) (0, _vegaUtil.error)("Too many arguments to if function."); - const a = args.map(codegen); - return "(" + a[0] + "?" + a[1] + ":" + a[2] + ")"; - } - }; -} -function stripQuotes(s) { - const n = s && s.length - 1; - return n && (s[0] === '"' && s[n] === '"' || s[0] === "'" && s[n] === "'") ? s.slice(1, -1) : s; -} -function codegen(opt) { - opt = opt || {}; - const allowed = opt.allowed ? (0, _vegaUtil.toSet)(opt.allowed) : {}, forbidden = opt.forbidden ? (0, _vegaUtil.toSet)(opt.forbidden) : {}, constants = opt.constants || Constants, functions = (opt.functions || Functions)(visit), globalvar = opt.globalvar, fieldvar = opt.fieldvar, outputGlobal = (0, _vegaUtil.isFunction)(globalvar) ? globalvar : (id)=>"".concat(globalvar, '["').concat(id, '"]'); - let globals = {}, fields = {}, memberDepth = 0; - function visit(ast) { - if ((0, _vegaUtil.isString)(ast)) return ast; - const generator = Generators[ast.type]; - if (generator == null) (0, _vegaUtil.error)("Unsupported type: " + ast.type); - return generator(ast); - } - const Generators = { - Literal: (n)=>n.raw, - Identifier: (n)=>{ - const id = n.name; - if (memberDepth > 0) return id; - else if ((0, _vegaUtil.hasOwnProperty)(forbidden, id)) return (0, _vegaUtil.error)("Illegal identifier: " + id); - else if ((0, _vegaUtil.hasOwnProperty)(constants, id)) return constants[id]; - else if ((0, _vegaUtil.hasOwnProperty)(allowed, id)) return id; - else { - globals[id] = 1; - return outputGlobal(id); + // defaults for top-level group marks + // accepts mark properties (fill, stroke, etc) + // covers the data rectangle within group width/height + group: null, + // defaults for basic mark types + // each subset accepts mark properties (fill, stroke, etc) + mark: null, + arc: { + fill: defaultColor + }, + area: { + fill: defaultColor + }, + image: null, + line: { + stroke: defaultColor, + strokeWidth: defaultStrokeWidth + }, + path: { + stroke: defaultColor + }, + rect: { + fill: defaultColor + }, + rule: { + stroke: black + }, + shape: { + stroke: defaultColor + }, + symbol: { + fill: defaultColor, + size: 64 + }, + text: { + fill: black, + font: defaultFont, + fontSize: 11 + }, + trail: { + fill: defaultColor, + size: defaultStrokeWidth + }, + // style definitions + style: { + // axis & legend labels + "guide-label": { + fill: black, + font: defaultFont, + fontSize: 10 + }, + // axis & legend titles + "guide-title": { + fill: black, + font: defaultFont, + fontSize: 11, + fontWeight: "bold" + }, + // headers, including chart title + "group-title": { + fill: black, + font: defaultFont, + fontSize: 13, + fontWeight: "bold" + }, + // chart subtitle + "group-subtitle": { + fill: black, + font: defaultFont, + fontSize: 12 + }, + // defaults for styled point marks in Vega-Lite + point: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth, + shape: "circle" + }, + circle: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth + }, + square: { + size: defaultSymbolSize, + strokeWidth: defaultStrokeWidth, + shape: "square" + }, + // defaults for styled group marks in Vega-Lite + cell: { + fill: "transparent", + stroke: lightGray } }, - MemberExpression: (n)=>{ - const d = !n.computed, o = visit(n.object); - if (d) memberDepth += 1; - const p = visit(n.property); - if (o === fieldvar) // strip quotes to sanitize field name (#1653) - fields[stripQuotes(p)] = 1; - if (d) memberDepth -= 1; - return o + (d ? "." + p : "[" + p + "]"); + // defaults for title + title: { + orient: "top", + anchor: "middle", + offset: 4, + subtitlePadding: 3 }, - CallExpression: (n)=>{ - if (n.callee.type !== "Identifier") (0, _vegaUtil.error)("Illegal callee type: " + n.callee.type); - const callee = n.callee.name, args = n.arguments, fn = (0, _vegaUtil.hasOwnProperty)(functions, callee) && functions[callee]; - if (!fn) (0, _vegaUtil.error)("Unrecognized function: " + callee); - return (0, _vegaUtil.isFunction)(fn) ? fn(args) : fn + "(" + args.map(visit).join(",") + ")"; + // defaults for axes + axis: { + minExtent: 0, + maxExtent: 200, + bandPosition: 0.5, + domain: true, + domainWidth: 1, + domainColor: gray, + grid: false, + gridWidth: 1, + gridColor: lightGray, + labels: true, + labelAngle: 0, + labelLimit: 180, + labelOffset: 0, + labelPadding: 2, + ticks: true, + tickColor: gray, + tickOffset: 0, + tickRound: true, + tickSize: 5, + tickWidth: 1, + titlePadding: 4 }, - ArrayExpression: (n)=>"[" + n.elements.map(visit).join(",") + "]", - BinaryExpression: (n)=>"(" + visit(n.left) + " " + n.operator + " " + visit(n.right) + ")", - UnaryExpression: (n)=>"(" + n.operator + visit(n.argument) + ")", - ConditionalExpression: (n)=>"(" + visit(n.test) + "?" + visit(n.consequent) + ":" + visit(n.alternate) + ")", - LogicalExpression: (n)=>"(" + visit(n.left) + n.operator + visit(n.right) + ")", - ObjectExpression: (n)=>"{" + n.properties.map(visit).join(",") + "}", - Property: (n)=>{ - memberDepth += 1; - const k = visit(n.key); - memberDepth -= 1; - return k + ":" + visit(n.value); + // correction for centering bias + axisBand: { + tickOffset: -0.5 + }, + // defaults for cartographic projection + projection: { + type: "mercator" + }, + // defaults for legends + legend: { + orient: "right", + padding: 0, + gridAlign: "each", + columnPadding: 10, + rowPadding: 2, + symbolDirection: "vertical", + gradientDirection: "vertical", + gradientLength: 200, + gradientThickness: 16, + gradientStrokeColor: lightGray, + gradientStrokeWidth: 0, + gradientLabelOffset: 2, + labelAlign: "left", + labelBaseline: "middle", + labelLimit: 160, + labelOffset: 4, + labelOverlap: true, + symbolLimit: 30, + symbolType: "circle", + symbolSize: 100, + symbolOffset: 0, + symbolStrokeWidth: 1.5, + symbolBaseFillColor: "transparent", + symbolBaseStrokeColor: gray, + titleLimit: 180, + titleOrient: "top", + titlePadding: 5, + layout: { + offset: 18, + direction: "horizontal", + left: { + direction: "vertical" + }, + right: { + direction: "vertical" + } + } + }, + // defaults for scale ranges + range: { + category: { + scheme: "tableau10" + }, + ordinal: { + scheme: "blues" + }, + heatmap: { + scheme: "yellowgreenblue" + }, + ramp: { + scheme: "blues" + }, + diverging: { + scheme: "blueorange", + extent: [ + 1, + 0 + ] + }, + symbol: [ + "circle", + "square", + "triangle-up", + "cross", + "diamond", + "triangle-right", + "triangle-down", + "triangle-left" + ] } }; - function codegen(ast) { - const result = { - code: visit(ast), - globals: Object.keys(globals), - fields: Object.keys(fields) - }; - globals = {}; - fields = {}; - return result; - } - codegen.functions = functions; - codegen.constants = constants; - return codegen; +} +function parse(spec, config, options) { + if (!(0, _vegaUtil.isObject)(spec)) (0, _vegaUtil.error)("Input Vega specification must be an object."); + config = (0, _vegaUtil.mergeConfig)(defaults(), config, spec.config); + return parseView(spec, new Scope(config, options)).toRuntime(); } -},{"vega-util":"bApja","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gXMNx":[function(require,module,exports) { +},{"vega-util":"bApja","vega-functions":"iuqsd","vega-event-selector":"gXMNx","vega-scale":"bEydG","vega-dataflow":"3NitK","@parcel/transformer-js/src/esmodule-helpers.js":"jA2du"}],"gXMNx":[function(require,module,exports) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); parcelHelpers.defineInteropFlag(exports); -parcelHelpers.export(exports, "selector", ()=>eventSelector); +parcelHelpers.export(exports, "parseSelector", ()=>eventSelector); const VIEW = "view", LBRACK = "[", RBRACK = "]", LBRACE = "{", RBRACE = "}", COLON = ":", COMMA = ",", NAME = "@", GT = ">", ILLEGAL = /[[\]{}]/, DEFAULT_MARKS = { "*": 1, arc: 1, diff --git a/docs/tests/v4/umd/qualBarChartTest.html b/docs/tests/v4/umd/qualBarChartTest.html index 13d320f47..43f196af1 100644 --- a/docs/tests/v4/umd/qualBarChartTest.html +++ b/docs/tests/v4/umd/qualBarChartTest.html @@ -8,7 +8,7 @@ - + diff --git a/docs/tests/v4/umd/quanBarChartTest.html b/docs/tests/v4/umd/quanBarChartTest.html index e210e7f75..736b596e9 100644 --- a/docs/tests/v4/umd/quanBarChartTest.html +++ b/docs/tests/v4/umd/quanBarChartTest.html @@ -8,7 +8,7 @@ - + diff --git a/docs/tests/v4/umd/sanddance-react.html b/docs/tests/v4/umd/sanddance-react.html index a0ea9ca90..5ee2fe85d 100644 --- a/docs/tests/v4/umd/sanddance-react.html +++ b/docs/tests/v4/umd/sanddance-react.html @@ -17,7 +17,7 @@ - + diff --git a/docs/tests/v4/umd/scatterplotTest.html b/docs/tests/v4/umd/scatterplotTest.html index bf7a9ab9a..3000eb627 100644 --- a/docs/tests/v4/umd/scatterplotTest.html +++ b/docs/tests/v4/umd/scatterplotTest.html @@ -8,7 +8,7 @@ - + diff --git a/docs/tests/v4/umd/test.html b/docs/tests/v4/umd/test.html index f13baf0a1..6edcb6c0d 100644 --- a/docs/tests/v4/umd/test.html +++ b/docs/tests/v4/umd/test.html @@ -8,7 +8,7 @@ - + diff --git a/docs/tests/v4/umd/transforms.html b/docs/tests/v4/umd/transforms.html index 8152e3ed3..e610eaeb7 100644 --- a/docs/tests/v4/umd/transforms.html +++ b/docs/tests/v4/umd/transforms.html @@ -8,7 +8,7 @@ - + diff --git a/docs/tests/v4/umd/transition.html b/docs/tests/v4/umd/transition.html index af397b4da..3ffaab495 100644 --- a/docs/tests/v4/umd/transition.html +++ b/docs/tests/v4/umd/transition.html @@ -10,7 +10,7 @@ - +
    diff --git a/docs/tests/v4/umd/treeMapTest.html b/docs/tests/v4/umd/treeMapTest.html index c90f0af9a..0d30c1531 100644 --- a/docs/tests/v4/umd/treeMapTest.html +++ b/docs/tests/v4/umd/treeMapTest.html @@ -8,7 +8,7 @@ - + diff --git a/docs/tests/v4/umd/vega-morphcharts.test.html b/docs/tests/v4/umd/vega-morphcharts.test.html index 1d6241205..38cb22f75 100644 --- a/docs/tests/v4/umd/vega-morphcharts.test.html +++ b/docs/tests/v4/umd/vega-morphcharts.test.html @@ -7,7 +7,7 @@ vega-morphcharts test - + diff --git a/extensions/azdata-sanddance/package-lock.json b/extensions/azdata-sanddance/package-lock.json index 14e143c87..72a56c7c7 100644 --- a/extensions/azdata-sanddance/package-lock.json +++ b/extensions/azdata-sanddance/package-lock.json @@ -33,9 +33,9 @@ } }, "node_modules/@types/azdata": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/@types/azdata/-/azdata-1.37.0.tgz", - "integrity": "sha512-chmfkfvv9pfvBqWtFyvYatb4vvv7ljlySMFH1kDIXRXQLZ6iswzW2+RnzqKpB51jL4gmjUEKB7Rf+WloDaN7rg==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@types/azdata/-/azdata-1.39.0.tgz", + "integrity": "sha512-oiGmy9daoAmd619SCbAXh1A0NYXaxyt9rGOk58OiDoH+ULGLWd6qHJY2hv/8DIF+1my7i3x+TJrydgERPQO2QA==", "dev": true, "dependencies": { "@types/vscode": "*" @@ -55,9 +55,9 @@ } }, "node_modules/@types/vscode": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.71.0.tgz", + "integrity": "sha512-nB50bBC9H/x2CpwW9FzRRRDrTZ7G0/POttJojvN/LiVfzTGfLyQIje1L1QRMdFXK9G41k5UJN/1B9S4of7CSzA==", "dev": true }, "node_modules/agent-base": { @@ -532,9 +532,9 @@ "dev": true }, "@types/azdata": { - "version": "1.37.0", - "resolved": "https://registry.npmjs.org/@types/azdata/-/azdata-1.37.0.tgz", - "integrity": "sha512-chmfkfvv9pfvBqWtFyvYatb4vvv7ljlySMFH1kDIXRXQLZ6iswzW2+RnzqKpB51jL4gmjUEKB7Rf+WloDaN7rg==", + "version": "1.39.0", + "resolved": "https://registry.npmjs.org/@types/azdata/-/azdata-1.39.0.tgz", + "integrity": "sha512-oiGmy9daoAmd619SCbAXh1A0NYXaxyt9rGOk58OiDoH+ULGLWd6qHJY2hv/8DIF+1my7i3x+TJrydgERPQO2QA==", "dev": true, "requires": { "@types/vscode": "*" @@ -554,9 +554,9 @@ } }, "@types/vscode": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.71.0.tgz", + "integrity": "sha512-nB50bBC9H/x2CpwW9FzRRRDrTZ7G0/POttJojvN/LiVfzTGfLyQIje1L1QRMdFXK9G41k5UJN/1B9S4of7CSzA==", "dev": true }, "agent-base": { diff --git a/extensions/common-backend/package-lock.json b/extensions/common-backend/package-lock.json index 082f2f8bc..8088c5206 100644 --- a/extensions/common-backend/package-lock.json +++ b/extensions/common-backend/package-lock.json @@ -13,17 +13,17 @@ } }, "node_modules/@types/vscode": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.71.0.tgz", + "integrity": "sha512-nB50bBC9H/x2CpwW9FzRRRDrTZ7G0/POttJojvN/LiVfzTGfLyQIje1L1QRMdFXK9G41k5UJN/1B9S4of7CSzA==", "dev": true } }, "dependencies": { "@types/vscode": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.71.0.tgz", + "integrity": "sha512-nB50bBC9H/x2CpwW9FzRRRDrTZ7G0/POttJojvN/LiVfzTGfLyQIje1L1QRMdFXK9G41k5UJN/1B9S4of7CSzA==", "dev": true } } diff --git a/extensions/common-frontend/package-lock.json b/extensions/common-frontend/package-lock.json index 9ed074d2f..d0c5b6430 100644 --- a/extensions/common-frontend/package-lock.json +++ b/extensions/common-frontend/package-lock.json @@ -12,7 +12,7 @@ "@fluentui/react": "^8", "react": ">=16.8.0 <18.0.0", "react-dom": ">=16.8.0 <18.0.0", - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { "@types/react": ">=16.8.0 <18.0.0", @@ -20,43 +20,43 @@ } }, "node_modules/@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "dependencies": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "node_modules/@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", - "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", + "dependencies": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -65,39 +65,39 @@ } }, "node_modules/@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", - "dependencies": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", + "dependencies": { + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" }, @@ -109,15 +109,15 @@ } }, "node_modules/@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", - "dependencies": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", + "dependencies": { + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -126,13 +126,13 @@ } }, "node_modules/@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "dependencies": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -153,11 +153,11 @@ } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -166,34 +166,34 @@ } }, "node_modules/@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", - "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", + "dependencies": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -202,13 +202,13 @@ } }, "node_modules/@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "dependencies": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -217,9 +217,9 @@ } }, "node_modules/@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "node_modules/@types/estree": { "version": "0.0.50", @@ -232,9 +232,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -255,9 +255,12 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } }, "node_modules/csstype": { "version": "3.1.0", @@ -265,203 +268,235 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" } }, "node_modules/js-tokens": { @@ -507,11 +542,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -537,21 +567,10 @@ "react": "17.0.2" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "node_modules/rw": { "version": "1.3.3", @@ -572,17 +591,6 @@ "object-assign": "^4.1.1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -596,6 +604,11 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -607,36 +620,36 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -646,11 +659,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -666,87 +679,79 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -755,35 +760,35 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -799,26 +804,21 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -834,27 +834,27 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", + "dependencies": { + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -879,70 +879,63 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -957,11 +950,11 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -995,105 +988,105 @@ }, "dependencies": { "@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "requires": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", - "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", + "requires": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", - "requires": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", + "requires": { + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", - "requires": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", + "requires": { + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "requires": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, @@ -1106,61 +1099,61 @@ } }, "@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", - "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", + "requires": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "requires": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "@types/estree": { "version": "0.0.50", @@ -1173,9 +1166,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1196,9 +1189,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, "csstype": { "version": "3.1.0", @@ -1206,177 +1199,158 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, "js-tokens": { "version": "4.0.0", @@ -1404,11 +1378,6 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -1428,15 +1397,10 @@ "scheduler": "^0.20.2" } }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "rw": { "version": "1.3.3", @@ -1457,17 +1421,19 @@ "object-assign": "^4.1.1" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } } }, "tr46": { @@ -1481,36 +1447,36 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1520,11 +1486,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1540,89 +1506,79 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1631,35 +1587,35 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1673,30 +1629,23 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1712,27 +1661,27 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", + "requires": { + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1753,73 +1702,66 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1834,11 +1776,11 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/extensions/common-frontend/package.json b/extensions/common-frontend/package.json index 71d7b69b2..dd94666c9 100644 --- a/extensions/common-frontend/package.json +++ b/extensions/common-frontend/package.json @@ -24,7 +24,7 @@ "@fluentui/react": "^8", "react": ">=16.8.0 <18.0.0", "react-dom": ">=16.8.0 <18.0.0", - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { "@msrvida/sanddance-explorer": "^4", diff --git a/extensions/vscode-sanddance/package-lock.json b/extensions/vscode-sanddance/package-lock.json index db47ad454..fb96489e8 100644 --- a/extensions/vscode-sanddance/package-lock.json +++ b/extensions/vscode-sanddance/package-lock.json @@ -33,9 +33,9 @@ "dev": true }, "node_modules/@types/vscode": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.71.0.tgz", + "integrity": "sha512-nB50bBC9H/x2CpwW9FzRRRDrTZ7G0/POttJojvN/LiVfzTGfLyQIje1L1QRMdFXK9G41k5UJN/1B9S4of7CSzA==", "dev": true }, "node_modules/agent-base": { @@ -457,9 +457,9 @@ "dev": true }, "@types/vscode": { - "version": "1.69.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.69.0.tgz", - "integrity": "sha512-RlzDAnGqUoo9wS6d4tthNyAdZLxOIddLiX3djMoWk29jFfSA1yJbIwr0epBYqqYarWB6s2Z+4VaZCQ80Jaa3kA==", + "version": "1.71.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.71.0.tgz", + "integrity": "sha512-nB50bBC9H/x2CpwW9FzRRRDrTZ7G0/POttJojvN/LiVfzTGfLyQIje1L1QRMdFXK9G41k5UJN/1B9S4of7CSzA==", "dev": true }, "agent-base": { diff --git a/package-lock.json b/package-lock.json index fd11bdc53..4a2d95715 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,9 +36,9 @@ "rimraf": "^2.6.2", "rollup": "^2.70.1", "sass": "^1.32.4", - "ts-loader": "^7.0.5", - "typedoc": "^0.21.9", - "typescript": "4.3", + "ts-loader": "^9.3.1", + "typedoc": "^0.21.10", + "typescript": "4.4", "unified": "^7.0.2", "vsce": "^2.9.2", "webpack": "^5.52.0", @@ -72,31 +72,31 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", + "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", + "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", "dev": true, "peer": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -112,13 +112,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "peer": true, "dependencies": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -142,12 +142,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", + "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.6", + "@babel/compat-data": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" @@ -160,9 +160,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, "peer": true, "engines": { @@ -170,14 +170,14 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "peer": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -210,20 +210,20 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", - "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", "dev": true, "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -255,6 +255,16 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", @@ -274,15 +284,15 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", "dev": true, "peer": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -303,9 +313,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", + "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", "dev": true, "peer": true, "bin": { @@ -316,35 +326,35 @@ } }, "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", - "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", + "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", "dev": true, "peer": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/parser": "^7.19.0", + "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -353,12 +363,13 @@ } }, "node_modules/@babel/types": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", - "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "peer": true, "dependencies": { + "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, @@ -376,14 +387,14 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", + "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", + "espree": "^9.4.0", "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -393,12 +404,15 @@ }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -429,9 +443,9 @@ "dev": true }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -442,6 +456,29 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -526,9 +563,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -536,20 +573,20 @@ } }, "node_modules/@lerna/add": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.1.8.tgz", - "integrity": "sha512-ABplk8a5MmiT8lG1b9KHijRUwj/nOePMuezBHjJEpNeQ8Bw5w3IV/6hpdmApx/w1StBwWWf0UG42klrxXlfl/g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.5.0.tgz", + "integrity": "sha512-RdJ8yyE8BizzrYRjZuqeXtgkHBE/KzcS7tmBG+UKCQ5QFLnkdORzaVECNy2sfZl0vTtrxj4cv+kuwxIeg/4XVQ==", "dev": true, "dependencies": { - "@lerna/bootstrap": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/npm-conf": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/bootstrap": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/npm-conf": "5.5.0", + "@lerna/validation-error": "5.5.0", "dedent": "^0.7.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "p-map": "^4.0.0", - "pacote": "^13.4.1", + "pacote": "^13.6.1", "semver": "^7.3.4" }, "engines": { @@ -584,28 +621,28 @@ } }, "node_modules/@lerna/bootstrap": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.1.8.tgz", - "integrity": "sha512-/QZJc6aRxi6csSR59jdqRXPFh33fbn60F1k/SWtCCELGkZub23fAPLKaO7SlMcyghN3oKlfTfVymu/NWEcptJQ==", - "dev": true, - "dependencies": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/has-npm-version": "5.1.8", - "@lerna/npm-install": "5.1.8", - "@lerna/package-graph": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/rimraf-dir": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/symlink-binary": "5.1.8", - "@lerna/symlink-dependencies": "5.1.8", - "@lerna/validation-error": "5.1.8", - "@npmcli/arborist": "5.2.0", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.5.0.tgz", + "integrity": "sha512-GeXLSDi6gxj2O3t5T7qgFabBKoC5EQwiFyQ4ufqx1Wm/mWxqRI+enTBnbaBbmhQaVQ9wfPvMPDukJ5Q9PCTUcQ==", + "dev": true, + "dependencies": { + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/has-npm-version": "5.5.0", + "@lerna/npm-install": "5.5.0", + "@lerna/package-graph": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/rimraf-dir": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/symlink-binary": "5.5.0", + "@lerna/symlink-dependencies": "5.5.0", + "@lerna/validation-error": "5.5.0", + "@npmcli/arborist": "5.3.0", "dedent": "^0.7.0", "get-port": "^5.1.1", "multimatch": "^5.0.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "p-map": "^4.0.0", "p-map-series": "^2.1.0", @@ -644,38 +681,38 @@ } }, "node_modules/@lerna/changed": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.1.8.tgz", - "integrity": "sha512-JA9jX9VTHrwSMRJTgLEzdyyx4zi35X0yP6fUUFuli9a0zrB4HV4IowSn1XM03H8iebbDLB0eWBbosqhYwSP8Sw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.5.0.tgz", + "integrity": "sha512-ZEnVHrPEpf2Iii/Z59g1lfKEwPA1V2an5L27MzNQjbWe6JQZqTU+8V6m+Vmbr4VdEH5jfRL5NVETGCLl7qN/pQ==", "dev": true, "dependencies": { - "@lerna/collect-updates": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/listable": "5.1.8", - "@lerna/output": "5.1.8" + "@lerna/collect-updates": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/listable": "5.5.0", + "@lerna/output": "5.5.0" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/check-working-tree": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.1.8.tgz", - "integrity": "sha512-3QyiV75cYt9dtg9JhUt+Aiyk44mFjlyqIIJ/XZ2Cp/Xcwws/QrNKOTs5iYFX5XWzlpTgotOHcu1MH/mY55Czlw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.5.0.tgz", + "integrity": "sha512-U35yV8R+tv6zQgoDr0rnBt4wm4gyhDcE4tUEeB8m7JHVu7g45Fjv2jFLH1z5RM1PVaEbzKVebqfN5ccB0EBuyg==", "dev": true, "dependencies": { - "@lerna/collect-uncommitted": "5.1.8", - "@lerna/describe-ref": "5.1.8", - "@lerna/validation-error": "5.1.8" + "@lerna/collect-uncommitted": "5.5.0", + "@lerna/describe-ref": "5.5.0", + "@lerna/validation-error": "5.5.0" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/child-process": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.1.8.tgz", - "integrity": "sha512-P0o4Y/sdiUJ53spZpaVv53NdAcl15UAi5//W3uT2T250xQPlVROwKy11S3Wzqglh94FYdi6XUy293x1uwBlFPw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.5.0.tgz", + "integrity": "sha512-er7bsj2W/H8JWAIB+CkgCLk9IlMkyVzywbOZcMC+xic2fp7rmM/BdtAE4nTjkKwfaRYF/bwjHyZowZUR3s8cEg==", "dev": true, "dependencies": { "chalk": "^4.1.0", @@ -757,16 +794,16 @@ } }, "node_modules/@lerna/clean": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.1.8.tgz", - "integrity": "sha512-xMExZgjan5/8ZTjJkZoLoTKY1MQOMk7W1YXslbg9BpLevBycPk041MlLauzCyO8XdOpqpVnFCg/9W66fltqmQg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.5.0.tgz", + "integrity": "sha512-TRW4Gkv6QpWSy0tm72NrxvgmTAC+W0LqhLPlFM5k5feFS75/HGOycpf97M4JSUueyBCuVjsPfzqp/e6MB3Ntng==", "dev": true, "dependencies": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/rimraf-dir": "5.1.8", + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/rimraf-dir": "5.5.0", "p-map": "^4.0.0", "p-map-series": "^2.1.0", "p-waterfall": "^2.1.1" @@ -776,12 +813,12 @@ } }, "node_modules/@lerna/cli": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.1.8.tgz", - "integrity": "sha512-0Ghhd9M9QvY6qZtnjTq5RHOIac2ttsW2VNFLFso8ov3YV+rJF4chLhyVaVBvLSA+5ZhwFH+xQ3/yeUx1tDO8GA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.5.0.tgz", + "integrity": "sha512-7TtnO2xfnfrpWGIui6ANrH4/AVHmSfjaExSoZKNhh2dKSSEOETEUfFIIzfEAirAVR7EOXAJwDdFbbpB4lQtyUg==", "dev": true, "dependencies": { - "@lerna/global-options": "5.1.8", + "@lerna/global-options": "5.5.0", "dedent": "^0.7.0", "npmlog": "^6.0.2", "yargs": "^16.2.0" @@ -791,12 +828,12 @@ } }, "node_modules/@lerna/collect-uncommitted": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.8.tgz", - "integrity": "sha512-pRsIYu82A3DxLahQI/3azoi/kjj6QSSHHAOx4y1YVefeDCaVtAm8aesNbpnyNVfJrie/1Gt5GMEpjfm/KScjlw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.5.0.tgz", + "integrity": "sha512-oVGXS0fC8q2d1lG695eCd8dkr0fhmUx4bWA1IshVd/u0Puk7f8+m71POcLV3h1gR/2Fqs7vb7G/sPyuzGtwn8w==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "chalk": "^4.1.0", "npmlog": "^6.0.2" }, @@ -875,13 +912,13 @@ } }, "node_modules/@lerna/collect-updates": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.1.8.tgz", - "integrity": "sha512-ZPQmYKzwDJ4T+t2fRUI/JjaCzC8Lv02kWIeSXrcIG+cf2xrbM0vK4iQMAKhagTsiWt9hrFwvtMgLp4a6+Ht8Qg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.5.0.tgz", + "integrity": "sha512-6kBMi6K6PHIBvZKlfp/0PvRgmzvvfx+eZpmLjF+0yjcfwBn+QDkq7H+QohBiCzt2vxHVHsM6zutNhl2jNTmChg==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/describe-ref": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/describe-ref": "5.5.0", "minimatch": "^3.0.4", "npmlog": "^6.0.2", "slash": "^3.0.0" @@ -891,16 +928,16 @@ } }, "node_modules/@lerna/command": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.1.8.tgz", - "integrity": "sha512-j/Q++APvkyN2t8GqOpK+4OxH1bB7OZGVWIKh0JQlwbtqH1Y06wlSyNdwpPmv8h1yO9fS1pY/xHwFbs1IicxwzA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.5.0.tgz", + "integrity": "sha512-ut055kFWc1OJFdI9Cj1kDxtJ4ejvAsfRgUoVxWT1Fw4Me/OzQRHYmUupW0FK8Kc+7gcz4mGKzUVWmRmDBvn+Fw==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/package-graph": "5.1.8", - "@lerna/project": "5.1.8", - "@lerna/validation-error": "5.1.8", - "@lerna/write-log-file": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/package-graph": "5.5.0", + "@lerna/project": "5.5.0", + "@lerna/validation-error": "5.5.0", + "@lerna/write-log-file": "5.5.0", "clone-deep": "^4.0.1", "dedent": "^0.7.0", "execa": "^5.0.0", @@ -912,18 +949,18 @@ } }, "node_modules/@lerna/conventional-commits": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.1.8.tgz", - "integrity": "sha512-UduSVDp/+2WlEV6ZO5s7yTzkfhYyPdEsqR6aaUtIJZe9wejcCK4Lc3BJ2BAYIOdtDArNY2CJPsz1LYvFDtPRkw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.5.0.tgz", + "integrity": "sha512-qPTRNCm3H4MvZAdQLzyYq7ifJyofMSeZmel232b5mglW3OSehxPQUxzr/u/0p8Nqs89uZxZRHyznLnhRNdXcJQ==", "dev": true, "dependencies": { - "@lerna/validation-error": "5.1.8", + "@lerna/validation-error": "5.5.0", "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.2", + "conventional-changelog-core": "^4.2.4", "conventional-recommended-bump": "^6.1.0", "fs-extra": "^9.1.0", "get-stream": "^6.0.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "pify": "^5.0.0", "semver": "^7.3.4" @@ -996,28 +1033,27 @@ } }, "node_modules/@lerna/create": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.1.8.tgz", - "integrity": "sha512-n9qLLeg1e0bQeuk8pA8ELEP05Ktl50e1EirdXGRqqvaXdCn41nYHo4PilUgb77/o/t3Z5N4/ic+0w8OvGVakNg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.5.0.tgz", + "integrity": "sha512-B+ERbzgFMYspsaU9We65Wqf9Y7sGsEYVFPi3EKpCXxkvVr65YRFL6Mz/WAVggwYkR49umduXXVmjnCWcuT0Ydw==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/npm-conf": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/npm-conf": "5.5.0", + "@lerna/validation-error": "5.5.0", "dedent": "^0.7.0", "fs-extra": "^9.1.0", "globby": "^11.0.2", - "init-package-json": "^2.0.2", - "npm-package-arg": "^8.1.0", + "init-package-json": "^3.0.2", + "npm-package-arg": "8.1.1", "p-reduce": "^2.1.0", - "pacote": "^13.4.1", + "pacote": "^13.6.1", "pify": "^5.0.0", "semver": "^7.3.4", "slash": "^3.0.0", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^8.4.0", + "validate-npm-package-name": "^4.0.0", "yargs-parser": "20.2.4" }, "engines": { @@ -1025,12 +1061,12 @@ } }, "node_modules/@lerna/create-symlink": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.1.8.tgz", - "integrity": "sha512-5acQITDsJ7dqywPRrF1mpTUPm/EXFfiv/xF6zX+ySUjp4h0Zhhnsm8g2jFdRPDSjIxFD0rV/5iU4X6qmflXlAg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.5.0.tgz", + "integrity": "sha512-vWGvRbTh3ji3J/8mVyLPa9Yst4MZzp9W2+8hyYHw8eAzCtHPuH3Z0AReIHpYRfoViUvxIl/rEEuD2D1sDh61BQ==", "dev": true, "dependencies": { - "cmd-shim": "^4.1.0", + "cmd-shim": "^5.0.0", "fs-extra": "^9.1.0", "npmlog": "^6.0.2" }, @@ -1138,12 +1174,12 @@ } }, "node_modules/@lerna/describe-ref": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.1.8.tgz", - "integrity": "sha512-/u5b2ho09icPcvPb1mlh/tPC07nSFc1cvvFjM9Yg5kfVs23vzVWeA8y0Bk5djlaaSzyHECyqviriX0aoaY47Wg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.5.0.tgz", + "integrity": "sha512-gNt9deRWcDoIKCwKRHu/TEt2HcHhQxzVlP8GQHYp4NuWTG9c+gTQfyuXvbZd0K9jCijPUBNy/oMb6usXceJWeg==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "npmlog": "^6.0.2" }, "engines": { @@ -1151,14 +1187,14 @@ } }, "node_modules/@lerna/diff": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.1.8.tgz", - "integrity": "sha512-BLoi6l/v8p43IkAHTkpjZ4Kq27kYK7iti6y6gYoZuljSwNj38TjgqRb2ohHezQ5c0KFAj8xHEOuZM3Ou6tGyTQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.5.0.tgz", + "integrity": "sha512-2PIka/4kKDOsh5Ht+X2OuLNTWzRk+LcnN5bCin87w7vGw3esdvlT1fj1tKjoZ1/aC/O8tqtKXyeP9WE6YHWVpw==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/validation-error": "5.5.0", "npmlog": "^6.0.2" }, "engines": { @@ -1166,17 +1202,17 @@ } }, "node_modules/@lerna/exec": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.1.8.tgz", - "integrity": "sha512-U+owlBKoAUfULqRz0oBtHx/I6tYQy9I7xfPP0GoaXa8lpF7esnpCxsJG8GpdzFqIS30o6a2PtyHvp4jkrQF8Zw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.5.0.tgz", + "integrity": "sha512-4asvrCYFGgnEbXtSiKJLDd6DShUl7FIRRCWx7JXJfa0B6sg00cB9Cg3JTp+F+cQWCOspRkzqRetqu57o6wRpXg==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/profiler": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/profiler": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/validation-error": "5.5.0", "p-map": "^4.0.0" }, "engines": { @@ -1184,13 +1220,13 @@ } }, "node_modules/@lerna/filter-options": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.1.8.tgz", - "integrity": "sha512-ene6xj1BRSFgIgcVg9xABp1cCiRnqm3Uetk9InxOtECbofpSDa7cQy5lsPv6GGAgXFbT91SURQiipH9FAOP+yQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.5.0.tgz", + "integrity": "sha512-Hwn4sOixZdWVe6SFZ7aPFjhMYoSHz0zbwy3t40KXuhjLqT8T5RLmGWW1u2Al6dQ5fuQyhWXGS4DWfobs7Th62A==", "dev": true, "dependencies": { - "@lerna/collect-updates": "5.1.8", - "@lerna/filter-packages": "5.1.8", + "@lerna/collect-updates": "5.5.0", + "@lerna/filter-packages": "5.5.0", "dedent": "^0.7.0", "npmlog": "^6.0.2" }, @@ -1199,12 +1235,12 @@ } }, "node_modules/@lerna/filter-packages": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.1.8.tgz", - "integrity": "sha512-2pdtZ+I2Sb+XKfUa/q8flVUyaY0hhwqFYMXll7Nut7Phb1w1TtkEXc2/N0Ac1yia6qSJB/5WrsbAcLF/ITp1vA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.5.0.tgz", + "integrity": "sha512-Ad23aRPKgr/zt6jMWi8xKL+2z47GBQyxC4HhsDEMp62OGeGhGyK1sGW+S8OTEh17sIVpGG2GX9eCfnG8pvfxUQ==", "dev": true, "dependencies": { - "@lerna/validation-error": "5.1.8", + "@lerna/validation-error": "5.5.0", "multimatch": "^5.0.0", "npmlog": "^6.0.2" }, @@ -1213,9 +1249,9 @@ } }, "node_modules/@lerna/get-npm-exec-opts": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.8.tgz", - "integrity": "sha512-oujoIkEDDVK2+5ooPMEPI+xGs/iwPmGJ63AZu1h7P42YU9tHKQmF5yPybF3Jn99W8+HggM6APUGiX+5oHRvKXA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.5.0.tgz", + "integrity": "sha512-WRt560FB6rsj4yVtR1wIJWJufITajECaw1omNi2KkL7/o7ky4NvHACVOtibETUNMXrnuPJ/QBww4roLFVIAyog==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -1225,13 +1261,13 @@ } }, "node_modules/@lerna/get-packed": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.1.8.tgz", - "integrity": "sha512-3vabIFlfUFQPbFnlOaDCNY4p7mufrhIFPoXxWu15JnjJsSDf9UB2a98xX43xNlxjgZLvnLai3bhCNfrKonI4Kw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.5.0.tgz", + "integrity": "sha512-X+91ma9SQPrsVctsrFRBABn4+T87lnTEd/BngB7OYlYFsJCc+a6vd+5pnIWxKK5OiUr6+tRpMbJp8BUXJFdb4Q==", "dev": true, "dependencies": { "fs-extra": "^9.1.0", - "ssri": "^8.0.1", + "ssri": "^9.0.1", "tar": "^6.1.0" }, "engines": { @@ -1275,14 +1311,14 @@ } }, "node_modules/@lerna/github-client": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.1.8.tgz", - "integrity": "sha512-y1oweMZ9xc/htIHy42hy2FuMUR/LS3CQlslXG9PAHzl5rE1VDDjvSv61kS50ZberGfB9xmkCxqH+2LgROG9B1A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.5.0.tgz", + "integrity": "sha512-CaBleVR0F+8Yv4FQu6r7Ocqnh3DEq6dQeu0r4RX+mc9jBn9J/N2SdLKRdC7vcvmkcLCxacg8ewuesYqvakQ8HQ==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^18.1.0", + "@octokit/rest": "^19.0.3", "git-url-parse": "^12.0.0", "npmlog": "^6.0.2" }, @@ -1291,35 +1327,34 @@ } }, "node_modules/@lerna/gitlab-client": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.1.8.tgz", - "integrity": "sha512-/EMKdkGnBU4ldyAQ4pXp2TKi1znvY3MiCULt8Hy42p4HhfFl/AxZYDovQYfop1NHVk29BQrGHfvlpyBNqZ2a8g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.5.0.tgz", + "integrity": "sha512-ktKfBgQnt0MtyiTM3wuec47Wk7nHc+k2YvoC1roDGaXpgWS7lOQnA8RyorX4Hal3ZsrL95qi9vZOolWvUnxS3w==", "dev": true, "dependencies": { "node-fetch": "^2.6.1", - "npmlog": "^6.0.2", - "whatwg-url": "^8.4.0" + "npmlog": "^6.0.2" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/global-options": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.1.8.tgz", - "integrity": "sha512-VCfTilGh0O4T6Lk4DKYA5cUl1kPjwFfRUS/GSpdJx0Lf/dyDbFihrmTHefgUe9N2/nTQySDIdPk9HBr45tozWQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.5.0.tgz", + "integrity": "sha512-ydEsnXi2LRpxkzpSf8GFeCdh1roTKANZdqzjkhuUlBHrKzKxywpNPpGbXmh6JziHMYdgKGZUjnY35TxBlVRN6Q==", "dev": true, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/has-npm-version": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.1.8.tgz", - "integrity": "sha512-yN5j9gje2ND8zQf4tN52QDQ/yFb24o9Kasm4PZm99FzBURRIwFWCnvo3edOMaiJg0DpA660L+Kq9G0L+ZRKRZQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.5.0.tgz", + "integrity": "sha512-ALvz0fF1I7Dx+c+0rvkFdqEtp/hs4F/Av2blhOaFWTs78D7FTQa7IpURmvdVDi56H30fqa9b4nEQqnaCRJZKpQ==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "semver": "^7.3.4" }, "engines": { @@ -1354,16 +1389,16 @@ } }, "node_modules/@lerna/import": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.1.8.tgz", - "integrity": "sha512-m1+TEhlgS9i14T7o0/8o6FMZJ1O2PkQdpCjqUa5xdLITqvPozoMNujNgiX3ZVLg/XcFOjMtbCsYtspqtKyEsMQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.5.0.tgz", + "integrity": "sha512-mn87JOcb/j4KBV37Kv589avN5uArcJcASBonm1iWcTwxTvcNFj2BjxnUoVVY6EFamDfBLwWBcAvCO+cvmJkj3Q==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/validation-error": "5.5.0", "dedent": "^0.7.0", "fs-extra": "^9.1.0", "p-map-series": "^2.1.0" @@ -1409,13 +1444,13 @@ } }, "node_modules/@lerna/info": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.1.8.tgz", - "integrity": "sha512-VNCBNOrd5Q1iv1MOF++PzMrdAnTn6KTDbb5hcXHdWBRZUuOs3QOwVYGzAlTFMvwVmmlcER4z8BYyUsbxk3sIdQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.5.0.tgz", + "integrity": "sha512-2pgogAahv8tqY2sFarOCSXcxJFEag9z1pPGnHwKsq8NtekR0exLwFp93iTbDKRff8ScSmH82lNh22GFKZKLm/A==", "dev": true, "dependencies": { - "@lerna/command": "5.1.8", - "@lerna/output": "5.1.8", + "@lerna/command": "5.5.0", + "@lerna/output": "5.5.0", "envinfo": "^7.7.4" }, "engines": { @@ -1423,13 +1458,14 @@ } }, "node_modules/@lerna/init": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.1.8.tgz", - "integrity": "sha512-vEMnq/70u/c031/vURA4pZSxlBRAwjg7vOP7mt9M4dmKz/vkVnQ/5Ig9K0TKqC31hQg957/4m20obYEiFgC3Pw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.5.0.tgz", + "integrity": "sha512-dPjuk12s2pSnSL6ib7KQ+RKFyFYvsWAnSMro3sanb07og3tJkwVne8srlmYQsd/NghU8sBdQFFKIV+pzg2sg9w==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/project": "5.5.0", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "write-json-file": "^4.3.0" @@ -1475,14 +1511,15 @@ } }, "node_modules/@lerna/link": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.1.8.tgz", - "integrity": "sha512-qOtZiMzB9JYyNPUlvpqTxh0Z1EmNVde8pFUIYybv+s3btrKEBPgsvvrOrob/mha3QJxnwcPDPjHt/wCHFxLruA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.5.0.tgz", + "integrity": "sha512-wucP0DBKBG2Mkr9PNkPB9ez5pRxLEIY+6s0hB3iTxCTmef5GYPlQ+ftiaN2/IGVYb569AW97YilROuU2gDMrMw==", "dev": true, "dependencies": { - "@lerna/command": "5.1.8", - "@lerna/package-graph": "5.1.8", - "@lerna/symlink-dependencies": "5.1.8", + "@lerna/command": "5.5.0", + "@lerna/package-graph": "5.5.0", + "@lerna/symlink-dependencies": "5.5.0", + "@lerna/validation-error": "5.5.0", "p-map": "^4.0.0", "slash": "^3.0.0" }, @@ -1491,27 +1528,27 @@ } }, "node_modules/@lerna/list": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.1.8.tgz", - "integrity": "sha512-fVN9o/wKtgcOyuYwvYTg2HI6ORX2kOoBkCJ+PI/uZ/ImwLMTJ2Bf8i/Vsysl3bLFHhQFglzPZ7V1SQP/ku0Sdw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.5.0.tgz", + "integrity": "sha512-vic7CeD/TL0bh6hzpgHK2Ogz7MW1NB6Sws1J7cl5CTn4sAGm/KZ/g4MNsLFVLJNAiPh+t2cmT0ndyNluShnjqA==", "dev": true, "dependencies": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/listable": "5.1.8", - "@lerna/output": "5.1.8" + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/listable": "5.5.0", + "@lerna/output": "5.5.0" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/listable": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.1.8.tgz", - "integrity": "sha512-nQ/40cbVZLFBv8o9Dz6ivHFZhosfDTYOPm4oHNu0xdexaTXWz5bQUlM4HtOm7K0dJ1fvLEVqiQNAuFSEhARt9g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.5.0.tgz", + "integrity": "sha512-2kCpn8vlmRTVA3tGr1XRkHOW2ljXjb/hRNxSK3DUf0k6sl9sEdQFSH7cf5qPnCAPcuLHS7b8kuFhA6x8nXFP3g==", "dev": true, "dependencies": { - "@lerna/query-graph": "5.1.8", + "@lerna/query-graph": "5.5.0", "chalk": "^4.1.0", "columnify": "^1.6.0" }, @@ -1590,9 +1627,9 @@ } }, "node_modules/@lerna/log-packed": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.1.8.tgz", - "integrity": "sha512-alaCIzCtKV5oKyu632emda0hUQMw/BcL2U3v4ObLu90sU8P7mu6TipKRvR9OZxOLDnZGnPE7CMHSU8gsQoIasw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.5.0.tgz", + "integrity": "sha512-kVDEy29VfBQeha92IBuPq9W/kP6ffboCWuU64lBIAljTDdpFrMFBeLRrWfLSLIVe2fq8FpGk8PInNlDHmvT5PA==", "dev": true, "dependencies": { "byte-size": "^7.0.0", @@ -1605,9 +1642,9 @@ } }, "node_modules/@lerna/npm-conf": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.1.8.tgz", - "integrity": "sha512-d/pIcO4RwO3fXNlUbhQ6+qwULxGSiW/xcOtiETVf4ZfjaDqjkCaIxZaeZfm5gWDtII5klpQn3f2d71FCnZG5lw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.5.0.tgz", + "integrity": "sha512-ml1Pmn26a61y6nFijpNE9RAbsNOF2XL1Kqyd3x7+XFaDmqbSDqo2g5qlsb4gTdUj/Uy1niRGzy3XdC0FH5G+mg==", "dev": true, "dependencies": { "config-chain": "^1.1.12", @@ -1618,14 +1655,14 @@ } }, "node_modules/@lerna/npm-dist-tag": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.8.tgz", - "integrity": "sha512-vZXO0/EClOzRRHHfqB4APhZkxiJpQbsQAAFwaXQCNJE+3S+I/MD0S3iiUWrNs4QnN/8Lj1KyzUfznVDXX7AIUQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.5.0.tgz", + "integrity": "sha512-Hz6n9tqbGUuqI1q9IS3tAGx95TkOqLfXRay9kr/hjswj+HKp0Dtw1cu8YRtizA7CuIWw831eXCbqfFyILfytaA==", "dev": true, "dependencies": { - "@lerna/otplease": "5.1.8", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", + "@lerna/otplease": "5.5.0", + "npm-package-arg": "8.1.1", + "npm-registry-fetch": "^13.3.0", "npmlog": "^6.0.2" }, "engines": { @@ -1633,15 +1670,15 @@ } }, "node_modules/@lerna/npm-install": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.1.8.tgz", - "integrity": "sha512-AiYQyz4W1+NDeBw3qmdiiatfCtwtaGOi7zHtN1eAqheVTxEMuuYjNHt+8hu6nSpDFYtonz0NsKFvaqRJ5LbVmw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.5.0.tgz", + "integrity": "sha512-axMtqZYuAl5qGcRCBYKqINimMrbQRM1f09sz9rKtwnx15066qT0IaKUt9YYo5bsZm/i3BXpBqcUxZXlGzQNWBQ==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/get-npm-exec-opts": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/get-npm-exec-opts": "5.5.0", "fs-extra": "^9.1.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "signal-exit": "^3.0.3", "write-pkg": "^4.0.0" @@ -1687,19 +1724,19 @@ } }, "node_modules/@lerna/npm-publish": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.1.8.tgz", - "integrity": "sha512-Gup/1d8ovc21x3spKPhFK0tIYYn8HOjnpCAg5ytINIW1QM/QcLAigY58If8uiyt+aojz6lubWrSR8/OHf9CXBw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.5.0.tgz", + "integrity": "sha512-eDcmga5CcXGmSdVXBO75eCX3vypEwQO/lN7VqRpLSOsIHIRUGbfwo/stbz8sIF4+HAkaAFGj6BScjvjlyoh2pQ==", "dev": true, "dependencies": { - "@lerna/otplease": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", + "@lerna/otplease": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", "fs-extra": "^9.1.0", - "libnpmpublish": "^4.0.0", - "npm-package-arg": "^8.1.0", + "libnpmpublish": "^6.0.4", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "pify": "^5.0.0", - "read-package-json": "^3.0.0" + "read-package-json": "^5.0.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" @@ -1742,13 +1779,13 @@ } }, "node_modules/@lerna/npm-run-script": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.1.8.tgz", - "integrity": "sha512-HzvukNC+hDIR25EpYWOvIGJItd0onXqzS9Ivdtw98ZQG3Jexi2Mn18A9tDqHOKCEGO3pVYrI9ep8VWkah2Bj1w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.5.0.tgz", + "integrity": "sha512-ltEtw28CLpG/VaWX4PZ1enJ0wxA/Qw8ScAwhQTZj0xL6Lhkq5H0LoEALVRAq2gK10h1p2IUs/W034oXT1chH0w==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", - "@lerna/get-npm-exec-opts": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/get-npm-exec-opts": "5.5.0", "npmlog": "^6.0.2" }, "engines": { @@ -1756,21 +1793,21 @@ } }, "node_modules/@lerna/otplease": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.1.8.tgz", - "integrity": "sha512-/OVZ7Rbs8/ft14f4i/9HEFDsxJkBSg74rMUqyqFH3fID/RL3ja9hW5bI1bENxvYgs0bp/THy4lV5V75ZcI81zQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.5.0.tgz", + "integrity": "sha512-zNS315iH2VRQz/LJTrqUUuEqMnNsCoMXOMOaBzcB/AL29mYMvJlT05dMqenMPKrRtW0tAFzPC7jLTzybdRa7Qg==", "dev": true, "dependencies": { - "@lerna/prompt": "5.1.8" + "@lerna/prompt": "5.5.0" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/output": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.1.8.tgz", - "integrity": "sha512-dXsKY8X2eAdPKRKHDZTASlWn95Eav1oQX9doUXkvV3o4UwIgqOCIsU7RqSED3EAEQz6VUH0rXNb/+d3uVeAoJQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.5.0.tgz", + "integrity": "sha512-f+MXc9X1xEe2w0AC+CAMr093MumCTNYmyIt8eUMYQMmoRkWT2n4tN8/KvWw9ucSWLKMkZtOTJiC+S6RJ4nWUig==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -1780,16 +1817,16 @@ } }, "node_modules/@lerna/pack-directory": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.1.8.tgz", - "integrity": "sha512-aaH28ttS+JVimLFrVeZRWZ9Cii4GG2vkJXmQNikWBNQiFL/7S1x83NjMk4SQRdmtpYJkcQpQMZ2hDUdNxLnDCg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.5.0.tgz", + "integrity": "sha512-zHpIAeZOpIH/Slb8vuh75XR46mc4RZNwPS6XpwRgMRpp3Y1Bazlv6hDcq+pZTg1FwYKIDQDRfxW3IQi/aDPIjA==", "dev": true, "dependencies": { - "@lerna/get-packed": "5.1.8", - "@lerna/package": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/temp-write": "5.1.8", - "npm-packlist": "^2.1.4", + "@lerna/get-packed": "5.5.0", + "@lerna/package": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/temp-write": "5.5.0", + "npm-packlist": "^5.1.1", "npmlog": "^6.0.2", "tar": "^6.1.0" }, @@ -1798,13 +1835,13 @@ } }, "node_modules/@lerna/package": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.1.8.tgz", - "integrity": "sha512-Ot+wu6XZ93tw8p9oSTJJA15TzGhVpo8VbgNhKPcI3JJjkxVq2D5L5jVeBkjQvFEQBonLibTr339uLLXyZ0RMzg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.5.0.tgz", + "integrity": "sha512-vP08ZdMd3A7B0hEI4ZNgCeBef64yCidrnFUIiIhXb/tAsDmGCGqS2IFdGRNE9vv01tVg0WrPLim4tl8AjoigKw==", "dev": true, "dependencies": { "load-json-file": "^6.2.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "write-pkg": "^4.0.0" }, "engines": { @@ -1812,14 +1849,14 @@ } }, "node_modules/@lerna/package-graph": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.1.8.tgz", - "integrity": "sha512-aGwXTwCpPfhUPiSRhdppogZjOqJPm39EBxHFDa1E0+/Qaig5avJs4hI6OrPLyjsTywAswtCMOArvD1QZqxwvrQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.5.0.tgz", + "integrity": "sha512-g378NrCTEmVXqkAkv9EX8L3K7JTioPNuxItXTHQxlHDhZ2RM9KCVbT/ihwefVujWwwMPNij10bmfJUaEp2TGPQ==", "dev": true, "dependencies": { - "@lerna/prerelease-id-from-version": "5.1.8", - "@lerna/validation-error": "5.1.8", - "npm-package-arg": "^8.1.0", + "@lerna/prerelease-id-from-version": "5.5.0", + "@lerna/validation-error": "5.5.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "semver": "^7.3.4" }, @@ -1855,9 +1892,9 @@ } }, "node_modules/@lerna/prerelease-id-from-version": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.8.tgz", - "integrity": "sha512-wfWv/8lHSk2/pl4FjopbDelFSLCz9s6J9AY5o7Sju9HtD9QUXcQHaXnEP1Rum9/rJZ8vWdFURcp9kzz8nxQ1Ow==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.5.0.tgz", + "integrity": "sha512-cpy0EgfO/7fXPhl/EsJnD8uGv0f8d6FHG2R1Xr7sJvmkffhkIy90qkFA7uSaZAA+ar9QFSAUJ+wGox0bhGJhHA==", "dev": true, "dependencies": { "semver": "^7.3.4" @@ -1894,9 +1931,9 @@ } }, "node_modules/@lerna/profiler": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.1.8.tgz", - "integrity": "sha512-vpAFN85BvMHfIGA53IcwaUnS9FHAismEnNyFCjMkzKV55mmXFZlWpZyO36ESdSQRWCo5/25f3Ln0Y6YubY3Dvw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.5.0.tgz", + "integrity": "sha512-2DkkMxYCq/RsBptN+gJtmqwdrFqji6QMpNlm7v9JgS9kN2aHUIxcavtHXDaYf9sdPoey/bGypRv9DDTDcuw9MA==", "dev": true, "dependencies": { "fs-extra": "^9.1.0", @@ -1944,18 +1981,19 @@ } }, "node_modules/@lerna/project": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.1.8.tgz", - "integrity": "sha512-zTFp91kmyJ0VHBmNXEArVrMSZVxnBJ7pHTt8C7RY91WSZhw8XDNumqMHDM+kEM1z/AtDBAAAGqBE3sjk5ONDXQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.5.0.tgz", + "integrity": "sha512-TD6/QGv/+Uh7GRXM/9m3EC0QpK2+U1WA+hoE5pSnpU5oDzwwUkynS3RuAcd2ID19e/u/ajfZtV+xcpaM7t+SHw==", "dev": true, "dependencies": { - "@lerna/package": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/package": "5.5.0", + "@lerna/validation-error": "5.5.0", "cosmiconfig": "^7.0.0", "dedent": "^0.7.0", "dot-prop": "^6.0.1", "glob-parent": "^5.1.1", "globby": "^11.0.2", + "js-yaml": "^4.1.0", "load-json-file": "^6.2.0", "npmlog": "^6.0.2", "p-map": "^4.0.0", @@ -1988,12 +2026,12 @@ } }, "node_modules/@lerna/prompt": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.1.8.tgz", - "integrity": "sha512-Cmq0FV/vyCHu00kySxXMfuPvutsi8qoME2/nFcICIktvDqxXr5aSFY8QqB123awNCbpb4xcHykjFnEj/RNdb2Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.5.0.tgz", + "integrity": "sha512-B7QEmmyleR+1XAewqEPdgZPecekJgVoAZ8YZgR8l4QlAMvf5BTHI//3AJI/HPN4DYZWGcjDoGFLEkpX906T8Rw==", "dev": true, "dependencies": { - "inquirer": "^7.3.3", + "inquirer": "^8.2.4", "npmlog": "^6.0.2" }, "engines": { @@ -2001,38 +2039,38 @@ } }, "node_modules/@lerna/publish": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.1.8.tgz", - "integrity": "sha512-Q88WxXVNAh/ZWj7vYG83RZUfQyQlJMg7tDhsVTvZzy3VpkkCPtmJXZfX+g4RmE0PNyjsXx9QLYAOZnOB613WyA==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "5.1.8", - "@lerna/child-process": "5.1.8", - "@lerna/collect-updates": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/describe-ref": "5.1.8", - "@lerna/log-packed": "5.1.8", - "@lerna/npm-conf": "5.1.8", - "@lerna/npm-dist-tag": "5.1.8", - "@lerna/npm-publish": "5.1.8", - "@lerna/otplease": "5.1.8", - "@lerna/output": "5.1.8", - "@lerna/pack-directory": "5.1.8", - "@lerna/prerelease-id-from-version": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/validation-error": "5.1.8", - "@lerna/version": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.5.0.tgz", + "integrity": "sha512-ZstILgupYxB8TpGkWgPZg1uoFIQUij07kizHau1BZXdV3xwPU6jtYAzGXuztinJDnnxfwjc7SjuinoYZcbmJXg==", + "dev": true, + "dependencies": { + "@lerna/check-working-tree": "5.5.0", + "@lerna/child-process": "5.5.0", + "@lerna/collect-updates": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/describe-ref": "5.5.0", + "@lerna/log-packed": "5.5.0", + "@lerna/npm-conf": "5.5.0", + "@lerna/npm-dist-tag": "5.5.0", + "@lerna/npm-publish": "5.5.0", + "@lerna/otplease": "5.5.0", + "@lerna/output": "5.5.0", + "@lerna/pack-directory": "5.5.0", + "@lerna/prerelease-id-from-version": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/validation-error": "5.5.0", + "@lerna/version": "5.5.0", "fs-extra": "^9.1.0", - "libnpmaccess": "^4.0.1", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", + "libnpmaccess": "^6.0.3", + "npm-package-arg": "8.1.1", + "npm-registry-fetch": "^13.3.0", "npmlog": "^6.0.2", "p-map": "^4.0.0", "p-pipe": "^3.1.0", - "pacote": "^13.4.1", + "pacote": "^13.6.1", "semver": "^7.3.4" }, "engines": { @@ -2103,9 +2141,9 @@ } }, "node_modules/@lerna/pulse-till-done": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.1.8.tgz", - "integrity": "sha512-KsyOazHG6wnjfdJhIdhTaTNwhj8Np/aPPei/ac9WzcuzgLS/uCs1IVFFIYBv5JdTmyVBKmguSZxdYjk7JzKBew==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.5.0.tgz", + "integrity": "sha512-PcPSCWGzLp00UGJ5VHDpdqpBQ9C9Cs7E5FImEITGHE9UwcAC23LwSp7tOzdXWPyj3u8PLYLn+ebt9ml1jWSKgA==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -2115,26 +2153,26 @@ } }, "node_modules/@lerna/query-graph": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.1.8.tgz", - "integrity": "sha512-+p+bjPI403Hwv1djTS5aJe7DtPWIDw0a427BE68h1mmrPc9oTe3GG+0lingbfGR8woA2rOmjytgK2jeErOryPg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.5.0.tgz", + "integrity": "sha512-mqCzZRF+IDPSj2zYJ1eO3PQsZshiKf54BXAe7HnYYJNbs1i8JMRpdaLr3TEyKDpVTcVzbEmFKwGi7KMhJG6rBQ==", "dev": true, "dependencies": { - "@lerna/package-graph": "5.1.8" + "@lerna/package-graph": "5.5.0" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/resolve-symlink": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.1.8.tgz", - "integrity": "sha512-OJa8ct4Oo2BcD95FmJqkc5qZMepaQK5RZAWoTqEXG/13Gs0mPc0fZGIhnnpTqtm3mgNhlT7ypCHG42I7hKiSeg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.5.0.tgz", + "integrity": "sha512-J44Kc6OWa1uNZh+YSWuIBorTpTuXhuuJ7DtX4vwfF3AAp2frW6pBrmFZMibOcyOQ6QCp+PeiHQCXCF42uSq8pA==", "dev": true, "dependencies": { "fs-extra": "^9.1.0", "npmlog": "^6.0.2", - "read-cmd-shim": "^2.0.0" + "read-cmd-shim": "^3.0.0" }, "engines": { "node": "^14.15.0 || >=16.0.0" @@ -2177,12 +2215,12 @@ } }, "node_modules/@lerna/rimraf-dir": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.1.8.tgz", - "integrity": "sha512-3pT1X8kzW8xHUuAmRgzSKAF+/H1h1eSWq5+ACzeTWnvgqE7++0URee7TXwVCP/5FZPTZIzIclQCh4G0WD9Jfjg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.5.0.tgz", + "integrity": "sha512-dwWN5SGXQ39FocRAZ3uL7tYUuK98r/VHQZRcJjJ8hxpuxti+EPzGegtA05NsvvmW2PpFsBzYKITFQHX3GX4LWA==", "dev": true, "dependencies": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "npmlog": "^6.0.2", "path-exists": "^4.0.0", "rimraf": "^3.0.2" @@ -2207,19 +2245,19 @@ } }, "node_modules/@lerna/run": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.1.8.tgz", - "integrity": "sha512-E5mI3FswVN9zQ3bCYUQxxPlLL400vnKpwLSzzRNFy//TR8Geu0LeR6NY+Jf0jklsKxwWGMJgqL6VqPqxDaNtdw==", - "dev": true, - "dependencies": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/npm-run-script": "5.1.8", - "@lerna/output": "5.1.8", - "@lerna/profiler": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/timer": "5.1.8", - "@lerna/validation-error": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.5.0.tgz", + "integrity": "sha512-yYR65A/GcDgEMmk2lMSBHGAbdgLMi6wICugLzVXfXISuTbEMzN1dCwSeGBOxzK2cvKV2Bpn4WeEYs64FNmNJbQ==", + "dev": true, + "dependencies": { + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/npm-run-script": "5.5.0", + "@lerna/output": "5.5.0", + "@lerna/profiler": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/timer": "5.5.0", + "@lerna/validation-error": "5.5.0", "p-map": "^4.0.0" }, "engines": { @@ -2227,26 +2265,27 @@ } }, "node_modules/@lerna/run-lifecycle": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.1.8.tgz", - "integrity": "sha512-5rRpovujhLJufKRzMp5sl2BIIqrPeoXxjniQbzkpSxZ2vnD+bE9xOoaciHQxOsmXfXhza0C+k3xYMM5+B/bVzg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.5.0.tgz", + "integrity": "sha512-BtnEO3IlZ7znUmQtSxd7oSSmgzJbSH+v58foTpbuvMtOBFJxV4LNyv2uyto2t4bYdCWEnw4ybd8j32aEEG9UNQ==", "dev": true, "dependencies": { - "@lerna/npm-conf": "5.1.8", - "@npmcli/run-script": "^3.0.2", - "npmlog": "^6.0.2" + "@lerna/npm-conf": "5.5.0", + "@npmcli/run-script": "^4.1.7", + "npmlog": "^6.0.2", + "p-queue": "^6.6.2" }, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/run-topologically": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.1.8.tgz", - "integrity": "sha512-isuulfBdNsrgV2QF/HwCKCecfR9mPEU9N4Nf8n9nQQgakwOscoDlwGp2xv27pvcQKI52q/o/ISEjz3JeoEQiOA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.5.0.tgz", + "integrity": "sha512-zl4I/SNg/yiLja1aF0B4X22CRzpRdvLB47KGjAgiGydcHwx2TUmI3MPoQVjvUbaOuctF/wSMS2tI6Hgdo60I0Q==", "dev": true, "dependencies": { - "@lerna/query-graph": "5.1.8", + "@lerna/query-graph": "5.5.0", "p-queue": "^6.6.2" }, "engines": { @@ -2254,13 +2293,13 @@ } }, "node_modules/@lerna/symlink-binary": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.1.8.tgz", - "integrity": "sha512-s7VfKNJZnWvTKZ7KR8Yxh1rYhE/ARMioD5axyu3FleS3Xsdla2M5sQsLouCrdfM3doTO8lMxPVvVSFmL7q0KOA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.5.0.tgz", + "integrity": "sha512-vpVzEWgVfKGzMheb9XizF8hF/Ypfov0iMPBSAzVNxu5eNQVUz3KFrIZNgiBsFdIVN4W/y4jLwOSgXXKwvIodkA==", "dev": true, "dependencies": { - "@lerna/create-symlink": "5.1.8", - "@lerna/package": "5.1.8", + "@lerna/create-symlink": "5.5.0", + "@lerna/package": "5.5.0", "fs-extra": "^9.1.0", "p-map": "^4.0.0" }, @@ -2305,14 +2344,14 @@ } }, "node_modules/@lerna/symlink-dependencies": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.8.tgz", - "integrity": "sha512-U5diiaKdWUlvoFMh3sYIEESBLa8Z3Q/EpkLl5o4YkcbPBjFHJFpmoqCGomwL9sf9HQUV2S9Lt9szJT8qgQm86Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.5.0.tgz", + "integrity": "sha512-gqFZ4AeVr+nqyfg8c2xNizGzBemfgtCpGv4NnjA/66HJWCE+/fT7NTIi8Qk2glbYf37ojRcjUfc0RvW7NGv5qA==", "dev": true, "dependencies": { - "@lerna/create-symlink": "5.1.8", - "@lerna/resolve-symlink": "5.1.8", - "@lerna/symlink-binary": "5.1.8", + "@lerna/create-symlink": "5.5.0", + "@lerna/resolve-symlink": "5.5.0", + "@lerna/symlink-binary": "5.5.0", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "p-map-series": "^2.1.0" @@ -2358,9 +2397,9 @@ } }, "node_modules/@lerna/temp-write": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.1.8.tgz", - "integrity": "sha512-4/guYB5XotugyM8P/F1z6b+hNlSCe/QuZsmiZwgXOw2lmYnkSzLWDVjqsdZtNYqojK0lioxcPjZiL5qnEkk1PQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.5.0.tgz", + "integrity": "sha512-7MmqTfyWcjGkgPkWHaldmCmDBSLka50z0+lsmZuGLwIvQl72ZfC+ZJF/6107m+hgtUJBpJQ3UYEhrrdfR4L46Q==", "dev": true, "dependencies": { "graceful-fs": "^4.1.15", @@ -2371,18 +2410,18 @@ } }, "node_modules/@lerna/timer": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.1.8.tgz", - "integrity": "sha512-Ua4bw2YOO3U+sFujE+MsUG+lllU0X7u6PCTj1QKe0QlR0zr2gCa0pcwjUQPdNfxnpJpPY+hdbfTUv2viDloaiA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.5.0.tgz", + "integrity": "sha512-jgCL2ZmZNn7sWL+M/TuGJukTkUs/il6EwBYcgd10h0JazQ4fAiBhFq36ZzTvYkz6ujKvKOcqyWrMdmi8Q339qA==", "dev": true, "engines": { "node": "^14.15.0 || >=16.0.0" } }, "node_modules/@lerna/validation-error": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.1.8.tgz", - "integrity": "sha512-n+IiaxN2b08ZMYnezsmwL6rXB15/VvweusC04GMh1XtWunnMzSg9JDM7y6bw2vfpBBQx6cBFhLKSpD2Fcq5D5Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.5.0.tgz", + "integrity": "sha512-o/8sEaZKdZdE4/t+E/cFpnYIiDzt7uMHVpWmpCG0l6nZSDzB8+5ehAAudy2qJOwxEAKJ6QGvi7jWLjc2NWa4HQ==", "dev": true, "dependencies": { "npmlog": "^6.0.2" @@ -2392,25 +2431,25 @@ } }, "node_modules/@lerna/version": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.1.8.tgz", - "integrity": "sha512-3f4P7KjIs6Gn2iaGkA5EASE9izZeDKtEzE8i2DE7YfVdw/P+EwFfKv2mKBXGbckYw42YO1tL6aD2QH0C8XbwlA==", - "dev": true, - "dependencies": { - "@lerna/check-working-tree": "5.1.8", - "@lerna/child-process": "5.1.8", - "@lerna/collect-updates": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/conventional-commits": "5.1.8", - "@lerna/github-client": "5.1.8", - "@lerna/gitlab-client": "5.1.8", - "@lerna/output": "5.1.8", - "@lerna/prerelease-id-from-version": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/temp-write": "5.1.8", - "@lerna/validation-error": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.5.0.tgz", + "integrity": "sha512-E6ZrzTrYwof5cSvyTpztZKOiJKAK+aXi/gfsGbLdbYGMArY4B/pYOMOcRMXHBh7BuLicMih/mRUb4M7uCnuE0A==", + "dev": true, + "dependencies": { + "@lerna/check-working-tree": "5.5.0", + "@lerna/child-process": "5.5.0", + "@lerna/collect-updates": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/conventional-commits": "5.5.0", + "@lerna/github-client": "5.5.0", + "@lerna/gitlab-client": "5.5.0", + "@lerna/output": "5.5.0", + "@lerna/prerelease-id-from-version": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/temp-write": "5.5.0", + "@lerna/validation-error": "5.5.0", "chalk": "^4.1.0", "dedent": "^0.7.0", "load-json-file": "^6.2.0", @@ -2526,13 +2565,13 @@ } }, "node_modules/@lerna/write-log-file": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.1.8.tgz", - "integrity": "sha512-B+shMH3TpzA7Q5GGbuNkOmdPQdD1LXRFj7R17LINkn82PhP9CUgubwYuiVzrLa16ADi0V5Ad76pqtHi/6kD0nA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.5.0.tgz", + "integrity": "sha512-XPnp5B+bcmwpXJpJn45V8e2SU6Z1oTwW0vW9uW3l0nmbOvpT9PbPkf9hC80cZOWovXSBefUDwEGqA5fQdhvqGg==", "dev": true, "dependencies": { "npmlog": "^6.0.2", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.1" }, "engines": { "node": "^14.15.0 || >=16.0.0" @@ -2646,9 +2685,9 @@ } }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.0.2.tgz", - "integrity": "sha512-FMX5i7a+ojIguHpWbzh5MCsCouJkwf4z4ejdUY/fsgB9Vkdak4ZnoIEskOyOUMMB4lctiZFGszFQJXUeFL8tRg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.1.2.tgz", + "integrity": "sha512-TyVLn3S/+ikMDsh0gbKv2YydKClN8HaJDDpONlaZR+LVJmsxLFUgA+O7zu59h9+f9gX1aj/ahw9wqa6rosmrYQ==", "cpu": [ "arm64" ], @@ -2659,9 +2698,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.0.2.tgz", - "integrity": "sha512-DznYtF3lHuZDSRaIOYeif4JgO0NtO2Xf8DsngAugMx/bUdTFbg86jDTmkVJBNmV+cxszz6OjGvinnS8AbJ342g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.1.2.tgz", + "integrity": "sha512-YPXtcVkhmVNoMGlqp81ZHW4dMxK09msWgnxtsDpSiZwTzUBG2N+No2bsr7WMtBKCVJMSD6mbAl7YhKUqkp/Few==", "cpu": [ "x64" ], @@ -2672,9 +2711,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.0.2.tgz", - "integrity": "sha512-Gy9+c3Wj+rUlD3YvCZTi92gs+cRX7ZQogtwq0IhRenloTTlsbpezNgk6OCkt59V4ATEWSic9rbU92H/l7XsRvA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.1.2.tgz", + "integrity": "sha512-42R4MAFeIeNn+L98qwxAt360bwzX2Kf0ZQkBBucJ2Ircza3asoY4CDbgiu9VWklq8gWJVSJSJBwDI+c/THiWkA==", "cpu": [ "arm" ], @@ -2685,9 +2724,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.0.2.tgz", - "integrity": "sha512-b0jMEo566YdM2K+BurSed7bswjo3a6bcdw5ETqoIfSuxKuRLPfAiOjVbZyZBgx3J/TAM/QrvEQ/VN89A0ZAxSg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.1.2.tgz", + "integrity": "sha512-vHZ2JiOWF2+DN9lzltGbhtQNzDo8fKFGrf37UJrgqxU0yvtERrzUugnfnX1wmVfFhSsF8OxrfqiNOUc5hko1Zg==", "cpu": [ "arm64" ], @@ -2698,9 +2737,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.0.2.tgz", - "integrity": "sha512-zrBHaePwcv4cQXxzYgNj0+A8I1uVN97E7/3LmkRocYZ+rMwUsnPpp4RuTAHSRoKlTQV3nSdCQW4Qdt4MXw/iHw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.1.2.tgz", + "integrity": "sha512-RjRoRxg7Q3kPAdUSC5EUUPlwfMkIVhmaRTIe+cqHbKrGZ4M6TyCA/b5qMaukQ/1CHWrqYY2FbKOAU8Hg0pQFzg==", "cpu": [ "x64" ], @@ -2711,9 +2750,9 @@ ] }, "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.0.2.tgz", - "integrity": "sha512-fpnI00dt+yO1cKx9qBXelKhPBdEgvc8ZPav1+0r09j0woYQU2N79w/jcGawSY5UGlgQ3vjaJsFHnGbGvvqdLzg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.1.2.tgz", + "integrity": "sha512-rIZVR48zA8hGkHIK7ED6+ZiXsjRCcAVBJbm8o89OKAMTmEAQ2QvoOxoiu3w2isAaWwzgtQIOFIqHwvZDyLKCvw==", "cpu": [ "x64" ], @@ -2759,9 +2798,9 @@ } }, "node_modules/@npmcli/arborist": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.2.0.tgz", - "integrity": "sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz", + "integrity": "sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A==", "dev": true, "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", @@ -2772,7 +2811,7 @@ "@npmcli/name-from-folder": "^1.0.1", "@npmcli/node-gyp": "^2.0.0", "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^3.0.0", + "@npmcli/run-script": "^4.1.3", "bin-links": "^3.0.0", "cacache": "^16.0.6", "common-ancestor-path": "^1.0.1", @@ -2786,7 +2825,7 @@ "npm-pick-manifest": "^7.0.0", "npm-registry-fetch": "^13.0.0", "npmlog": "^6.0.2", - "pacote": "^13.0.5", + "pacote": "^13.6.1", "parse-conflict-json": "^2.0.1", "proc-log": "^2.0.0", "promise-all-reject-late": "^1.0.0", @@ -2806,94 +2845,18 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/arborist/node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } - }, "node_modules/@npmcli/arborist/node_modules/hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/@npmcli/arborist/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz", - "integrity": "sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/@npmcli/arborist/node_modules/npm-package-arg": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", @@ -2909,24 +2872,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/npm-registry-fetch": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz", - "integrity": "sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==", - "dev": true, - "dependencies": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/arborist/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -2969,54 +2914,10 @@ "node": ">=10" } }, - "node_modules/@npmcli/arborist/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/arborist/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/ci-detect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", - "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", - "dev": true - }, "node_modules/@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, "dependencies": { "@gar/promisify": "^1.1.3", @@ -3054,9 +2955,9 @@ } }, "node_modules/@npmcli/git": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.1.tgz", - "integrity": "sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^3.0.0", @@ -3117,9 +3018,9 @@ } }, "node_modules/@npmcli/map-workspaces": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz", - "integrity": "sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz", + "integrity": "sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==", "dev": true, "dependencies": { "@npmcli/name-from-folder": "^1.0.1", @@ -3214,9 +3115,9 @@ } }, "node_modules/@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "dev": true, "dependencies": { "mkdirp": "^1.0.4", @@ -3281,70 +3182,104 @@ } }, "node_modules/@npmcli/run-script": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.3.tgz", - "integrity": "sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^2.0.0", "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^8.4.1", - "read-package-json-fast": "^2.0.3" + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@nrwl/cli": { + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.6.5.tgz", + "integrity": "sha512-sjT4/oMk1F4+dTpCp08IVE8hfqKsokebUECzC1hTu4pCeFo0oviIi7bQTuCIbG9w4iiHLioa6QmLRXBwVJEr9w==", + "dev": true, + "dependencies": { + "nx": "14.6.5" + } + }, + "node_modules/@nrwl/tao": { + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.6.5.tgz", + "integrity": "sha512-sSbTSN4Bfh4vQR2iCl9arNzEhJztG6paY2j+k/GwQZdN+QssX9xV32jLWYIC3rDmPJWaZ11uD3TgAyr3X7GXhw==", + "dev": true, + "dependencies": { + "nx": "14.6.5" + }, + "bin": { + "tao": "index.js" + } + }, "node_modules/@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3" + "@octokit/types": "^7.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", + "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", "dev": true, "dependencies": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^7.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", + "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", "dev": true, "dependencies": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^6.0.0", + "@octokit/types": "^7.0.0", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/openapi-types": { - "version": "12.8.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz", - "integrity": "sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.9.0.tgz", + "integrity": "sha512-MOYjRyLIM0zzNb9RfEwVK6HLIc2nIF2OMVtMqiNOGbX0SHrQvQbI6X1K16ktmaHr8WUBv+eeul8cD9mz4rNiWQ==", "dev": true }, "node_modules/@octokit/plugin-enterprise-rest": { @@ -3354,15 +3289,18 @@ "dev": true }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.1.tgz", - "integrity": "sha512-NVNTK63yoTFp07GqISWK+uDfGH1CAPhQXS7LzsJBvaK5W+UlvG549pLZC55FK0FqANVl6q/9ra3SR5c97xF/sw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.2.2.tgz", + "integrity": "sha512-oslJFmdcWeB3Q8dzn2WNFBzEAvqCH+cvrjBUhS7uwQxAt5yH91w1eo2flWiR0Rqxh+EijQS5ImoB0iQ3hz7P2Q==", "dev": true, "dependencies": { - "@octokit/types": "^6.38.2" + "@octokit/types": "^7.3.0" + }, + "engines": { + "node": ">= 14" }, "peerDependencies": { - "@octokit/core": ">=2" + "@octokit/core": ">=4" } }, "node_modules/@octokit/plugin-request-log": { @@ -3375,62 +3313,74 @@ } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.5.0.tgz", + "integrity": "sha512-+r/tWwc7hI3vYDb+d0hAqbr04Kle6pL+MmGxMDTUn7wIwry5qFXnUA8RCa5CO8EcuHbZLywnqIVRLdM08qV8Ew==", "dev": true, "dependencies": { - "@octokit/types": "^6.39.0", + "@octokit/types": "^7.3.0", "deprecation": "^2.3.1" }, + "engines": { + "node": ">= 14" + }, "peerDependencies": { "@octokit/core": ">=3" } }, "node_modules/@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", "dev": true, "dependencies": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", "dev": true, "dependencies": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", + "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", "dev": true, "dependencies": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/core": "^4.0.0", + "@octokit/plugin-paginate-rest": "^4.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + "@octokit/plugin-rest-endpoint-methods": "^6.0.0" + }, + "engines": { + "node": ">= 14" } }, "node_modules/@octokit/types": { - "version": "6.39.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.39.0.tgz", - "integrity": "sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.3.0.tgz", + "integrity": "sha512-7Ar22AVxsJBYZuPkGQwFQybGt2YjuP6j6Z36bPntIYy3R9qSowB55mXOsb16hc0UqtJkYBrRMVXKlaX1OHsh1g==", "dev": true, "dependencies": { - "@octokit/openapi-types": "^12.7.0" + "@octokit/openapi-types": "^13.9.0" } }, "node_modules/@parcel/bundler-default": { @@ -3673,9 +3623,9 @@ } }, "node_modules/@parcel/css": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css/-/css-1.12.2.tgz", - "integrity": "sha512-Sa0PvZu5u877CupQA8IjEATqjJFynBfA7LxbcyutFe2LDCRSqB5Bm08jKFScyaz56qjZNIxZxXk2SApNkOvoAA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css/-/css-1.13.1.tgz", + "integrity": "sha512-pDv+1tPCk2ggGZ1Msl4r+lq7dPKjUBpZXJf/DMydTnYPxupwAjtmlmOd67CF3QHVLyKYB+viU4g5M8pVXCbaeA==", "dev": true, "dependencies": { "detect-libc": "^1.0.3" @@ -3688,20 +3638,20 @@ "url": "https://opencollective.com/parcel" }, "optionalDependencies": { - "@parcel/css-darwin-arm64": "1.12.2", - "@parcel/css-darwin-x64": "1.12.2", - "@parcel/css-linux-arm-gnueabihf": "1.12.2", - "@parcel/css-linux-arm64-gnu": "1.12.2", - "@parcel/css-linux-arm64-musl": "1.12.2", - "@parcel/css-linux-x64-gnu": "1.12.2", - "@parcel/css-linux-x64-musl": "1.12.2", - "@parcel/css-win32-x64-msvc": "1.12.2" + "@parcel/css-darwin-arm64": "1.13.1", + "@parcel/css-darwin-x64": "1.13.1", + "@parcel/css-linux-arm-gnueabihf": "1.13.1", + "@parcel/css-linux-arm64-gnu": "1.13.1", + "@parcel/css-linux-arm64-musl": "1.13.1", + "@parcel/css-linux-x64-gnu": "1.13.1", + "@parcel/css-linux-x64-musl": "1.13.1", + "@parcel/css-win32-x64-msvc": "1.13.1" } }, "node_modules/@parcel/css-darwin-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.12.2.tgz", - "integrity": "sha512-6VvsoYSltBiUh/uyfPzQ+I3DiTFN7tmRv6zm1LH98J7GGCDDhbYEtbQjjCs15ex6fVn1ORZK0JO+mMlsg1JwTA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.13.1.tgz", + "integrity": "sha512-46LVidYcao8zurVPOZ4ZWJQ/50o4N+Z0K4CRmCCqWE+5gIWlx+md+W0h8XQTRb/GQ3j3+mlZvYCQxHpKy5M1lA==", "cpu": [ "arm64" ], @@ -3719,9 +3669,9 @@ } }, "node_modules/@parcel/css-darwin-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.12.2.tgz", - "integrity": "sha512-3J0/LrDvt5vevOisnrE0q5mEcuiAY+K7OZwIv84SAnrbjlL5sshmIaaNzL869kb4thza+RClEj0mS5XTm1IUEw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.13.1.tgz", + "integrity": "sha512-vX1/Ut06UL5MQzWr5fPg51n6NYrzfjW9A+jXH3KeBloWtX+NllhLilmtcO4X1y/ZqaFjqHWpk4yrNVdtk1r4zA==", "cpu": [ "x64" ], @@ -3739,9 +3689,9 @@ } }, "node_modules/@parcel/css-linux-arm-gnueabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.12.2.tgz", - "integrity": "sha512-OsX7I3dhBvnxEbAH++08RFe7yhjRp33ulzrCvJTMOP9YkxEEJ8qId3sNzJBHIVQzHyTlPTnBRHbSDhU3TFe/eQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.13.1.tgz", + "integrity": "sha512-qxQKUeXLHqehLmuJODQ7GNp0Syj2Kl35X4YvXGoPOI7Eq/y2ny3G5NCKUWkGDwOasIP3hKvVVfJRJv9fLJWnDQ==", "cpu": [ "arm" ], @@ -3759,9 +3709,9 @@ } }, "node_modules/@parcel/css-linux-arm64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.12.2.tgz", - "integrity": "sha512-R1Kqw+1Rsru9Q4+qvUEC6B8P21bpqhuF9rv8GmBmmnF1i2hMZ1JiY+uh/ej8IaRV0O3fAHeQGIyGBWx6qWDpcw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.13.1.tgz", + "integrity": "sha512-FxnOONVo8WBW58uzjqv/mwSBDgGMp1qxK+fovjqLPCP3zcNgxkUG0l6ElWpqtiWWH3mTMzSHe+7hSaeVov12yQ==", "cpu": [ "arm64" ], @@ -3779,9 +3729,9 @@ } }, "node_modules/@parcel/css-linux-arm64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.12.2.tgz", - "integrity": "sha512-nwixgM4SEgPUQata9aAiJW0A5Q9ms+xim1tXT1i+91kOei4Fu2Wr2OuofMk+mlhbgmGKCTcu4gzMPReGxUhuRA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.13.1.tgz", + "integrity": "sha512-6RDhL36HBAtt1mHa/y+34fHRImEJT/rd9hy1Z2qz117WUgzpZ3m4tFw33VrG7MKACugs9C2zG1MdVfy1Rz5+Uw==", "cpu": [ "arm64" ], @@ -3799,9 +3749,9 @@ } }, "node_modules/@parcel/css-linux-x64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.12.2.tgz", - "integrity": "sha512-cJYVMHnQSGhDwQByyvjFZppjMBNlgxXl/R4cX5DwrQE0QZmK/42BYnMp92rvoprEG6LRyRoiGtCjyfYTPWajog==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.13.1.tgz", + "integrity": "sha512-4VsduFKs35J1I3iQJuBCTp66K5mLh8nrtfXzkBDgP9tc6cLqw9PFodby9NhW9SJSn0ZVdrciIXW0C8Lp3Ev+bw==", "cpu": [ "x64" ], @@ -3819,9 +3769,9 @@ } }, "node_modules/@parcel/css-linux-x64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.12.2.tgz", - "integrity": "sha512-u9zdO/d831/74Tf+TdPUfaIuB9v6FD4Xz8UdWUDOXgQqaOlnJ9fAsAM39EkoWlMxPPljY3f4ay6irSe1a4XgSA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.13.1.tgz", + "integrity": "sha512-Ws34m9fW/0UuNTkC359nbnURzvSbCsstRG6QQ3UxdeNJ+crrgEsmvHPcN3WiIz/P2seP1Hu6GobKQAnOy6g3HA==", "cpu": [ "x64" ], @@ -3839,9 +3789,9 @@ } }, "node_modules/@parcel/css-win32-x64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.12.2.tgz", - "integrity": "sha512-kCAKr3vKqvPUv9oXBG3pGZQz5il3sEk35dpmTXFa/7eDNKR5XyLpiJs8JwWJTFfuUqroymDSXA1bCcjvNEYcAg==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.13.1.tgz", + "integrity": "sha512-4yPYFQqUW4ZepIWa8rWiXnSDU6Nki2H9PB1NfTvr7IjN3WsNFrrVZFKsTg/KU2euYnasBXSZ+CMTUutvLZoVaA==", "cpu": [ "x64" ], @@ -5210,9 +5160,9 @@ } }, "node_modules/@rollup/plugin-typescript": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", - "integrity": "sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", + "integrity": "sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -5256,21 +5206,21 @@ "dev": true }, "node_modules/@swc/helpers": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz", - "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", + "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", "dev": true, "dependencies": { "tslib": "^2.4.0" } }, "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, "engines": { - "node": ">= 6" + "node": ">= 10" } }, "node_modules/@trysound/sax": { @@ -5292,9 +5242,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "dependencies": { "@types/estree": "*", @@ -5323,6 +5273,12 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -5336,9 +5292,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", + "version": "18.7.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.15.tgz", + "integrity": "sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==", "dev": true }, "node_modules/@types/normalize-package-data": { @@ -5390,14 +5346,14 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.5.tgz", - "integrity": "sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz", + "integrity": "sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/type-utils": "5.30.5", - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/scope-manager": "5.36.2", + "@typescript-eslint/type-utils": "5.36.2", + "@typescript-eslint/utils": "5.36.2", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -5450,14 +5406,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.5.tgz", - "integrity": "sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.2.tgz", + "integrity": "sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.36.2", + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/typescript-estree": "5.36.2", "debug": "^4.3.4" }, "engines": { @@ -5477,13 +5433,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz", - "integrity": "sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz", + "integrity": "sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5" + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/visitor-keys": "5.36.2" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5494,12 +5450,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.5.tgz", - "integrity": "sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz", + "integrity": "sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/typescript-estree": "5.36.2", + "@typescript-eslint/utils": "5.36.2", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -5520,9 +5477,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz", - "integrity": "sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.36.2.tgz", + "integrity": "sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -5533,13 +5490,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz", - "integrity": "sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz", + "integrity": "sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5", + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/visitor-keys": "5.36.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -5587,15 +5544,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz", - "integrity": "sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.36.2.tgz", + "integrity": "sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.36.2", + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/typescript-estree": "5.36.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, @@ -5611,12 +5568,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz", - "integrity": "sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz", + "integrity": "sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.30.5", + "@typescript-eslint/types": "5.36.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -5849,6 +5806,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz", "integrity": "sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw==", + "deprecated": "This is probably built in to whatever tool you're using. If you still need it... idk", "dev": true, "peerDependencies": { "acorn": "^6.0.0" @@ -5998,16 +5956,16 @@ "dev": true }, "node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/argparse": { @@ -6121,9 +6079,9 @@ } }, "node_modules/azure-devops-node-api": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.1.1.tgz", - "integrity": "sha512-XDG91XzLZ15reP12s3jFkKS8oiagSICjnLwxEYieme4+4h3ZveFOFRA4iYIG40RyHXsiI0mefFYYMFIJbMpWcg==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", + "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", "dev": true, "dependencies": { "tunnel": "0.0.6", @@ -6181,24 +6139,15 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/bin-links": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.1.tgz", - "integrity": "sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz", + "integrity": "sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==", "dev": true, "dependencies": { "cmd-shim": "^5.0.0", "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0", + "npm-normalize-package-bin": "^2.0.0", "read-cmd-shim": "^3.0.0", "rimraf": "^3.0.0", "write-file-atomic": "^4.0.0" @@ -6207,22 +6156,10 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/bin-links/node_modules/cmd-shim": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", - "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", - "dev": true, - "dependencies": { - "mkdirp-infer-owner": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/bin-links/node_modules/read-cmd-shim": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz", - "integrity": "sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==", + "node_modules/bin-links/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", "dev": true, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -6243,19 +6180,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/bin-links/node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -6311,9 +6235,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "funding": [ { @@ -6326,10 +6250,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" }, "bin": { "browserslist": "cli.js" @@ -6408,10 +6332,40 @@ } }, "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } + }, + "node_modules/builtins/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/builtins/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/byte-size": { "version": "7.0.1", @@ -6423,9 +6377,9 @@ } }, "node_modules/cacache": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", - "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, "dependencies": { "@npmcli/fs": "^2.1.0", @@ -6445,7 +6399,7 @@ "rimraf": "^3.0.2", "ssri": "^9.0.0", "tar": "^6.1.11", - "unique-filename": "^1.1.1" + "unique-filename": "^2.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" @@ -6548,18 +6502,6 @@ "node": "*" } }, - "node_modules/cacache/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -6609,9 +6551,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "version": "1.0.30001390", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz", + "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==", "dev": true, "funding": [ { @@ -6742,9 +6684,9 @@ } }, "node_modules/cheerio-select/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true, "engines": { "node": ">=0.12" @@ -6797,9 +6739,9 @@ } }, "node_modules/cheerio/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true, "engines": { "node": ">=0.12" @@ -6905,6 +6847,18 @@ "node": ">=8" } }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -6961,15 +6915,15 @@ } }, "node_modules/cmd-shim": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", - "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", + "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", "dev": true, "dependencies": { "mkdirp-infer-owner": "^2.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/color-convert": { @@ -7464,6 +7418,15 @@ "node": ">=0.8" } }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -7666,9 +7629,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.183", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.183.tgz", - "integrity": "sha512-PnJvlREshGPh3M5tgReLgqbOQ61yd4Knwo39Cxy9SMfqwX9q5iRy+JioQC1LyKx1IBAH2zoctAWblhgM2kbEKQ==", + "version": "1.4.243", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.243.tgz", + "integrity": "sha512-BgLD2gBX43OSXwlT01oYRRD5NIB4n3okTRxkzEAC6G0SZG4TTlyrWMjbOo0fajCwqwpRtMHXQNMjtRN6qpNtfw==", "dev": true }, "node_modules/emoji-regex": { @@ -7677,15 +7640,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -7719,17 +7673,37 @@ } }, "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">=6.9.0" + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/enquirer/node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" } }, "node_modules/entities": { @@ -7771,18 +7745,6 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -7793,16 +7755,16 @@ } }, "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", @@ -7814,9 +7776,9 @@ "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", @@ -7886,13 +7848,15 @@ } }, "node_modules/eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", + "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.1", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7902,14 +7866,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -7924,8 +7891,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -7938,9 +7904,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "version": "7.31.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.7.tgz", + "integrity": "sha512-8NldBTeYp/kQoTV1uT0XF6HcmDqbgZ0lNPkN0wlRw8DJKXEnaWu+oh/6gt3xIhzvQ35wB2Y545fJhIbJSZ2NNw==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -8127,9 +8093,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -8184,23 +8150,26 @@ } }, "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", "dev": true, "dependencies": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -8384,10 +8353,13 @@ "dev": true }, "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/fastq": { "version": "1.13.0", @@ -8447,25 +8419,26 @@ } }, "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", "dev": true, - "dependencies": { - "is-buffer": "~2.0.3" - }, "bin": { "flat": "cli.js" } @@ -8499,9 +8472,9 @@ } }, "node_modules/flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/fs-constants": { @@ -8926,6 +8899,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -9146,12 +9125,12 @@ "dev": true }, "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "dependencies": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, @@ -9232,20 +9211,44 @@ } }, "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", "dev": true, "dependencies": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "dev": true - }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -9328,48 +9331,48 @@ "dev": true }, "node_modules/init-package-json": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz", - "integrity": "sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz", + "integrity": "sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==", "dev": true, "dependencies": { - "npm-package-arg": "^8.1.5", + "npm-package-arg": "^9.0.1", "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "^4.1.1", + "read": "^1.0.7", + "read-package-json": "^5.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0" + "validate-npm-package-name": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/init-package-json/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/init-package-json/node_modules/hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/init-package-json/node_modules/read-package-json": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz", - "integrity": "sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==", + "node_modules/init-package-json/node_modules/npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dev": true, "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/init-package-json/node_modules/semver": { @@ -9387,28 +9390,42 @@ "node": ">=10" } }, + "node_modules/init-package-json/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.0.0" } }, "node_modules/inquirer/node_modules/ansi-styles": { @@ -9514,9 +9531,9 @@ } }, "node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, "node_modules/is-arrayish": { @@ -9589,15 +9606,18 @@ } }, "node_modules/is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", "dev": true, "dependencies": { - "builtin-modules": "^3.0.0" + "builtin-modules": "^3.3.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-callable": { @@ -9625,9 +9645,9 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -9651,6 +9671,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -9681,6 +9716,15 @@ "node": ">=0.10.0" } }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-json": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", @@ -9868,6 +9912,18 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -9880,6 +9936,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -10062,28 +10130,28 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "dependencies": { "array-includes": "^3.1.5", - "object.assign": "^4.1.2" + "object.assign": "^4.1.3" }, "engines": { "node": ">=4.0" } }, "node_modules/just-diff": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.0.3.tgz", - "integrity": "sha512-a8p80xcpJ6sdurk5PxDKb4mav9MeKjA3zFKZpCWBIfvg8mznfnmb13MKZvlrwJ+Lhis0wM3uGAzE0ArhFHvIcg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", + "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", "dev": true }, "node_modules/just-diff-apply": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.3.1.tgz", - "integrity": "sha512-dgFenZnMsc1xGNqgdtgnh7DK+Oy352CE3VZLbzcbQpsBs9iI2K3M0IRrdgREZ72eItTjbl0suRyvKRdVQa9GbA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", + "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", "dev": true }, "node_modules/keytar": { @@ -10113,29 +10181,31 @@ } }, "node_modules/lerna": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.1.8.tgz", - "integrity": "sha512-KrpFx2l1x1X7wb9unqRU7OZTaNs5+67VQ1vxf8fIMgdtCAjEqkLxF/F3xLs+KBMws5PV19Q9YtPHn7SiwDl7iQ==", - "dev": true, - "dependencies": { - "@lerna/add": "5.1.8", - "@lerna/bootstrap": "5.1.8", - "@lerna/changed": "5.1.8", - "@lerna/clean": "5.1.8", - "@lerna/cli": "5.1.8", - "@lerna/create": "5.1.8", - "@lerna/diff": "5.1.8", - "@lerna/exec": "5.1.8", - "@lerna/import": "5.1.8", - "@lerna/info": "5.1.8", - "@lerna/init": "5.1.8", - "@lerna/link": "5.1.8", - "@lerna/list": "5.1.8", - "@lerna/publish": "5.1.8", - "@lerna/run": "5.1.8", - "@lerna/version": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.5.0.tgz", + "integrity": "sha512-1cZIijUWcI9ZqK+ejj1dBejTOLL64b0pIjYXb9KN8soNIONm/1zbJiSBiAyF4Hd6x4XuIC3kdFx7Ff3Pb9KsYA==", + "dev": true, + "dependencies": { + "@lerna/add": "5.5.0", + "@lerna/bootstrap": "5.5.0", + "@lerna/changed": "5.5.0", + "@lerna/clean": "5.5.0", + "@lerna/cli": "5.5.0", + "@lerna/create": "5.5.0", + "@lerna/diff": "5.5.0", + "@lerna/exec": "5.5.0", + "@lerna/import": "5.5.0", + "@lerna/info": "5.5.0", + "@lerna/init": "5.5.0", + "@lerna/link": "5.5.0", + "@lerna/list": "5.5.0", + "@lerna/publish": "5.5.0", + "@lerna/run": "5.5.0", + "@lerna/version": "5.5.0", "import-local": "^3.0.2", - "npmlog": "^6.0.2" + "npmlog": "^6.0.2", + "nx": ">=14.6.1 < 16", + "typescript": "^3 || ^4" }, "bin": { "lerna": "cli.js" @@ -10167,54 +10237,63 @@ } }, "node_modules/libnpmaccess": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", - "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.4.tgz", + "integrity": "sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==", "dev": true, "dependencies": { "aproba": "^2.0.0", "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/libnpmaccess/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "node_modules/libnpmaccess/node_modules/hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/libnpmpublish": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", - "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", + "node_modules/libnpmaccess/node_modules/npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/libnpmaccess/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { - "normalize-package-data": "^3.0.2", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0", - "semver": "^7.1.3", - "ssri": "^8.0.1" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, - "node_modules/libnpmpublish/node_modules/lru-cache": { + "node_modules/libnpmaccess/node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", @@ -10226,21 +10305,62 @@ "node": ">=10" } }, - "node_modules/libnpmpublish/node_modules/npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "node_modules/libnpmpublish": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.5.tgz", + "integrity": "sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg==", "dev": true, "dependencies": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" + "normalize-package-data": "^4.0.0", + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0", + "semver": "^7.3.7", + "ssri": "^9.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/libnpmpublish/node_modules/hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/libnpmpublish/node_modules/normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/libnpmpublish/node_modules/npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/libnpmpublish/node_modules/semver": { @@ -10258,6 +10378,18 @@ "node": ">=10" } }, + "node_modules/libnpmpublish/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -10334,52 +10466,19 @@ "node": ">=6.11.5" } }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/locate-path/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -10425,9 +10524,9 @@ } }, "node_modules/lru-cache": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz", - "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", "dev": true, "engines": { "node": ">=12" @@ -10464,124 +10563,30 @@ } }, "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "dev": true, "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", + "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", + "negotiator": "^0.6.3", "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/make-fetch-happen/node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-fetch-happen/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/make-fetch-happen/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/map-obj": { @@ -10622,9 +10627,9 @@ } }, "node_modules/marked": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz", - "integrity": "sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", + "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -10667,49 +10672,6 @@ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, - "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/memory-fs/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -10775,6 +10737,21 @@ "node": ">=8" } }, + "node_modules/meow/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/meow/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -11018,20 +10995,20 @@ } }, "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dev": true, "dependencies": { - "minipass": "^3.1.0", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" }, "engines": { - "node": ">=8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" }, "optionalDependencies": { - "encoding": "^0.1.12" + "encoding": "^0.1.13" } }, "node_modules/minipass-flush": { @@ -11213,6 +11190,18 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "node_modules/mocha/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/mocha/node_modules/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -11252,6 +11241,19 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/mocha/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/mocha/node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -11297,6 +11299,42 @@ "node": ">= 0.4" } }, + "node_modules/mocha/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mocha/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/mocha/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -11420,43 +11458,34 @@ "dev": true }, "node_modules/msgpackr": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.6.1.tgz", - "integrity": "sha512-Je+xBEfdjtvA4bKaOv8iRhjC8qX2oJwpYH4f7JrG4uMVJVmnmkAT4pjKdbztKprGj3iwjcxPzb5umVZ02Qq3tA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.6.2.tgz", + "integrity": "sha512-bqSQ0DYJbXbrJcrZFmMygUZmqQiDfI2ewFVWcrZY12w5XHWtPuW4WppDT/e63Uu311ajwkRRXSoF0uILroBeTA==", "dev": true, "optionalDependencies": { "msgpackr-extract": "^2.0.2" } }, "node_modules/msgpackr-extract": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.0.2.tgz", - "integrity": "sha512-coskCeJG2KDny23zWeu+6tNy7BLnAiOGgiwzlgdm4oeSsTpqEJJPguHIuKZcCdB7tzhZbXNYSg6jZAXkZErkJA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.1.2.tgz", + "integrity": "sha512-cmrmERQFb19NX2JABOGtrKdHMyI6RUyceaPBQ2iRz9GnDkjBWFjNJC0jyyoOfZl2U/LZE3tQCCQc4dlRyA8mcA==", "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { - "node-gyp-build-optional-packages": "5.0.2" + "node-gyp-build-optional-packages": "5.0.3" }, - "optionalDependencies": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-linux-arm": "2.0.2", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-linux-x64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-win32-x64": "2.0.2" - } - }, - "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.2.tgz", - "integrity": "sha512-PiN4NWmlQPqvbEFcH/omQsswWQbe5Z9YK/zdB23irp5j2XibaA2IrGvpSWmVVG4qMZdmPdwPctSy4a86rOMn6g==", - "dev": true, - "optional": true, "bin": { - "node-gyp-build-optional": "optional.js", - "node-gyp-build-optional-packages": "bin.js", - "node-gyp-build-test": "build-test.js" + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-linux-arm": "2.1.2", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-linux-x64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-win32-x64": "2.1.2" } }, "node_modules/multimatch": { @@ -11527,9 +11556,9 @@ "dev": true }, "node_modules/node-abi": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", - "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", + "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -11610,38 +11639,16 @@ } } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.1.0.tgz", + "integrity": "sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g==", "dev": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", + "make-fetch-happen": "^10.0.3", "nopt": "^5.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -11653,7 +11660,7 @@ "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">= 10.12.0" + "node": "^12.22 || ^14.13 || >=16" } }, "node_modules/node-gyp-build": { @@ -11721,9 +11728,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "node_modules/nopt": { @@ -11859,19 +11866,37 @@ "dev": true }, "node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz", + "integrity": "sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==", "dev": true, "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" }, "engines": { "node": ">=10" } }, + "node_modules/npm-package-arg/node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/npm-package-arg/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -11899,58 +11924,128 @@ "node": ">=10" } }, + "node_modules/npm-package-arg/node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, "node_modules/npm-packlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "dev": true, "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" }, "bin": { "npm-packlist": "bin/index.js" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm-pick-manifest": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", - "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==", + "node_modules/npm-packlist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^9.0.0", - "semver": "^7.3.5" + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm-packlist/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm-packlist/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/node_modules/npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^2.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm-pick-manifest/node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "node_modules/npm-packlist/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz", + "integrity": "sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw==", "dev": true, "dependencies": { - "semver": "^7.0.0" + "npm-install-checks": "^5.0.0", + "npm-normalize-package-bin": "^2.0.0", + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { @@ -11995,140 +12090,49 @@ "node": ">=10" } }, - "node_modules/npm-pick-manifest/node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/npm-registry-fetch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", - "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", "dev": true, "dependencies": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", + "make-fetch-happen": "^10.0.6", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.3", "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/npm-registry-fetch/node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" }, "engines": { - "node": ">= 10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "lru-cache": "^7.5.1" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dev": true, "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" }, "engines": { - "node": ">= 10" - } - }, - "node_modules/npm-registry-fetch/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/npm-registry-fetch/node_modules/semver": { @@ -12146,18 +12150,16 @@ "node": ">=10" } }, - "node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "node_modules/npm-registry-fetch/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=10" } }, "node_modules/npm-run-all": { @@ -12297,88 +12299,465 @@ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", "dev": true }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/nx": { + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.6.5.tgz", + "integrity": "sha512-egV8Zrec+0m+27wTENe9W/JKRMkBDx1N0xaFzKjL0WKj5WIe4asao5uwTJEwqi9iQyiijExxUFVU5MNGuF2c+A==", "dev": true, - "engines": { - "node": ">= 0.4" + "hasInstallScript": true, + "dependencies": { + "@nrwl/cli": "14.6.5", + "@nrwl/tao": "14.6.5", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.0.0", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + }, + "bin": { + "nx": "bin/nx.js" + }, + "peerDependencies": { + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } } }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "node_modules/nx/node_modules/@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" }, "engines": { - "node": ">= 0.4" + "node": ">= 10.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "node_modules/nx/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "node_modules/nx/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", - "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", + "node_modules/nx/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, - "dependencies": { + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/nx/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/nx/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/nx/node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nx/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/nx/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/nx/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/nx/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/nx/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/nx/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/nx/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/nx/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nx/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/nx/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/nx/node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/nx/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz", + "integrity": "sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ==", + "dev": true, + "dependencies": { "array.prototype.reduce": "^1.0.4", "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -12445,6 +12824,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -12462,467 +12858,326 @@ "node": ">= 0.8.0" } }, - "node_modules/ordered-binary": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.3.0.tgz", - "integrity": "sha512-knIeYepTI6BDAzGxqFEDGtI/iGqs57H32CInAIxEvAHG46vk1Di0CEpyc1A7iY39B1mfik3g3KLYwOTNnnMHLA==", - "dev": true - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" + "color-convert": "^2.0.1" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map-series": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-pipe": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", - "dev": true, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/p-queue": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "eventemitter3": "^4.0.4", - "p-timeout": "^3.2.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-reduce": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", - "dev": true, - "engines": { - "node": ">=8" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/p-timeout": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "p-finally": "^1.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/p-waterfall": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", + "node_modules/ora/node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { - "p-reduce": "^2.0.0" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz", - "integrity": "sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw==", - "dev": true, - "dependencies": { - "@npmcli/git": "^3.0.0", - "@npmcli/installed-package-contents": "^1.0.7", - "@npmcli/promise-spawn": "^3.0.0", - "@npmcli/run-script": "^4.1.0", - "cacache": "^16.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "minipass": "^3.1.6", - "mkdirp": "^1.0.4", - "npm-package-arg": "^9.0.0", - "npm-packlist": "^5.1.0", - "npm-pick-manifest": "^7.0.0", - "npm-registry-fetch": "^13.0.1", - "proc-log": "^2.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^5.0.0", - "read-package-json-fast": "^2.0.3", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/@npmcli/run-script": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.1.5.tgz", - "integrity": "sha512-FyrZkZ+O0bCnQqm+mRb6sKbEJgyJudInwFN84gCcMUcxrWkR15Ags1uOHwnxHYdpj3T5eqrCZNW/Ys20MGTQ6Q==", + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pacote/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "node": ">=8" } }, - "node_modules/pacote/node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" - } + "node_modules/ordered-binary": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.3.0.tgz", + "integrity": "sha512-knIeYepTI6BDAzGxqFEDGtI/iGqs57H32CInAIxEvAHG46vk1Di0CEpyc1A7iY39B1mfik3g3KLYwOTNnnMHLA==", + "dev": true }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=0.10.0" } }, - "node_modules/pacote/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/pacote/node_modules/ignore-walk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "minimatch": "^5.0.1" + "yocto-queue": "^0.1.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/make-fetch-happen": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz", - "integrity": "sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" + "p-limit": "^3.0.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "aggregate-error": "^3.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/minipass-fetch": { + "node_modules/p-map-series": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", "dev": true, - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" + } + }, + "node_modules/p-pipe": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", + "dev": true, + "engines": { + "node": ">=8" }, - "optionalDependencies": { - "encoding": "^0.1.13" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/node-gyp": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.0.0.tgz", - "integrity": "sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw==", + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" }, "engines": { - "node": "^12.22 || ^14.13 || >=16" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/normalize-package-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", - "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "node_modules/p-reduce": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=8" } }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", - "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "p-finally": "^1.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/pacote/node_modules/npm-packlist": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz", - "integrity": "sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "dependencies": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^1.1.2", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=6" } }, - "node_modules/pacote/node_modules/npm-packlist/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "node_modules/p-waterfall": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "p-reduce": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pacote/node_modules/npm-registry-fetch": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz", - "integrity": "sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==", + "node_modules/pacote": { + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", "dev": true, "dependencies": { - "make-fetch-happen": "^10.0.6", + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^4.1.0", + "cacache": "^16.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.1.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "lib/bin.js" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/pacote/node_modules/read-package-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz", - "integrity": "sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==", + "node_modules/pacote/node_modules/hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "dependencies": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1" + "lru-cache": "^7.5.1" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/pacote/node_modules/read-package-json/node_modules/glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "node_modules/pacote/node_modules/npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dev": true, "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/pacote/node_modules/rimraf": { @@ -12967,44 +13222,6 @@ "node": ">=10" } }, - "node_modules/pacote/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pacote/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/pacote/node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/parcel": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.7.0.tgz", @@ -13200,12 +13417,12 @@ } }, "node_modules/parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", "dev": true, "dependencies": { - "entities": "^4.3.0" + "entities": "^4.4.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -13240,9 +13457,9 @@ } }, "node_modules/parse5/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true, "engines": { "node": ">=0.12" @@ -13372,10 +13589,25 @@ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" }, "engines": { - "node": ">=8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pkg-dir/node_modules/p-locate": { @@ -13591,12 +13823,6 @@ "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", "dev": true }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -13737,24 +13963,27 @@ } }, "node_modules/read-cmd-shim": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", - "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz", + "integrity": "sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } }, "node_modules/read-package-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", - "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", "dev": true, "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" }, "engines": { - "node": ">=10" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/read-package-json-fast": { @@ -13770,6 +13999,109 @@ "node": ">=10" } }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", + "dev": true, + "dependencies": { + "lru-cache": "^7.5.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/read-package-json/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", @@ -14225,9 +14557,9 @@ } }, "node_modules/rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", + "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -14286,23 +14618,14 @@ } }, "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", "dev": true, "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" + "tslib": "^2.1.0" } }, - "node_modules/rxjs/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -14330,9 +14653,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.8.tgz", + "integrity": "sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -14535,12 +14858,12 @@ } }, "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", + "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", "dev": true, "dependencies": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { @@ -14549,9 +14872,9 @@ } }, "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, "dependencies": { "agent-base": "^6.0.2", @@ -14647,9 +14970,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, "node_modules/split": { @@ -14680,15 +15003,15 @@ "dev": true }, "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "dependencies": { "minipass": "^3.1.1" }, "engines": { - "node": ">= 8" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/stable": { @@ -14902,9 +15225,9 @@ } }, "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { "node": ">=6" @@ -14983,9 +15306,9 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -15001,16 +15324,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "engines": { "node": ">= 10.13.0" @@ -15035,9 +15358,9 @@ } }, "node_modules/terser/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -15123,16 +15446,10 @@ } }, "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "node_modules/treeverse": { "version": "2.0.0", @@ -15162,23 +15479,153 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/ts-loader": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.5.tgz", - "integrity": "sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig==", + "node_modules/ts-loader": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.1.tgz", + "integrity": "sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", + "micromatch": "^4.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "dependencies": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", - "micromatch": "^4.0.0", - "semver": "^6.0.0" + "minimist": "^1.2.0" }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": "*" + "node": ">=4" } }, "node_modules/tslib": { @@ -15314,9 +15761,9 @@ } }, "node_modules/typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -15333,9 +15780,9 @@ "dev": true }, "node_modules/uglify-js": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", - "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==", "dev": true, "optional": true, "bin": { @@ -15423,21 +15870,27 @@ } }, "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, "dependencies": { - "unique-slug": "^2.0.0" + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/unist-util-is": { @@ -15502,9 +15955,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", "dev": true, "funding": [ { @@ -15583,12 +16036,15 @@ } }, "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", "dev": true, "dependencies": { - "builtins": "^1.0.3" + "builtins": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/vfile": { @@ -15640,9 +16096,9 @@ } }, "node_modules/vsce": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.9.2.tgz", - "integrity": "sha512-xyLqL4U82BilUX1t6Ym2opQEa2tLGWYjbgB7+ETeNVXlIJz5sWBJjQJSYJVFOKJSpiOtQclolu88cj7oY6vvPQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.11.0.tgz", + "integrity": "sha512-pr9Y0va/HCer0tTifeqaUrK24JJSpRd6oLeF/PY6FtrY41e+lwxiAq6jfMXx4ShAZglYg2rFKoKROwa7E7SEqQ==", "dev": true, "dependencies": { "azure-devops-node-api": "^11.0.1", @@ -15765,18 +16221,15 @@ "dev": true }, "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -15784,11 +16237,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -15801,7 +16254,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -15896,9 +16349,9 @@ "dev": true }, "node_modules/webpack/node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -15916,40 +16369,14 @@ "acorn": "^8" } }, - "node_modules/webpack/node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/which": { @@ -16119,15 +16546,16 @@ "dev": true }, "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/write-json-file": { @@ -16159,6 +16587,18 @@ "node": ">=8" } }, + "node_modules/write-json-file/node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, "node_modules/write-pkg": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/write-pkg/-/write-pkg-4.0.0.tgz", @@ -16396,6 +16836,30 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "node_modules/yargs-unparser/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "dependencies": { + "is-buffer": "~2.0.3" + }, + "bin": { + "flat": "cli.js" + } + }, "node_modules/yargs-unparser/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", @@ -16405,6 +16869,55 @@ "node": ">=4" } }, + "node_modules/yargs-unparser/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs-unparser/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-unparser/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/yargs-unparser/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -16497,6 +17010,18 @@ "dependencies": { "buffer-crc32": "~0.2.3" } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } }, "dependencies": { @@ -16521,28 +17046,28 @@ } }, "@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", + "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", "dev": true }, "@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", + "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", "dev": true, "peer": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -16551,13 +17076,13 @@ } }, "@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "peer": true, "requires": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -16577,33 +17102,33 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", + "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.6", + "@babel/compat-data": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" } }, "@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, "peer": true }, "@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "peer": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { @@ -16627,20 +17152,20 @@ } }, "@babel/helper-module-transforms": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", - "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", "dev": true, "peer": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/helper-simple-access": { @@ -16663,6 +17188,13 @@ "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "peer": true + }, "@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", @@ -16676,15 +17208,15 @@ "dev": true }, "@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", "dev": true, "peer": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/highlight": { @@ -16699,50 +17231,51 @@ } }, "@babel/parser": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", + "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", "dev": true, "peer": true }, "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "peer": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", - "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", + "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", "dev": true, "peer": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/parser": "^7.19.0", + "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.7.tgz", - "integrity": "sha512-QG3yxTcTIBoAcQmkCs+wAPYZhu7Dk9rXKacINfNbdJDNERTbLQbHGyVG8q/YGMPeCJRIhSY0+fTc5+xuh6WPSQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "peer": true, "requires": { + "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } @@ -16754,14 +17287,14 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", + "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.2", + "espree": "^9.4.0", "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", @@ -16771,9 +17304,9 @@ }, "dependencies": { "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -16794,9 +17327,9 @@ "dev": true }, "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -16804,6 +17337,18 @@ "minimatch": "^3.0.4" } }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -16875,9 +17420,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -16885,20 +17430,20 @@ } }, "@lerna/add": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.1.8.tgz", - "integrity": "sha512-ABplk8a5MmiT8lG1b9KHijRUwj/nOePMuezBHjJEpNeQ8Bw5w3IV/6hpdmApx/w1StBwWWf0UG42klrxXlfl/g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/add/-/add-5.5.0.tgz", + "integrity": "sha512-RdJ8yyE8BizzrYRjZuqeXtgkHBE/KzcS7tmBG+UKCQ5QFLnkdORzaVECNy2sfZl0vTtrxj4cv+kuwxIeg/4XVQ==", "dev": true, "requires": { - "@lerna/bootstrap": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/npm-conf": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/bootstrap": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/npm-conf": "5.5.0", + "@lerna/validation-error": "5.5.0", "dedent": "^0.7.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "p-map": "^4.0.0", - "pacote": "^13.4.1", + "pacote": "^13.6.1", "semver": "^7.3.4" }, "dependencies": { @@ -16923,28 +17468,28 @@ } }, "@lerna/bootstrap": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.1.8.tgz", - "integrity": "sha512-/QZJc6aRxi6csSR59jdqRXPFh33fbn60F1k/SWtCCELGkZub23fAPLKaO7SlMcyghN3oKlfTfVymu/NWEcptJQ==", - "dev": true, - "requires": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/has-npm-version": "5.1.8", - "@lerna/npm-install": "5.1.8", - "@lerna/package-graph": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/rimraf-dir": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/symlink-binary": "5.1.8", - "@lerna/symlink-dependencies": "5.1.8", - "@lerna/validation-error": "5.1.8", - "@npmcli/arborist": "5.2.0", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.5.0.tgz", + "integrity": "sha512-GeXLSDi6gxj2O3t5T7qgFabBKoC5EQwiFyQ4ufqx1Wm/mWxqRI+enTBnbaBbmhQaVQ9wfPvMPDukJ5Q9PCTUcQ==", + "dev": true, + "requires": { + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/has-npm-version": "5.5.0", + "@lerna/npm-install": "5.5.0", + "@lerna/package-graph": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/rimraf-dir": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/symlink-binary": "5.5.0", + "@lerna/symlink-dependencies": "5.5.0", + "@lerna/validation-error": "5.5.0", + "@npmcli/arborist": "5.3.0", "dedent": "^0.7.0", "get-port": "^5.1.1", "multimatch": "^5.0.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "p-map": "^4.0.0", "p-map-series": "^2.1.0", @@ -16973,32 +17518,32 @@ } }, "@lerna/changed": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.1.8.tgz", - "integrity": "sha512-JA9jX9VTHrwSMRJTgLEzdyyx4zi35X0yP6fUUFuli9a0zrB4HV4IowSn1XM03H8iebbDLB0eWBbosqhYwSP8Sw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/changed/-/changed-5.5.0.tgz", + "integrity": "sha512-ZEnVHrPEpf2Iii/Z59g1lfKEwPA1V2an5L27MzNQjbWe6JQZqTU+8V6m+Vmbr4VdEH5jfRL5NVETGCLl7qN/pQ==", "dev": true, "requires": { - "@lerna/collect-updates": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/listable": "5.1.8", - "@lerna/output": "5.1.8" + "@lerna/collect-updates": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/listable": "5.5.0", + "@lerna/output": "5.5.0" } }, "@lerna/check-working-tree": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.1.8.tgz", - "integrity": "sha512-3QyiV75cYt9dtg9JhUt+Aiyk44mFjlyqIIJ/XZ2Cp/Xcwws/QrNKOTs5iYFX5XWzlpTgotOHcu1MH/mY55Czlw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.5.0.tgz", + "integrity": "sha512-U35yV8R+tv6zQgoDr0rnBt4wm4gyhDcE4tUEeB8m7JHVu7g45Fjv2jFLH1z5RM1PVaEbzKVebqfN5ccB0EBuyg==", "dev": true, "requires": { - "@lerna/collect-uncommitted": "5.1.8", - "@lerna/describe-ref": "5.1.8", - "@lerna/validation-error": "5.1.8" + "@lerna/collect-uncommitted": "5.5.0", + "@lerna/describe-ref": "5.5.0", + "@lerna/validation-error": "5.5.0" } }, "@lerna/child-process": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.1.8.tgz", - "integrity": "sha512-P0o4Y/sdiUJ53spZpaVv53NdAcl15UAi5//W3uT2T250xQPlVROwKy11S3Wzqglh94FYdi6XUy293x1uwBlFPw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.5.0.tgz", + "integrity": "sha512-er7bsj2W/H8JWAIB+CkgCLk9IlMkyVzywbOZcMC+xic2fp7rmM/BdtAE4nTjkKwfaRYF/bwjHyZowZUR3s8cEg==", "dev": true, "requires": { "chalk": "^4.1.0", @@ -17058,40 +17603,40 @@ } }, "@lerna/clean": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.1.8.tgz", - "integrity": "sha512-xMExZgjan5/8ZTjJkZoLoTKY1MQOMk7W1YXslbg9BpLevBycPk041MlLauzCyO8XdOpqpVnFCg/9W66fltqmQg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/clean/-/clean-5.5.0.tgz", + "integrity": "sha512-TRW4Gkv6QpWSy0tm72NrxvgmTAC+W0LqhLPlFM5k5feFS75/HGOycpf97M4JSUueyBCuVjsPfzqp/e6MB3Ntng==", "dev": true, "requires": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/rimraf-dir": "5.1.8", + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/rimraf-dir": "5.5.0", "p-map": "^4.0.0", "p-map-series": "^2.1.0", "p-waterfall": "^2.1.1" } }, "@lerna/cli": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.1.8.tgz", - "integrity": "sha512-0Ghhd9M9QvY6qZtnjTq5RHOIac2ttsW2VNFLFso8ov3YV+rJF4chLhyVaVBvLSA+5ZhwFH+xQ3/yeUx1tDO8GA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/cli/-/cli-5.5.0.tgz", + "integrity": "sha512-7TtnO2xfnfrpWGIui6ANrH4/AVHmSfjaExSoZKNhh2dKSSEOETEUfFIIzfEAirAVR7EOXAJwDdFbbpB4lQtyUg==", "dev": true, "requires": { - "@lerna/global-options": "5.1.8", + "@lerna/global-options": "5.5.0", "dedent": "^0.7.0", "npmlog": "^6.0.2", "yargs": "^16.2.0" } }, "@lerna/collect-uncommitted": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.8.tgz", - "integrity": "sha512-pRsIYu82A3DxLahQI/3azoi/kjj6QSSHHAOx4y1YVefeDCaVtAm8aesNbpnyNVfJrie/1Gt5GMEpjfm/KScjlw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.5.0.tgz", + "integrity": "sha512-oVGXS0fC8q2d1lG695eCd8dkr0fhmUx4bWA1IshVd/u0Puk7f8+m71POcLV3h1gR/2Fqs7vb7G/sPyuzGtwn8w==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "chalk": "^4.1.0", "npmlog": "^6.0.2" }, @@ -17148,29 +17693,29 @@ } }, "@lerna/collect-updates": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.1.8.tgz", - "integrity": "sha512-ZPQmYKzwDJ4T+t2fRUI/JjaCzC8Lv02kWIeSXrcIG+cf2xrbM0vK4iQMAKhagTsiWt9hrFwvtMgLp4a6+Ht8Qg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.5.0.tgz", + "integrity": "sha512-6kBMi6K6PHIBvZKlfp/0PvRgmzvvfx+eZpmLjF+0yjcfwBn+QDkq7H+QohBiCzt2vxHVHsM6zutNhl2jNTmChg==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/describe-ref": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/describe-ref": "5.5.0", "minimatch": "^3.0.4", "npmlog": "^6.0.2", "slash": "^3.0.0" } }, "@lerna/command": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.1.8.tgz", - "integrity": "sha512-j/Q++APvkyN2t8GqOpK+4OxH1bB7OZGVWIKh0JQlwbtqH1Y06wlSyNdwpPmv8h1yO9fS1pY/xHwFbs1IicxwzA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/command/-/command-5.5.0.tgz", + "integrity": "sha512-ut055kFWc1OJFdI9Cj1kDxtJ4ejvAsfRgUoVxWT1Fw4Me/OzQRHYmUupW0FK8Kc+7gcz4mGKzUVWmRmDBvn+Fw==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/package-graph": "5.1.8", - "@lerna/project": "5.1.8", - "@lerna/validation-error": "5.1.8", - "@lerna/write-log-file": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/package-graph": "5.5.0", + "@lerna/project": "5.5.0", + "@lerna/validation-error": "5.5.0", + "@lerna/write-log-file": "5.5.0", "clone-deep": "^4.0.1", "dedent": "^0.7.0", "execa": "^5.0.0", @@ -17179,18 +17724,18 @@ } }, "@lerna/conventional-commits": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.1.8.tgz", - "integrity": "sha512-UduSVDp/+2WlEV6ZO5s7yTzkfhYyPdEsqR6aaUtIJZe9wejcCK4Lc3BJ2BAYIOdtDArNY2CJPsz1LYvFDtPRkw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.5.0.tgz", + "integrity": "sha512-qPTRNCm3H4MvZAdQLzyYq7ifJyofMSeZmel232b5mglW3OSehxPQUxzr/u/0p8Nqs89uZxZRHyznLnhRNdXcJQ==", "dev": true, "requires": { - "@lerna/validation-error": "5.1.8", + "@lerna/validation-error": "5.5.0", "conventional-changelog-angular": "^5.0.12", - "conventional-changelog-core": "^4.2.2", + "conventional-changelog-core": "^4.2.4", "conventional-recommended-bump": "^6.1.0", "fs-extra": "^9.1.0", "get-stream": "^6.0.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "pify": "^5.0.0", "semver": "^7.3.4" @@ -17245,28 +17790,27 @@ } }, "@lerna/create": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.1.8.tgz", - "integrity": "sha512-n9qLLeg1e0bQeuk8pA8ELEP05Ktl50e1EirdXGRqqvaXdCn41nYHo4PilUgb77/o/t3Z5N4/ic+0w8OvGVakNg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/create/-/create-5.5.0.tgz", + "integrity": "sha512-B+ERbzgFMYspsaU9We65Wqf9Y7sGsEYVFPi3EKpCXxkvVr65YRFL6Mz/WAVggwYkR49umduXXVmjnCWcuT0Ydw==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/npm-conf": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/npm-conf": "5.5.0", + "@lerna/validation-error": "5.5.0", "dedent": "^0.7.0", "fs-extra": "^9.1.0", "globby": "^11.0.2", - "init-package-json": "^2.0.2", - "npm-package-arg": "^8.1.0", + "init-package-json": "^3.0.2", + "npm-package-arg": "8.1.1", "p-reduce": "^2.1.0", - "pacote": "^13.4.1", + "pacote": "^13.6.1", "pify": "^5.0.0", "semver": "^7.3.4", "slash": "^3.0.0", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0", - "whatwg-url": "^8.4.0", + "validate-npm-package-name": "^4.0.0", "yargs-parser": "20.2.4" }, "dependencies": { @@ -17319,12 +17863,12 @@ } }, "@lerna/create-symlink": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.1.8.tgz", - "integrity": "sha512-5acQITDsJ7dqywPRrF1mpTUPm/EXFfiv/xF6zX+ySUjp4h0Zhhnsm8g2jFdRPDSjIxFD0rV/5iU4X6qmflXlAg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.5.0.tgz", + "integrity": "sha512-vWGvRbTh3ji3J/8mVyLPa9Yst4MZzp9W2+8hyYHw8eAzCtHPuH3Z0AReIHpYRfoViUvxIl/rEEuD2D1sDh61BQ==", "dev": true, "requires": { - "cmd-shim": "^4.1.0", + "cmd-shim": "^5.0.0", "fs-extra": "^9.1.0", "npmlog": "^6.0.2" }, @@ -17360,82 +17904,82 @@ } }, "@lerna/describe-ref": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.1.8.tgz", - "integrity": "sha512-/u5b2ho09icPcvPb1mlh/tPC07nSFc1cvvFjM9Yg5kfVs23vzVWeA8y0Bk5djlaaSzyHECyqviriX0aoaY47Wg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.5.0.tgz", + "integrity": "sha512-gNt9deRWcDoIKCwKRHu/TEt2HcHhQxzVlP8GQHYp4NuWTG9c+gTQfyuXvbZd0K9jCijPUBNy/oMb6usXceJWeg==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "npmlog": "^6.0.2" } }, "@lerna/diff": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.1.8.tgz", - "integrity": "sha512-BLoi6l/v8p43IkAHTkpjZ4Kq27kYK7iti6y6gYoZuljSwNj38TjgqRb2ohHezQ5c0KFAj8xHEOuZM3Ou6tGyTQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/diff/-/diff-5.5.0.tgz", + "integrity": "sha512-2PIka/4kKDOsh5Ht+X2OuLNTWzRk+LcnN5bCin87w7vGw3esdvlT1fj1tKjoZ1/aC/O8tqtKXyeP9WE6YHWVpw==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/validation-error": "5.5.0", "npmlog": "^6.0.2" } }, "@lerna/exec": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.1.8.tgz", - "integrity": "sha512-U+owlBKoAUfULqRz0oBtHx/I6tYQy9I7xfPP0GoaXa8lpF7esnpCxsJG8GpdzFqIS30o6a2PtyHvp4jkrQF8Zw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/exec/-/exec-5.5.0.tgz", + "integrity": "sha512-4asvrCYFGgnEbXtSiKJLDd6DShUl7FIRRCWx7JXJfa0B6sg00cB9Cg3JTp+F+cQWCOspRkzqRetqu57o6wRpXg==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/profiler": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/profiler": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/validation-error": "5.5.0", "p-map": "^4.0.0" } }, "@lerna/filter-options": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.1.8.tgz", - "integrity": "sha512-ene6xj1BRSFgIgcVg9xABp1cCiRnqm3Uetk9InxOtECbofpSDa7cQy5lsPv6GGAgXFbT91SURQiipH9FAOP+yQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.5.0.tgz", + "integrity": "sha512-Hwn4sOixZdWVe6SFZ7aPFjhMYoSHz0zbwy3t40KXuhjLqT8T5RLmGWW1u2Al6dQ5fuQyhWXGS4DWfobs7Th62A==", "dev": true, "requires": { - "@lerna/collect-updates": "5.1.8", - "@lerna/filter-packages": "5.1.8", + "@lerna/collect-updates": "5.5.0", + "@lerna/filter-packages": "5.5.0", "dedent": "^0.7.0", "npmlog": "^6.0.2" } }, "@lerna/filter-packages": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.1.8.tgz", - "integrity": "sha512-2pdtZ+I2Sb+XKfUa/q8flVUyaY0hhwqFYMXll7Nut7Phb1w1TtkEXc2/N0Ac1yia6qSJB/5WrsbAcLF/ITp1vA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.5.0.tgz", + "integrity": "sha512-Ad23aRPKgr/zt6jMWi8xKL+2z47GBQyxC4HhsDEMp62OGeGhGyK1sGW+S8OTEh17sIVpGG2GX9eCfnG8pvfxUQ==", "dev": true, "requires": { - "@lerna/validation-error": "5.1.8", + "@lerna/validation-error": "5.5.0", "multimatch": "^5.0.0", "npmlog": "^6.0.2" } }, "@lerna/get-npm-exec-opts": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.8.tgz", - "integrity": "sha512-oujoIkEDDVK2+5ooPMEPI+xGs/iwPmGJ63AZu1h7P42YU9tHKQmF5yPybF3Jn99W8+HggM6APUGiX+5oHRvKXA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.5.0.tgz", + "integrity": "sha512-WRt560FB6rsj4yVtR1wIJWJufITajECaw1omNi2KkL7/o7ky4NvHACVOtibETUNMXrnuPJ/QBww4roLFVIAyog==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/get-packed": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.1.8.tgz", - "integrity": "sha512-3vabIFlfUFQPbFnlOaDCNY4p7mufrhIFPoXxWu15JnjJsSDf9UB2a98xX43xNlxjgZLvnLai3bhCNfrKonI4Kw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.5.0.tgz", + "integrity": "sha512-X+91ma9SQPrsVctsrFRBABn4+T87lnTEd/BngB7OYlYFsJCc+a6vd+5pnIWxKK5OiUr6+tRpMbJp8BUXJFdb4Q==", "dev": true, "requires": { "fs-extra": "^9.1.0", - "ssri": "^8.0.1", + "ssri": "^9.0.1", "tar": "^6.1.0" }, "dependencies": { @@ -17470,42 +18014,41 @@ } }, "@lerna/github-client": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.1.8.tgz", - "integrity": "sha512-y1oweMZ9xc/htIHy42hy2FuMUR/LS3CQlslXG9PAHzl5rE1VDDjvSv61kS50ZberGfB9xmkCxqH+2LgROG9B1A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.5.0.tgz", + "integrity": "sha512-CaBleVR0F+8Yv4FQu6r7Ocqnh3DEq6dQeu0r4RX+mc9jBn9J/N2SdLKRdC7vcvmkcLCxacg8ewuesYqvakQ8HQ==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "@octokit/plugin-enterprise-rest": "^6.0.1", - "@octokit/rest": "^18.1.0", + "@octokit/rest": "^19.0.3", "git-url-parse": "^12.0.0", "npmlog": "^6.0.2" } }, "@lerna/gitlab-client": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.1.8.tgz", - "integrity": "sha512-/EMKdkGnBU4ldyAQ4pXp2TKi1znvY3MiCULt8Hy42p4HhfFl/AxZYDovQYfop1NHVk29BQrGHfvlpyBNqZ2a8g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.5.0.tgz", + "integrity": "sha512-ktKfBgQnt0MtyiTM3wuec47Wk7nHc+k2YvoC1roDGaXpgWS7lOQnA8RyorX4Hal3ZsrL95qi9vZOolWvUnxS3w==", "dev": true, "requires": { "node-fetch": "^2.6.1", - "npmlog": "^6.0.2", - "whatwg-url": "^8.4.0" + "npmlog": "^6.0.2" } }, "@lerna/global-options": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.1.8.tgz", - "integrity": "sha512-VCfTilGh0O4T6Lk4DKYA5cUl1kPjwFfRUS/GSpdJx0Lf/dyDbFihrmTHefgUe9N2/nTQySDIdPk9HBr45tozWQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.5.0.tgz", + "integrity": "sha512-ydEsnXi2LRpxkzpSf8GFeCdh1roTKANZdqzjkhuUlBHrKzKxywpNPpGbXmh6JziHMYdgKGZUjnY35TxBlVRN6Q==", "dev": true }, "@lerna/has-npm-version": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.1.8.tgz", - "integrity": "sha512-yN5j9gje2ND8zQf4tN52QDQ/yFb24o9Kasm4PZm99FzBURRIwFWCnvo3edOMaiJg0DpA660L+Kq9G0L+ZRKRZQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.5.0.tgz", + "integrity": "sha512-ALvz0fF1I7Dx+c+0rvkFdqEtp/hs4F/Av2blhOaFWTs78D7FTQa7IpURmvdVDi56H30fqa9b4nEQqnaCRJZKpQ==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "semver": "^7.3.4" }, "dependencies": { @@ -17530,16 +18073,16 @@ } }, "@lerna/import": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.1.8.tgz", - "integrity": "sha512-m1+TEhlgS9i14T7o0/8o6FMZJ1O2PkQdpCjqUa5xdLITqvPozoMNujNgiX3ZVLg/XcFOjMtbCsYtspqtKyEsMQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/import/-/import-5.5.0.tgz", + "integrity": "sha512-mn87JOcb/j4KBV37Kv589avN5uArcJcASBonm1iWcTwxTvcNFj2BjxnUoVVY6EFamDfBLwWBcAvCO+cvmJkj3Q==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/validation-error": "5.5.0", "dedent": "^0.7.0", "fs-extra": "^9.1.0", "p-map-series": "^2.1.0" @@ -17576,24 +18119,25 @@ } }, "@lerna/info": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.1.8.tgz", - "integrity": "sha512-VNCBNOrd5Q1iv1MOF++PzMrdAnTn6KTDbb5hcXHdWBRZUuOs3QOwVYGzAlTFMvwVmmlcER4z8BYyUsbxk3sIdQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/info/-/info-5.5.0.tgz", + "integrity": "sha512-2pgogAahv8tqY2sFarOCSXcxJFEag9z1pPGnHwKsq8NtekR0exLwFp93iTbDKRff8ScSmH82lNh22GFKZKLm/A==", "dev": true, "requires": { - "@lerna/command": "5.1.8", - "@lerna/output": "5.1.8", + "@lerna/command": "5.5.0", + "@lerna/output": "5.5.0", "envinfo": "^7.7.4" } }, "@lerna/init": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.1.8.tgz", - "integrity": "sha512-vEMnq/70u/c031/vURA4pZSxlBRAwjg7vOP7mt9M4dmKz/vkVnQ/5Ig9K0TKqC31hQg957/4m20obYEiFgC3Pw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/init/-/init-5.5.0.tgz", + "integrity": "sha512-dPjuk12s2pSnSL6ib7KQ+RKFyFYvsWAnSMro3sanb07og3tJkwVne8srlmYQsd/NghU8sBdQFFKIV+pzg2sg9w==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/command": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/project": "5.5.0", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "write-json-file": "^4.3.0" @@ -17630,37 +18174,38 @@ } }, "@lerna/link": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.1.8.tgz", - "integrity": "sha512-qOtZiMzB9JYyNPUlvpqTxh0Z1EmNVde8pFUIYybv+s3btrKEBPgsvvrOrob/mha3QJxnwcPDPjHt/wCHFxLruA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/link/-/link-5.5.0.tgz", + "integrity": "sha512-wucP0DBKBG2Mkr9PNkPB9ez5pRxLEIY+6s0hB3iTxCTmef5GYPlQ+ftiaN2/IGVYb569AW97YilROuU2gDMrMw==", "dev": true, "requires": { - "@lerna/command": "5.1.8", - "@lerna/package-graph": "5.1.8", - "@lerna/symlink-dependencies": "5.1.8", + "@lerna/command": "5.5.0", + "@lerna/package-graph": "5.5.0", + "@lerna/symlink-dependencies": "5.5.0", + "@lerna/validation-error": "5.5.0", "p-map": "^4.0.0", "slash": "^3.0.0" } }, "@lerna/list": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.1.8.tgz", - "integrity": "sha512-fVN9o/wKtgcOyuYwvYTg2HI6ORX2kOoBkCJ+PI/uZ/ImwLMTJ2Bf8i/Vsysl3bLFHhQFglzPZ7V1SQP/ku0Sdw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/list/-/list-5.5.0.tgz", + "integrity": "sha512-vic7CeD/TL0bh6hzpgHK2Ogz7MW1NB6Sws1J7cl5CTn4sAGm/KZ/g4MNsLFVLJNAiPh+t2cmT0ndyNluShnjqA==", "dev": true, "requires": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/listable": "5.1.8", - "@lerna/output": "5.1.8" + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/listable": "5.5.0", + "@lerna/output": "5.5.0" } }, "@lerna/listable": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.1.8.tgz", - "integrity": "sha512-nQ/40cbVZLFBv8o9Dz6ivHFZhosfDTYOPm4oHNu0xdexaTXWz5bQUlM4HtOm7K0dJ1fvLEVqiQNAuFSEhARt9g==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/listable/-/listable-5.5.0.tgz", + "integrity": "sha512-2kCpn8vlmRTVA3tGr1XRkHOW2ljXjb/hRNxSK3DUf0k6sl9sEdQFSH7cf5qPnCAPcuLHS7b8kuFhA6x8nXFP3g==", "dev": true, "requires": { - "@lerna/query-graph": "5.1.8", + "@lerna/query-graph": "5.5.0", "chalk": "^4.1.0", "columnify": "^1.6.0" }, @@ -17717,9 +18262,9 @@ } }, "@lerna/log-packed": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.1.8.tgz", - "integrity": "sha512-alaCIzCtKV5oKyu632emda0hUQMw/BcL2U3v4ObLu90sU8P7mu6TipKRvR9OZxOLDnZGnPE7CMHSU8gsQoIasw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.5.0.tgz", + "integrity": "sha512-kVDEy29VfBQeha92IBuPq9W/kP6ffboCWuU64lBIAljTDdpFrMFBeLRrWfLSLIVe2fq8FpGk8PInNlDHmvT5PA==", "dev": true, "requires": { "byte-size": "^7.0.0", @@ -17729,9 +18274,9 @@ } }, "@lerna/npm-conf": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.1.8.tgz", - "integrity": "sha512-d/pIcO4RwO3fXNlUbhQ6+qwULxGSiW/xcOtiETVf4ZfjaDqjkCaIxZaeZfm5gWDtII5klpQn3f2d71FCnZG5lw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.5.0.tgz", + "integrity": "sha512-ml1Pmn26a61y6nFijpNE9RAbsNOF2XL1Kqyd3x7+XFaDmqbSDqo2g5qlsb4gTdUj/Uy1niRGzy3XdC0FH5G+mg==", "dev": true, "requires": { "config-chain": "^1.1.12", @@ -17739,27 +18284,27 @@ } }, "@lerna/npm-dist-tag": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.8.tgz", - "integrity": "sha512-vZXO0/EClOzRRHHfqB4APhZkxiJpQbsQAAFwaXQCNJE+3S+I/MD0S3iiUWrNs4QnN/8Lj1KyzUfznVDXX7AIUQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.5.0.tgz", + "integrity": "sha512-Hz6n9tqbGUuqI1q9IS3tAGx95TkOqLfXRay9kr/hjswj+HKp0Dtw1cu8YRtizA7CuIWw831eXCbqfFyILfytaA==", "dev": true, "requires": { - "@lerna/otplease": "5.1.8", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", + "@lerna/otplease": "5.5.0", + "npm-package-arg": "8.1.1", + "npm-registry-fetch": "^13.3.0", "npmlog": "^6.0.2" } }, "@lerna/npm-install": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.1.8.tgz", - "integrity": "sha512-AiYQyz4W1+NDeBw3qmdiiatfCtwtaGOi7zHtN1eAqheVTxEMuuYjNHt+8hu6nSpDFYtonz0NsKFvaqRJ5LbVmw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.5.0.tgz", + "integrity": "sha512-axMtqZYuAl5qGcRCBYKqINimMrbQRM1f09sz9rKtwnx15066qT0IaKUt9YYo5bsZm/i3BXpBqcUxZXlGzQNWBQ==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/get-npm-exec-opts": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/get-npm-exec-opts": "5.5.0", "fs-extra": "^9.1.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "signal-exit": "^3.0.3", "write-pkg": "^4.0.0" @@ -17796,19 +18341,19 @@ } }, "@lerna/npm-publish": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.1.8.tgz", - "integrity": "sha512-Gup/1d8ovc21x3spKPhFK0tIYYn8HOjnpCAg5ytINIW1QM/QcLAigY58If8uiyt+aojz6lubWrSR8/OHf9CXBw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.5.0.tgz", + "integrity": "sha512-eDcmga5CcXGmSdVXBO75eCX3vypEwQO/lN7VqRpLSOsIHIRUGbfwo/stbz8sIF4+HAkaAFGj6BScjvjlyoh2pQ==", "dev": true, "requires": { - "@lerna/otplease": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", + "@lerna/otplease": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", "fs-extra": "^9.1.0", - "libnpmpublish": "^4.0.0", - "npm-package-arg": "^8.1.0", + "libnpmpublish": "^6.0.4", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "pify": "^5.0.0", - "read-package-json": "^3.0.0" + "read-package-json": "^5.0.1" }, "dependencies": { "fs-extra": { @@ -17842,69 +18387,69 @@ } }, "@lerna/npm-run-script": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.1.8.tgz", - "integrity": "sha512-HzvukNC+hDIR25EpYWOvIGJItd0onXqzS9Ivdtw98ZQG3Jexi2Mn18A9tDqHOKCEGO3pVYrI9ep8VWkah2Bj1w==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.5.0.tgz", + "integrity": "sha512-ltEtw28CLpG/VaWX4PZ1enJ0wxA/Qw8ScAwhQTZj0xL6Lhkq5H0LoEALVRAq2gK10h1p2IUs/W034oXT1chH0w==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", - "@lerna/get-npm-exec-opts": "5.1.8", + "@lerna/child-process": "5.5.0", + "@lerna/get-npm-exec-opts": "5.5.0", "npmlog": "^6.0.2" } }, "@lerna/otplease": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.1.8.tgz", - "integrity": "sha512-/OVZ7Rbs8/ft14f4i/9HEFDsxJkBSg74rMUqyqFH3fID/RL3ja9hW5bI1bENxvYgs0bp/THy4lV5V75ZcI81zQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.5.0.tgz", + "integrity": "sha512-zNS315iH2VRQz/LJTrqUUuEqMnNsCoMXOMOaBzcB/AL29mYMvJlT05dMqenMPKrRtW0tAFzPC7jLTzybdRa7Qg==", "dev": true, "requires": { - "@lerna/prompt": "5.1.8" + "@lerna/prompt": "5.5.0" } }, "@lerna/output": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.1.8.tgz", - "integrity": "sha512-dXsKY8X2eAdPKRKHDZTASlWn95Eav1oQX9doUXkvV3o4UwIgqOCIsU7RqSED3EAEQz6VUH0rXNb/+d3uVeAoJQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/output/-/output-5.5.0.tgz", + "integrity": "sha512-f+MXc9X1xEe2w0AC+CAMr093MumCTNYmyIt8eUMYQMmoRkWT2n4tN8/KvWw9ucSWLKMkZtOTJiC+S6RJ4nWUig==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/pack-directory": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.1.8.tgz", - "integrity": "sha512-aaH28ttS+JVimLFrVeZRWZ9Cii4GG2vkJXmQNikWBNQiFL/7S1x83NjMk4SQRdmtpYJkcQpQMZ2hDUdNxLnDCg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.5.0.tgz", + "integrity": "sha512-zHpIAeZOpIH/Slb8vuh75XR46mc4RZNwPS6XpwRgMRpp3Y1Bazlv6hDcq+pZTg1FwYKIDQDRfxW3IQi/aDPIjA==", "dev": true, "requires": { - "@lerna/get-packed": "5.1.8", - "@lerna/package": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/temp-write": "5.1.8", - "npm-packlist": "^2.1.4", + "@lerna/get-packed": "5.5.0", + "@lerna/package": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/temp-write": "5.5.0", + "npm-packlist": "^5.1.1", "npmlog": "^6.0.2", "tar": "^6.1.0" } }, "@lerna/package": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.1.8.tgz", - "integrity": "sha512-Ot+wu6XZ93tw8p9oSTJJA15TzGhVpo8VbgNhKPcI3JJjkxVq2D5L5jVeBkjQvFEQBonLibTr339uLLXyZ0RMzg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/package/-/package-5.5.0.tgz", + "integrity": "sha512-vP08ZdMd3A7B0hEI4ZNgCeBef64yCidrnFUIiIhXb/tAsDmGCGqS2IFdGRNE9vv01tVg0WrPLim4tl8AjoigKw==", "dev": true, "requires": { "load-json-file": "^6.2.0", - "npm-package-arg": "^8.1.0", + "npm-package-arg": "8.1.1", "write-pkg": "^4.0.0" } }, "@lerna/package-graph": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.1.8.tgz", - "integrity": "sha512-aGwXTwCpPfhUPiSRhdppogZjOqJPm39EBxHFDa1E0+/Qaig5avJs4hI6OrPLyjsTywAswtCMOArvD1QZqxwvrQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.5.0.tgz", + "integrity": "sha512-g378NrCTEmVXqkAkv9EX8L3K7JTioPNuxItXTHQxlHDhZ2RM9KCVbT/ihwefVujWwwMPNij10bmfJUaEp2TGPQ==", "dev": true, "requires": { - "@lerna/prerelease-id-from-version": "5.1.8", - "@lerna/validation-error": "5.1.8", - "npm-package-arg": "^8.1.0", + "@lerna/prerelease-id-from-version": "5.5.0", + "@lerna/validation-error": "5.5.0", + "npm-package-arg": "8.1.1", "npmlog": "^6.0.2", "semver": "^7.3.4" }, @@ -17930,9 +18475,9 @@ } }, "@lerna/prerelease-id-from-version": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.8.tgz", - "integrity": "sha512-wfWv/8lHSk2/pl4FjopbDelFSLCz9s6J9AY5o7Sju9HtD9QUXcQHaXnEP1Rum9/rJZ8vWdFURcp9kzz8nxQ1Ow==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.5.0.tgz", + "integrity": "sha512-cpy0EgfO/7fXPhl/EsJnD8uGv0f8d6FHG2R1Xr7sJvmkffhkIy90qkFA7uSaZAA+ar9QFSAUJ+wGox0bhGJhHA==", "dev": true, "requires": { "semver": "^7.3.4" @@ -17959,9 +18504,9 @@ } }, "@lerna/profiler": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.1.8.tgz", - "integrity": "sha512-vpAFN85BvMHfIGA53IcwaUnS9FHAismEnNyFCjMkzKV55mmXFZlWpZyO36ESdSQRWCo5/25f3Ln0Y6YubY3Dvw==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.5.0.tgz", + "integrity": "sha512-2DkkMxYCq/RsBptN+gJtmqwdrFqji6QMpNlm7v9JgS9kN2aHUIxcavtHXDaYf9sdPoey/bGypRv9DDTDcuw9MA==", "dev": true, "requires": { "fs-extra": "^9.1.0", @@ -18000,18 +18545,19 @@ } }, "@lerna/project": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.1.8.tgz", - "integrity": "sha512-zTFp91kmyJ0VHBmNXEArVrMSZVxnBJ7pHTt8C7RY91WSZhw8XDNumqMHDM+kEM1z/AtDBAAAGqBE3sjk5ONDXQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/project/-/project-5.5.0.tgz", + "integrity": "sha512-TD6/QGv/+Uh7GRXM/9m3EC0QpK2+U1WA+hoE5pSnpU5oDzwwUkynS3RuAcd2ID19e/u/ajfZtV+xcpaM7t+SHw==", "dev": true, "requires": { - "@lerna/package": "5.1.8", - "@lerna/validation-error": "5.1.8", + "@lerna/package": "5.5.0", + "@lerna/validation-error": "5.5.0", "cosmiconfig": "^7.0.0", "dedent": "^0.7.0", "dot-prop": "^6.0.1", "glob-parent": "^5.1.1", "globby": "^11.0.2", + "js-yaml": "^4.1.0", "load-json-file": "^6.2.0", "npmlog": "^6.0.2", "p-map": "^4.0.0", @@ -18037,48 +18583,48 @@ } }, "@lerna/prompt": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.1.8.tgz", - "integrity": "sha512-Cmq0FV/vyCHu00kySxXMfuPvutsi8qoME2/nFcICIktvDqxXr5aSFY8QqB123awNCbpb4xcHykjFnEj/RNdb2Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.5.0.tgz", + "integrity": "sha512-B7QEmmyleR+1XAewqEPdgZPecekJgVoAZ8YZgR8l4QlAMvf5BTHI//3AJI/HPN4DYZWGcjDoGFLEkpX906T8Rw==", "dev": true, "requires": { - "inquirer": "^7.3.3", + "inquirer": "^8.2.4", "npmlog": "^6.0.2" } }, "@lerna/publish": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.1.8.tgz", - "integrity": "sha512-Q88WxXVNAh/ZWj7vYG83RZUfQyQlJMg7tDhsVTvZzy3VpkkCPtmJXZfX+g4RmE0PNyjsXx9QLYAOZnOB613WyA==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "5.1.8", - "@lerna/child-process": "5.1.8", - "@lerna/collect-updates": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/describe-ref": "5.1.8", - "@lerna/log-packed": "5.1.8", - "@lerna/npm-conf": "5.1.8", - "@lerna/npm-dist-tag": "5.1.8", - "@lerna/npm-publish": "5.1.8", - "@lerna/otplease": "5.1.8", - "@lerna/output": "5.1.8", - "@lerna/pack-directory": "5.1.8", - "@lerna/prerelease-id-from-version": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/pulse-till-done": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/validation-error": "5.1.8", - "@lerna/version": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/publish/-/publish-5.5.0.tgz", + "integrity": "sha512-ZstILgupYxB8TpGkWgPZg1uoFIQUij07kizHau1BZXdV3xwPU6jtYAzGXuztinJDnnxfwjc7SjuinoYZcbmJXg==", + "dev": true, + "requires": { + "@lerna/check-working-tree": "5.5.0", + "@lerna/child-process": "5.5.0", + "@lerna/collect-updates": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/describe-ref": "5.5.0", + "@lerna/log-packed": "5.5.0", + "@lerna/npm-conf": "5.5.0", + "@lerna/npm-dist-tag": "5.5.0", + "@lerna/npm-publish": "5.5.0", + "@lerna/otplease": "5.5.0", + "@lerna/output": "5.5.0", + "@lerna/pack-directory": "5.5.0", + "@lerna/prerelease-id-from-version": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/pulse-till-done": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/validation-error": "5.5.0", + "@lerna/version": "5.5.0", "fs-extra": "^9.1.0", - "libnpmaccess": "^4.0.1", - "npm-package-arg": "^8.1.0", - "npm-registry-fetch": "^9.0.0", + "libnpmaccess": "^6.0.3", + "npm-package-arg": "8.1.1", + "npm-registry-fetch": "^13.3.0", "npmlog": "^6.0.2", "p-map": "^4.0.0", "p-pipe": "^3.1.0", - "pacote": "^13.4.1", + "pacote": "^13.6.1", "semver": "^7.3.4" }, "dependencies": { @@ -18131,32 +18677,32 @@ } }, "@lerna/pulse-till-done": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.1.8.tgz", - "integrity": "sha512-KsyOazHG6wnjfdJhIdhTaTNwhj8Np/aPPei/ac9WzcuzgLS/uCs1IVFFIYBv5JdTmyVBKmguSZxdYjk7JzKBew==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.5.0.tgz", + "integrity": "sha512-PcPSCWGzLp00UGJ5VHDpdqpBQ9C9Cs7E5FImEITGHE9UwcAC23LwSp7tOzdXWPyj3u8PLYLn+ebt9ml1jWSKgA==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/query-graph": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.1.8.tgz", - "integrity": "sha512-+p+bjPI403Hwv1djTS5aJe7DtPWIDw0a427BE68h1mmrPc9oTe3GG+0lingbfGR8woA2rOmjytgK2jeErOryPg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.5.0.tgz", + "integrity": "sha512-mqCzZRF+IDPSj2zYJ1eO3PQsZshiKf54BXAe7HnYYJNbs1i8JMRpdaLr3TEyKDpVTcVzbEmFKwGi7KMhJG6rBQ==", "dev": true, "requires": { - "@lerna/package-graph": "5.1.8" + "@lerna/package-graph": "5.5.0" } }, "@lerna/resolve-symlink": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.1.8.tgz", - "integrity": "sha512-OJa8ct4Oo2BcD95FmJqkc5qZMepaQK5RZAWoTqEXG/13Gs0mPc0fZGIhnnpTqtm3mgNhlT7ypCHG42I7hKiSeg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.5.0.tgz", + "integrity": "sha512-J44Kc6OWa1uNZh+YSWuIBorTpTuXhuuJ7DtX4vwfF3AAp2frW6pBrmFZMibOcyOQ6QCp+PeiHQCXCF42uSq8pA==", "dev": true, "requires": { "fs-extra": "^9.1.0", "npmlog": "^6.0.2", - "read-cmd-shim": "^2.0.0" + "read-cmd-shim": "^3.0.0" }, "dependencies": { "fs-extra": { @@ -18190,12 +18736,12 @@ } }, "@lerna/rimraf-dir": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.1.8.tgz", - "integrity": "sha512-3pT1X8kzW8xHUuAmRgzSKAF+/H1h1eSWq5+ACzeTWnvgqE7++0URee7TXwVCP/5FZPTZIzIclQCh4G0WD9Jfjg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.5.0.tgz", + "integrity": "sha512-dwWN5SGXQ39FocRAZ3uL7tYUuK98r/VHQZRcJjJ8hxpuxti+EPzGegtA05NsvvmW2PpFsBzYKITFQHX3GX4LWA==", "dev": true, "requires": { - "@lerna/child-process": "5.1.8", + "@lerna/child-process": "5.5.0", "npmlog": "^6.0.2", "path-exists": "^4.0.0", "rimraf": "^3.0.2" @@ -18213,51 +18759,52 @@ } }, "@lerna/run": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.1.8.tgz", - "integrity": "sha512-E5mI3FswVN9zQ3bCYUQxxPlLL400vnKpwLSzzRNFy//TR8Geu0LeR6NY+Jf0jklsKxwWGMJgqL6VqPqxDaNtdw==", - "dev": true, - "requires": { - "@lerna/command": "5.1.8", - "@lerna/filter-options": "5.1.8", - "@lerna/npm-run-script": "5.1.8", - "@lerna/output": "5.1.8", - "@lerna/profiler": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/timer": "5.1.8", - "@lerna/validation-error": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/run/-/run-5.5.0.tgz", + "integrity": "sha512-yYR65A/GcDgEMmk2lMSBHGAbdgLMi6wICugLzVXfXISuTbEMzN1dCwSeGBOxzK2cvKV2Bpn4WeEYs64FNmNJbQ==", + "dev": true, + "requires": { + "@lerna/command": "5.5.0", + "@lerna/filter-options": "5.5.0", + "@lerna/npm-run-script": "5.5.0", + "@lerna/output": "5.5.0", + "@lerna/profiler": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/timer": "5.5.0", + "@lerna/validation-error": "5.5.0", "p-map": "^4.0.0" } }, "@lerna/run-lifecycle": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.1.8.tgz", - "integrity": "sha512-5rRpovujhLJufKRzMp5sl2BIIqrPeoXxjniQbzkpSxZ2vnD+bE9xOoaciHQxOsmXfXhza0C+k3xYMM5+B/bVzg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.5.0.tgz", + "integrity": "sha512-BtnEO3IlZ7znUmQtSxd7oSSmgzJbSH+v58foTpbuvMtOBFJxV4LNyv2uyto2t4bYdCWEnw4ybd8j32aEEG9UNQ==", "dev": true, "requires": { - "@lerna/npm-conf": "5.1.8", - "@npmcli/run-script": "^3.0.2", - "npmlog": "^6.0.2" + "@lerna/npm-conf": "5.5.0", + "@npmcli/run-script": "^4.1.7", + "npmlog": "^6.0.2", + "p-queue": "^6.6.2" } }, "@lerna/run-topologically": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.1.8.tgz", - "integrity": "sha512-isuulfBdNsrgV2QF/HwCKCecfR9mPEU9N4Nf8n9nQQgakwOscoDlwGp2xv27pvcQKI52q/o/ISEjz3JeoEQiOA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.5.0.tgz", + "integrity": "sha512-zl4I/SNg/yiLja1aF0B4X22CRzpRdvLB47KGjAgiGydcHwx2TUmI3MPoQVjvUbaOuctF/wSMS2tI6Hgdo60I0Q==", "dev": true, "requires": { - "@lerna/query-graph": "5.1.8", + "@lerna/query-graph": "5.5.0", "p-queue": "^6.6.2" } }, "@lerna/symlink-binary": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.1.8.tgz", - "integrity": "sha512-s7VfKNJZnWvTKZ7KR8Yxh1rYhE/ARMioD5axyu3FleS3Xsdla2M5sQsLouCrdfM3doTO8lMxPVvVSFmL7q0KOA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.5.0.tgz", + "integrity": "sha512-vpVzEWgVfKGzMheb9XizF8hF/Ypfov0iMPBSAzVNxu5eNQVUz3KFrIZNgiBsFdIVN4W/y4jLwOSgXXKwvIodkA==", "dev": true, "requires": { - "@lerna/create-symlink": "5.1.8", - "@lerna/package": "5.1.8", + "@lerna/create-symlink": "5.5.0", + "@lerna/package": "5.5.0", "fs-extra": "^9.1.0", "p-map": "^4.0.0" }, @@ -18293,14 +18840,14 @@ } }, "@lerna/symlink-dependencies": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.8.tgz", - "integrity": "sha512-U5diiaKdWUlvoFMh3sYIEESBLa8Z3Q/EpkLl5o4YkcbPBjFHJFpmoqCGomwL9sf9HQUV2S9Lt9szJT8qgQm86Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.5.0.tgz", + "integrity": "sha512-gqFZ4AeVr+nqyfg8c2xNizGzBemfgtCpGv4NnjA/66HJWCE+/fT7NTIi8Qk2glbYf37ojRcjUfc0RvW7NGv5qA==", "dev": true, "requires": { - "@lerna/create-symlink": "5.1.8", - "@lerna/resolve-symlink": "5.1.8", - "@lerna/symlink-binary": "5.1.8", + "@lerna/create-symlink": "5.5.0", + "@lerna/resolve-symlink": "5.5.0", + "@lerna/symlink-binary": "5.5.0", "fs-extra": "^9.1.0", "p-map": "^4.0.0", "p-map-series": "^2.1.0" @@ -18337,9 +18884,9 @@ } }, "@lerna/temp-write": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.1.8.tgz", - "integrity": "sha512-4/guYB5XotugyM8P/F1z6b+hNlSCe/QuZsmiZwgXOw2lmYnkSzLWDVjqsdZtNYqojK0lioxcPjZiL5qnEkk1PQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.5.0.tgz", + "integrity": "sha512-7MmqTfyWcjGkgPkWHaldmCmDBSLka50z0+lsmZuGLwIvQl72ZfC+ZJF/6107m+hgtUJBpJQ3UYEhrrdfR4L46Q==", "dev": true, "requires": { "graceful-fs": "^4.1.15", @@ -18350,40 +18897,40 @@ } }, "@lerna/timer": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.1.8.tgz", - "integrity": "sha512-Ua4bw2YOO3U+sFujE+MsUG+lllU0X7u6PCTj1QKe0QlR0zr2gCa0pcwjUQPdNfxnpJpPY+hdbfTUv2viDloaiA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/timer/-/timer-5.5.0.tgz", + "integrity": "sha512-jgCL2ZmZNn7sWL+M/TuGJukTkUs/il6EwBYcgd10h0JazQ4fAiBhFq36ZzTvYkz6ujKvKOcqyWrMdmi8Q339qA==", "dev": true }, "@lerna/validation-error": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.1.8.tgz", - "integrity": "sha512-n+IiaxN2b08ZMYnezsmwL6rXB15/VvweusC04GMh1XtWunnMzSg9JDM7y6bw2vfpBBQx6cBFhLKSpD2Fcq5D5Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.5.0.tgz", + "integrity": "sha512-o/8sEaZKdZdE4/t+E/cFpnYIiDzt7uMHVpWmpCG0l6nZSDzB8+5ehAAudy2qJOwxEAKJ6QGvi7jWLjc2NWa4HQ==", "dev": true, "requires": { "npmlog": "^6.0.2" } }, "@lerna/version": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.1.8.tgz", - "integrity": "sha512-3f4P7KjIs6Gn2iaGkA5EASE9izZeDKtEzE8i2DE7YfVdw/P+EwFfKv2mKBXGbckYw42YO1tL6aD2QH0C8XbwlA==", - "dev": true, - "requires": { - "@lerna/check-working-tree": "5.1.8", - "@lerna/child-process": "5.1.8", - "@lerna/collect-updates": "5.1.8", - "@lerna/command": "5.1.8", - "@lerna/conventional-commits": "5.1.8", - "@lerna/github-client": "5.1.8", - "@lerna/gitlab-client": "5.1.8", - "@lerna/output": "5.1.8", - "@lerna/prerelease-id-from-version": "5.1.8", - "@lerna/prompt": "5.1.8", - "@lerna/run-lifecycle": "5.1.8", - "@lerna/run-topologically": "5.1.8", - "@lerna/temp-write": "5.1.8", - "@lerna/validation-error": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/version/-/version-5.5.0.tgz", + "integrity": "sha512-E6ZrzTrYwof5cSvyTpztZKOiJKAK+aXi/gfsGbLdbYGMArY4B/pYOMOcRMXHBh7BuLicMih/mRUb4M7uCnuE0A==", + "dev": true, + "requires": { + "@lerna/check-working-tree": "5.5.0", + "@lerna/child-process": "5.5.0", + "@lerna/collect-updates": "5.5.0", + "@lerna/command": "5.5.0", + "@lerna/conventional-commits": "5.5.0", + "@lerna/github-client": "5.5.0", + "@lerna/gitlab-client": "5.5.0", + "@lerna/output": "5.5.0", + "@lerna/prerelease-id-from-version": "5.5.0", + "@lerna/prompt": "5.5.0", + "@lerna/run-lifecycle": "5.5.0", + "@lerna/run-topologically": "5.5.0", + "@lerna/temp-write": "5.5.0", + "@lerna/validation-error": "5.5.0", "chalk": "^4.1.0", "dedent": "^0.7.0", "load-json-file": "^6.2.0", @@ -18468,13 +19015,13 @@ } }, "@lerna/write-log-file": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.1.8.tgz", - "integrity": "sha512-B+shMH3TpzA7Q5GGbuNkOmdPQdD1LXRFj7R17LINkn82PhP9CUgubwYuiVzrLa16ADi0V5Ad76pqtHi/6kD0nA==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.5.0.tgz", + "integrity": "sha512-XPnp5B+bcmwpXJpJn45V8e2SU6Z1oTwW0vW9uW3l0nmbOvpT9PbPkf9hC80cZOWovXSBefUDwEGqA5fQdhvqGg==", "dev": true, "requires": { "npmlog": "^6.0.2", - "write-file-atomic": "^3.0.3" + "write-file-atomic": "^4.0.1" } }, "@lezer/common": { @@ -18546,44 +19093,44 @@ } }, "@msgpackr-extract/msgpackr-extract-darwin-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.0.2.tgz", - "integrity": "sha512-FMX5i7a+ojIguHpWbzh5MCsCouJkwf4z4ejdUY/fsgB9Vkdak4ZnoIEskOyOUMMB4lctiZFGszFQJXUeFL8tRg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-2.1.2.tgz", + "integrity": "sha512-TyVLn3S/+ikMDsh0gbKv2YydKClN8HaJDDpONlaZR+LVJmsxLFUgA+O7zu59h9+f9gX1aj/ahw9wqa6rosmrYQ==", "dev": true, "optional": true }, "@msgpackr-extract/msgpackr-extract-darwin-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.0.2.tgz", - "integrity": "sha512-DznYtF3lHuZDSRaIOYeif4JgO0NtO2Xf8DsngAugMx/bUdTFbg86jDTmkVJBNmV+cxszz6OjGvinnS8AbJ342g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-2.1.2.tgz", + "integrity": "sha512-YPXtcVkhmVNoMGlqp81ZHW4dMxK09msWgnxtsDpSiZwTzUBG2N+No2bsr7WMtBKCVJMSD6mbAl7YhKUqkp/Few==", "dev": true, "optional": true }, "@msgpackr-extract/msgpackr-extract-linux-arm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.0.2.tgz", - "integrity": "sha512-Gy9+c3Wj+rUlD3YvCZTi92gs+cRX7ZQogtwq0IhRenloTTlsbpezNgk6OCkt59V4ATEWSic9rbU92H/l7XsRvA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-2.1.2.tgz", + "integrity": "sha512-42R4MAFeIeNn+L98qwxAt360bwzX2Kf0ZQkBBucJ2Ircza3asoY4CDbgiu9VWklq8gWJVSJSJBwDI+c/THiWkA==", "dev": true, "optional": true }, "@msgpackr-extract/msgpackr-extract-linux-arm64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.0.2.tgz", - "integrity": "sha512-b0jMEo566YdM2K+BurSed7bswjo3a6bcdw5ETqoIfSuxKuRLPfAiOjVbZyZBgx3J/TAM/QrvEQ/VN89A0ZAxSg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-2.1.2.tgz", + "integrity": "sha512-vHZ2JiOWF2+DN9lzltGbhtQNzDo8fKFGrf37UJrgqxU0yvtERrzUugnfnX1wmVfFhSsF8OxrfqiNOUc5hko1Zg==", "dev": true, "optional": true }, "@msgpackr-extract/msgpackr-extract-linux-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.0.2.tgz", - "integrity": "sha512-zrBHaePwcv4cQXxzYgNj0+A8I1uVN97E7/3LmkRocYZ+rMwUsnPpp4RuTAHSRoKlTQV3nSdCQW4Qdt4MXw/iHw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-2.1.2.tgz", + "integrity": "sha512-RjRoRxg7Q3kPAdUSC5EUUPlwfMkIVhmaRTIe+cqHbKrGZ4M6TyCA/b5qMaukQ/1CHWrqYY2FbKOAU8Hg0pQFzg==", "dev": true, "optional": true }, "@msgpackr-extract/msgpackr-extract-win32-x64": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.0.2.tgz", - "integrity": "sha512-fpnI00dt+yO1cKx9qBXelKhPBdEgvc8ZPav1+0r09j0woYQU2N79w/jcGawSY5UGlgQ3vjaJsFHnGbGvvqdLzg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-2.1.2.tgz", + "integrity": "sha512-rIZVR48zA8hGkHIK7ED6+ZiXsjRCcAVBJbm8o89OKAMTmEAQ2QvoOxoiu3w2isAaWwzgtQIOFIqHwvZDyLKCvw==", "dev": true, "optional": true }, @@ -18614,9 +19161,9 @@ } }, "@npmcli/arborist": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.2.0.tgz", - "integrity": "sha512-zWV7scFGL0SmpvfQyIWnMFbU/0YgtMNyvJiJwR98kyjUSntJGWFFR0O600d5W+TrDcTg0GyDbY+HdzGEg+GXLg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-5.3.0.tgz", + "integrity": "sha512-+rZ9zgL1lnbl8Xbb1NQdMjveOMwj4lIYfcDtyJHHi5x4X8jtR6m8SXooJMZy5vmFVZ8w7A2Bnd/oX9eTuU8w5A==", "dev": true, "requires": { "@isaacs/string-locale-compare": "^1.1.0", @@ -18627,7 +19174,7 @@ "@npmcli/name-from-folder": "^1.0.1", "@npmcli/node-gyp": "^2.0.0", "@npmcli/package-json": "^2.0.0", - "@npmcli/run-script": "^3.0.0", + "@npmcli/run-script": "^4.1.3", "bin-links": "^3.0.0", "cacache": "^16.0.6", "common-ancestor-path": "^1.0.1", @@ -18641,7 +19188,7 @@ "npm-pick-manifest": "^7.0.0", "npm-registry-fetch": "^13.0.0", "npmlog": "^6.0.2", - "pacote": "^13.0.5", + "pacote": "^13.6.1", "parse-conflict-json": "^2.0.1", "proc-log": "^2.0.0", "promise-all-reject-late": "^1.0.0", @@ -18655,77 +19202,15 @@ "walk-up-path": "^1.0.0" }, "dependencies": { - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, "hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "make-fetch-happen": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz", - "integrity": "sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, "npm-package-arg": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", @@ -18738,21 +19223,6 @@ "validate-npm-package-name": "^4.0.0" } }, - "npm-registry-fetch": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz", - "integrity": "sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==", - "dev": true, - "requires": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -18781,48 +19251,13 @@ } } } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } } } }, - "@npmcli/ci-detect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", - "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", - "dev": true - }, "@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "dev": true, "requires": { "@gar/promisify": "^1.1.3", @@ -18850,9 +19285,9 @@ } }, "@npmcli/git": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.1.tgz", - "integrity": "sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.2.tgz", + "integrity": "sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==", "dev": true, "requires": { "@npmcli/promise-spawn": "^3.0.0", @@ -18899,9 +19334,9 @@ } }, "@npmcli/map-workspaces": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz", - "integrity": "sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz", + "integrity": "sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==", "dev": true, "requires": { "@npmcli/name-from-folder": "^1.0.1", @@ -18976,9 +19411,9 @@ } }, "@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "dev": true, "requires": { "mkdirp": "^1.0.4", @@ -19027,67 +19462,86 @@ } }, "@npmcli/run-script": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.3.tgz", - "integrity": "sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.2.1.tgz", + "integrity": "sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==", "dev": true, "requires": { "@npmcli/node-gyp": "^2.0.0", "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^8.4.1", - "read-package-json-fast": "^2.0.3" + "node-gyp": "^9.0.0", + "read-package-json-fast": "^2.0.3", + "which": "^2.0.2" + } + }, + "@nrwl/cli": { + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.6.5.tgz", + "integrity": "sha512-sjT4/oMk1F4+dTpCp08IVE8hfqKsokebUECzC1hTu4pCeFo0oviIi7bQTuCIbG9w4iiHLioa6QmLRXBwVJEr9w==", + "dev": true, + "requires": { + "nx": "14.6.5" + } + }, + "@nrwl/tao": { + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.6.5.tgz", + "integrity": "sha512-sSbTSN4Bfh4vQR2iCl9arNzEhJztG6paY2j+k/GwQZdN+QssX9xV32jLWYIC3rDmPJWaZ11uD3TgAyr3X7GXhw==", + "dev": true, + "requires": { + "nx": "14.6.5" } }, "@octokit/auth-token": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz", - "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.1.tgz", + "integrity": "sha512-/USkK4cioY209wXRpund6HZzHo9GmjakpV9ycOkpMcMxMk7QVcVFVyCMtzvXYiHsB2crgDgrtNYSELYFBXhhaA==", "dev": true, "requires": { - "@octokit/types": "^6.0.3" + "@octokit/types": "^7.0.0" } }, "@octokit/core": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz", - "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.0.5.tgz", + "integrity": "sha512-4R3HeHTYVHCfzSAi0C6pbGXV8UDI5Rk+k3G7kLVNckswN9mvpOzW9oENfjfH3nEmzg8y3AmKmzs8Sg6pLCeOCA==", "dev": true, "requires": { - "@octokit/auth-token": "^2.4.4", - "@octokit/graphql": "^4.5.8", - "@octokit/request": "^5.6.3", - "@octokit/request-error": "^2.0.5", - "@octokit/types": "^6.0.3", + "@octokit/auth-token": "^3.0.0", + "@octokit/graphql": "^5.0.0", + "@octokit/request": "^6.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^7.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" } }, "@octokit/endpoint": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz", - "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.2.tgz", + "integrity": "sha512-8/AUACfE9vpRpehE6ZLfEtzkibe5nfsSwFZVMsG8qabqRt1M81qZYUFRZa1B8w8lP6cdfDJfRq9HWS+MbmR7tw==", "dev": true, "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/graphql": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz", - "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.1.tgz", + "integrity": "sha512-sxmnewSwAixkP1TrLdE6yRG53eEhHhDTYUykUwdV9x8f91WcbhunIHk9x1PZLALdBZKRPUO2HRcm4kezZ79HoA==", "dev": true, "requires": { - "@octokit/request": "^5.6.0", - "@octokit/types": "^6.0.3", + "@octokit/request": "^6.0.0", + "@octokit/types": "^7.0.0", "universal-user-agent": "^6.0.0" } }, "@octokit/openapi-types": { - "version": "12.8.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.8.0.tgz", - "integrity": "sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg==", + "version": "13.9.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-13.9.0.tgz", + "integrity": "sha512-MOYjRyLIM0zzNb9RfEwVK6HLIc2nIF2OMVtMqiNOGbX0SHrQvQbI6X1K16ktmaHr8WUBv+eeul8cD9mz4rNiWQ==", "dev": true }, "@octokit/plugin-enterprise-rest": { @@ -19097,12 +19551,12 @@ "dev": true }, "@octokit/plugin-paginate-rest": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.1.tgz", - "integrity": "sha512-NVNTK63yoTFp07GqISWK+uDfGH1CAPhQXS7LzsJBvaK5W+UlvG549pLZC55FK0FqANVl6q/9ra3SR5c97xF/sw==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-4.2.2.tgz", + "integrity": "sha512-oslJFmdcWeB3Q8dzn2WNFBzEAvqCH+cvrjBUhS7uwQxAt5yH91w1eo2flWiR0Rqxh+EijQS5ImoB0iQ3hz7P2Q==", "dev": true, "requires": { - "@octokit/types": "^6.38.2" + "@octokit/types": "^7.3.0" } }, "@octokit/plugin-request-log": { @@ -19113,59 +19567,59 @@ "requires": {} }, "@octokit/plugin-rest-endpoint-methods": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", - "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.5.0.tgz", + "integrity": "sha512-+r/tWwc7hI3vYDb+d0hAqbr04Kle6pL+MmGxMDTUn7wIwry5qFXnUA8RCa5CO8EcuHbZLywnqIVRLdM08qV8Ew==", "dev": true, "requires": { - "@octokit/types": "^6.39.0", + "@octokit/types": "^7.3.0", "deprecation": "^2.3.1" } }, "@octokit/request": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz", - "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.1.tgz", + "integrity": "sha512-gYKRCia3cpajRzDSU+3pt1q2OcuC6PK8PmFIyxZDWCzRXRSIBH8jXjFJ8ZceoygBIm0KsEUg4x1+XcYBz7dHPQ==", "dev": true, "requires": { - "@octokit/endpoint": "^6.0.1", - "@octokit/request-error": "^2.1.0", - "@octokit/types": "^6.16.1", + "@octokit/endpoint": "^7.0.0", + "@octokit/request-error": "^3.0.0", + "@octokit/types": "^7.0.0", "is-plain-object": "^5.0.0", "node-fetch": "^2.6.7", "universal-user-agent": "^6.0.0" } }, "@octokit/request-error": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz", - "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.1.tgz", + "integrity": "sha512-ym4Bp0HTP7F3VFssV88WD1ZyCIRoE8H35pXSKwLeMizcdZAYc/t6N9X9Yr9n6t3aG9IH75XDnZ6UeZph0vHMWQ==", "dev": true, "requires": { - "@octokit/types": "^6.0.3", + "@octokit/types": "^7.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, "@octokit/rest": { - "version": "18.12.0", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz", - "integrity": "sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==", + "version": "19.0.4", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.4.tgz", + "integrity": "sha512-LwG668+6lE8zlSYOfwPj4FxWdv/qFXYBpv79TWIQEpBLKA9D/IMcWsF/U9RGpA3YqMVDiTxpgVpEW3zTFfPFTA==", "dev": true, "requires": { - "@octokit/core": "^3.5.1", - "@octokit/plugin-paginate-rest": "^2.16.8", + "@octokit/core": "^4.0.0", + "@octokit/plugin-paginate-rest": "^4.0.0", "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^5.12.0" + "@octokit/plugin-rest-endpoint-methods": "^6.0.0" } }, "@octokit/types": { - "version": "6.39.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-6.39.0.tgz", - "integrity": "sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-7.3.0.tgz", + "integrity": "sha512-7Ar22AVxsJBYZuPkGQwFQybGt2YjuP6j6Z36bPntIYy3R9qSowB55mXOsb16hc0UqtJkYBrRMVXKlaX1OHsh1g==", "dev": true, "requires": { - "@octokit/openapi-types": "^12.7.0" + "@octokit/openapi-types": "^13.9.0" } }, "@parcel/bundler-default": { @@ -19341,75 +19795,75 @@ } }, "@parcel/css": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css/-/css-1.12.2.tgz", - "integrity": "sha512-Sa0PvZu5u877CupQA8IjEATqjJFynBfA7LxbcyutFe2LDCRSqB5Bm08jKFScyaz56qjZNIxZxXk2SApNkOvoAA==", - "dev": true, - "requires": { - "@parcel/css-darwin-arm64": "1.12.2", - "@parcel/css-darwin-x64": "1.12.2", - "@parcel/css-linux-arm-gnueabihf": "1.12.2", - "@parcel/css-linux-arm64-gnu": "1.12.2", - "@parcel/css-linux-arm64-musl": "1.12.2", - "@parcel/css-linux-x64-gnu": "1.12.2", - "@parcel/css-linux-x64-musl": "1.12.2", - "@parcel/css-win32-x64-msvc": "1.12.2", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css/-/css-1.13.1.tgz", + "integrity": "sha512-pDv+1tPCk2ggGZ1Msl4r+lq7dPKjUBpZXJf/DMydTnYPxupwAjtmlmOd67CF3QHVLyKYB+viU4g5M8pVXCbaeA==", + "dev": true, + "requires": { + "@parcel/css-darwin-arm64": "1.13.1", + "@parcel/css-darwin-x64": "1.13.1", + "@parcel/css-linux-arm-gnueabihf": "1.13.1", + "@parcel/css-linux-arm64-gnu": "1.13.1", + "@parcel/css-linux-arm64-musl": "1.13.1", + "@parcel/css-linux-x64-gnu": "1.13.1", + "@parcel/css-linux-x64-musl": "1.13.1", + "@parcel/css-win32-x64-msvc": "1.13.1", "detect-libc": "^1.0.3" } }, "@parcel/css-darwin-arm64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.12.2.tgz", - "integrity": "sha512-6VvsoYSltBiUh/uyfPzQ+I3DiTFN7tmRv6zm1LH98J7GGCDDhbYEtbQjjCs15ex6fVn1ORZK0JO+mMlsg1JwTA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.13.1.tgz", + "integrity": "sha512-46LVidYcao8zurVPOZ4ZWJQ/50o4N+Z0K4CRmCCqWE+5gIWlx+md+W0h8XQTRb/GQ3j3+mlZvYCQxHpKy5M1lA==", "dev": true, "optional": true }, "@parcel/css-darwin-x64": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.12.2.tgz", - "integrity": "sha512-3J0/LrDvt5vevOisnrE0q5mEcuiAY+K7OZwIv84SAnrbjlL5sshmIaaNzL869kb4thza+RClEj0mS5XTm1IUEw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.13.1.tgz", + "integrity": "sha512-vX1/Ut06UL5MQzWr5fPg51n6NYrzfjW9A+jXH3KeBloWtX+NllhLilmtcO4X1y/ZqaFjqHWpk4yrNVdtk1r4zA==", "dev": true, "optional": true }, "@parcel/css-linux-arm-gnueabihf": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.12.2.tgz", - "integrity": "sha512-OsX7I3dhBvnxEbAH++08RFe7yhjRp33ulzrCvJTMOP9YkxEEJ8qId3sNzJBHIVQzHyTlPTnBRHbSDhU3TFe/eQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.13.1.tgz", + "integrity": "sha512-qxQKUeXLHqehLmuJODQ7GNp0Syj2Kl35X4YvXGoPOI7Eq/y2ny3G5NCKUWkGDwOasIP3hKvVVfJRJv9fLJWnDQ==", "dev": true, "optional": true }, "@parcel/css-linux-arm64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.12.2.tgz", - "integrity": "sha512-R1Kqw+1Rsru9Q4+qvUEC6B8P21bpqhuF9rv8GmBmmnF1i2hMZ1JiY+uh/ej8IaRV0O3fAHeQGIyGBWx6qWDpcw==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.13.1.tgz", + "integrity": "sha512-FxnOONVo8WBW58uzjqv/mwSBDgGMp1qxK+fovjqLPCP3zcNgxkUG0l6ElWpqtiWWH3mTMzSHe+7hSaeVov12yQ==", "dev": true, "optional": true }, "@parcel/css-linux-arm64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.12.2.tgz", - "integrity": "sha512-nwixgM4SEgPUQata9aAiJW0A5Q9ms+xim1tXT1i+91kOei4Fu2Wr2OuofMk+mlhbgmGKCTcu4gzMPReGxUhuRA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.13.1.tgz", + "integrity": "sha512-6RDhL36HBAtt1mHa/y+34fHRImEJT/rd9hy1Z2qz117WUgzpZ3m4tFw33VrG7MKACugs9C2zG1MdVfy1Rz5+Uw==", "dev": true, "optional": true }, "@parcel/css-linux-x64-gnu": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.12.2.tgz", - "integrity": "sha512-cJYVMHnQSGhDwQByyvjFZppjMBNlgxXl/R4cX5DwrQE0QZmK/42BYnMp92rvoprEG6LRyRoiGtCjyfYTPWajog==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.13.1.tgz", + "integrity": "sha512-4VsduFKs35J1I3iQJuBCTp66K5mLh8nrtfXzkBDgP9tc6cLqw9PFodby9NhW9SJSn0ZVdrciIXW0C8Lp3Ev+bw==", "dev": true, "optional": true }, "@parcel/css-linux-x64-musl": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.12.2.tgz", - "integrity": "sha512-u9zdO/d831/74Tf+TdPUfaIuB9v6FD4Xz8UdWUDOXgQqaOlnJ9fAsAM39EkoWlMxPPljY3f4ay6irSe1a4XgSA==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.13.1.tgz", + "integrity": "sha512-Ws34m9fW/0UuNTkC359nbnURzvSbCsstRG6QQ3UxdeNJ+crrgEsmvHPcN3WiIz/P2seP1Hu6GobKQAnOy6g3HA==", "dev": true, "optional": true }, "@parcel/css-win32-x64-msvc": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.12.2.tgz", - "integrity": "sha512-kCAKr3vKqvPUv9oXBG3pGZQz5il3sEk35dpmTXFa/7eDNKR5XyLpiJs8JwWJTFfuUqroymDSXA1bCcjvNEYcAg==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.13.1.tgz", + "integrity": "sha512-4yPYFQqUW4ZepIWa8rWiXnSDU6Nki2H9PB1NfTvr7IjN3WsNFrrVZFKsTg/KU2euYnasBXSZ+CMTUutvLZoVaA==", "dev": true, "optional": true }, @@ -20287,9 +20741,9 @@ } }, "@rollup/plugin-typescript": { - "version": "8.3.3", - "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.3.3.tgz", - "integrity": "sha512-55L9SyiYu3r/JtqdjhwcwaECXP7JeJ9h1Sg1VWRJKIutla2MdZQodTgcCNybXLMCnqpNLEhS2vGENww98L1npg==", + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-8.5.0.tgz", + "integrity": "sha512-wMv1/scv0m/rXx21wD2IsBbJFba8wGF3ErJIr6IKRfRj49S85Lszbxb4DCo8iILpluTjk2GAAu9CoZt4G3ppgQ==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -20316,18 +20770,18 @@ } }, "@swc/helpers": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.3.tgz", - "integrity": "sha512-6JrF+fdUK2zbGpJIlN7G3v966PQjyx/dPt1T9km2wj+EUBqgrxCk3uX4Kct16MIm9gGxfKRcfax2hVf5jvlTzA==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.11.tgz", + "integrity": "sha512-rEUrBSGIoSFuYxwBYtlUFMlE2CwGhmW+w9355/5oduSw8e5h2+Tj4UrAGNNgP9915++wj5vkQo0UuOBqOAq4nw==", "dev": true, "requires": { "tslib": "^2.4.0" } }, "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, "@trysound/sax": { @@ -20346,9 +20800,9 @@ } }, "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "requires": { "@types/estree": "*", @@ -20377,6 +20831,12 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -20390,9 +20850,9 @@ "dev": true }, "@types/node": { - "version": "18.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", - "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", + "version": "18.7.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.15.tgz", + "integrity": "sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==", "dev": true }, "@types/normalize-package-data": { @@ -20443,14 +20903,14 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.5.tgz", - "integrity": "sha512-lftkqRoBvc28VFXEoRgyZuztyVUQ04JvUnATSPtIRFAccbXTWL6DEtXGYMcbg998kXw1NLUJm7rTQ9eUt+q6Ig==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.2.tgz", + "integrity": "sha512-OwwR8LRwSnI98tdc2z7mJYgY60gf7I9ZfGjN5EjCwwns9bdTuQfAXcsjSB2wSQ/TVNYSGKf4kzVXbNGaZvwiXw==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/type-utils": "5.30.5", - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/scope-manager": "5.36.2", + "@typescript-eslint/type-utils": "5.36.2", + "@typescript-eslint/utils": "5.36.2", "debug": "^4.3.4", "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", @@ -20480,52 +20940,53 @@ } }, "@typescript-eslint/parser": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.5.tgz", - "integrity": "sha512-zj251pcPXI8GO9NDKWWmygP6+UjwWmrdf9qMW/L/uQJBM/0XbU2inxe5io/234y/RCvwpKEYjZ6c1YrXERkK4Q==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.2.tgz", + "integrity": "sha512-qS/Kb0yzy8sR0idFspI9Z6+t7mqk/oRjnAYfewG+VN73opAUvmYL3oPIMmgOX6CnQS6gmVIXGshlb5RY/R22pA==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.36.2", + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/typescript-estree": "5.36.2", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.5.tgz", - "integrity": "sha512-NJ6F+YHHFT/30isRe2UTmIGGAiXKckCyMnIV58cE3JkHmaD6e5zyEYm5hBDv0Wbin+IC0T1FWJpD3YqHUG/Ydg==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.36.2.tgz", + "integrity": "sha512-cNNP51L8SkIFSfce8B1NSUBTJTu2Ts4nWeWbFrdaqjmn9yKrAaJUBHkyTZc0cL06OFHpb+JZq5AUHROS398Orw==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5" + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/visitor-keys": "5.36.2" } }, "@typescript-eslint/type-utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.5.tgz", - "integrity": "sha512-k9+ejlv1GgwN1nN7XjVtyCgE0BTzhzT1YsQF0rv4Vfj2U9xnslBgMYYvcEYAFVdvhuEscELJsB7lDkN7WusErw==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.36.2.tgz", + "integrity": "sha512-rPQtS5rfijUWLouhy6UmyNquKDPhQjKsaKH0WnY6hl/07lasj8gPaH2UD8xWkePn6SC+jW2i9c2DZVDnL+Dokw==", "dev": true, "requires": { - "@typescript-eslint/utils": "5.30.5", + "@typescript-eslint/typescript-estree": "5.36.2", + "@typescript-eslint/utils": "5.36.2", "debug": "^4.3.4", "tsutils": "^3.21.0" } }, "@typescript-eslint/types": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.5.tgz", - "integrity": "sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.36.2.tgz", + "integrity": "sha512-9OJSvvwuF1L5eS2EQgFUbECb99F0mwq501w0H0EkYULkhFa19Qq7WFbycdw1PexAc929asupbZcgjVIe6OK/XQ==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz", - "integrity": "sha512-qGTc7QZC801kbYjAr4AgdOfnokpwStqyhSbiQvqGBLixniAKyH+ib2qXIVo4P9NgGzwyfD9I0nlJN7D91E1VpQ==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.2.tgz", + "integrity": "sha512-8fyH+RfbKc0mTspfuEjlfqA4YywcwQK2Amcf6TDOwaRLg7Vwdu4bZzyvBZp4bjt1RRjQ5MDnOZahxMrt2l5v9w==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/visitor-keys": "5.30.5", + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/visitor-keys": "5.36.2", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -20554,26 +21015,26 @@ } }, "@typescript-eslint/utils": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.5.tgz", - "integrity": "sha512-o4SSUH9IkuA7AYIfAvatldovurqTAHrfzPApOZvdUq01hHojZojCFXx06D/aFpKCgWbMPRdJBWAC3sWp3itwTA==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.36.2.tgz", + "integrity": "sha512-uNcopWonEITX96v9pefk9DC1bWMdkweeSsewJ6GeC7L6j2t0SJywisgkr9wUTtXk90fi2Eljj90HSHm3OGdGRg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.5", - "@typescript-eslint/types": "5.30.5", - "@typescript-eslint/typescript-estree": "5.30.5", + "@typescript-eslint/scope-manager": "5.36.2", + "@typescript-eslint/types": "5.36.2", + "@typescript-eslint/typescript-estree": "5.36.2", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" } }, "@typescript-eslint/visitor-keys": { - "version": "5.30.5", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz", - "integrity": "sha512-D+xtGo9HUMELzWIUqcQc0p2PO4NyvTrgIOK/VnSH083+8sq0tiLozNRKuLarwHYGRuA6TVBQSuuLwJUDWd3aaA==", + "version": "5.36.2", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.2.tgz", + "integrity": "sha512-BtRvSR6dEdrNt7Net2/XDjbYKU5Ml6GqJgVfXT0CxTCJlnIqK7rAGreuWKMT2t8cFUT2Msv5oxw0GMRD7T5J7A==", "dev": true, "requires": { - "@typescript-eslint/types": "5.30.5", + "@typescript-eslint/types": "5.36.2", "eslint-visitor-keys": "^3.3.0" } }, @@ -20892,9 +21353,9 @@ "dev": true }, "are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, "requires": { "delegates": "^1.0.0", @@ -20982,9 +21443,9 @@ "dev": true }, "azure-devops-node-api": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.1.1.tgz", - "integrity": "sha512-XDG91XzLZ15reP12s3jFkKS8oiagSICjnLwxEYieme4+4h3ZveFOFRA4iYIG40RyHXsiI0mefFYYMFIJbMpWcg==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", + "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", "dev": true, "requires": { "tunnel": "0.0.6", @@ -21024,39 +21485,24 @@ "integrity": "sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ==", "dev": true }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, "bin-links": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.1.tgz", - "integrity": "sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz", + "integrity": "sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==", "dev": true, "requires": { "cmd-shim": "^5.0.0", "mkdirp-infer-owner": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0", + "npm-normalize-package-bin": "^2.0.0", "read-cmd-shim": "^3.0.0", "rimraf": "^3.0.0", "write-file-atomic": "^4.0.0" }, "dependencies": { - "cmd-shim": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", - "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", - "dev": true, - "requires": { - "mkdirp-infer-owner": "^2.0.0" - } - }, - "read-cmd-shim": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz", - "integrity": "sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==", + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", "dev": true }, "rimraf": { @@ -21067,16 +21513,6 @@ "requires": { "glob": "^7.1.3" } - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } } } }, @@ -21129,15 +21565,15 @@ "dev": true }, "browserslist": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", - "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001359", - "electron-to-chromium": "^1.4.172", - "node-releases": "^2.0.5", - "update-browserslist-db": "^1.0.4" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" } }, "buble": { @@ -21184,10 +21620,33 @@ "dev": true }, "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "dev": true, + "requires": { + "semver": "^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } }, "byte-size": { "version": "7.0.1", @@ -21196,9 +21655,9 @@ "dev": true }, "cacache": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", - "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "dev": true, "requires": { "@npmcli/fs": "^2.1.0", @@ -21218,7 +21677,7 @@ "rimraf": "^3.0.2", "ssri": "^9.0.0", "tar": "^6.1.11", - "unique-filename": "^1.1.1" + "unique-filename": "^2.0.0" }, "dependencies": { "brace-expansion": { @@ -21295,15 +21754,6 @@ } } } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } } } }, @@ -21341,9 +21791,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001363", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001363.tgz", - "integrity": "sha512-HpQhpzTGGPVMnCjIomjt+jvyUu8vNFo3TaDiZ/RcoTrlOq/5+tC8zHdsbgFB6MxmaY+jCpsH09aD80Bb4Ow3Sg==", + "version": "1.0.30001390", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz", + "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==", "dev": true }, "chalk": { @@ -21410,9 +21860,9 @@ } }, "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true }, "htmlparser2": { @@ -21488,9 +21938,9 @@ } }, "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true } } @@ -21555,6 +22005,12 @@ "restore-cursor": "^3.1.0" } }, + "cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true + }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -21601,9 +22057,9 @@ } }, "cmd-shim": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-4.1.0.tgz", - "integrity": "sha512-lb9L7EM4I/ZRVuljLPEtUJOP+xiQVknZ4ZMpMgEp4JzNldPb27HU03hi6K1/6CoIuit/Zm/LQXySErFeXxDprw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz", + "integrity": "sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==", "dev": true, "requires": { "mkdirp-infer-owner": "^2.0.0" @@ -22002,6 +22458,12 @@ } } }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, "define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -22149,9 +22611,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.183", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.183.tgz", - "integrity": "sha512-PnJvlREshGPh3M5tgReLgqbOQ61yd4Knwo39Cxy9SMfqwX9q5iRy+JioQC1LyKx1IBAH2zoctAWblhgM2kbEKQ==", + "version": "1.4.243", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.243.tgz", + "integrity": "sha512-BgLD2gBX43OSXwlT01oYRRD5NIB4n3okTRxkzEAC6G0SZG4TTlyrWMjbOo0fajCwqwpRtMHXQNMjtRN6qpNtfw==", "dev": true }, "emoji-regex": { @@ -22160,12 +22622,6 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, "encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", @@ -22198,14 +22654,30 @@ } }, "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + } } }, "entities": { @@ -22232,15 +22704,6 @@ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -22251,16 +22714,16 @@ } }, "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", @@ -22272,9 +22735,9 @@ "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", @@ -22326,13 +22789,15 @@ "dev": true }, "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", + "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@eslint/eslintrc": "^1.3.1", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -22342,14 +22807,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.4.0", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -22364,8 +22832,7 @@ "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "dependencies": { "ansi-styles": { @@ -22419,9 +22886,9 @@ } }, "globals": { - "version": "13.16.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.16.0.tgz", - "integrity": "sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -22451,9 +22918,9 @@ } }, "eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "version": "7.31.7", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.7.tgz", + "integrity": "sha512-8NldBTeYp/kQoTV1uT0XF6HcmDqbgZ0lNPkN0wlRw8DJKXEnaWu+oh/6gt3xIhzvQ35wB2Y545fJhIbJSZ2NNw==", "dev": true, "requires": { "array-includes": "^3.1.5", @@ -22542,20 +23009,20 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "dependencies": { "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true } } @@ -22697,9 +23164,9 @@ "dev": true }, "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true }, "fastq": { @@ -22748,22 +23215,20 @@ } }, "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "flat": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", - "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", - "dev": true, - "requires": { - "is-buffer": "~2.0.3" - } + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true }, "flat-cache": { "version": "3.0.4", @@ -22787,9 +23252,9 @@ } }, "flatted": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", - "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "fs-constants": { @@ -23125,6 +23590,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -23257,12 +23728,12 @@ "dev": true }, "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "requires": { - "@tootallnate/once": "1", + "@tootallnate/once": "2", "agent-base": "6", "debug": "4" } @@ -23314,12 +23785,32 @@ "dev": true }, "ignore-walk": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, "immutable": { @@ -23389,39 +23880,39 @@ "dev": true }, "init-package-json": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-2.0.5.tgz", - "integrity": "sha512-u1uGAtEFu3VA6HNl/yUWw57jmKEMx8SKOxHhxjGnOFUiIlFnohKDFg4ZrPpv9wWqk44nDxGJAtqjdQFm+9XXQA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-3.0.2.tgz", + "integrity": "sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==", "dev": true, "requires": { - "npm-package-arg": "^8.1.5", + "npm-package-arg": "^9.0.1", "promzard": "^0.3.0", - "read": "~1.0.1", - "read-package-json": "^4.1.1", + "read": "^1.0.7", + "read-package-json": "^5.0.0", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^3.0.0" + "validate-npm-package-name": "^4.0.0" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { - "yallist": "^4.0.0" + "lru-cache": "^7.5.1" } }, - "read-package-json": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-4.1.2.tgz", - "integrity": "sha512-Dqer4pqzamDE2O4M55xp1qZMuLPqi4ldk2ya648FOMHRjwMzFhuxVrG04wd0c38IsvkVdr3vgHI6z+QTPdAjrQ==", + "npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dev": true, "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" } }, "semver": { @@ -23431,29 +23922,42 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } } } }, "inquirer": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", - "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", - "chalk": "^4.1.0", + "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", - "lodash": "^4.17.19", + "lodash": "^4.17.21", "mute-stream": "0.0.8", + "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^6.6.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", - "through": "^2.3.6" + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" }, "dependencies": { "ansi-styles": { @@ -23534,9 +24038,9 @@ } }, "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, "is-arrayish": { @@ -23580,12 +24084,12 @@ "dev": true }, "is-builtin-module": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", - "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", "dev": true, "requires": { - "builtin-modules": "^3.0.0" + "builtin-modules": "^3.3.0" } }, "is-callable": { @@ -23604,9 +24108,9 @@ } }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "requires": { "has": "^1.0.3" @@ -23621,6 +24125,12 @@ "has-tostringtag": "^1.0.0" } }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -23642,6 +24152,12 @@ "is-extglob": "^2.1.1" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, "is-json": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", @@ -23775,6 +24291,12 @@ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", "dev": true }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -23784,6 +24306,15 @@ "call-bind": "^1.0.2" } }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -23926,25 +24457,25 @@ } }, "jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "requires": { "array-includes": "^3.1.5", - "object.assign": "^4.1.2" + "object.assign": "^4.1.3" } }, "just-diff": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.0.3.tgz", - "integrity": "sha512-a8p80xcpJ6sdurk5PxDKb4mav9MeKjA3zFKZpCWBIfvg8mznfnmb13MKZvlrwJ+Lhis0wM3uGAzE0ArhFHvIcg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", + "integrity": "sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ==", "dev": true }, "just-diff-apply": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.3.1.tgz", - "integrity": "sha512-dgFenZnMsc1xGNqgdtgnh7DK+Oy352CE3VZLbzcbQpsBs9iI2K3M0IRrdgREZ72eItTjbl0suRyvKRdVQa9GbA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz", + "integrity": "sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g==", "dev": true }, "keytar": { @@ -23972,29 +24503,31 @@ "dev": true }, "lerna": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.1.8.tgz", - "integrity": "sha512-KrpFx2l1x1X7wb9unqRU7OZTaNs5+67VQ1vxf8fIMgdtCAjEqkLxF/F3xLs+KBMws5PV19Q9YtPHn7SiwDl7iQ==", - "dev": true, - "requires": { - "@lerna/add": "5.1.8", - "@lerna/bootstrap": "5.1.8", - "@lerna/changed": "5.1.8", - "@lerna/clean": "5.1.8", - "@lerna/cli": "5.1.8", - "@lerna/create": "5.1.8", - "@lerna/diff": "5.1.8", - "@lerna/exec": "5.1.8", - "@lerna/import": "5.1.8", - "@lerna/info": "5.1.8", - "@lerna/init": "5.1.8", - "@lerna/link": "5.1.8", - "@lerna/list": "5.1.8", - "@lerna/publish": "5.1.8", - "@lerna/run": "5.1.8", - "@lerna/version": "5.1.8", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-5.5.0.tgz", + "integrity": "sha512-1cZIijUWcI9ZqK+ejj1dBejTOLL64b0pIjYXb9KN8soNIONm/1zbJiSBiAyF4Hd6x4XuIC3kdFx7Ff3Pb9KsYA==", + "dev": true, + "requires": { + "@lerna/add": "5.5.0", + "@lerna/bootstrap": "5.5.0", + "@lerna/changed": "5.5.0", + "@lerna/clean": "5.5.0", + "@lerna/cli": "5.5.0", + "@lerna/create": "5.5.0", + "@lerna/diff": "5.5.0", + "@lerna/exec": "5.5.0", + "@lerna/import": "5.5.0", + "@lerna/info": "5.5.0", + "@lerna/init": "5.5.0", + "@lerna/link": "5.5.0", + "@lerna/list": "5.5.0", + "@lerna/publish": "5.5.0", + "@lerna/run": "5.5.0", + "@lerna/version": "5.5.0", "import-local": "^3.0.2", - "npmlog": "^6.0.2" + "npmlog": "^6.0.2", + "nx": ">=14.6.1 < 16", + "typescript": "^3 || ^4" } }, "leven": { @@ -24014,67 +24547,104 @@ } }, "libnpmaccess": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-4.0.3.tgz", - "integrity": "sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-6.0.4.tgz", + "integrity": "sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==", "dev": true, "requires": { "aproba": "^2.0.0", "minipass": "^3.1.1", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0" + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0" }, "dependencies": { - "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + } + }, + "npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } } } }, "libnpmpublish": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-4.0.2.tgz", - "integrity": "sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-6.0.5.tgz", + "integrity": "sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg==", "dev": true, "requires": { - "normalize-package-data": "^3.0.2", - "npm-package-arg": "^8.1.2", - "npm-registry-fetch": "^11.0.0", - "semver": "^7.1.3", - "ssri": "^8.0.1" + "normalize-package-data": "^4.0.0", + "npm-package-arg": "^9.0.1", + "npm-registry-fetch": "^13.0.0", + "semver": "^7.3.7", + "ssri": "^9.0.0" }, "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { - "yallist": "^4.0.0" + "lru-cache": "^7.5.1" + } + }, + "normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" } }, - "npm-registry-fetch": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", - "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", + "npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dev": true, "requires": { - "make-fetch-happen": "^9.0.1", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" } }, "semver": { @@ -24084,6 +24654,17 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } } } @@ -24156,44 +24737,13 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } + "p-locate": "^5.0.0" } }, "lodash": { @@ -24233,132 +24783,57 @@ } }, "lru-cache": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz", - "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==", + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.0.tgz", + "integrity": "sha512-EIRtP1GrSJny0dqb50QXRUNBxHJhcpxHC++M5tD7RYbvLLn5KVWKsbyswSSqDuU15UFi3bgTQIY8nhDMeF6aDQ==", "dev": true }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dev": true, - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" } }, "map-obj": { @@ -24389,9 +24864,9 @@ } }, "marked": { - "version": "4.0.17", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz", - "integrity": "sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.1.0.tgz", + "integrity": "sha512-+Z6KDjSPa6/723PQYyc1axYZpYYpDnECDaU6hkaf5gqBieBkMKYReL5hteF2QizhlMbgbo8umXl/clZ67+GlsA==", "dev": true }, "mdast-util-to-string": { @@ -24424,48 +24899,6 @@ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", "dev": true }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -24516,6 +24949,15 @@ "p-locate": "^4.1.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -24696,15 +25138,15 @@ } }, "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "dev": true, "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", + "encoding": "^0.1.13", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "minizlib": "^2.1.2" } }, "minipass-flush": { @@ -24850,6 +25292,15 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", @@ -24880,6 +25331,16 @@ "esprima": "^4.0.0" } }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -24916,6 +25377,30 @@ "object-keys": "^1.0.11" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -25020,37 +25505,28 @@ "dev": true }, "msgpackr": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.6.1.tgz", - "integrity": "sha512-Je+xBEfdjtvA4bKaOv8iRhjC8qX2oJwpYH4f7JrG4uMVJVmnmkAT4pjKdbztKprGj3iwjcxPzb5umVZ02Qq3tA==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.6.2.tgz", + "integrity": "sha512-bqSQ0DYJbXbrJcrZFmMygUZmqQiDfI2ewFVWcrZY12w5XHWtPuW4WppDT/e63Uu311ajwkRRXSoF0uILroBeTA==", "dev": true, "requires": { "msgpackr-extract": "^2.0.2" } }, "msgpackr-extract": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.0.2.tgz", - "integrity": "sha512-coskCeJG2KDny23zWeu+6tNy7BLnAiOGgiwzlgdm4oeSsTpqEJJPguHIuKZcCdB7tzhZbXNYSg6jZAXkZErkJA==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-2.1.2.tgz", + "integrity": "sha512-cmrmERQFb19NX2JABOGtrKdHMyI6RUyceaPBQ2iRz9GnDkjBWFjNJC0jyyoOfZl2U/LZE3tQCCQc4dlRyA8mcA==", "dev": true, "optional": true, "requires": { - "@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-darwin-x64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-linux-arm": "2.0.2", - "@msgpackr-extract/msgpackr-extract-linux-arm64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-linux-x64": "2.0.2", - "@msgpackr-extract/msgpackr-extract-win32-x64": "2.0.2", - "node-gyp-build-optional-packages": "5.0.2" - }, - "dependencies": { - "node-gyp-build-optional-packages": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.2.tgz", - "integrity": "sha512-PiN4NWmlQPqvbEFcH/omQsswWQbe5Z9YK/zdB23irp5j2XibaA2IrGvpSWmVVG4qMZdmPdwPctSy4a86rOMn6g==", - "dev": true, - "optional": true - } + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-linux-arm": "2.1.2", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-linux-x64": "2.1.2", + "@msgpackr-extract/msgpackr-extract-win32-x64": "2.1.2", + "node-gyp-build-optional-packages": "5.0.3" } }, "multimatch": { @@ -25111,9 +25587,9 @@ "dev": true }, "node-abi": { - "version": "3.22.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", - "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "version": "3.24.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.24.0.tgz", + "integrity": "sha512-YPG3Co0luSu6GwOBsmIdGW6Wx0NyNDLg/hriIyDllVsNwnI6UeqaWShxC3lbH4LtEQUgoLP3XR1ndXiDAWvmRw==", "dev": true, "requires": { "semver": "^7.3.5" @@ -25170,42 +25646,18 @@ "dev": true, "requires": { "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } } }, "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.1.0.tgz", + "integrity": "sha512-HkmN0ZpQJU7FLbJauJTHkHlSVAXlNGDAzH/VYFZGDOnFyn/Na3GlNJfkudmufOdS6/jNFhy88ObzL7ERz9es1g==", "dev": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", + "make-fetch-happen": "^10.0.3", "nopt": "^5.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", @@ -25256,9 +25708,9 @@ "dev": true }, "node-releases": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", - "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "nopt": { @@ -25359,16 +25811,31 @@ "dev": true }, "npm-package-arg": { - "version": "8.1.5", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.1.tgz", + "integrity": "sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==", "dev": true, "requires": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", "validate-npm-package-name": "^3.0.0" }, "dependencies": { + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -25386,51 +25853,105 @@ "requires": { "lru-cache": "^6.0.0" } + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } } } }, "npm-packlist": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", "dev": true, "requires": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^2.0.0" + } + }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true + } } }, "npm-pick-manifest": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", - "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz", + "integrity": "sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw==", "dev": true, "requires": { "npm-install-checks": "^5.0.0", - "npm-normalize-package-bin": "^1.0.1", + "npm-normalize-package-bin": "^2.0.0", "npm-package-arg": "^9.0.0", "semver": "^7.3.5" }, "dependencies": { - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, "hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { "lru-cache": "^7.5.1" } }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true + }, "npm-package-arg": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", @@ -25462,119 +25983,43 @@ } } } - }, - "validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } } } }, "npm-registry-fetch": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", - "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz", + "integrity": "sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==", "dev": true, "requires": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", + "make-fetch-happen": "^10.0.6", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.3", "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" }, "dependencies": { - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "dev": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" + "lru-cache": "^7.5.1" } }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "npm-package-arg": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", + "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", "dev": true, "requires": { - "glob": "^7.1.3" + "hosted-git-info": "^5.0.0", + "proc-log": "^2.0.1", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" } }, "semver": { @@ -25584,17 +26029,17 @@ "dev": true, "requires": { "lru-cache": "^6.0.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } } } @@ -25703,6 +26148,272 @@ "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", "dev": true }, + "nx": { + "version": "14.6.5", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.6.5.tgz", + "integrity": "sha512-egV8Zrec+0m+27wTENe9W/JKRMkBDx1N0xaFzKjL0WKj5WIe4asao5uwTJEwqi9iQyiijExxUFVU5MNGuF2c+A==", + "dev": true, + "requires": { + "@nrwl/cli": "14.6.5", + "@nrwl/tao": "14.6.5", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "js-yaml": "4.1.0", + "jsonc-parser": "3.0.0", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + }, + "dependencies": { + "@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "dev": true, + "requires": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true + }, + "fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -25722,14 +26433,14 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -25806,6 +26517,17 @@ "mimic-fn": "^2.1.0" } }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -25820,6 +26542,84 @@ "word-wrap": "^1.2.3" } }, + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "requires": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "ordered-binary": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.3.0.tgz", @@ -25839,21 +26639,21 @@ "dev": true }, "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "yocto-queue": "^0.1.0" } }, "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "^3.0.2" } }, "p-map": { @@ -25918,9 +26718,9 @@ } }, "pacote": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.1.tgz", - "integrity": "sha512-L+2BI1ougAPsFjXRyBhcKmfT016NscRFLv6Pz5EiNf1CCFJFU0pSKKQwsZTyAQB+sTuUL4TyFyp6J1Ork3dOqw==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.6.2.tgz", + "integrity": "sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==", "dev": true, "requires": { "@npmcli/git": "^3.0.0", @@ -25946,145 +26746,13 @@ "tar": "^6.1.11" }, "dependencies": { - "@npmcli/run-script": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-4.1.5.tgz", - "integrity": "sha512-FyrZkZ+O0bCnQqm+mRb6sKbEJgyJudInwFN84gCcMUcxrWkR15Ags1uOHwnxHYdpj3T5eqrCZNW/Ys20MGTQ6Q==", - "dev": true, - "requires": { - "@npmcli/node-gyp": "^2.0.0", - "@npmcli/promise-spawn": "^3.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^2.0.3", - "which": "^2.0.2" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "dev": true, - "requires": { - "semver": "^7.0.0" - } - }, "hosted-git-info": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", - "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "ignore-walk": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", - "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - } - }, - "make-fetch-happen": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz", - "integrity": "sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - } - }, - "minimatch": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "node-gyp": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.0.0.tgz", - "integrity": "sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw==", - "dev": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - } - }, - "normalize-package-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", - "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", "dev": true, "requires": { - "hosted-git-info": "^5.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" + "lru-cache": "^7.5.1" } }, "npm-package-arg": { @@ -26099,75 +26767,6 @@ "validate-npm-package-name": "^4.0.0" } }, - "npm-packlist": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz", - "integrity": "sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==", - "dev": true, - "requires": { - "glob": "^8.0.1", - "ignore-walk": "^5.0.1", - "npm-bundled": "^1.1.2", - "npm-normalize-package-bin": "^1.0.1" - }, - "dependencies": { - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - } - } - }, - "npm-registry-fetch": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz", - "integrity": "sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==", - "dev": true, - "requires": { - "make-fetch-happen": "^10.0.6", - "minipass": "^3.1.6", - "minipass-fetch": "^2.0.3", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^9.0.1", - "proc-log": "^2.0.0" - } - }, - "read-package-json": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz", - "integrity": "sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==", - "dev": true, - "requires": { - "glob": "^8.0.1", - "json-parse-even-better-errors": "^2.3.1", - "normalize-package-data": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1" - }, - "dependencies": { - "glob": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", - "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - } - } - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -26196,35 +26795,6 @@ } } } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } } } }, @@ -26378,18 +26948,18 @@ } }, "parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", "dev": true, "requires": { - "entities": "^4.3.0" + "entities": "^4.4.0" }, "dependencies": { "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", "dev": true } } @@ -26503,6 +27073,15 @@ "p-locate": "^4.1.0" } }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", @@ -26677,12 +27256,6 @@ "integrity": "sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==", "dev": true }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -26755,51 +27328,131 @@ } } }, - "react-error-overlay": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", - "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", - "dev": true - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "dev": true - }, - "react-refresh": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", - "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", - "dev": true - }, - "read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "requires": { - "mute-stream": "~0.0.4" - } - }, - "read-cmd-shim": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz", - "integrity": "sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw==", - "dev": true - }, - "read-package-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-3.0.1.tgz", - "integrity": "sha512-aLcPqxovhJTVJcsnROuuzQvv6oziQx4zd3JvG0vGCL5MjTONUc4uJ90zCBC6R7W7oUKBNoR/F8pkyfVwlbxqng==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^3.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, + "react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true + }, + "react-refresh": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz", + "integrity": "sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==", + "dev": true + }, + "read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "requires": { + "mute-stream": "~0.0.4" + } + }, + "read-cmd-shim": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz", + "integrity": "sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==", + "dev": true + }, + "read-package-json": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.2.tgz", + "integrity": "sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==", + "dev": true, + "requires": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "hosted-git-info": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.1.0.tgz", + "integrity": "sha512-Ek+QmMEqZF8XrbFdwoDjSbm7rT23pCgEMOJmz6GPk/s4yH//RQfNPArhIxbguNxROq/+5lNBwCDHMhA903Kx1Q==", + "dev": true, + "requires": { + "lru-cache": "^7.5.1" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "normalize-package-data": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", + "integrity": "sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + } + }, + "npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + } + } + }, "read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", @@ -27161,9 +27814,9 @@ } }, "rollup": { - "version": "2.75.7", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.7.tgz", - "integrity": "sha512-VSE1iy0eaAYNCxEXaleThdFXqZJ42qDBatAwrfnPlENEZ8erQ+0LYX4JXOLPceWfZpV1VtZwZ3dFCuOZiSyFtQ==", + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.0.tgz", + "integrity": "sha512-x4KsrCgwQ7ZJPcFA/SUu6QVcYlO7uRLfLAy0DSA4NS2eG8japdbpM50ToH7z4iObodRYOJ0soneF0iaQRJ6zhA==", "dev": true, "requires": { "fsevents": "~2.3.2" @@ -27194,20 +27847,12 @@ } }, "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", "dev": true, "requires": { - "tslib": "^1.9.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } + "tslib": "^2.1.0" } }, "safe-buffer": { @@ -27223,9 +27868,9 @@ "dev": true }, "sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.8", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.8.tgz", + "integrity": "sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -27365,19 +28010,19 @@ "dev": true }, "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", + "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", "dev": true, "requires": { - "ip": "^1.1.5", + "ip": "^2.0.0", "smart-buffer": "^4.2.0" } }, "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, "requires": { "agent-base": "^6.0.2", @@ -27457,9 +28102,9 @@ } }, "spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", "dev": true }, "split": { @@ -27487,9 +28132,9 @@ "dev": true }, "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "requires": { "minipass": "^3.1.1" @@ -27648,9 +28293,9 @@ } }, "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { @@ -27713,9 +28358,9 @@ "dev": true }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -27725,9 +28370,9 @@ }, "dependencies": { "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "commander": { @@ -27739,16 +28384,16 @@ } }, "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" } }, "text-extensions": { @@ -27810,13 +28455,10 @@ } }, "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true }, "treeverse": { "version": "2.0.0", @@ -27837,16 +28479,113 @@ "dev": true }, "ts-loader": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-7.0.5.tgz", - "integrity": "sha512-zXypEIT6k3oTc+OZNx/cqElrsbBtYqDknf48OZos0NQ3RTt045fBIU8RRSu+suObBzYB355aIPGOe/3kj9h7Ig==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.1.tgz", + "integrity": "sha512-OkyShkcZTsTwyS3Kt7a4rsT/t2qvEVQuKCTg4LJmpj9fhFR7ukGdZwV6Qq3tRUkqcXtfGpPR7+hFKHCG/0d3Lw==", "dev": true, "requires": { - "chalk": "^2.3.0", - "enhanced-resolve": "^4.0.0", - "loader-utils": "^1.0.2", + "chalk": "^4.1.0", + "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^6.0.0" + "semver": "^7.3.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true + } } }, "tslib": { @@ -27951,9 +28690,9 @@ "dev": true }, "typescript": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.5.tgz", - "integrity": "sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true }, "uc.micro": { @@ -27963,9 +28702,9 @@ "dev": true }, "uglify-js": { - "version": "3.16.2", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.2.tgz", - "integrity": "sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==", + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.0.tgz", + "integrity": "sha512-aTeNPVmgIMPpm1cxXr2Q/nEbvkmV8yq66F3om7X3P/cvOXQ0TMQ64Wk63iyT1gPlmdmGzjGpyLh1f3y8MZWXGg==", "dev": true, "optional": true }, @@ -28032,18 +28771,18 @@ } }, "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "dev": true, "requires": { - "unique-slug": "^2.0.0" + "unique-slug": "^3.0.0" } }, "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -28106,9 +28845,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -28165,12 +28904,12 @@ } }, "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", "dev": true, "requires": { - "builtins": "^1.0.3" + "builtins": "^5.0.0" } }, "vfile": { @@ -28218,9 +28957,9 @@ } }, "vsce": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.9.2.tgz", - "integrity": "sha512-xyLqL4U82BilUX1t6Ym2opQEa2tLGWYjbgB7+ETeNVXlIJz5sWBJjQJSYJVFOKJSpiOtQclolu88cj7oY6vvPQ==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.11.0.tgz", + "integrity": "sha512-pr9Y0va/HCer0tTifeqaUrK24JJSpRd6oLeF/PY6FtrY41e+lwxiAq6jfMXx4ShAZglYg2rFKoKROwa7E7SEqQ==", "dev": true, "requires": { "azure-devops-node-api": "^11.0.1", @@ -28321,15 +29060,15 @@ "dev": true }, "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -28337,11 +29076,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -28354,7 +29093,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { @@ -28365,9 +29104,9 @@ "dev": true }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-import-assertions": { @@ -28376,22 +29115,6 @@ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "dev": true, "requires": {} - }, - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true } } }, @@ -28432,14 +29155,13 @@ "dev": true }, "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "which": { @@ -28574,15 +29296,13 @@ "dev": true }, "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "requires": { "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" + "signal-exit": "^3.0.7" } }, "write-json-file": { @@ -28604,6 +29324,18 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } } } }, @@ -28795,12 +29527,64 @@ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "flat": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.1.tgz", + "integrity": "sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA==", + "dev": true, + "requires": { + "is-buffer": "~2.0.3" + } + }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", "dev": true }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true + }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", @@ -28886,6 +29670,12 @@ "requires": { "buffer-crc32": "~0.2.3" } + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index c3df9b061..ff0b990ad 100644 --- a/package.json +++ b/package.json @@ -73,9 +73,9 @@ "rimraf": "^2.6.2", "rollup": "^2.70.1", "sass": "^1.32.4", - "ts-loader": "^7.0.5", - "typedoc": "^0.21.9", - "typescript": "4.3", + "ts-loader": "^9.3.1", + "typedoc": "^0.21.10", + "typescript": "4.4", "unified": "^7.0.2", "vsce": "^2.9.2", "webpack": "^5.52.0", diff --git a/packages/chart-recommender/package-lock.json b/packages/chart-recommender/package-lock.json index 8bfca7b16..905c79c84 100644 --- a/packages/chart-recommender/package-lock.json +++ b/packages/chart-recommender/package-lock.json @@ -9,7 +9,7 @@ "version": "3.2.0", "license": "MIT", "devDependencies": { - "vega": "5.20" + "vega": "5.22.1" } }, "node_modules/@types/estree": { @@ -19,233 +19,265 @@ "dev": true }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, "node_modules/node-fetch": { @@ -268,29 +300,12 @@ } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", "dev": true }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -303,18 +318,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -329,6 +332,12 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -336,37 +345,37 @@ "dev": true }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -377,12 +386,12 @@ "dev": true }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -399,95 +408,86 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", "dev": true }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dev": true, "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -496,38 +496,38 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -544,29 +544,23 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -583,29 +577,29 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -632,77 +626,69 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dev": true, "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==", "dev": true }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -718,12 +704,12 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -766,208 +752,186 @@ "dev": true }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "dev": true }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "dev": true }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "dev": true }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", "dev": true }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "dev": true }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "dev": true }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -977,23 +941,12 @@ "whatwg-url": "^5.0.0" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", "dev": true }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -1006,12 +959,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -1019,6 +966,14 @@ "dev": true, "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "tr46": { @@ -1028,37 +983,37 @@ "dev": true }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1069,12 +1024,12 @@ "dev": true }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1091,97 +1046,86 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", "dev": true }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dev": true, "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1190,38 +1134,38 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1236,33 +1180,25 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1279,29 +1215,29 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1324,80 +1260,72 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dev": true, "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==", "dev": true }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1413,12 +1341,12 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/chart-recommender/package.json b/packages/chart-recommender/package.json index 8ea02da29..5b79231a1 100644 --- a/packages/chart-recommender/package.json +++ b/packages/chart-recommender/package.json @@ -16,7 +16,7 @@ "@msrvida/sanddance-specs": "^1" }, "devDependencies": { - "vega": "5.20" + "vega": "5.22.1" }, "scripts": { "eslint": "eslint -c ../../.eslintrc.json --fix ./src/**/*.ts*", diff --git a/packages/chart-types/package-lock.json b/packages/chart-types/package-lock.json index 12a6adc27..8f652ec14 100644 --- a/packages/chart-types/package-lock.json +++ b/packages/chart-types/package-lock.json @@ -9,14 +9,35 @@ "version": "1.0.4", "license": "MIT", "dependencies": { - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, + "node_modules/vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" + }, + "node_modules/vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "dependencies": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, @@ -27,11 +48,32 @@ } }, "dependencies": { + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, + "vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" + }, + "vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "requires": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" + } + }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, diff --git a/packages/chart-types/package.json b/packages/chart-types/package.json index 1c56817c0..2d1bad42c 100644 --- a/packages/chart-types/package.json +++ b/packages/chart-types/package.json @@ -21,6 +21,6 @@ "author": "", "license": "MIT", "dependencies": { - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" } } diff --git a/packages/fluentui-react-cdn-typings/package-lock.json b/packages/fluentui-react-cdn-typings/package-lock.json index 784073a83..96998a8bb 100644 --- a/packages/fluentui-react-cdn-typings/package-lock.json +++ b/packages/fluentui-react-cdn-typings/package-lock.json @@ -16,43 +16,43 @@ } }, "node_modules/@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "dependencies": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "node_modules/@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -61,39 +61,39 @@ } }, "node_modules/@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", "dependencies": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" }, @@ -105,15 +105,15 @@ } }, "node_modules/@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", "dependencies": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -122,13 +122,13 @@ } }, "node_modules/@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "dependencies": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -149,11 +149,11 @@ } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -162,34 +162,34 @@ } }, "node_modules/@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -198,13 +198,13 @@ } }, "node_modules/@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "dependencies": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -213,9 +213,9 @@ } }, "node_modules/@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -224,9 +224,9 @@ "peer": true }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "peer": true, "dependencies": { "@types/prop-types": "*", @@ -327,105 +327,105 @@ }, "dependencies": { "@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "requires": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", "requires": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", "requires": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "requires": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, @@ -438,61 +438,61 @@ } }, "@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "requires": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "@types/prop-types": { "version": "15.7.5", @@ -501,9 +501,9 @@ "peer": true }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "peer": true, "requires": { "@types/prop-types": "*", diff --git a/packages/powerbi/package-lock.json b/packages/powerbi/package-lock.json index 304c6a28e..daf83017e 100644 --- a/packages/powerbi/package-lock.json +++ b/packages/powerbi/package-lock.json @@ -16,7 +16,7 @@ "react": ">=16.8.0 <18.0.0", "react-dom": ">=16.8.0 <18.0.0", "regenerator-runtime": "^0.13.3", - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { "@types/react": ">=16.8.0 <18.0.0", @@ -124,9 +124,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -135,9 +135,9 @@ } }, "node_modules/@babel/runtime-corejs2": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.18.6.tgz", - "integrity": "sha512-bTfcOSG6AHGVCd37zqoBax2e6r4Gy+q3sW2BgLo3h63NdU30C2AKXW0swyQsX/Ik+Zd6eVKQ9TTBKJ9tZQgWig==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.19.0.tgz", + "integrity": "sha512-lCMc3VAOo0GQ7Iqv8c9YaAd8GCC7GtlI7F7ocFaIppIaP0Oss9zsh5Gw36bF9LgDzQWdt06OcZzvZdzMtGdnGA==", "dependencies": { "core-js": "^2.6.12", "regenerator-runtime": "^0.13.4" @@ -154,43 +154,43 @@ "hasInstallScript": true }, "node_modules/@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "dependencies": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "node_modules/@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", - "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", + "dependencies": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -199,39 +199,39 @@ } }, "node_modules/@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", - "dependencies": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", + "dependencies": { + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" }, @@ -243,15 +243,15 @@ } }, "node_modules/@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", - "dependencies": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", + "dependencies": { + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -260,13 +260,13 @@ } }, "node_modules/@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "dependencies": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -287,11 +287,11 @@ } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -300,34 +300,34 @@ } }, "node_modules/@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", - "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", + "dependencies": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -336,13 +336,13 @@ } }, "node_modules/@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "dependencies": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -399,9 +399,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -415,9 +415,9 @@ "dev": true }, "node_modules/@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "node_modules/@polka/url": { "version": "1.0.0-next.21", @@ -464,9 +464,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "dependencies": { "@types/estree": "*", @@ -484,10 +484,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "node_modules/@types/express": { "version": "4.17.13", @@ -502,9 +501,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "version": "4.17.30", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", + "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", "dev": true, "dependencies": { "@types/node": "*", @@ -528,15 +527,15 @@ "dev": true }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "node_modules/@types/node": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.5.tgz", - "integrity": "sha512-En7tneq+j0qAiVwysBD79y86MT3ModuoIJbe7JXp+sb5UAjInSShmK3nXXMioBzfF7rXC12hv12d4IyCVwN4dA==", + "version": "18.7.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.15.tgz", + "integrity": "sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==", "dev": true }, "node_modules/@types/prop-types": { @@ -557,9 +556,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -595,12 +594,12 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dev": true, "dependencies": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, @@ -794,9 +793,9 @@ } }, "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -1102,10 +1101,22 @@ "node": ">= 0.8" } }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -1216,9 +1227,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz", - "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "funding": [ { @@ -1231,10 +1242,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001366", - "electron-to-chromium": "^1.4.188", + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.4" + "update-browserslist-db": "^1.0.5" }, "bin": { "browserslist": "cli.js" @@ -1317,9 +1328,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001367", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", - "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", + "version": "1.0.30001390", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz", + "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==", "dev": true, "funding": [ { @@ -1679,166 +1690,225 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dsv/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } }, "node_modules/debug": { "version": "2.6.9", @@ -1887,9 +1957,12 @@ } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dependencies": { + "robust-predicates": "^3.0.0" + } }, "node_modules/depd": { "version": "2.0.0", @@ -1995,9 +2068,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.191", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.191.tgz", - "integrity": "sha512-MeEaiuoSFh4G+rrN+Ilm1KJr8pTTZloeLurcZ+PRcthvdK1gWThje+E6baL7/7LoNctrzCncavAG/j/vpES9jg==", + "version": "1.4.243", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.243.tgz", + "integrity": "sha512-BgLD2gBX43OSXwlT01oYRRD5NIB4n3okTRxkzEAC6G0SZG4TTlyrWMjbOo0fajCwqwpRtMHXQNMjtRN6qpNtfw==", "dev": true }, "node_modules/elliptic": { @@ -2066,16 +2139,16 @@ } }, "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", @@ -2087,9 +2160,9 @@ "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", @@ -2486,7 +2559,8 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -2626,6 +2700,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -2855,11 +2930,11 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -2947,9 +3022,12 @@ } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" + } }, "node_modules/ipaddr.js": { "version": "2.0.1", @@ -3029,9 +3107,10 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, "dependencies": { "has": "^1.0.3" }, @@ -3390,9 +3469,9 @@ } }, "node_modules/jszip": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", - "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, "dependencies": { "lie": "~3.3.0", @@ -3949,14 +4028,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -4117,7 +4196,8 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", @@ -4170,9 +4250,9 @@ } }, "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "dev": true, "funding": [ { @@ -4344,19 +4424,6 @@ "node": ">=12.0.0" } }, - "node_modules/powerbi-visuals-tools/node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/powerbi-visuals-utils-dataviewutils": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-2.4.1.tgz", @@ -4579,6 +4646,18 @@ "node": ">= 0.8" } }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -4671,6 +4750,7 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "dependencies": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -4717,6 +4797,11 @@ "inherits": "^2.0.1" } }, + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" + }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -4797,9 +4882,9 @@ "dev": true }, "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "dependencies": { "node-forge": "^1" @@ -5248,6 +5333,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -5265,9 +5351,9 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -5283,16 +5369,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "engines": { "node": ">= 10.13.0" @@ -5615,11 +5701,10 @@ } }, "node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", "dev": true, - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -5662,9 +5747,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", "dev": true, "funding": [ { @@ -5760,36 +5845,36 @@ } }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -5799,11 +5884,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -5819,92 +5904,79 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -5913,35 +5985,35 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -5957,26 +6029,21 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -5992,27 +6059,27 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", + "dependencies": { + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -6026,11 +6093,6 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-selections/node_modules/@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" - }, "node_modules/vega-selections/node_modules/d3-array": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.1.tgz", @@ -6042,70 +6104,63 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -6120,11 +6175,11 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -6175,9 +6230,9 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -6185,11 +6240,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -6202,7 +6257,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -6346,9 +6401,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -6484,6 +6539,12 @@ "source-map": "~0.6.1" } }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, "node_modules/webpack/node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", @@ -6698,17 +6759,17 @@ } }, "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs2": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.18.6.tgz", - "integrity": "sha512-bTfcOSG6AHGVCd37zqoBax2e6r4Gy+q3sW2BgLo3h63NdU30C2AKXW0swyQsX/Ik+Zd6eVKQ9TTBKJ9tZQgWig==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.19.0.tgz", + "integrity": "sha512-lCMc3VAOo0GQ7Iqv8c9YaAd8GCC7GtlI7F7ocFaIppIaP0Oss9zsh5Gw36bF9LgDzQWdt06OcZzvZdzMtGdnGA==", "requires": { "core-js": "^2.6.12", "regenerator-runtime": "^0.13.4" @@ -6722,105 +6783,105 @@ } }, "@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "requires": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", - "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", + "requires": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", - "requires": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", + "requires": { + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", - "requires": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", + "requires": { + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "requires": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, @@ -6833,54 +6894,54 @@ } }, "@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", - "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", + "requires": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "requires": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, @@ -6924,9 +6985,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -6940,9 +7001,9 @@ "dev": true }, "@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "@polka/url": { "version": "1.0.0-next.21", @@ -6989,9 +7050,9 @@ } }, "@types/eslint": { - "version": "8.4.5", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", - "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "requires": { "@types/estree": "*", @@ -7009,10 +7070,9 @@ } }, "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "@types/express": { "version": "4.17.13", @@ -7027,9 +7087,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.29", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", - "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "version": "4.17.30", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", + "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", "dev": true, "requires": { "@types/node": "*", @@ -7053,15 +7113,15 @@ "dev": true }, "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "@types/node": { - "version": "18.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.5.tgz", - "integrity": "sha512-En7tneq+j0qAiVwysBD79y86MT3ModuoIJbe7JXp+sb5UAjInSShmK3nXXMioBzfF7rXC12hv12d4IyCVwN4dA==", + "version": "18.7.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.15.tgz", + "integrity": "sha512-XnjpaI8Bgc3eBag2Aw4t2Uj/49lLBSStHWfqKvIuXD7FIrZyMLWp8KuAFHAqxMZYTF9l08N1ctUn9YNybZJVmQ==", "dev": true }, "@types/prop-types": { @@ -7082,9 +7142,9 @@ "dev": true }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -7120,12 +7180,12 @@ } }, "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dev": true, "requires": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, @@ -7316,9 +7376,9 @@ } }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-import-assertions": { @@ -7543,13 +7603,22 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } } } }, "bonjour-service": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", - "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -7657,15 +7726,15 @@ } }, "browserslist": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz", - "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001366", - "electron-to-chromium": "^1.4.188", + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.4" + "update-browserslist-db": "^1.0.5" } }, "buffer": { @@ -7719,9 +7788,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001367", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", - "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", + "version": "1.0.30001390", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001390.tgz", + "integrity": "sha512-sS4CaUM+/+vqQUlCvCJ2WtDlV81aWtHhqeEVkLokVJJa3ViN4zDxAGfq9R8i1m90uGHxo99cy10Od+lvn3hf0g==", "dev": true }, "chalk": { @@ -8007,152 +8076,151 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "dependencies": { "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" } } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "dependencies": { "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" } } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" }, "debug": { "version": "2.6.9", @@ -8189,9 +8257,12 @@ } }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "requires": { + "robust-predicates": "^3.0.0" + } }, "depd": { "version": "2.0.0", @@ -8280,9 +8351,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.191", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.191.tgz", - "integrity": "sha512-MeEaiuoSFh4G+rrN+Ilm1KJr8pTTZloeLurcZ+PRcthvdK1gWThje+E6baL7/7LoNctrzCncavAG/j/vpES9jg==", + "version": "1.4.243", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.243.tgz", + "integrity": "sha512-BgLD2gBX43OSXwlT01oYRRD5NIB4n3okTRxkzEAC6G0SZG4TTlyrWMjbOo0fajCwqwpRtMHXQNMjtRN6qpNtfw==", "dev": true }, "elliptic": { @@ -8341,16 +8412,16 @@ } }, "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", @@ -8362,9 +8433,9 @@ "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", @@ -8673,7 +8744,8 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "function.prototype.name": { "version": "1.1.5", @@ -8774,6 +8846,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -8958,11 +9031,11 @@ "dev": true }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "icss-utils": { @@ -9019,9 +9092,9 @@ } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, "ipaddr.js": { "version": "2.0.1", @@ -9074,9 +9147,10 @@ "dev": true }, "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, "requires": { "has": "^1.0.3" } @@ -9321,9 +9395,9 @@ } }, "jszip": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", - "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, "requires": { "lie": "~3.3.0", @@ -9752,14 +9826,14 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -9881,7 +9955,8 @@ "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true }, "path-to-regexp": { "version": "0.1.7", @@ -9922,9 +9997,9 @@ "optional": true }, "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -10041,7 +10116,7 @@ "timers-browserify": "^2.0.12", "ts-loader": "^9.2.5", "tty-browserify": "0.0.1", - "typescript": "^4.4.3", + "typescript": "4.4", "url": "^0.11.0", "util": "^0.12.3", "uuid": "7.0.2", @@ -10049,14 +10124,6 @@ "webpack": "^5.51.1", "webpack-bundle-analyzer": "4.4.2", "webpack-dev-server": "^4.8.1" - }, - "dependencies": { - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "dev": true - } } }, "powerbi-visuals-utils-dataviewutils": { @@ -10237,6 +10304,15 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } } } }, @@ -10311,6 +10387,7 @@ "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, "requires": { "is-core-module": "^2.9.0", "path-parse": "^1.0.7", @@ -10342,6 +10419,11 @@ "inherits": "^2.0.1" } }, + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" + }, "rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -10399,9 +10481,9 @@ "dev": true }, "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "requires": { "node-forge": "^1" @@ -10774,7 +10856,8 @@ "supports-preserve-symlinks-flag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "tapable": { "version": "2.2.1", @@ -10783,9 +10866,9 @@ "dev": true }, "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -10803,16 +10886,16 @@ } }, "terser-webpack-plugin": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", - "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.7", + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "terser": "^5.7.2" + "terser": "^5.14.1" } }, "thunky": { @@ -11051,11 +11134,10 @@ } }, "typescript": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true, - "peer": true + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "dev": true }, "unbox-primitive": { "version": "1.0.2", @@ -11082,9 +11164,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", - "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -11157,36 +11239,36 @@ "dev": true }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -11196,11 +11278,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -11216,94 +11298,79 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -11312,35 +11379,35 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -11354,30 +11421,23 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -11393,27 +11453,27 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", + "requires": { + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -11427,11 +11487,6 @@ "vega-util": "^1.16.0" }, "dependencies": { - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" - }, "d3-array": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.1.1.tgz", @@ -11439,73 +11494,66 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -11520,11 +11568,11 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -11572,9 +11620,9 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -11582,11 +11630,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -11599,10 +11647,16 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, "webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", @@ -11701,9 +11755,9 @@ } }, "webpack-dev-server": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", - "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", diff --git a/packages/powerbi/package.json b/packages/powerbi/package.json index 52274703a..2641b3755 100644 --- a/packages/powerbi/package.json +++ b/packages/powerbi/package.json @@ -25,7 +25,7 @@ "react": ">=16.8.0 <18.0.0", "react-dom": ">=16.8.0 <18.0.0", "regenerator-runtime": "^0.13.3", - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { "@msrvida/fluentui-react-cdn-typings": "^2", @@ -34,5 +34,8 @@ "powerbi-visuals-tools": "^4", "tslint": "^5.20.1", "tslint-microsoft-contrib": "^6.2.0" + }, + "overrides": { + "typescript": "4.4" } } diff --git a/packages/powerbi/pbiviz.json b/packages/powerbi/pbiviz.json index e43d21c37..c7986c6ed 100644 --- a/packages/powerbi/pbiviz.json +++ b/packages/powerbi/pbiviz.json @@ -5,7 +5,7 @@ "guid": "SandDance2019beta4", "prod-guid": "SandDance201929976D117A654D0BAB8E96507442D80B", "visualClassName": "Visual", - "version": "4.0.8", + "version": "4.0.9", "description": "Visually explore, understand, and present your data.", "supportUrl": "https://github.com/Microsoft/SandDance/issues", "gitHubUrl": "https://github.com/microsoft/SandDance" diff --git a/packages/powerbi/src/app.ts b/packages/powerbi/src/app.ts index 673593718..36e2a4fca 100644 --- a/packages/powerbi/src/app.ts +++ b/packages/powerbi/src/app.ts @@ -61,7 +61,7 @@ export interface State { export class App extends React.Component { private viewerOptions: Partial; public explorer: Explorer_Class; - private cameraTimer: number; + private cameraTimer: NodeJS.Timeout; public lastCamera: SandDance.types.Camera; public lastCameraStable: boolean; @@ -88,7 +88,7 @@ export class App extends React.Component { return { colors: getColorSettingsFromThemePalette(themePalettes[darkTheme ? 'dark-theme' : '']), onCubeClick: (e, cube) => { - const { button } = e as unknown as PointerEvent; + const { button } = e; if (button === RIGHT_MOUSE_BUTTON) { const row = this.explorer.state.dataContent.data[cube.ordinal]; const selectionId = row[SandDance.constants.FieldNames.PowerBISelectionId]; @@ -147,7 +147,7 @@ export class App extends React.Component { this.lastCameraStable = stable; this.lastCamera = viewer.getCamera(transitionFinal); const { transitionDurations } = viewer.setup; - this.cameraTimer = setTimeout(() => this.listenToCamera(), transitionDurations.position + transitionDurations.stagger + cameraSettle) as unknown as number; + this.cameraTimer = setTimeout(() => this.listenToCamera(), transitionDurations.position + transitionDurations.stagger + cameraSettle); } private endCameraListener() { diff --git a/packages/powerbi/src/version.ts b/packages/powerbi/src/version.ts index fe0290bef..7e4e99c35 100644 --- a/packages/powerbi/src/version.ts +++ b/packages/powerbi/src/version.ts @@ -1,4 +1,4 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. -export const version: string = '4.0.8'; +export const version: string = '4.0.9'; diff --git a/packages/powerbi/src/visual.ts b/packages/powerbi/src/visual.ts index 7eb27eaa6..97c4e39ce 100644 --- a/packages/powerbi/src/visual.ts +++ b/packages/powerbi/src/visual.ts @@ -89,102 +89,104 @@ export class Visual implements IVisual { this.persistSelectionChange = true; if (document) { - options.element.style.position = 'relative'; - this.viewElement = util.addDiv(options.element, 'sanddance-powerbi'); - this.errorElement = util.addDiv(options.element, 'sanddance-error'); - this.errorElement.style.position = 'absolute'; - - const props: Props = { - renderOptions: this.sanddanceRenderOptions, - mounted: (app: App) => { - this.app = app; - }, - onSetupSave: (setup) => { - // console.log('onCameraChange', setup); - this.ignorePersistUpdate = true; - this.persist({ setup }); - }, - onContextMenu: (e: MouseEvent | PointerEvent, selectionId?: powerbiVisualsApi.extensibility.ISelectionId) => { - const position: powerbiVisualsApi.extensibility.IPoint = { - x: e.clientX, - y: e.clientY, - }; - this.selectionManager.showContextMenu(selectionId || {}, position); - }, - onViewChange: viewChangeOptions => { - // console.log('onViewChange', this.renderingOptions, viewChangeOptions, this.persistViewChange); - - if (this.afterView.length) { - this.afterView.forEach(fn => fn()); - this.afterView.length = 0; - } + this.initialize(options); + } + } - if (this.renderingOptions) { - this.events.renderingFinished(this.renderingOptions); - } + initialize(options: VisualConstructorOptions) { + options.element.style.position = 'relative'; + this.viewElement = util.addDiv(options.element, 'sanddance-powerbi'); + this.errorElement = util.addDiv(options.element, 'sanddance-error'); + this.errorElement.style.position = 'absolute'; - if (this.persistViewChange) { - this.persist(viewChangeOptions); - } - this.persistViewChange = true; - }, - onSnapshotsChanged: snapshots => { - this.snapshots = snapshots; - this.persist({}); - }, - onError: (e: any) => { - if (this.renderingOptions) { - this.events.renderingFailed(this.renderingOptions); - this.renderingOptions = null; - } - }, - onDataFilter: (searchFilter, filteredData) => { - // console.log('onDataFilter', filteredData); + const props: Props = { + renderOptions: this.sanddanceRenderOptions, + mounted: (app: App) => { + this.app = app; + }, + onSetupSave: (setup) => { + // console.log('onCameraChange', setup); + this.ignorePersistUpdate = true; + this.persist({ setup }); + }, + onContextMenu: (e: MouseEvent | PointerEvent, selectionId?: powerbiVisualsApi.extensibility.ISelectionId) => { + const position: powerbiVisualsApi.extensibility.IPoint = { + x: e.clientX, + y: e.clientY, + }; + this.selectionManager.showContextMenu(selectionId || {}, position); + }, + onViewChange: viewChangeOptions => { + // console.log('onViewChange', this.renderingOptions, viewChangeOptions, this.persistViewChange); + if (this.afterView.length) { + this.afterView.forEach(fn => fn()); + this.afterView.length = 0; + } - this.persist({}); - if (filteredData) { - const result = convertFilter(searchFilter, this.columns, filteredData); - this.applySelection(result.selectedIds); - this.applyFilters(result.filters); - this.filters = { sd: searchFilter, pbi: result.filters }; - } else { - this.filters = null; - this.clearFilter(); - this.clearSelection(); - } - }, - onSelectionChanged: (search, activeIndex, selectedData) => { - // console.log('onSelectionChanged', search, selectedData, this.persistSelectionChange); - this.ignoreSelectionUpdate = true; + if (this.renderingOptions) { + this.events.renderingFinished(this.renderingOptions); + } - this.search = search; + if (this.persistViewChange) { + this.persist(viewChangeOptions); + } + this.persistViewChange = true; + }, + onSnapshotsChanged: snapshots => { + this.snapshots = snapshots; + this.persist({}); + }, + onError: (e: any) => { + if (this.renderingOptions) { + this.events.renderingFailed(this.renderingOptions); + this.renderingOptions = null; + } + }, + onDataFilter: (searchFilter, filteredData) => { + // console.log('onDataFilter', filteredData); + this.persist({}); + if (filteredData) { + const result = convertFilter(searchFilter, this.columns, filteredData); + this.applySelection(result.selectedIds); + this.applyFilters(result.filters); + this.filters = { sd: searchFilter, pbi: result.filters }; + } else { + this.filters = null; + this.clearFilter(); + this.clearSelection(); + } + }, + onSelectionChanged: (search, activeIndex, selectedData) => { + // console.log('onSelectionChanged', search, selectedData, this.persistSelectionChange); + this.ignoreSelectionUpdate = true; - if (this.persistSelectionChange) { - this.persist({}); - } - this.persistSelectionChange = true; + this.search = search; + + if (this.persistSelectionChange) { + this.persist({}); + } + this.persistSelectionChange = true; - if (selectedData?.length) { - const result = convertFilter(search, this.columns, selectedData); - this.applySelection(result.selectedIds); - this.applyFilters(this.filters ? this.filters.pbi.concat(result.filters) : result.filters); + if (selectedData?.length) { + const result = convertFilter(search, this.columns, selectedData); + this.applySelection(result.selectedIds); + this.applyFilters(this.filters ? this.filters.pbi.concat(result.filters) : result.filters); + } else { + this.clearSelection(); + // revert to filtered if it exists + if (this.filters) { + this.applyFilters(this.filters.pbi); } else { - this.clearSelection(); - // revert to filtered if it exists - if (this.filters) { - this.applyFilters(this.filters.pbi); - } else { - this.clearFilter(); - } + this.clearFilter(); } - }, - }; - render(createElement(App, props), this.viewElement); - } + } + }, + }; + render(createElement(App, props), this.viewElement); } - private persist(options: ViewChangeOptions) { + persist(options: ViewChangeOptions) { if (this.renderingOptions.viewMode !== powerbiVisualsApi.ViewMode.View) { const { explorer } = this.app; if (!explorer.viewer) return; @@ -304,90 +306,57 @@ export class Visual implements IVisual { this.prevSettings = util.clone(this.settings); - let setup: SandDance.types.Setup; - if (sandDanceConfig.setupJSON) { - try { - setup = JSON.parse(sandDanceConfig.setupJSON); - } catch (e) { - // continue regardless of error - } + const setup: SandDance.types.Setup = this.tryGetSetup(sandDanceConfig); + + if (different) { + this.showDifferent(data, sandDanceConfig, setup); + } else { + this.showSame(sandDanceConfig, setup); } + } + + showSame(sandDanceConfig: SandDanceConfig, setup: SandDance.types.Setup) { + // console.log('Visual update - not different'); const renderingFinished = () => { this.events.renderingFinished(this.renderingOptions); }; - if (!different) { - // console.log('Visual update - not different'); - - if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.Edit) { - this.syncSelection(sandDanceConfig.selectionQueryJSON, false); - } - - if (this.ignoreSelectionUpdate) { - this.ignoreSelectionUpdate = false; - return renderingFinished(); - } + if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.Edit) { + this.syncSelection(sandDanceConfig.selectionQueryJSON, false); + } - if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.View) { - this.syncSelection(sandDanceConfig.selectionQueryJSON, false); - } + if (this.ignoreSelectionUpdate) { + this.ignoreSelectionUpdate = false; + return renderingFinished(); + } - let setInsight = false; - if (sandDanceConfig.insightJSON) { - try { - const insight = JSON.parse(sandDanceConfig.insightJSON) as SandDance.specs.Insight; - const compA = util.clone(insight); - cleanInsight(compA, false); - const compB = util.clone(this.app.explorer.viewer.getInsight()); - cleanInsight(compB, false); - if (!util.deepCompare(compA, compB)) { - setInsight = true; - this.app.explorer.setInsight({ label: language.historyActionUpdate }, null, insight, true, setup); - } - } catch (e) { - // continue regardless of error - } - } + if (this.renderingOptions.viewMode === powerbiVisualsApi.ViewMode.View) { + this.syncSelection(sandDanceConfig.selectionQueryJSON, false); + } - if (!setInsight) { - // console.log('same insight') - const { camera: cameraOrHold, renderer } = setup; - let camera: SandDance.types.Camera; - let holdCamera = this.app.explorer.state.holdCamera; - if (cameraOrHold === 'hold') { - holdCamera = true; - } else { - camera = cameraOrHold; - } - this.app.explorer.setState({ camera, holdCamera, renderer }); - return renderingFinished(); + const setInsight = this.trySetInsight(sandDanceConfig, setup); + if (!setInsight) { + // console.log('same insight') + const { camera: cameraOrHold, renderer } = setup; + let camera: SandDance.types.Camera; + let holdCamera = this.app.explorer.state.holdCamera; + if (cameraOrHold === 'hold') { + holdCamera = true; + } else { + camera = cameraOrHold; } - return; + this.app.explorer.setState({ camera, holdCamera, renderer }); + return renderingFinished(); } + } + showDifferent(data: object[], sandDanceConfig: SandDanceConfig, setup: SandDance.types.Setup) { // console.log('Visual update - *is* different'); - if (sandDanceConfig.snapshotsJSON) { - try { - const snapshots = JSON.parse(sandDanceConfig.snapshotsJSON); - - if (this.snapshots === undefined) { - this.snapshots = snapshots; - } - } catch (e) { - // continue regardless of error - } - } + this.tryUpdateSnapshots(sandDanceConfig); - let tooltipExclusions: string[] = []; - if (sandDanceConfig.tooltipExclusionsJSON) { - try { - tooltipExclusions = JSON.parse(sandDanceConfig.tooltipExclusionsJSON); - } catch (e) { - // continue regardless of error - } - } + const tooltipExclusions: string[] = this.tryGetTooltipExclusions(sandDanceConfig); this.persistViewChange = false; this.app.load( @@ -406,18 +375,9 @@ export class Visual implements IVisual { this.syncSelection(sandDanceConfig.selectionQueryJSON, true); this.syncBackgroundImage(sandDanceConfig.imageHolderJSON); - let insight: Partial; + const insight: Partial = this.tryGetInsight(sandDanceConfig); - if (sandDanceConfig.insightJSON) { - try { - insight = JSON.parse(sandDanceConfig.insightJSON); - delete insight.size; - } catch (e) { - // continue regardless of error - } - } - - if (this.filters) { + if (this.filters && insight) { insight.filter = this.filters.sd; } @@ -429,6 +389,75 @@ export class Visual implements IVisual { ); } + tryGetInsight(sandDanceConfig: SandDanceConfig) { + let insight: Partial; + if (sandDanceConfig.insightJSON) { + try { + insight = JSON.parse(sandDanceConfig.insightJSON); + delete insight.size; + } catch (e) { + // continue regardless of error + } + } + return insight; + } + + tryGetSetup(sandDanceConfig: SandDanceConfig) { + let setup: SandDance.types.Setup; + if (sandDanceConfig.setupJSON) { + try { + setup = JSON.parse(sandDanceConfig.setupJSON); + } catch (e) { + // continue regardless of error + } + } + return setup; + } + + tryGetTooltipExclusions(sandDanceConfig: SandDanceConfig) { + let tooltipExclusions: string[] = []; + if (sandDanceConfig.tooltipExclusionsJSON) { + try { + tooltipExclusions = JSON.parse(sandDanceConfig.tooltipExclusionsJSON); + } catch (e) { + // continue regardless of error + } + } + return tooltipExclusions; + } + + trySetInsight(sandDanceConfig: SandDanceConfig, setup: SandDance.types.Setup) { + if (sandDanceConfig.insightJSON) { + try { + const insight: SandDance.specs.Insight = JSON.parse(sandDanceConfig.insightJSON); + const compA = util.clone(insight); + cleanInsight(compA, false); + const compB = util.clone(this.app.explorer.viewer.getInsight()); + cleanInsight(compB, false); + if (!util.deepCompare(compA, compB)) { + this.app.explorer.setInsight({ label: language.historyActionUpdate }, null, insight, true, setup); + return true; + } + } catch (e) { + // continue regardless of error + } + } + return false; + } + + tryUpdateSnapshots(sandDanceConfig: SandDanceConfig) { + if (sandDanceConfig.snapshotsJSON) { + try { + const snapshots = JSON.parse(sandDanceConfig.snapshotsJSON); + if (this.snapshots === undefined) { + this.snapshots = snapshots; + } + } catch (e) { + // continue regardless of error + } + } + } + syncBackgroundImage(imageHolderJSON: string) { if (imageHolderJSON) { try { diff --git a/packages/sanddance-app/package-lock.json b/packages/sanddance-app/package-lock.json index a0b52226f..613197a65 100644 --- a/packages/sanddance-app/package-lock.json +++ b/packages/sanddance-app/package-lock.json @@ -9,52 +9,52 @@ "version": "4.0.0", "dependencies": { "@fluentui/react": "^8", - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { "@types/react": ">=16.8.0 <18.0.0", "@types/react-dom": ">=16.8.0 <18.0.0", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" } }, "node_modules/@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "dependencies": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "node_modules/@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", - "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", + "dependencies": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -63,39 +63,39 @@ } }, "node_modules/@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "node_modules/@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", - "dependencies": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", + "dependencies": { + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" }, @@ -107,15 +107,15 @@ } }, "node_modules/@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", - "dependencies": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", + "dependencies": { + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -124,13 +124,13 @@ } }, "node_modules/@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "dependencies": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -151,11 +151,11 @@ } }, "node_modules/@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "dependencies": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -164,34 +164,34 @@ } }, "node_modules/@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", - "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", + "dependencies": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "node_modules/@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "dependencies": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" }, "peerDependencies": { @@ -200,13 +200,13 @@ } }, "node_modules/@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "dependencies": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" }, "peerDependencies": { @@ -215,9 +215,9 @@ } }, "node_modules/@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "node_modules/@types/estree": { "version": "0.0.50", @@ -230,9 +230,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -253,9 +253,12 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } }, "node_modules/csstype": { "version": "3.1.0", @@ -263,203 +266,235 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", - "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "dependencies": { + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" } }, "node_modules/js-tokens": { @@ -508,11 +543,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -540,21 +570,10 @@ "react": "17.0.2" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "node_modules/rw": { "version": "1.3.3", @@ -576,17 +595,6 @@ "object-assign": "^4.1.1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -600,6 +608,11 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -611,36 +624,36 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -650,11 +663,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -670,87 +683,79 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -759,35 +764,35 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -803,26 +808,21 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -838,27 +838,27 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", + "dependencies": { + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -883,70 +883,63 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -961,11 +954,11 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -999,105 +992,105 @@ }, "dependencies": { "@fluentui/date-time-utilities": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.1.tgz", - "integrity": "sha512-i8GXoIbPipug5cGZ4Dei0oXu7L4wia6DGMAzvabvSHwTjprbR5YjRrrr4UVtBr9gNx1v4Iv1yeD3XSc8DI9JDg==", + "version": "8.5.2", + "resolved": "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-8.5.2.tgz", + "integrity": "sha512-u540ACUdnC+Jms1DIHkho80eJmoCg/LtAzR4a/1Tum6PicxWv59UYp9Ba7qFbIw+mrjWnwX/2ZmBpqTy9Rgn7w==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/dom-utilities": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.1.tgz", - "integrity": "sha512-na1+hTRDg2xHSu3Vrr8ITrQpoFChOCSpqTYjLvdRD081p8o61hk9DeaXkUWr8E+2TZ06BXi2t0VyL4wfrYLU8Q==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-2.2.2.tgz", + "integrity": "sha512-puklLc6Jvg279OGagqkSfuHML6ckBhw3gJakdvIZHKeJiduh+34U4Finl3K24yBSXzG2WsN+LwLTd1Vcociy+g==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/font-icons-mdl2": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.3.tgz", - "integrity": "sha512-YKyCTVvV5qpSOS9EsulA+QYLyUEw7QhLzmcBWC4USu0WPhSy/cOfUUvemRl2JSsxErfuOM50OI80RKfuqNwsTA==", + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/@fluentui/font-icons-mdl2/-/font-icons-mdl2-8.4.13.tgz", + "integrity": "sha512-rXJpRKxHg68zCKTrcmouklGpE/laXlTQaLyBuft8EcPczZX3aupYPZda9sp+Kknolmd3Lvypn2D9Vf+McJDtwg==", "requires": { - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/foundation-legacy": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.10.tgz", - "integrity": "sha512-/ku+mSLTEIKf/HGavt9k+/njgAXGHXu4hoxRYRHbYr1O9hUe50cm5DctPQg+z/YDPNzsb1ltSmNqgWPvBOSW6A==", - "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.2.20", + "resolved": "https://registry.npmjs.org/@fluentui/foundation-legacy/-/foundation-legacy-8.2.20.tgz", + "integrity": "sha512-iyJSr5Y/yYt0x9yBLP+aIy5U9tiDlgbxJZo6enNwFo0zEuBeWg/2L2IgAUzAwJB2vb73oQBlQt8In602R0Vj8w==", + "requires": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/keyboard-key": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.1.tgz", - "integrity": "sha512-8WkNPh0tnzrrZYs19qN8Zavaebz9FHyTFXKTv0QJ55rZ7uQfAV7VHxS/74aUP4bqeRWJtzaOJKUxkjEAPcDbug==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.4.2.tgz", + "integrity": "sha512-6WdMrnFpY94uWefUGGRqO4WiS6R+Kso6/FR95SxXMuS6kfnjGJCHzywFGZcN5OU1fX067Zna4aPQ/nDwYMgBPw==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/merge-styles": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.2.tgz", - "integrity": "sha512-ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@fluentui/merge-styles/-/merge-styles-8.5.3.tgz", + "integrity": "sha512-bHWftN3zTp1bbBfmAEH8YK9UURWj2mffw7b7VaW2Og1qxwv3GMSza1cyv/d3EVqpMJ8AVwFv3mbi9p1ieMN9mw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/react": { - "version": "8.81.1", - "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.81.1.tgz", - "integrity": "sha512-iTdfjWMsMwdvc2ZRQBg/nBUhX0mmttjH0pbMZ8RgcMLuSDauQnDwMN3gEWRZ+fInUGcqTE1hzEdoLS75Dl3bAg==", - "requires": { - "@fluentui/date-time-utilities": "^8.5.1", - "@fluentui/font-icons-mdl2": "^8.4.3", - "@fluentui/foundation-legacy": "^8.2.10", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/react-focus": "^8.7.3", - "@fluentui/react-hooks": "^8.6.1", + "version": "8.94.2", + "resolved": "https://registry.npmjs.org/@fluentui/react/-/react-8.94.2.tgz", + "integrity": "sha512-G0fiTdq4vGCm+kSQh3hQ2szG/r2wXmRsD/iNq1ZoWSKoyKViP/yFmothhUgkarFbydnWbDzb+iYZQ5+8J8wgTA==", + "requires": { + "@fluentui/date-time-utilities": "^8.5.2", + "@fluentui/font-icons-mdl2": "^8.4.13", + "@fluentui/foundation-legacy": "^8.2.20", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/react-focus": "^8.8.5", + "@fluentui/react-hooks": "^8.6.11", "@fluentui/react-portal-compat-context": "^9.0.1", - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/react-focus": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.3.tgz", - "integrity": "sha512-d/AwXzcPMoiPpzbpkHpfTyDcvYvga2DWNYq1Rh+QJsAGzN34bimu5xSxE21mbeXyz+TYx7yglElGp7GlT33s3Q==", - "requires": { - "@fluentui/keyboard-key": "^0.4.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/style-utilities": "^8.7.2", - "@fluentui/utilities": "^8.9.0", + "version": "8.8.5", + "resolved": "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.8.5.tgz", + "integrity": "sha512-+BNjLHKpA0IqUToY9MMARGpYg3ngBmW+1KhJeVxCUnAESNMwnzJ6hx/3MOYUA/FPbYfBvs8QnpTZrrOd7sLG/A==", + "requires": { + "@fluentui/keyboard-key": "^0.4.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/style-utilities": "^8.7.12", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/react-hooks": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.1.tgz", - "integrity": "sha512-t9l+O+ZjTiGSuKQ9SxqRRo50C1h69jZFzb+s/vc0vBtvsIoYfR+Jj8qH3hxtkhv/iC+SCj1dgDCEJwGyH7pf3Q==", + "version": "8.6.11", + "resolved": "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.11.tgz", + "integrity": "sha512-qQAg/Hqchz0BGL1KJhg211uhhBDxF0bvMCdVKVoeeJNj4q3Cdvam87zHi7/W5gP8i6jgCILr7MrV3dH9umA/Sw==", "requires": { - "@fluentui/react-window-provider": "^2.2.1", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/react-window-provider": "^2.2.2", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, @@ -1110,61 +1103,61 @@ } }, "@fluentui/react-window-provider": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.1.tgz", - "integrity": "sha512-Y0j+lAYKeD/qswzFZWPkHmvtBlRS2WPJIkpyGvfBVZaCeq3DGKRppoOCOmED762bKOXzM/G/ZNEcBa7CY1gkYw==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-2.2.2.tgz", + "integrity": "sha512-/1uQ01HqGRpUOMozUy1FYmxp6blZZvtKN50rqxnQJr8O1bcpg8lJzhq064E8EjOXfdNh47zKSloP4ebbDI5vrw==", "requires": { - "@fluentui/set-version": "^8.2.1", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@fluentui/set-version": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.1.tgz", - "integrity": "sha512-SZMP2P7RSUuVHYWIBcnlxYruvchlnoqensCvoaGeiH0FisO7etwJdFwKNegV7WEA9uS5ZOK3qVmyvD71DxaSng==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@fluentui/set-version/-/set-version-8.2.2.tgz", + "integrity": "sha512-Vg20KZ0ufgWjxx6GFbqC5wiVxXZDUWgNT0r0By/Eyj4bUSb1jG6lmf5z1oY1dUX0YS6Cp5e6GnvbNdXg5E7orA==", "requires": { "tslib": "^2.1.0" } }, "@fluentui/style-utilities": { - "version": "8.7.2", - "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.2.tgz", - "integrity": "sha512-sDNsXUXdk4qAllADH46o0Fq1VOgWCDS+J/t3UFc6DA4a0R3J/M0o5COAh+S4/kLkJoKBQ+T+TqZJmA+Cj+hlCA==", - "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/theme": "^2.6.7", - "@fluentui/utilities": "^8.9.0", + "version": "8.7.12", + "resolved": "https://registry.npmjs.org/@fluentui/style-utilities/-/style-utilities-8.7.12.tgz", + "integrity": "sha512-Ayxyo5brZxNI3CK4la+esJ5yDUQFAD26+BqjbIZvXemKq6ZsZDb2875H//saSVHc+dRq8R6J80A1GGV0fJpIEA==", + "requires": { + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/theme": "^2.6.16", + "@fluentui/utilities": "^8.13.1", "@microsoft/load-themed-styles": "^1.10.26", "tslib": "^2.1.0" } }, "@fluentui/theme": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.7.tgz", - "integrity": "sha512-uSvUkGLFcIjVuYPtwjdgnUd7Fqd6TXakM1Gh0xqPbBPm4Kiig7mpRDfMUneAI8t0j5otEeqeNokoLs5rMNGOBg==", + "version": "2.6.16", + "resolved": "https://registry.npmjs.org/@fluentui/theme/-/theme-2.6.16.tgz", + "integrity": "sha512-Ml2oMVvoOxRYD9HPjEkGCWvnQnzDyrufa5k8bPYN8xjJbbEGtDjjswcfrSVfHx1fCR1CFgybHR8jj3pvXRTXUQ==", "requires": { - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", - "@fluentui/utilities": "^8.9.0", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", + "@fluentui/utilities": "^8.13.1", "tslib": "^2.1.0" } }, "@fluentui/utilities": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.9.0.tgz", - "integrity": "sha512-fK3GjWygRhKDuVxIAMqcfP0UZGhnifygzhrZDIanKc4/+9CoIY/BVtHryRF+zF0sGEXF5kDarsMsLAeCnB2YhA==", + "version": "8.13.1", + "resolved": "https://registry.npmjs.org/@fluentui/utilities/-/utilities-8.13.1.tgz", + "integrity": "sha512-BpLa0lSYnZ3YoTGB6T/pQ0vUVq0PEr6gF+daptyeiLUkEXVoy3HYgX6ZanA62wJ89ycIwI8A+1aUEbmtDMupYg==", "requires": { - "@fluentui/dom-utilities": "^2.2.1", - "@fluentui/merge-styles": "^8.5.2", - "@fluentui/set-version": "^8.2.1", + "@fluentui/dom-utilities": "^2.2.2", + "@fluentui/merge-styles": "^8.5.3", + "@fluentui/set-version": "^8.2.2", "tslib": "^2.1.0" } }, "@microsoft/load-themed-styles": { - "version": "1.10.281", - "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.281.tgz", - "integrity": "sha512-91uZ4u6p5ZClHQE2RpJKTZALeCl1G9cZB47SPivfPrRtjrhqCfS3gC3zNoikUhpwccWjfSN50zjm289Wxkf/8Q==" + "version": "1.10.293", + "resolved": "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.293.tgz", + "integrity": "sha512-zSsmz4VKMTje73JZ3Rsv2oIqyu1Yh9oPmrAbUbCloMeFlKtvqHVgMfjXrbicqbiImcTeNfJWFjYFbLRkrsstYA==" }, "@types/estree": { "version": "0.0.50", @@ -1177,9 +1170,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1200,9 +1193,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, "csstype": { "version": "3.1.0", @@ -1210,177 +1203,158 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, "js-tokens": { "version": "4.0.0", @@ -1411,11 +1385,6 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "peer": true }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, "react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -1437,15 +1406,10 @@ "scheduler": "^0.20.2" } }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "rw": { "version": "1.3.3", @@ -1467,17 +1431,19 @@ "object-assign": "^4.1.1" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } } }, "tr46": { @@ -1491,36 +1457,36 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1530,11 +1496,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1550,89 +1516,79 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1641,35 +1597,35 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1683,30 +1639,23 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1722,27 +1671,27 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", - "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", + "requires": { + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1763,73 +1712,66 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1844,11 +1786,11 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/sanddance-app/package.json b/packages/sanddance-app/package.json index 3cb904633..5df7ef98b 100644 --- a/packages/sanddance-app/package.json +++ b/packages/sanddance-app/package.json @@ -15,7 +15,7 @@ "@types/react": ">=16.8.0 <18.0.0", "@types/react-dom": ">=16.8.0 <18.0.0", "@msrvida/fluentui-react-cdn-typings": "^2", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "targets": { "main": false, @@ -39,6 +39,6 @@ "dependencies": { "@fluentui/react": "^8", "@msrvida/sanddance-explorer": "^4", - "vega": "5.20" + "vega": "5.22.1" } } \ No newline at end of file diff --git a/packages/sanddance-embed/package-lock.json b/packages/sanddance-embed/package-lock.json index 15b1e7f86..b1a233b4f 100644 --- a/packages/sanddance-embed/package-lock.json +++ b/packages/sanddance-embed/package-lock.json @@ -20,9 +20,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dev": true, "dependencies": { "@types/prop-types": "*", @@ -60,9 +60,9 @@ "dev": true }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dev": true, "requires": { "@types/prop-types": "*", diff --git a/packages/sanddance-embed/test/sanddance-embed.html b/packages/sanddance-embed/test/sanddance-embed.html index 4a4e09b30..a438522a1 100644 --- a/packages/sanddance-embed/test/sanddance-embed.html +++ b/packages/sanddance-embed/test/sanddance-embed.html @@ -12,7 +12,7 @@ - + diff --git a/packages/sanddance-explorer/README.md b/packages/sanddance-explorer/README.md index ac85e9be9..00f1992c9 100644 --- a/packages/sanddance-explorer/README.md +++ b/packages/sanddance-explorer/README.md @@ -14,7 +14,7 @@ Add these to the `dependencies` section of your `package.json`, then run `npm in ```json "@msrvida/sanddance-explorer": "^4", "@fluentui/react": "^8", -"vega": "^5.20" +"vega": "^5.22" ``` Import these in your JavaScript: diff --git a/packages/sanddance-explorer/package-lock.json b/packages/sanddance-explorer/package-lock.json index 631d7463d..d1f04c928 100644 --- a/packages/sanddance-explorer/package-lock.json +++ b/packages/sanddance-explorer/package-lock.json @@ -13,7 +13,7 @@ }, "devDependencies": { "@types/d3-format": "^1.3.1", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "peerDependencies": { "@types/react": ">=16.8.0 <18.0.0", @@ -28,6 +28,12 @@ "integrity": "sha512-WeGCHAs7PHdZYq6lwl/+jsl+Nfc1J2W1kNcMeIMYzQsT6mtBDBgtJ/rcdjZ0k0rVIvqEZqhhuD5TK/v3P2gFHQ==", "dev": true }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -35,9 +41,9 @@ "peer": true }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "peer": true, "dependencies": { "@types/prop-types": "*", @@ -135,12 +141,30 @@ "object-assign": "^4.1.1" } }, + "node_modules/vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", + "dev": true + }, + "node_modules/vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "dev": true, + "dependencies": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" + } + }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dev": true, "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, @@ -158,6 +182,12 @@ "integrity": "sha512-WeGCHAs7PHdZYq6lwl/+jsl+Nfc1J2W1kNcMeIMYzQsT6mtBDBgtJ/rcdjZ0k0rVIvqEZqhhuD5TK/v3P2gFHQ==", "dev": true }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, "@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -165,9 +195,9 @@ "peer": true }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "peer": true, "requires": { "@types/prop-types": "*", @@ -253,12 +283,30 @@ "object-assign": "^4.1.1" } }, + "vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", + "dev": true + }, + "vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "dev": true, + "requires": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" + } + }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dev": true, "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, diff --git a/packages/sanddance-explorer/package.json b/packages/sanddance-explorer/package.json index 1047705e6..cac8d115d 100644 --- a/packages/sanddance-explorer/package.json +++ b/packages/sanddance-explorer/package.json @@ -40,7 +40,7 @@ "umd": "./dist/umd/sanddance-explorer.js", "devDependencies": { "@types/d3-format": "^1.3.1", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "dependencies": { "@msrvida/chart-recommender": "^3", diff --git a/packages/sanddance-explorer/src/controls/dataExporterHtml.ts b/packages/sanddance-explorer/src/controls/dataExporterHtml.ts index 13a99e4c5..a374003e5 100644 --- a/packages/sanddance-explorer/src/controls/dataExporterHtml.ts +++ b/packages/sanddance-explorer/src/controls/dataExporterHtml.ts @@ -19,7 +19,7 @@ export const embedHtml = (title: string, embed: string) => ` - + diff --git a/packages/sanddance-react/README.md b/packages/sanddance-react/README.md index b06659192..4304d1c9c 100644 --- a/packages/sanddance-react/README.md +++ b/packages/sanddance-react/README.md @@ -14,7 +14,7 @@ Add these to the `dependencies` section of your `package.json`, then run `npm in "@msrvida/sanddance-react": "^4", "react": "^17", "react-dom": "^17", -"vega": "^5.20" +"vega": "^5.22" ``` Import these in your JavaScript: diff --git a/packages/sanddance-react/package-lock.json b/packages/sanddance-react/package-lock.json index 1cc6573b9..aec89e971 100644 --- a/packages/sanddance-react/package-lock.json +++ b/packages/sanddance-react/package-lock.json @@ -12,7 +12,7 @@ "just-compare": "^1.3.0" }, "devDependencies": { - "vega": "5.20.2" + "vega": "5.22.1" }, "peerDependencies": { "@types/react": ">=16.8.0 <18.0.0", @@ -34,9 +34,9 @@ "peer": true }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "peer": true, "dependencies": { "@types/prop-types": "*", @@ -60,10 +60,13 @@ "peer": true }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, "node_modules/csstype": { "version": "3.1.0", @@ -72,227 +75,256 @@ "peer": true }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, "node_modules/js-tokens": { @@ -347,12 +379,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -380,22 +406,11 @@ "react": "17.0.2" } }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", + "dev": true }, "node_modules/rw": { "version": "1.3.3", @@ -419,18 +434,6 @@ "object-assign": "^4.1.1" } }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -445,6 +448,12 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -452,37 +461,37 @@ "dev": true }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -493,12 +502,12 @@ "dev": true }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -515,95 +524,86 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", "dev": true }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dev": true, "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -612,38 +612,38 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -660,29 +660,23 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -699,29 +693,29 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -748,77 +742,69 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dev": true, "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==", "dev": true }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -834,12 +820,12 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -888,9 +874,9 @@ "peer": true }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "peer": true, "requires": { "@types/prop-types": "*", @@ -914,9 +900,9 @@ "peer": true }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "csstype": { @@ -926,202 +912,180 @@ "peer": true }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "dev": true }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "dev": true }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "dev": true }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", "dev": true }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "dev": true }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "dev": true }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true }, - "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -1157,12 +1121,6 @@ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "peer": true }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -1184,16 +1142,11 @@ "scheduler": "^0.20.2" } }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", + "dev": true }, "rw": { "version": "1.3.3", @@ -1217,12 +1170,6 @@ "object-assign": "^4.1.1" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -1230,6 +1177,14 @@ "dev": true, "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "tr46": { @@ -1239,37 +1194,37 @@ "dev": true }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1280,12 +1235,12 @@ "dev": true }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1302,97 +1257,86 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", "dev": true }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dev": true, "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1401,38 +1345,38 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1447,33 +1391,25 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1490,29 +1426,29 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1535,80 +1471,72 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dev": true, "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==", "dev": true }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1624,12 +1552,12 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/sanddance-react/package.json b/packages/sanddance-react/package.json index e958236e8..204ca5359 100644 --- a/packages/sanddance-react/package.json +++ b/packages/sanddance-react/package.json @@ -38,6 +38,6 @@ "react-dom": ">=16.8.0 <18.0.0" }, "devDependencies": { - "vega": "5.20.2" + "vega": "5.22.1" } } diff --git a/packages/sanddance-specs/package-lock.json b/packages/sanddance-specs/package-lock.json index b193e28ee..fec6a8269 100644 --- a/packages/sanddance-specs/package-lock.json +++ b/packages/sanddance-specs/package-lock.json @@ -10,31 +10,36 @@ "license": "MIT", "dependencies": { "d3-color": "^1.4.0", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { - "vega": "5.20" + "vega": "5.22.1" } }, "node_modules/@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { @@ -43,212 +48,235 @@ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, "node_modules/node-fetch": { @@ -271,29 +299,12 @@ } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", "dev": true }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -306,18 +317,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -332,6 +331,12 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -339,37 +344,37 @@ "dev": true }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -380,12 +385,12 @@ "dev": true }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -402,101 +407,93 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-functions/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" + "engines": { + "node": ">=12" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -505,44 +502,47 @@ } }, "node_modules/vega-geo/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -559,29 +559,23 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -598,29 +592,29 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -647,75 +641,67 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -731,12 +717,12 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -775,22 +761,21 @@ "@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { @@ -799,187 +784,165 @@ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "dev": true }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "dev": true }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "dev": true }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", "dev": true }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "dev": true }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "dev": true }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -989,23 +952,12 @@ "whatwg-url": "^5.0.0" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", "dev": true }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -1018,12 +970,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -1031,6 +977,14 @@ "dev": true, "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "tr46": { @@ -1040,37 +994,37 @@ "dev": true }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1081,12 +1035,12 @@ "dev": true }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1103,103 +1057,92 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" }, "dependencies": { "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1208,46 +1151,46 @@ }, "dependencies": { "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true } } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1262,33 +1205,25 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1305,29 +1240,29 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1350,78 +1285,70 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1437,12 +1364,12 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/sanddance-specs/package.json b/packages/sanddance-specs/package.json index 23b3a64ef..197a62ccb 100644 --- a/packages/sanddance-specs/package.json +++ b/packages/sanddance-specs/package.json @@ -32,9 +32,9 @@ "@msrvida/chart-types": "^1", "@msrvida/search-expression": "^1", "d3-color": "^1.4.0", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { - "vega": "5.20" + "vega": "5.22.1" } } diff --git a/packages/sanddance-test-es6/package-lock.json b/packages/sanddance-test-es6/package-lock.json index 691ae490b..3b8e3319f 100644 --- a/packages/sanddance-test-es6/package-lock.json +++ b/packages/sanddance-test-es6/package-lock.json @@ -8,10 +8,10 @@ "name": "sanddance-test-es6", "version": "1.0.0", "dependencies": { - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" } }, "node_modules/@types/estree": { @@ -20,208 +20,243 @@ "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" } }, "node_modules/node-fetch": { @@ -243,26 +278,10 @@ } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "node_modules/rw": { "version": "1.3.3", @@ -274,17 +293,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -298,42 +306,47 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -343,11 +356,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -363,87 +376,79 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -452,35 +457,35 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -496,26 +501,21 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -531,27 +531,27 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -576,70 +576,63 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -654,11 +647,11 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -697,182 +690,163 @@ "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, "node-fetch": { "version": "2.6.7", @@ -882,20 +856,10 @@ "whatwg-url": "^5.0.0" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "rw": { "version": "1.3.3", @@ -907,17 +871,19 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } } }, "tr46": { @@ -926,36 +892,36 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -965,11 +931,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -985,89 +951,79 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1076,35 +1032,35 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1118,30 +1074,23 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1157,27 +1106,27 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1198,73 +1147,66 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1279,11 +1221,11 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/sanddance-test-es6/package.json b/packages/sanddance-test-es6/package.json index c496392c2..daedb8a86 100644 --- a/packages/sanddance-test-es6/package.json +++ b/packages/sanddance-test-es6/package.json @@ -20,9 +20,9 @@ }, "dependencies": { "@msrvida/sanddance": "^4", - "vega": "5.20" + "vega": "5.22.1" }, "devDependencies": { - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" } } diff --git a/packages/sanddance/README.md b/packages/sanddance/README.md index 19a4b5794..929200216 100644 --- a/packages/sanddance/README.md +++ b/packages/sanddance/README.md @@ -14,7 +14,7 @@ You will need to consider how to load the libraries that `sanddance` depends on, Load dependencies via ` + ``` @@ -30,7 +30,7 @@ Add these to the `dependencies` section of your `package.json`, then run `npm in ```json "@msrvida/sanddance": "^4", -"vega": "^5.20" +"vega": "^5.22" ``` Import these in your JavaScript, then call the `use()` function to pass the dependency libraries to `SandDance.VegaMorphCharts`: diff --git a/packages/sanddance/package-lock.json b/packages/sanddance/package-lock.json index 11593aae2..593537d4b 100644 --- a/packages/sanddance/package-lock.json +++ b/packages/sanddance/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "d3-scale": "^4.0.2", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { "@types/d3-scale": "^4.0.2" @@ -31,6 +31,11 @@ "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==", "dev": true }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, "node_modules/d3-array": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", @@ -114,11 +119,27 @@ "node": ">=12" } }, + "node_modules/vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" + }, + "node_modules/vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "dependencies": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" + } + }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, @@ -144,6 +165,11 @@ "integrity": "sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==", "dev": true }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, "d3-array": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", @@ -203,11 +229,27 @@ "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, + "vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" + }, + "vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "requires": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" + } + }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, diff --git a/packages/sanddance/package.json b/packages/sanddance/package.json index aa66b7931..180a96ecb 100644 --- a/packages/sanddance/package.json +++ b/packages/sanddance/package.json @@ -34,6 +34,6 @@ "@msrvida/sanddance-specs": "^1", "@msrvida/search-expression": "^1", "@msrvida/vega-morphcharts": "^1", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" } } diff --git a/packages/search-expression/package-lock.json b/packages/search-expression/package-lock.json index 9faf78e9a..a2b7a67fb 100644 --- a/packages/search-expression/package-lock.json +++ b/packages/search-expression/package-lock.json @@ -9,14 +9,35 @@ "version": "1.0.1", "license": "MIT", "dependencies": { - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, + "node_modules/vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" + }, + "node_modules/vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "dependencies": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, @@ -27,11 +48,32 @@ } }, "dependencies": { + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" + }, + "vega-event-selector": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" + }, + "vega-expression": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "requires": { + "@types/estree": "^0.0.50", + "vega-util": "^1.16.0" + } + }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, diff --git a/packages/search-expression/package.json b/packages/search-expression/package.json index f1fe37926..714288fe7 100644 --- a/packages/search-expression/package.json +++ b/packages/search-expression/package.json @@ -22,6 +22,6 @@ "license": "MIT", "dependencies": { "@msrvida/chart-types": "^1", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" } } diff --git a/packages/vega-deck.gl/package-lock.json b/packages/vega-deck.gl/package-lock.json index 09853301f..c59d10ef8 100644 --- a/packages/vega-deck.gl/package-lock.json +++ b/packages/vega-deck.gl/package-lock.json @@ -14,20 +14,20 @@ "d3-ease": "^1.0.5", "deepmerge": "^2.1.1", "tsx-create-element": "^2.2.9", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { "@deck.gl/core": "8.3.7", "@deck.gl/layers": "8.3.7", "@luma.gl/core": "8.3.1", "@types/react": ">=16.8.0 <18.0.0", - "vega": "5.20" + "vega": "5.22.1" } }, "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" @@ -37,9 +37,9 @@ } }, "node_modules/@danmarshall/deckgl-typings": { - "version": "4.9.24", - "resolved": "https://registry.npmjs.org/@danmarshall/deckgl-typings/-/deckgl-typings-4.9.24.tgz", - "integrity": "sha512-ETFGeQNekVu6Aexfv9HSRKSMDfATeT+hhiF5TxgDoQymyD14kmxuyEfj8edbsrec0v2LznLa3BDcVwfSYjDmWA==", + "version": "4.9.25", + "resolved": "https://registry.npmjs.org/@danmarshall/deckgl-typings/-/deckgl-typings-4.9.25.tgz", + "integrity": "sha512-bPr/akw+fKgSNBWrxeK05dE/KtKXAnIbR7WpGzwg96cHQexUgVLp4sOafhx5NSb88E3VjpUiVaz/SDn0t18PpQ==", "hasInstallScript": true, "dependencies": { "@types/hammerjs": "^2.0.36", @@ -182,35 +182,35 @@ "dev": true }, "node_modules/@math.gl/core": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-3.6.2.tgz", - "integrity": "sha512-1GxQNy1EI1FvJNw3VRKoV97ZAOfDaGMRyfasA0RSl7IT98deLUOga6K5LOy4VYpD2YFgF85RBabpO6xJKyJHQg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-3.6.3.tgz", + "integrity": "sha512-jBABmDkj5uuuE0dTDmwwss7Cup5ZwQ6Qb7h1pgvtkEutTrhkcv8SuItQNXmF45494yIHeoGue08NlyeY6wxq2A==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.0", - "@math.gl/types": "3.6.2", + "@math.gl/types": "3.6.3", "gl-matrix": "^3.4.0" } }, "node_modules/@math.gl/polygon": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-3.6.2.tgz", - "integrity": "sha512-Kq9jQrO4Iv1oGb5/goS6JFzezYmynW7PrmKXLiI7vvS6jGw/ATZzl7Wn+8Svlta9NpuKKPI7DcBYSYSvfmnIoA==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-3.6.3.tgz", + "integrity": "sha512-FivQ1ZnYcAss1wVifOkHP/ZnlfQy1IL/769uzNtiHxwUbW0kZG3yyOZ9I7fwyzR5Hvqt3ErJKHjSYZr0uVlz5g==", "dev": true, "dependencies": { - "@math.gl/core": "3.6.2" + "@math.gl/core": "3.6.3" } }, "node_modules/@math.gl/types": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-3.6.2.tgz", - "integrity": "sha512-Vl9rod2vJDk0LofWrAWlBS3kAQO9a/V2w6MtXBOOpjF7USa4qECE9kjhKTORUET/OH2gHbzrgBDAzhATgnsAvg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-3.6.3.tgz", + "integrity": "sha512-3uWLVXHY3jQxsXCr/UCNPSc2BG0hNUljhmOBt9l+lNFDp7zHgm0cK2Tw4kj2XfkJy4TgwZTBGwRDQgWEbLbdTA==", "dev": true }, "node_modules/@math.gl/web-mercator": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.2.tgz", - "integrity": "sha512-jud2n6YEPp0+PHseG/gtJXskYAMQEM3bOyyPdwwEeu9OekjeWvkC9q3OGDF7Ve7KUA2kPbNzpD/r8VBhuixk8w==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.3.tgz", + "integrity": "sha512-UVrkSOs02YLehKaehrxhAejYMurehIHPfFQvPFZmdJHglHOU4V2cCUApTVEwOksvCp161ypEqVp+9H6mGhTTcw==", "dev": true, "dependencies": { "@babel/runtime": "^7.12.0", @@ -218,28 +218,28 @@ } }, "node_modules/@probe.gl/env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.5.0.tgz", - "integrity": "sha512-YdlpZZshhyYxvWDBmZ5RIW2pTR14Pw4p9czMlt/v7F6HbFzWfAdmH7q6xVwFRYxUpQLwhWensWyv4aFysiWl4g==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.5.2.tgz", + "integrity": "sha512-JlNvJ2p6+ObWX7es6n3TycGPTv5CfVrCS8vblI1eHhrFCcZ6RxIo727ffRVwldpp0YTzdgjx3/4fB/1dnVYElw==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0" } }, "node_modules/@probe.gl/log": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.5.0.tgz", - "integrity": "sha512-nW/qz2X1xY08WU/TsmJP6/6IPNcaY5fS/vLjpC4ahJuE2Mezga4hGM/R2X5JWE/nkPc+BsC5GnAnD13rwAxS7g==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.5.2.tgz", + "integrity": "sha512-5yo8Dg8LrSltuPBdGlLh/WOvt4LdU7DDHu75GMeiS0fKM+J4IACRpGV8SOrktCj1MWZ6JVHcNQkJnoyZ6G7p/w==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0", - "@probe.gl/env": "3.5.0" + "@probe.gl/env": "3.5.2" } }, "node_modules/@probe.gl/stats": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.5.0.tgz", - "integrity": "sha512-IH2M+F3c8HR1DTroBARePUFG7wIewumtKA0UFqx51Z7S4hKrD60wFbpMmg0AcF4FvHAXMBoC+kYi1UKW9XbAOw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.5.2.tgz", + "integrity": "sha512-YKaYXiHF//fgy1OkX38JD70Lc8qxg2Viw8Q2CTNMwGPDJe12wda7kEmMKPJNw2oYLyFUfTzv00KJMA5h18z02w==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0" @@ -248,8 +248,7 @@ "node_modules/@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "node_modules/@types/hammerjs": { "version": "2.0.41", @@ -262,9 +261,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -277,10 +276,13 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, "node_modules/csstype": { "version": "3.1.0", @@ -288,12 +290,15 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { @@ -302,40 +307,49 @@ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-ease": { @@ -344,122 +358,160 @@ "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/deepmerge": { "version": "2.2.1", @@ -470,10 +522,13 @@ } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dev": true, + "dependencies": { + "robust-predicates": "^3.0.0" + } }, "node_modules/earcut": { "version": "2.2.4", @@ -494,12 +549,6 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "node_modules/gl-matrix": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", @@ -520,18 +569,6 @@ "node": ">=0.8.0" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", @@ -541,12 +578,12 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" @@ -565,21 +602,12 @@ } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, "node_modules/jsonfile": { @@ -591,12 +619,12 @@ } }, "node_modules/math.gl": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/math.gl/-/math.gl-3.6.2.tgz", - "integrity": "sha512-Sp+Aeukpe81XOH4JNPbo+d7jBClZ+J0cpMDbQzoUhes5NIyLIQvmLj1B1mUiPCopM12DZfb4u1dv6WfvVHzgTg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/math.gl/-/math.gl-3.6.3.tgz", + "integrity": "sha512-Yq9CyECvSDox9+5ETi2+x1bGTY5WvGUGL3rJfC4KPoCZAM51MGfrCm6rIn4yOJUVfMPs2a5RwMD+yGS/n1g3gg==", "dev": true, "dependencies": { - "@math.gl/core": "3.6.2" + "@math.gl/core": "3.6.3" } }, "node_modules/minimist": { @@ -605,9 +633,9 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "node_modules/mjolnir.js": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.7.0.tgz", - "integrity": "sha512-XlK5OZ7d09eAIdYr+5VKOArYtkWB/f306s34yVij4pBk5wnaKxSrD7fVfP8/BL27nKVylNweqP1pxqh8h+hWKw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.7.1.tgz", + "integrity": "sha512-72BeUWgTv2cj5aZQKpwL8caNUFhXZ9bDm1hxpNj70XJQ62IBnTZmtv/WPxJvtaVNhzNo+D2U8O6ryNI0zImYcw==", "dev": true, "dependencies": { "@types/hammerjs": "^2.0.41", @@ -638,22 +666,16 @@ } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "node_modules/probe.gl": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.5.0.tgz", - "integrity": "sha512-KWj8u0PNytr/rVwcQFcN7O8SK7n/ITOsUZ91l4fSX95oHhKvVCI7eadrzFUzFRlXkFfBWpMWZXFHITsHHHUctw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.5.2.tgz", + "integrity": "sha512-8lFQVmi7pMQZkqfj8+VjX4GU9HTkyxgRm5/h/xxA/4/IvZPv3qtP996L+awPwZsrPRKEw99t12SvqEHqSls/sA==", "dev": true, "dependencies": { "@babel/runtime": "^7.0.0", - "@probe.gl/env": "3.5.0", - "@probe.gl/log": "3.5.0", - "@probe.gl/stats": "3.5.0" + "@probe.gl/env": "3.5.2", + "@probe.gl/log": "3.5.2", + "@probe.gl/stats": "3.5.2" } }, "node_modules/regenerator-runtime": { @@ -662,22 +684,11 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", + "dev": true }, "node_modules/rw": { "version": "1.3.3", @@ -691,18 +702,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -722,6 +721,12 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -749,37 +754,37 @@ } }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -790,12 +795,12 @@ "dev": true }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -812,101 +817,93 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-functions/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" + "engines": { + "node": ">=12" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -915,44 +912,47 @@ } }, "node_modules/vega-geo/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -969,29 +969,23 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1008,29 +1002,29 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1057,75 +1051,67 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1141,12 +1127,12 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1183,18 +1169,18 @@ }, "dependencies": { "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@danmarshall/deckgl-typings": { - "version": "4.9.24", - "resolved": "https://registry.npmjs.org/@danmarshall/deckgl-typings/-/deckgl-typings-4.9.24.tgz", - "integrity": "sha512-ETFGeQNekVu6Aexfv9HSRKSMDfATeT+hhiF5TxgDoQymyD14kmxuyEfj8edbsrec0v2LznLa3BDcVwfSYjDmWA==", + "version": "4.9.25", + "resolved": "https://registry.npmjs.org/@danmarshall/deckgl-typings/-/deckgl-typings-4.9.25.tgz", + "integrity": "sha512-bPr/akw+fKgSNBWrxeK05dE/KtKXAnIbR7WpGzwg96cHQexUgVLp4sOafhx5NSb88E3VjpUiVaz/SDn0t18PpQ==", "requires": { "@types/hammerjs": "^2.0.36", "@types/react": "*", @@ -1332,35 +1318,35 @@ "dev": true }, "@math.gl/core": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-3.6.2.tgz", - "integrity": "sha512-1GxQNy1EI1FvJNw3VRKoV97ZAOfDaGMRyfasA0RSl7IT98deLUOga6K5LOy4VYpD2YFgF85RBabpO6xJKyJHQg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/core/-/core-3.6.3.tgz", + "integrity": "sha512-jBABmDkj5uuuE0dTDmwwss7Cup5ZwQ6Qb7h1pgvtkEutTrhkcv8SuItQNXmF45494yIHeoGue08NlyeY6wxq2A==", "dev": true, "requires": { "@babel/runtime": "^7.12.0", - "@math.gl/types": "3.6.2", + "@math.gl/types": "3.6.3", "gl-matrix": "^3.4.0" } }, "@math.gl/polygon": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-3.6.2.tgz", - "integrity": "sha512-Kq9jQrO4Iv1oGb5/goS6JFzezYmynW7PrmKXLiI7vvS6jGw/ATZzl7Wn+8Svlta9NpuKKPI7DcBYSYSvfmnIoA==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/polygon/-/polygon-3.6.3.tgz", + "integrity": "sha512-FivQ1ZnYcAss1wVifOkHP/ZnlfQy1IL/769uzNtiHxwUbW0kZG3yyOZ9I7fwyzR5Hvqt3ErJKHjSYZr0uVlz5g==", "dev": true, "requires": { - "@math.gl/core": "3.6.2" + "@math.gl/core": "3.6.3" } }, "@math.gl/types": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-3.6.2.tgz", - "integrity": "sha512-Vl9rod2vJDk0LofWrAWlBS3kAQO9a/V2w6MtXBOOpjF7USa4qECE9kjhKTORUET/OH2gHbzrgBDAzhATgnsAvg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/types/-/types-3.6.3.tgz", + "integrity": "sha512-3uWLVXHY3jQxsXCr/UCNPSc2BG0hNUljhmOBt9l+lNFDp7zHgm0cK2Tw4kj2XfkJy4TgwZTBGwRDQgWEbLbdTA==", "dev": true }, "@math.gl/web-mercator": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.2.tgz", - "integrity": "sha512-jud2n6YEPp0+PHseG/gtJXskYAMQEM3bOyyPdwwEeu9OekjeWvkC9q3OGDF7Ve7KUA2kPbNzpD/r8VBhuixk8w==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/@math.gl/web-mercator/-/web-mercator-3.6.3.tgz", + "integrity": "sha512-UVrkSOs02YLehKaehrxhAejYMurehIHPfFQvPFZmdJHglHOU4V2cCUApTVEwOksvCp161ypEqVp+9H6mGhTTcw==", "dev": true, "requires": { "@babel/runtime": "^7.12.0", @@ -1368,28 +1354,28 @@ } }, "@probe.gl/env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.5.0.tgz", - "integrity": "sha512-YdlpZZshhyYxvWDBmZ5RIW2pTR14Pw4p9czMlt/v7F6HbFzWfAdmH7q6xVwFRYxUpQLwhWensWyv4aFysiWl4g==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@probe.gl/env/-/env-3.5.2.tgz", + "integrity": "sha512-JlNvJ2p6+ObWX7es6n3TycGPTv5CfVrCS8vblI1eHhrFCcZ6RxIo727ffRVwldpp0YTzdgjx3/4fB/1dnVYElw==", "dev": true, "requires": { "@babel/runtime": "^7.0.0" } }, "@probe.gl/log": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.5.0.tgz", - "integrity": "sha512-nW/qz2X1xY08WU/TsmJP6/6IPNcaY5fS/vLjpC4ahJuE2Mezga4hGM/R2X5JWE/nkPc+BsC5GnAnD13rwAxS7g==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@probe.gl/log/-/log-3.5.2.tgz", + "integrity": "sha512-5yo8Dg8LrSltuPBdGlLh/WOvt4LdU7DDHu75GMeiS0fKM+J4IACRpGV8SOrktCj1MWZ6JVHcNQkJnoyZ6G7p/w==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", - "@probe.gl/env": "3.5.0" + "@probe.gl/env": "3.5.2" } }, "@probe.gl/stats": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.5.0.tgz", - "integrity": "sha512-IH2M+F3c8HR1DTroBARePUFG7wIewumtKA0UFqx51Z7S4hKrD60wFbpMmg0AcF4FvHAXMBoC+kYi1UKW9XbAOw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@probe.gl/stats/-/stats-3.5.2.tgz", + "integrity": "sha512-YKaYXiHF//fgy1OkX38JD70Lc8qxg2Viw8Q2CTNMwGPDJe12wda7kEmMKPJNw2oYLyFUfTzv00KJMA5h18z02w==", "dev": true, "requires": { "@babel/runtime": "^7.0.0" @@ -1398,8 +1384,7 @@ "@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "@types/hammerjs": { "version": "2.0.41", @@ -1412,9 +1397,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -1427,9 +1412,9 @@ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "csstype": { @@ -1438,12 +1423,12 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { @@ -1452,28 +1437,28 @@ "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "dev": true }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, @@ -1483,114 +1468,113 @@ "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "dev": true }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "dev": true }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", "dev": true }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "dev": true }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "dev": true }, "deepmerge": { @@ -1599,10 +1583,13 @@ "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dev": true, + "requires": { + "robust-predicates": "^3.0.0" + } }, "earcut": { "version": "2.2.4", @@ -1620,12 +1607,6 @@ "universalify": "^0.1.0" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, "gl-matrix": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", @@ -1643,27 +1624,18 @@ "integrity": "sha512-tSQXBXS/MWQOn/RKckawJ61vvsDpCom87JgxiYdGwHdOa0ht0vzUWDlfioofFCRU0L+6NGDt6XzbgoJvZkMeRQ==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==" }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "indefinitely-typed": { @@ -1676,20 +1648,11 @@ } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", @@ -1699,12 +1662,12 @@ } }, "math.gl": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/math.gl/-/math.gl-3.6.2.tgz", - "integrity": "sha512-Sp+Aeukpe81XOH4JNPbo+d7jBClZ+J0cpMDbQzoUhes5NIyLIQvmLj1B1mUiPCopM12DZfb4u1dv6WfvVHzgTg==", + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/math.gl/-/math.gl-3.6.3.tgz", + "integrity": "sha512-Yq9CyECvSDox9+5ETi2+x1bGTY5WvGUGL3rJfC4KPoCZAM51MGfrCm6rIn4yOJUVfMPs2a5RwMD+yGS/n1g3gg==", "dev": true, "requires": { - "@math.gl/core": "3.6.2" + "@math.gl/core": "3.6.3" } }, "minimist": { @@ -1713,9 +1676,9 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "mjolnir.js": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.7.0.tgz", - "integrity": "sha512-XlK5OZ7d09eAIdYr+5VKOArYtkWB/f306s34yVij4pBk5wnaKxSrD7fVfP8/BL27nKVylNweqP1pxqh8h+hWKw==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/mjolnir.js/-/mjolnir.js-2.7.1.tgz", + "integrity": "sha512-72BeUWgTv2cj5aZQKpwL8caNUFhXZ9bDm1hxpNj70XJQ62IBnTZmtv/WPxJvtaVNhzNo+D2U8O6ryNI0zImYcw==", "dev": true, "requires": { "@types/hammerjs": "^2.0.41", @@ -1731,22 +1694,16 @@ "whatwg-url": "^5.0.0" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, "probe.gl": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.5.0.tgz", - "integrity": "sha512-KWj8u0PNytr/rVwcQFcN7O8SK7n/ITOsUZ91l4fSX95oHhKvVCI7eadrzFUzFRlXkFfBWpMWZXFHITsHHHUctw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/probe.gl/-/probe.gl-3.5.2.tgz", + "integrity": "sha512-8lFQVmi7pMQZkqfj8+VjX4GU9HTkyxgRm5/h/xxA/4/IvZPv3qtP996L+awPwZsrPRKEw99t12SvqEHqSls/sA==", "dev": true, "requires": { "@babel/runtime": "^7.0.0", - "@probe.gl/env": "3.5.0", - "@probe.gl/log": "3.5.0", - "@probe.gl/stats": "3.5.0" + "@probe.gl/env": "3.5.2", + "@probe.gl/log": "3.5.2", + "@probe.gl/stats": "3.5.2" } }, "regenerator-runtime": { @@ -1755,16 +1712,11 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", + "dev": true }, "rw": { "version": "1.3.3", @@ -1778,12 +1730,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -1796,6 +1742,14 @@ "dev": true, "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "tr46": { @@ -1819,37 +1773,37 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1860,12 +1814,12 @@ "dev": true }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1882,103 +1836,92 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" }, "dependencies": { "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1987,46 +1930,46 @@ }, "dependencies": { "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", "dev": true } } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -2041,33 +1984,25 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -2084,29 +2019,29 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -2129,78 +2064,70 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -2216,12 +2143,12 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/vega-deck.gl/package.json b/packages/vega-deck.gl/package.json index d2d1d7575..f0634c315 100644 --- a/packages/vega-deck.gl/package.json +++ b/packages/vega-deck.gl/package.json @@ -36,13 +36,13 @@ "d3-ease": "^1.0.5", "deepmerge": "^2.1.1", "tsx-create-element": "^2.2.9", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { "@deck.gl/core": "8.3.7", "@deck.gl/layers": "8.3.7", "@luma.gl/core": "8.3.1", "@types/react": ">=16.8.0 <18.0.0", - "vega": "5.20" + "vega": "5.22.1" } } diff --git a/packages/vega-morphcharts-test-es6/package-lock.json b/packages/vega-morphcharts-test-es6/package-lock.json index 75ef77cc4..319670254 100644 --- a/packages/vega-morphcharts-test-es6/package-lock.json +++ b/packages/vega-morphcharts-test-es6/package-lock.json @@ -8,7 +8,7 @@ "name": "vega-morphcharts-test-es6", "version": "1.0.0", "dependencies": { - "vega": "5.20" + "vega": "5.22.1" } }, "node_modules/@types/estree": { @@ -17,208 +17,243 @@ "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "engines": { + "node": ">=12" + } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" + "robust-predicates": "^3.0.0" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "engines": { + "node": ">=12" } }, "node_modules/node-fetch": { @@ -240,26 +275,10 @@ } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "node_modules/rw": { "version": "1.3.3", @@ -271,17 +290,6 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", @@ -295,42 +303,47 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -340,11 +353,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -360,87 +373,79 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -449,35 +454,35 @@ } }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -493,26 +498,21 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -528,27 +528,27 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -573,70 +573,63 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -651,11 +644,11 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -694,182 +687,163 @@ "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==" }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==" }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "requires": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==" }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==" }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", "requires": { - "function-bind": "^1.1.1" + "robust-predicates": "^3.0.0" } }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" }, "node-fetch": { "version": "2.6.7", @@ -879,20 +853,10 @@ "whatwg-url": "^5.0.0" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==" }, "rw": { "version": "1.3.3", @@ -904,17 +868,19 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, "topojson-client": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz", "integrity": "sha512-605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==", "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } } }, "tr46": { @@ -923,36 +889,36 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -962,11 +928,11 @@ "integrity": "sha512-rgeYUpslYn/amIfnuv3Sw6n4BGns94OjjZNtUc9IDji6b+K8LGS/kW+Lvay8JX/oFqtulBp8RLcHN6QjqPLA9Q==" }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -982,89 +948,79 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==" + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -1073,35 +1029,35 @@ } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1115,30 +1071,23 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1154,27 +1103,27 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1195,73 +1144,66 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1276,11 +1218,11 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/vega-morphcharts-test-es6/package.json b/packages/vega-morphcharts-test-es6/package.json index d87c6c764..e5ce0dcc6 100644 --- a/packages/vega-morphcharts-test-es6/package.json +++ b/packages/vega-morphcharts-test-es6/package.json @@ -19,6 +19,6 @@ }, "dependencies": { "@msrvida/vega-morphcharts": "^1", - "vega": "5.20" + "vega": "5.22.1" } } diff --git a/packages/vega-morphcharts/package-lock.json b/packages/vega-morphcharts/package-lock.json index 73211712f..a821a0189 100644 --- a/packages/vega-morphcharts/package-lock.json +++ b/packages/vega-morphcharts/package-lock.json @@ -15,13 +15,13 @@ "is-plain-object": "^5.0.0", "morphcharts": "^1", "tsx-create-element": "^2.2.5", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { "@types/d3-color": "^3.1.0", "@types/d3-ease": "^3.0.0", "@types/react": ">=16.8.0 <18.0.0", - "vega": "5.20.2" + "vega": "5.22.1" } }, "node_modules/@types/d3-color": { @@ -39,8 +39,7 @@ "node_modules/@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -48,9 +47,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -68,10 +67,13 @@ "integrity": "sha512-LQvrACV3Pj17GpkwHwXuTd733gfY+D7b9mKdrTmLdO7vo7P/o6209Qqtk63y/FCv/lspdmi0pWz6Qe/ull9kQg==" }, "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, "node_modules/csstype": { "version": "3.1.0", @@ -79,12 +81,15 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "node_modules/d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "dependencies": { - "internmap": "^1.0.0" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-color": { @@ -96,40 +101,49 @@ } }, "node_modules/d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "dependencies": { - "delaunator": "4" + "delaunator": "5" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "dependencies": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" }, "bin": { - "csv2json": "bin/dsv2json", - "csv2tsv": "bin/dsv2dsv", - "dsv2dsv": "bin/dsv2dsv", - "dsv2json": "bin/dsv2json", - "json2csv": "bin/json2dsv", - "json2dsv": "bin/json2dsv", - "json2tsv": "bin/json2dsv", - "tsv2csv": "bin/dsv2dsv", - "tsv2json": "bin/dsv2json" + "csv2json": "bin/dsv2json.js", + "csv2tsv": "bin/dsv2dsv.js", + "dsv2dsv": "bin/dsv2dsv.js", + "dsv2json": "bin/dsv2json.js", + "json2csv": "bin/json2dsv.js", + "json2dsv": "bin/json2dsv.js", + "json2tsv": "bin/json2dsv.js", + "tsv2csv": "bin/dsv2dsv.js", + "tsv2json": "bin/dsv2json.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-ease": { @@ -141,128 +155,160 @@ } }, "node_modules/d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "dependencies": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", - "dev": true + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "dependencies": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "dependencies": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" }, "bin": { - "geo2svg": "bin/geo2svg", - "geograticule": "bin/geograticule", - "geoproject": "bin/geoproject", - "geoquantize": "bin/geoquantize", - "geostitch": "bin/geostitch" + "geo2svg": "bin/geo2svg.js", + "geograticule": "bin/geograticule.js", + "geoproject": "bin/geoproject.js", + "geoquantize": "bin/geoquantize.js", + "geostitch": "bin/geostitch.js" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", - "dev": true + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "dependencies": { - "d3-color": "1 - 2" + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" } }, - "node_modules/d3-interpolate/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - }, "node_modules/d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "dependencies": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "dependencies": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "dependencies": { - "d3-array": "2" + "d3-array": "2 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "dependencies": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" + }, + "engines": { + "node": ">=12" } }, "node_modules/d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "dev": true, + "engines": { + "node": ">=12" + } }, "node_modules/deepmerge": { "version": "2.2.1", @@ -273,34 +319,19 @@ } }, "node_modules/delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dev": true, + "dependencies": { + "robust-predicates": "^3.0.0" + } }, "node_modules/gl-matrix": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", @@ -310,33 +341,24 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=12" } }, "node_modules/is-plain-object": { @@ -376,29 +398,12 @@ } } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "node_modules/robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", "dev": true }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -411,18 +416,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -442,6 +435,12 @@ "topoquantize": "bin/topoquantize" } }, + "node_modules/topojson-client/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -461,37 +460,37 @@ } }, "node_modules/vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "dependencies": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -502,12 +501,12 @@ "dev": true }, "node_modules/vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -524,101 +523,84 @@ } }, "node_modules/vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "node_modules/vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "dependencies": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "node_modules/vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "dependencies": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "node_modules/vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", - "vega-util": "^1.16.0" - } - }, - "node_modules/vega-functions/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - }, - "node_modules/vega-functions/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" } }, "node_modules/vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", @@ -626,45 +608,39 @@ "vega-util": "^1.15.2" } }, - "node_modules/vega-geo/node_modules/d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - }, "node_modules/vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "dependencies": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "node_modules/vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "dependencies": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "node_modules/vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "dependencies": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -681,29 +657,23 @@ "vega-util": "^1.16.0" } }, - "node_modules/vega-parser/node_modules/vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - }, "node_modules/vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "dependencies": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "node_modules/vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -720,29 +690,29 @@ } }, "node_modules/vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "node_modules/vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "dependencies": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -769,75 +739,67 @@ "node": ">=12" } }, - "node_modules/vega-selections/node_modules/vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "dependencies": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - }, "node_modules/vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "dependencies": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "node_modules/vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "node_modules/vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "dependencies": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "node_modules/vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "node_modules/vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "dependencies": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -853,12 +815,12 @@ } }, "node_modules/vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "dependencies": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -909,8 +871,7 @@ "@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==" }, "@types/prop-types": { "version": "15.7.5", @@ -918,9 +879,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "@types/react": { - "version": "17.0.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz", - "integrity": "sha512-mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==", + "version": "17.0.49", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.49.tgz", + "integrity": "sha512-CCBPMZaPhcKkYUTqFs/hOWqKjPxhTEmnZWjlHHgIMop67DsXywf9B5Os9Hz8KSacjNOgIdnZVJamwl232uxoPg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -938,9 +899,9 @@ "integrity": "sha512-LQvrACV3Pj17GpkwHwXuTd733gfY+D7b9mKdrTmLdO7vo7P/o6209Qqtk63y/FCv/lspdmi0pWz6Qe/ull9kQg==" }, "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "csstype": { @@ -949,12 +910,12 @@ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" }, "d3-array": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.1.tgz", - "integrity": "sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.0.tgz", + "integrity": "sha512-3yXFQo0oG3QCxbF06rMPFyGRMGJNS7NvsV1+2joOjbBE+9xvWQ8+GcMJAjRCzw06zQ3/arXeJgbPYcjUCuC+3g==", "dev": true, "requires": { - "internmap": "^1.0.0" + "internmap": "1 - 2" } }, "d3-color": { @@ -963,28 +924,28 @@ "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" }, "d3-delaunay": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz", - "integrity": "sha512-amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.2.tgz", + "integrity": "sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==", "dev": true, "requires": { - "delaunator": "4" + "delaunator": "5" } }, "d3-dispatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", - "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", "dev": true }, "d3-dsv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz", - "integrity": "sha512-E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz", + "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==", "dev": true, "requires": { - "commander": "2", - "iconv-lite": "0.4", + "commander": "7", + "iconv-lite": "0.6", "rw": "1" } }, @@ -994,122 +955,113 @@ "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" }, "d3-force": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", - "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", + "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", "dev": true, "requires": { - "d3-dispatch": "1 - 2", - "d3-quadtree": "1 - 2", - "d3-timer": "1 - 2" + "d3-dispatch": "1 - 3", + "d3-quadtree": "1 - 3", + "d3-timer": "1 - 3" } }, "d3-format": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz", - "integrity": "sha512-Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", "dev": true }, "d3-geo": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.2.tgz", - "integrity": "sha512-8pM1WGMLGFuhq9S+FpPURxic+gKzjluCD/CHTuUF3mXMeiCo0i6R0tO1s4+GArRFde96SLcW/kOFRjoAosPsFA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.0.1.tgz", + "integrity": "sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA==", "dev": true, "requires": { - "d3-array": "^2.5.0" + "d3-array": "2.5.0 - 3" } }, "d3-geo-projection": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", - "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", + "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", "dev": true, "requires": { - "commander": "2", - "d3-array": "1 - 2", - "d3-geo": "1.12.0 - 2", - "resolve": "^1.1.10" + "commander": "7", + "d3-array": "1 - 3", + "d3-geo": "1.12.0 - 3" } }, "d3-hierarchy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz", - "integrity": "sha512-SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz", + "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==", "dev": true }, "d3-interpolate": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz", - "integrity": "sha512-c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", "dev": true, "requires": { - "d3-color": "1 - 2" - }, - "dependencies": { - "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - } + "d3-color": "1 - 3" } }, "d3-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz", - "integrity": "sha512-ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.0.1.tgz", + "integrity": "sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==", "dev": true }, "d3-quadtree": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", - "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", + "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", "dev": true }, "d3-scale": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-3.3.0.tgz", - "integrity": "sha512-1JGp44NQCt5d1g+Yy+GeOnZP7xHo0ii8zsQp6PGzd+C1/dl0KGsp9A7Mxwp+1D1o4unbTTxVdU/ZOIEBoeZPbQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", "dev": true, "requires": { - "d3-array": "^2.3.0", - "d3-format": "1 - 2", - "d3-interpolate": "1.2.0 - 2", - "d3-time": "^2.1.1", - "d3-time-format": "2 - 3" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" } }, "d3-shape": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-2.1.0.tgz", - "integrity": "sha512-PnjUqfM2PpskbSLTJvAzp2Wv4CZsnAgTfcVRTwW03QR3MkXF8Uo7B1y/lWkAsmbKwuecto++4NlsYcvYpXpTHA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.1.0.tgz", + "integrity": "sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ==", "dev": true, "requires": { - "d3-path": "1 - 2" + "d3-path": "1 - 3" } }, "d3-time": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-2.1.1.tgz", - "integrity": "sha512-/eIQe/eR4kCQwq7yxi7z4c6qEXf2IYGcjoWB5OOQy4Tq9Uv39/947qlDcN2TLkiTzQWzvnsuYPB9TrWaNfipKQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.0.0.tgz", + "integrity": "sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ==", "dev": true, "requires": { - "d3-array": "2" + "d3-array": "2 - 3" } }, "d3-time-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz", - "integrity": "sha512-UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", "dev": true, "requires": { - "d3-time": "1 - 2" + "d3-time": "1 - 3" } }, "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", "dev": true }, "deepmerge": { @@ -1118,60 +1070,39 @@ "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" }, "delaunator": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz", - "integrity": "sha512-WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz", + "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==", + "dev": true, + "requires": { + "robust-predicates": "^3.0.0" + } }, "gl-matrix": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, "html-tags": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz", "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==" }, "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "internmap": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", - "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", "dev": true }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, "is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -1195,23 +1126,12 @@ "whatwg-url": "^5.0.0" } }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "robust-predicates": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz", + "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==", "dev": true }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, "rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", @@ -1224,12 +1144,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -1242,6 +1156,14 @@ "dev": true, "requires": { "commander": "2" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } }, "tr46": { @@ -1260,37 +1182,37 @@ } }, "vega": { - "version": "5.20.2", - "resolved": "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz", - "integrity": "sha512-qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==", + "version": "5.22.1", + "resolved": "https://registry.npmjs.org/vega/-/vega-5.22.1.tgz", + "integrity": "sha512-KJBI7OWSzpfCPbmWl3GQCqBqbf2TIdpWS0mzO6MmWbvdMhWHf74P9IVnx1B1mhg0ZTqWFualx9ZYhWzMMwudaQ==", "dev": true, "requires": { - "vega-crossfilter": "~4.0.5", + "vega-crossfilter": "~4.1.0", "vega-dataflow": "~5.7.4", - "vega-encode": "~4.8.3", - "vega-event-selector": "~2.0.6", - "vega-expression": "~4.0.1", - "vega-force": "~4.0.7", - "vega-format": "~1.0.4", - "vega-functions": "~5.12.0", - "vega-geo": "~4.3.8", - "vega-hierarchy": "~4.0.9", - "vega-label": "~1.0.0", - "vega-loader": "~4.4.0", - "vega-parser": "~6.1.3", - "vega-projection": "~1.4.5", - "vega-regression": "~1.0.9", + "vega-encode": "~4.9.0", + "vega-event-selector": "~3.0.0", + "vega-expression": "~5.0.0", + "vega-force": "~4.1.0", + "vega-format": "~1.1.0", + "vega-functions": "~5.13.0", + "vega-geo": "~4.4.0", + "vega-hierarchy": "~4.1.0", + "vega-label": "~1.2.0", + "vega-loader": "~4.5.0", + "vega-parser": "~6.1.4", + "vega-projection": "~1.5.0", + "vega-regression": "~1.1.0", "vega-runtime": "~6.1.3", - "vega-scale": "~7.1.1", - "vega-scenegraph": "~4.9.4", - "vega-statistics": "~1.7.9", - "vega-time": "~2.0.4", - "vega-transforms": "~4.9.4", - "vega-typings": "~0.21.0", - "vega-util": "~1.16.1", - "vega-view": "~5.10.1", + "vega-scale": "~7.2.0", + "vega-scenegraph": "~4.10.1", + "vega-statistics": "~1.8.0", + "vega-time": "~2.1.0", + "vega-transforms": "~4.10.0", + "vega-typings": "~0.22.0", + "vega-util": "~1.17.0", + "vega-view": "~5.11.0", "vega-view-transforms": "~4.5.8", - "vega-voronoi": "~4.1.5", + "vega-voronoi": "~4.2.0", "vega-wordcloud": "~4.1.3" } }, @@ -1301,12 +1223,12 @@ "dev": true }, "vega-crossfilter": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.5.tgz", - "integrity": "sha512-yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.1.0.tgz", + "integrity": "sha512-aiOJcvVpiEDIu5uNc4Kf1hakkkPaVOO5fw5T4RSFAw6GEDbdqcB6eZ1xePcsLVic1hxYD5SGiUPdiiIs0SMh2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } @@ -1323,151 +1245,124 @@ } }, "vega-encode": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.3.tgz", - "integrity": "sha512-JoRYtaV2Hs8spWLzTu/IjR7J9jqRmuIOEicAaWj6T9NSZrNWQzu2zF3IVsX85WnrIDIRUDaehXaFZvy9uv9RQg==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/vega-encode/-/vega-encode-4.9.0.tgz", + "integrity": "sha512-etv2BHuCn9bzEc0cxyA2TnbtcAFQGVFmsaqmB4sgBCaqTSEfXMoX68LK3yxBrsdm5LU+y3otJVoewi3qWYCx2g==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-scale": "^7.0.3", "vega-util": "^1.15.2" } }, "vega-event-selector": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.6.tgz", - "integrity": "sha512-UwCu50Sqd8kNZ1X/XgiAY+QAyQUmGFAwyDu7y0T5fs6/TPQnDo/Bo346NgSgINBEhEKOAMY1Nd/rPOk4UEm/ew==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", + "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==" }, "vega-expression": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-4.0.1.tgz", - "integrity": "sha512-ZrDj0hP8NmrCpdLFf7Rd/xMUHGoSYsAOTaYp7uXZ2dkEH5x0uPy5laECMc8TiQvL8W+8IrN2HAWCMRthTSRe2Q==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", + "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", "requires": { + "@types/estree": "^0.0.50", "vega-util": "^1.16.0" } }, "vega-force": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.0.7.tgz", - "integrity": "sha512-pyLKdwXSZ9C1dVIqdJOobvBY29rLvZjvRRTla9BU/nMwAiAGlGi6WKUFdRGdneyGe3zo2nSZDTZlZM/Z5VaQNA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-force/-/vega-force-4.1.0.tgz", + "integrity": "sha512-Sssf8iH48vYlz+E7/RpU+SUaJbuLoIL87U4tG2Av4gf/hRiImU49x2TI3EuhFWg1zpaCFxlz0CAaX++Oh/gjdw==", "dev": true, "requires": { - "d3-force": "^2.1.1", + "d3-force": "^3.0.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-format": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.0.4.tgz", - "integrity": "sha512-oTAeub3KWm6nKhXoYCx1q9G3K43R6/pDMXvqDlTSUtjoY7b/Gixm8iLcir5S9bPjvH40n4AcbZsPmNfL/Up77A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-format/-/vega-format-1.1.0.tgz", + "integrity": "sha512-6mgpeWw8yGdG0Zdi8aVkx5oUrpJGOpNxqazC2858RSDPvChM/jDFlgRMTYw52qk7cxU0L08ARp4BwmXaI75j0w==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-format": "^2.0.0", - "d3-time-format": "^3.0.0", + "d3-array": "^3.1.1", + "d3-format": "^3.1.0", + "d3-time-format": "^4.1.0", "vega-time": "^2.0.3", "vega-util": "^1.15.2" } }, "vega-functions": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.12.1.tgz", - "integrity": "sha512-7cHfcjXOj27qEbh2FTzWDl7FJK4xGcMFF7+oiyqa0fp7BU/wNT5YdNV0t5kCX9WjV7mfJWACKV74usLJbyM6GA==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/vega-functions/-/vega-functions-5.13.0.tgz", + "integrity": "sha512-Mf53zNyx+c9fFqagEI0T8zc9nMlx0zozOngr8oOpG1tZDKOgwOnUgN99zQKbLHjyv+UzWrq3LYTnSLyVe0ZmhQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-dataflow": "^5.7.3", "vega-expression": "^5.0.0", - "vega-scale": "^7.1.1", + "vega-scale": "^7.2.0", "vega-scenegraph": "^4.9.3", "vega-selections": "^5.3.1", "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-time": "^2.1.0", "vega-util": "^1.16.0" - }, - "dependencies": { - "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } - } } }, "vega-geo": { - "version": "4.3.8", - "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.8.tgz", - "integrity": "sha512-fsGxV96Q/QRgPqOPtMBZdI+DneIiROKTG3YDZvGn0EdV16OG5LzFhbNgLT5GPzI+kTwgLpAsucBHklexlB4kfg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/vega-geo/-/vega-geo-4.4.0.tgz", + "integrity": "sha512-3YX41y+J5pu0PMjvBCASg0/lgvu9+QXWJZ+vl6FFKa8AlsIopQ67ZL7ObwqjZcoZMolJ4q0rc+ZO8aj1pXCYcw==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-color": "^2.0.0", - "d3-geo": "^2.0.1", + "d3-array": "^3.1.1", + "d3-color": "^3.0.1", + "d3-geo": "^3.0.1", "vega-canvas": "^1.2.5", "vega-dataflow": "^5.7.3", "vega-projection": "^1.4.5", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" - }, - "dependencies": { - "d3-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz", - "integrity": "sha512-SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==", - "dev": true - } } }, "vega-hierarchy": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.9.tgz", - "integrity": "sha512-4XaWK6V38/QOZ+vllKKTafiwL25m8Kd+ebHmDV+Q236ONHmqc/gv82wwn9nBeXPEfPv4FyJw2SRoqa2Jol6fug==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.1.0.tgz", + "integrity": "sha512-DWBK39IEt4FiQru12twzKSFUvFFZ7KtlH9+lAaqrJnKuIZFCyQ1XOUfKScfbKIlk4KS+DuCTNLI/pxC/f7Sk9Q==", "dev": true, "requires": { - "d3-hierarchy": "^2.0.0", + "d3-hierarchy": "^3.1.0", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } }, "vega-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.0.0.tgz", - "integrity": "sha512-hCdm2pcHgkKgxnzW9GvX5JmYNiUMlOXOibtMmBzvFBQHX3NiV9giQ5nsPiQiFbV08VxEPtM+VYXr2HyrIcq5zQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vega-label/-/vega-label-1.2.0.tgz", + "integrity": "sha512-1prOqkCAfXaUvMqavbGI0nbYGqV8UQR9qvuVwrPJ6Yxm3GIUIOA/JRqNY8eZR8USwMP/kzsqlfVEixj9+Y75VQ==", "dev": true, "requires": { - "vega-canvas": "^1.2.5", + "vega-canvas": "^1.2.6", "vega-dataflow": "^5.7.3", "vega-scenegraph": "^4.9.2", "vega-util": "^1.15.2" } }, "vega-loader": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.4.1.tgz", - "integrity": "sha512-dj65i4qlNhK0mOmjuchHgUrF5YUaWrYpx0A8kXA68lBk5Hkx8FNRztkcl07CZJ1+8V81ymEyJii9jzGbhEX0ag==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vega-loader/-/vega-loader-4.5.0.tgz", + "integrity": "sha512-EkAyzbx0pCYxH3v3wghGVCaKINWxHfgbQ2pYDiYv0yo8e04S8Mv/IlRGTt6BAe7cLhrk1WZ4zh20QOppnGG05w==", "dev": true, "requires": { - "d3-dsv": "^2.0.0", - "node-fetch": "^2.6.1", + "d3-dsv": "^3.0.1", + "node-fetch": "^2.6.7", "topojson-client": "^3.1.0", - "vega-format": "^1.0.4", + "vega-format": "^1.1.0", "vega-util": "^1.16.0" } }, @@ -1482,33 +1377,25 @@ "vega-functions": "^5.12.1", "vega-scale": "^7.1.1", "vega-util": "^1.16.0" - }, - "dependencies": { - "vega-event-selector": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-3.0.0.tgz", - "integrity": "sha512-Gls93/+7tEJGE3kUuUnxrBIxtvaNeF01VIFB2Q2Of2hBIBvtHX74jcAdDtkh5UhhoYGD8Q1J30P5cqEBEwtPoQ==", - "dev": true - } } }, "vega-projection": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.5.tgz", - "integrity": "sha512-85kWcPv0zrrNfxescqHtSYpRknilrS0K3CVRZc7IYQxnLtL1oma9WEbrSr1LCmDoCP5hl2Z1kKbomPXkrQX5Ag==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/vega-projection/-/vega-projection-1.5.0.tgz", + "integrity": "sha512-aob7qojh555x3hQWZ/tr8cIJNSWQbm6EoWTJaheZgFOY2x3cDa4Qrg3RJbGw6KwVj/IQk2p40paRzixKZ2kr+A==", "dev": true, "requires": { - "d3-geo": "^2.0.1", - "d3-geo-projection": "^3.0.0" + "d3-geo": "^3.0.1", + "d3-geo-projection": "^4.0.0" } }, "vega-regression": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.9.tgz", - "integrity": "sha512-KSr3QbCF0vJEAWFVY2MA9X786oiJncTTr3gqRMPoaLr/Yo3f7OPKXRoUcw36RiWa0WCOEMgTYtM28iK6ZuSgaA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vega-regression/-/vega-regression-1.1.0.tgz", + "integrity": "sha512-09K0RemY6cdaXBAyakDUNFfEkRcLkGjkDJyWQPAUqGK59hV2J+G3i4uxkZp18Vu0t8oqU7CgzwWim1s5uEpOcA==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.3", "vega-statistics": "^1.7.9", "vega-util": "^1.15.2" @@ -1525,29 +1412,29 @@ } }, "vega-scale": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.1.tgz", - "integrity": "sha512-yE0to0prA9E5PBJ/XP77TO0BMkzyUVyt7TH5PAwj+CZT7PMsMO6ozihelRhoIiVcP0Ae/ByCEQBUQkzN5zJ0ZA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/vega-scale/-/vega-scale-7.2.0.tgz", + "integrity": "sha512-QYltO/otrZHLrCGGf06Y99XtPtqWXITr6rw7rO9oL+l3d9o5RFl9sjHrVxiM7v+vGoZVWbBd5IPbFhPsXZ6+TA==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-interpolate": "^2.0.1", - "d3-scale": "^3.2.2", - "vega-time": "^2.0.4", - "vega-util": "^1.15.2" + "d3-array": "^3.1.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "vega-time": "^2.1.0", + "vega-util": "^1.17.0" } }, "vega-scenegraph": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.4.tgz", - "integrity": "sha512-QaegQzbFE2yhYLNWAmHwAuguW3yTtQrmwvfxYT8tk0g+KKodrQ5WSmNrphWXhqwtsgVSvtdZkfp2IPeumcOQJg==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.10.1.tgz", + "integrity": "sha512-takIpkmNxYHhJYALOYzhTin3EDzbys6U4g+l1yJZVlXG9YTdiCMuEVAdtaQOCqF9/7qytD6pCrMxJY2HaoN0qQ==", "dev": true, "requires": { - "d3-path": "^2.0.0", - "d3-shape": "^2.0.0", + "d3-path": "^3.0.1", + "d3-shape": "^3.1.0", "vega-canvas": "^1.2.5", - "vega-loader": "^4.3.3", - "vega-scale": "^7.1.1", + "vega-loader": "^4.4.0", + "vega-scale": "^7.2.0", "vega-util": "^1.15.2" } }, @@ -1570,78 +1457,70 @@ "requires": { "internmap": "1 - 2" } - }, - "vega-expression": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vega-expression/-/vega-expression-5.0.0.tgz", - "integrity": "sha512-y5+c2frq0tGwJ7vYXzZcfVcIRF/QGfhf2e+bV1Z0iQs+M2lI1II1GPDdmOcMKimpoCVp/D61KUJDIGE1DSmk2w==", - "dev": true, - "requires": { - "@types/estree": "^0.0.50", - "vega-util": "^1.16.0" - } } } }, "vega-statistics": { - "version": "1.7.10", - "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.10.tgz", - "integrity": "sha512-QLb12gcfpDZ9K5h3TLGrlz4UXDH9wSPyg9LLfOJZacxvvJEPohacUQNrGEAVtFO9ccUCerRfH9cs25ZtHsOZrw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.8.0.tgz", + "integrity": "sha512-dl+LCRS6qS4jWDme/NEdPVt5r649uB4IK6Kyr2/czmGA5JqjuFmtQ9lHQOnRu8945XLkqLf+JIQQo7vnw+nslA==", "dev": true, "requires": { - "d3-array": "^2.7.1" + "d3-array": "^3.1.1" } }, "vega-time": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.0.4.tgz", - "integrity": "sha512-U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vega-time/-/vega-time-2.1.0.tgz", + "integrity": "sha512-Q9/l3S6Br1RPX5HZvyLD/cQ4K6K8DtpR09/1y7D66gxNorg2+HGzYZINH9nUvN3mxoXcBWg4cCUh3+JvmkDaEg==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-time": "^2.0.0", + "d3-array": "^3.1.1", + "d3-time": "^3.0.0", "vega-util": "^1.15.2" } }, "vega-transforms": { - "version": "4.9.4", - "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz", - "integrity": "sha512-JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.10.0.tgz", + "integrity": "sha512-Yk6ByzVq5F2niFfPlSsrU5wi+NZhsF7IBpJCcTfms4U7eoyNepUXagdFEJ3VWBD/Lit6GorLXFgO17NYcyS5gg==", "dev": true, "requires": { - "d3-array": "^2.7.1", + "d3-array": "^3.1.1", "vega-dataflow": "^5.7.4", - "vega-statistics": "^1.7.9", - "vega-time": "^2.0.4", + "vega-statistics": "^1.8.0", + "vega-time": "^2.1.0", "vega-util": "^1.16.1" } }, "vega-typings": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz", - "integrity": "sha512-dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==", + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/vega-typings/-/vega-typings-0.22.3.tgz", + "integrity": "sha512-PREcya3nXT9Tk7xU0IhEpOLVTlqizNtKXV55NhI6ApBjJtqVYbJL7IBh2ckKxGBy3YeUQ37BQZl56UqqiYVWBw==", "requires": { + "vega-event-selector": "^3.0.0", + "vega-expression": "^5.0.0", "vega-util": "^1.15.2" } }, "vega-util": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.16.1.tgz", - "integrity": "sha512-FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==" + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/vega-util/-/vega-util-1.17.0.tgz", + "integrity": "sha512-HTaydZd9De3yf+8jH66zL4dXJ1d1p5OIFyoBzFiOli4IJbwkL1jrefCKz6AHDm1kYBzDJ0X4bN+CzZSCTvNk1w==" }, "vega-view": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz", - "integrity": "sha512-4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/vega-view/-/vega-view-5.11.0.tgz", + "integrity": "sha512-MI9NTRFmtFX6ADk6KOHhi8bhHjC9pPm42Bj2+74c6l1d3NQZf9Jv7lkiGqKohdkQDNH9LPwz/6slhKwPU9JdkQ==", "dev": true, "requires": { - "d3-array": "^2.7.1", - "d3-timer": "^2.0.0", + "d3-array": "^3.1.1", + "d3-timer": "^3.0.1", "vega-dataflow": "^5.7.3", - "vega-format": "^1.0.4", - "vega-functions": "^5.10.0", + "vega-format": "^1.1.0", + "vega-functions": "^5.13.0", "vega-runtime": "^6.1.3", - "vega-scenegraph": "^4.9.4", + "vega-scenegraph": "^4.10.0", "vega-util": "^1.16.1" } }, @@ -1657,12 +1536,12 @@ } }, "vega-voronoi": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.5.tgz", - "integrity": "sha512-950IkgCFLj0zG33EWLAm1hZcp+FMqWcNQliMYt+MJzOD5S4MSpZpZ7K4wp2M1Jktjw/CLKFL9n38JCI0i3UonA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.2.0.tgz", + "integrity": "sha512-1iuNAVZgUHRlBpdq4gSga3KlQmrgFfwy+KpyDgPLQ8HbLkhcVeT7RDh2L6naluqD7Op0xVLms3clR920WsYryQ==", "dev": true, "requires": { - "d3-delaunay": "^5.3.0", + "d3-delaunay": "^6.0.2", "vega-dataflow": "^5.7.3", "vega-util": "^1.15.2" } diff --git a/packages/vega-morphcharts/package.json b/packages/vega-morphcharts/package.json index 0da7a4a61..fa437d6d0 100644 --- a/packages/vega-morphcharts/package.json +++ b/packages/vega-morphcharts/package.json @@ -30,12 +30,12 @@ "is-plain-object": "^5.0.0", "morphcharts": "^1", "tsx-create-element": "^2.2.5", - "vega-typings": "0.21.0" + "vega-typings": "0.22.3" }, "devDependencies": { "@types/d3-color": "^3.1.0", "@types/d3-ease": "^3.0.0", "@types/react": ">=16.8.0 <18.0.0", - "vega": "5.20.2" + "vega": "5.22.1" } }