{
  "bomFormat": "CycloneDX",
  "specVersion": "1.7",
  "serialNumber": "urn:uuid:60bf680a-2477-417a-973c-21195271c271",
  "version": 1,
  "metadata": {
    "timestamp": "2026-08-25T16:26:52Z",
    "tools": {
      "components": [
        {
          "group": "@cyclonedx",
          "name": "cdxgen",
          "version": "12.8.4",
          "purl": "pkg:npm/%40cyclonedx/cdxgen@12.8.4",
          "type": "application",
          "bom-ref": "pkg:npm/@cyclonedx/cdxgen@12.8.4",
          "publisher": "OWASP Foundation",
          "authors": [
            {
              "name": "OWASP Foundation"
            }
          ]
        }
      ]
    },
    "authors": [
      {
        "name": "OWASP Foundation"
      }
    ],
    "lifecycles": [
      {
        "phase": "pre-build"
      }
    ],
    "component": {
      "name": "scrollgrid",
      "group": "@fullcalendar",
      "version": "6.1.21",
      "description": "Tabular data chunked into scrollable panes",
      "purl": "pkg:npm/%40fullcalendar/scrollgrid@6.1.21",
      "bom-ref": "pkg:npm/@fullcalendar/scrollgrid@6.1.21",
      "properties": [
        {
          "name": "cdx:npm:scripts",
          "value": "build, clean, lint"
        },
        {
          "name": "cdx:npm:buildScripts",
          "value": "build"
        }
      ],
      "type": "application"
    },
    "properties": [
      {
        "name": "cdx:bom:componentTypes",
        "value": "npm"
      },
      {
        "name": "cdx:bom:componentNamespaces",
        "value": "@fullcalendar\\n@fullcalendar-scripts"
      },
      {
        "name": "cdx:bom:componentSrcFiles",
        "value": "node_modules/@fullcalendar-scripts/standard/package.json\\nnode_modules/@fullcalendar/core/package.json\\nnode_modules/@fullcalendar/premium-common/package.json"
      }
    ]
  },
  "components": [
    {
      "group": "@fullcalendar-scripts",
      "name": "standard",
      "version": "0.0.0",
      "scope": "optional",
      "purl": "pkg:npm/%40fullcalendar-scripts/standard@0.0.0",
      "type": "library",
      "bom-ref": "pkg:npm/@fullcalendar-scripts/standard@0.0.0",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@fullcalendar-scripts/standard/package.json"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@fullcalendar-scripts/standard/package.json"
              }
            ],
            "concludedValue": "node_modules/@fullcalendar-scripts/standard/package.json"
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "Adam Shaw <arshaw@arshaw.com> (http://arshaw.com/)"
        }
      ],
      "group": "@fullcalendar",
      "name": "premium-common",
      "version": "6.1.21",
      "description": "Utilities for FullCalendar's premium plugins",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "name": "SEE LICENSE IN LICENSE.md",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Unstated License"
              },
              {
                "name": "cdx:license:foss",
                "value": "false"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "false"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "false"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/%40fullcalendar/premium-common@6.1.21",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://fullcalendar.io/docs/premium"
        },
        {
          "type": "vcs",
          "url": "https://github.com/fullcalendar/fullcalendar-workspace.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@fullcalendar/premium-common@6.1.21",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@fullcalendar/premium-common/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@fullcalendar/premium-common/index.js,@fullcalendar/premium-common/index.cjs,@fullcalendar/premium-common"
        },
        {
          "name": "cdx:license:category",
          "value": "Unstated License"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@fullcalendar/premium-common/package.json"
              }
            ],
            "concludedValue": "node_modules/@fullcalendar/premium-common/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/index.js",
            "line": 2
          },
          {
            "location": "dist/index.cjs",
            "line": 6
          },
          {
            "location": "src/ambient.ts",
            "line": 2
          },
          {
            "location": "src/index.ts",
            "line": 2
          }
        ]
      }
    },
    {
      "authors": [
        {
          "name": "Adam Shaw <arshaw@arshaw.com> (http://arshaw.com/)"
        }
      ],
      "group": "@fullcalendar",
      "name": "core",
      "version": "6.1.21",
      "description": "FullCalendar core package for rendering a calendar",
      "scope": "required",
      "licenses": [
        {
          "license": {
            "id": "MIT",
            "url": "https://opensource.org/licenses/MIT",
            "properties": [
              {
                "name": "cdx:license:category",
                "value": "Permissive"
              },
              {
                "name": "cdx:license:foss",
                "value": "true"
              },
              {
                "name": "cdx:license:osiApproved",
                "value": "true"
              },
              {
                "name": "cdx:license:fsfLibre",
                "value": "true"
              },
              {
                "name": "cdx:license:deprecated",
                "value": "false"
              }
            ]
          }
        }
      ],
      "purl": "pkg:npm/%40fullcalendar/core@6.1.21",
      "externalReferences": [
        {
          "type": "website",
          "url": "https://fullcalendar.io"
        },
        {
          "type": "vcs",
          "url": "https://github.com/fullcalendar/fullcalendar.git"
        }
      ],
      "type": "library",
      "bom-ref": "pkg:npm/@fullcalendar/core@6.1.21",
      "properties": [
        {
          "name": "SrcFile",
          "value": "node_modules/@fullcalendar/core/package.json"
        },
        {
          "name": "ImportedModules",
          "value": "@fullcalendar/core/index.js,createPlugin,@fullcalendar/core/index.js/createPlugin,@fullcalendar/core/internal.js,computeEdges,@fullcalendar/core/internal.js/computeEdges,removeElement,@fullcalendar/core/internal.js/removeElement,findElements,@fullcalendar/core/internal.js/findElements,translateRect,@fullcalendar/core/internal.js/translateRect,computeInnerRect,@fullcalendar/core/internal.js/computeInnerRect,applyStyle,@fullcalendar/core/internal.js/applyStyle,BaseComponent,@fullcalendar/core/internal.js/BaseComponent,setRef,@fullcalendar/core/internal.js/setRef,getIsRtlScrollbarOnLeft,@fullcalendar/core/internal.js/getIsRtlScrollbarOnLeft,Scroller,@fullcalendar/core/internal.js/Scroller,isPropsEqual,@fullcalendar/core/internal.js/isPropsEqual,Emitter,@fullcalendar/core/internal.js/Emitter,DelayedRunner,@fullcalendar/core/internal.js/DelayedRunner,config,@fullcalendar/core/internal.js/config,memoizeArraylike,@fullcalendar/core/internal.js/memoizeArraylike,renderMicroColGroup,@fullcalendar/core/internal.js/renderMicroColGroup,RefMap,@fullcalendar/core/internal.js/RefMap,getScrollGridClassNames,@fullcalendar/core/internal.js/getScrollGridClassNames,getCanVGrowWithinCell,@fullcalendar/core/internal.js/getCanVGrowWithinCell,getSectionClassNames,@fullcalendar/core/internal.js/getSectionClassNames,getAllowYScrolling,@fullcalendar/core/internal.js/getAllowYScrolling,getSectionHasLiquidHeight,@fullcalendar/core/internal.js/getSectionHasLiquidHeight,renderChunkContent,@fullcalendar/core/internal.js/renderChunkContent,memoizeHashlike,@fullcalendar/core/internal.js/memoizeHashlike,computeShrinkWidth,@fullcalendar/core/internal.js/computeShrinkWidth,getScrollbarWidths,@fullcalendar/core/internal.js/getScrollbarWidths,collectFromHash,@fullcalendar/core/internal.js/collectFromHash,mapHash,@fullcalendar/core/internal.js/mapHash,isArraysEqual,@fullcalendar/core/internal.js/isArraysEqual,sanitizeShrinkWidth,@fullcalendar/core/internal.js/sanitizeShrinkWidth,hasShrinkWidth,@fullcalendar/core/internal.js/hasShrinkWidth,compareObjs,@fullcalendar/core/internal.js/compareObjs,isColPropsEqual,@fullcalendar/core/internal.js/isColPropsEqual,@fullcalendar/core/preact.js,createRef,@fullcalendar/core/preact.js/createRef,createElement,@fullcalendar/core/preact.js/createElement,Fragment,@fullcalendar/core/preact.js/Fragment,@fullcalendar/core/index.cjs,@fullcalendar/core/internal.cjs,@fullcalendar/core/preact.cjs,@fullcalendar/core/internal,@fullcalendar/core/internal/Emitter,@fullcalendar/core/internal/DelayedRunner,@fullcalendar/core/internal/applyStyle,@fullcalendar/core/internal/translateRect,Rect,@fullcalendar/core/internal/Rect,@fullcalendar/core/internal/findElements,@fullcalendar/core/internal/computeInnerRect,@fullcalendar/core/internal/removeElement,@fullcalendar/core/internal/computeEdges,@fullcalendar/core/internal/BaseComponent,@fullcalendar/core/internal/setRef,ScrollerLike,@fullcalendar/core/internal/ScrollerLike,@fullcalendar/core/internal/Scroller,OverflowValue,@fullcalendar/core/internal/OverflowValue,@fullcalendar/core/internal/getIsRtlScrollbarOnLeft,@fullcalendar/core/internal/isPropsEqual,@fullcalendar/core/internal/isArraysEqual,@fullcalendar/core/internal/mapHash,@fullcalendar/core/internal/RefMap,ColProps,@fullcalendar/core/internal/ColProps,@fullcalendar/core/internal/hasShrinkWidth,@fullcalendar/core/internal/renderMicroColGroup,ScrollGridProps,@fullcalendar/core/internal/ScrollGridProps,ScrollGridSectionConfig,@fullcalendar/core/internal/ScrollGridSectionConfig,ColGroupConfig,@fullcalendar/core/internal/ColGroupConfig,@fullcalendar/core/internal/getScrollGridClassNames,@fullcalendar/core/internal/getSectionClassNames,@fullcalendar/core/internal/getSectionHasLiquidHeight,@fullcalendar/core/internal/getAllowYScrolling,@fullcalendar/core/internal/renderChunkContent,@fullcalendar/core/internal/computeShrinkWidth,@fullcalendar/core/internal/sanitizeShrinkWidth,@fullcalendar/core/internal/compareObjs,@fullcalendar/core/internal/isColPropsEqual,@fullcalendar/core/internal/getScrollbarWidths,@fullcalendar/core/internal/memoizeArraylike,MemoiseArrayFunc,@fullcalendar/core/internal/MemoiseArrayFunc,@fullcalendar/core/internal/collectFromHash,@fullcalendar/core/internal/memoizeHashlike,MemoizeHashFunc,@fullcalendar/core/internal/MemoizeHashFunc,ScrollGridChunkConfig,@fullcalendar/core/internal/ScrollGridChunkConfig,@fullcalendar/core/internal/getCanVGrowWithinCell,@fullcalendar/core/internal/config,@fullcalendar/core,CssDimValue,@fullcalendar/core/CssDimValue,globalPlugins,@fullcalendar/core/globalPlugins,@fullcalendar/core/createPlugin,PluginDef,@fullcalendar/core/PluginDef,@fullcalendar/core/preact,@fullcalendar/core/preact/createElement,ComponentChildren,@fullcalendar/core/preact/ComponentChildren,@fullcalendar/core/preact/createRef,@fullcalendar/core/preact/Ref,VNode,@fullcalendar/core/preact/VNode,@fullcalendar/core/preact/Fragment"
        },
        {
          "name": "cdx:license:category",
          "value": "Permissive"
        }
      ],
      "evidence": {
        "identity": [
          {
            "field": "purl",
            "confidence": 0.7,
            "methods": [
              {
                "technique": "manifest-analysis",
                "confidence": 0.7,
                "value": "node_modules/@fullcalendar/core/package.json"
              }
            ],
            "concludedValue": "node_modules/@fullcalendar/core/package.json"
          }
        ],
        "occurrences": [
          {
            "location": "dist/index.js",
            "line": 1
          },
          {
            "location": "dist/index.js",
            "line": 7
          },
          {
            "location": "dist/index.js",
            "line": 4
          },
          {
            "location": "dist/internal.js",
            "line": 1
          },
          {
            "location": "dist/internal.js",
            "line": 7
          },
          {
            "location": "dist/internal.js",
            "line": 72
          },
          {
            "location": "dist/internal.js",
            "line": 91
          },
          {
            "location": "dist/internal.js",
            "line": 102
          },
          {
            "location": "dist/internal.js",
            "line": 115
          },
          {
            "location": "dist/internal.js",
            "line": 141
          },
          {
            "location": "dist/internal.js",
            "line": 159
          },
          {
            "location": "dist/internal.js",
            "line": 173
          },
          {
            "location": "dist/internal.js",
            "line": 212
          },
          {
            "location": "dist/internal.js",
            "line": 399
          },
          {
            "location": "dist/internal.js",
            "line": 400
          },
          {
            "location": "dist/internal.js",
            "line": 464
          },
          {
            "location": "dist/internal.js",
            "line": 486
          },
          {
            "location": "dist/internal.js",
            "line": 498
          },
          {
            "location": "dist/internal.js",
            "line": 508
          },
          {
            "location": "dist/internal.js",
            "line": 514
          },
          {
            "location": "dist/internal.js",
            "line": 515
          },
          {
            "location": "dist/internal.js",
            "line": 518
          },
          {
            "location": "dist/internal.js",
            "line": 544
          },
          {
            "location": "dist/internal.js",
            "line": 545
          },
          {
            "location": "dist/internal.js",
            "line": 546
          },
          {
            "location": "dist/internal.js",
            "line": 578
          },
          {
            "location": "dist/internal.js",
            "line": 599
          },
          {
            "location": "dist/internal.js",
            "line": 670
          },
          {
            "location": "dist/internal.js",
            "line": 672
          },
          {
            "location": "dist/internal.js",
            "line": 729
          },
          {
            "location": "dist/internal.js",
            "line": 738
          },
          {
            "location": "dist/internal.js",
            "line": 739
          },
          {
            "location": "dist/internal.js",
            "line": 763
          },
          {
            "location": "dist/internal.js",
            "line": 769
          },
          {
            "location": "dist/internal.js",
            "line": 791
          },
          {
            "location": "dist/internal.js",
            "line": 804
          },
          {
            "location": "dist/internal.js",
            "line": 814
          },
          {
            "location": "dist/internal.js",
            "line": 839
          },
          {
            "location": "dist/index.js",
            "line": 5
          },
          {
            "location": "dist/internal.js",
            "line": 2
          },
          {
            "location": "dist/internal.js",
            "line": 152
          },
          {
            "location": "dist/internal.js",
            "line": 195
          },
          {
            "location": "dist/internal.js",
            "line": 196
          },
          {
            "location": "dist/internal.js",
            "line": 488
          },
          {
            "location": "dist/internal.js",
            "line": 492
          },
          {
            "location": "dist/internal.js",
            "line": 496
          },
          {
            "location": "dist/internal.js",
            "line": 502
          },
          {
            "location": "dist/internal.js",
            "line": 536
          },
          {
            "location": "dist/internal.js",
            "line": 537
          },
          {
            "location": "dist/internal.js",
            "line": 807
          },
          {
            "location": "dist/internal.js",
            "line": 809
          },
          {
            "location": "dist/index.cjs",
            "line": 5
          },
          {
            "location": "dist/index.cjs",
            "line": 8
          },
          {
            "location": "dist/internal.cjs",
            "line": 5
          },
          {
            "location": "dist/index.cjs",
            "line": 9
          },
          {
            "location": "dist/internal.cjs",
            "line": 6
          },
          {
            "location": "src/ScrollListener.ts",
            "line": 1
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 7
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 40
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 53
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 54
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 71
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 106
          },
          {
            "location": "src/scroll-left-norm.ts",
            "line": 1
          },
          {
            "location": "src/scroll-left-norm.ts",
            "line": 6
          },
          {
            "location": "src/scroll-left-norm.ts",
            "line": 84
          },
          {
            "location": "src/ClippedScroller.tsx",
            "line": 8
          },
          {
            "location": "src/ClippedScroller.tsx",
            "line": 49
          },
          {
            "location": "src/ClippedScroller.tsx",
            "line": 103
          },
          {
            "location": "src/ClippedScroller.tsx",
            "line": 121
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 26
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 57
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 58
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 94
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 150
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 188
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 227
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 235
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 237
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 241
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 290
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 291
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 292
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 387
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 415
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 507
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 509
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 590
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 602
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 603
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 635
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 643
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 672
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 690
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 704
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 736
          },
          {
            "location": "src/StickyScrolling.ts",
            "line": 1
          },
          {
            "location": "src/index.global.ts",
            "line": 1
          },
          {
            "location": "src/index.global.ts",
            "line": 5
          },
          {
            "location": "src/index.ts",
            "line": 1
          },
          {
            "location": "src/index.ts",
            "line": 6
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 1
          },
          {
            "location": "src/ClippedScroller.tsx",
            "line": 14
          },
          {
            "location": "src/ClippedScroller.tsx",
            "line": 39
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 27
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 153
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 161
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 162
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 163
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 164
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 278
          },
          {
            "location": "src/ScrollGrid.tsx",
            "line": 698
          }
        ]
      }
    }
  ],
  "dependencies": [],
  "annotations": [
    {
      "bom-ref": "metadata-annotations",
      "subjects": [
        "pkg:npm/@fullcalendar/scrollgrid@6.1.21"
      ],
      "annotator": {
        "component": {
          "group": "@cyclonedx",
          "name": "cdxgen",
          "version": "12.8.4",
          "purl": "pkg:npm/%40cyclonedx/cdxgen@12.8.4",
          "type": "application",
          "bom-ref": "pkg:npm/@cyclonedx/cdxgen@12.8.4",
          "publisher": "OWASP Foundation",
          "authors": [
            {
              "name": "OWASP Foundation"
            }
          ]
        }
      },
      "timestamp": "2026-08-25T16:26:52Z",
      "text": "This Software Bill-of-Materials (SBOM) document was created on Tuesday, August 25, 2026 with cdxgen. The data was captured during the pre-build lifecycle phase without building the application. The document describes an application named 'scrollgrid' with version '6.1.21'. The package type in this SBOM is npm with 2 purl namespaces described under components. The components were identified from 3 source files."
    }
  ]
}