Grabbed dndbeyond's source code

```
~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js
```
This commit is contained in:
2025-05-28 11:50:03 -07:00
commit 8df9031d27
3592 changed files with 319051 additions and 0 deletions
@@ -0,0 +1,94 @@
import { values, sortBy, has } from "lodash";
import React from "react";
import {
CharacterTheme,
Constants,
} from "@dndbeyond/character-rules-engine/es";
import {
GD_VehicleBlockComponentListProps,
GD_VehicleBlockComponentProps,
} from "../../../utils/Component";
import VehicleBlockComponent from "../VehicleBlockComponent";
import VehicleBlockComponentsShell from "../VehicleBlockComponentsShell";
interface Props extends GD_VehicleBlockComponentListProps {
shouldCoalesce: boolean;
isInteractive: boolean;
theme: CharacterTheme;
onComponentClick?: (componentId: number, vehicleId: number) => void;
}
export default class VehicleBlockComponents extends React.PureComponent<Props> {
static defaultProps = {
shouldCoalesce: true,
};
getComponentInfos = (): Array<GD_VehicleBlockComponentProps> => {
const { components, shouldCoalesce } = this.props;
let displayComponents: Array<GD_VehicleBlockComponentProps> = components;
if (shouldCoalesce) {
const uniquenessFactorLookup: Record<
string,
GD_VehicleBlockComponentProps
> = components.reduce(
(acc: Record<string, GD_VehicleBlockComponentProps>, component) => {
let uniqueness = component.uniquenessFactor;
if (!acc[uniqueness]) {
acc[uniqueness] = component;
} else {
acc[uniqueness].count += 1;
}
return acc;
},
{}
);
displayComponents = values(uniquenessFactorLookup);
}
return sortBy(displayComponents, (component) => component.displayOrder);
};
render() {
const { shouldCoalesce, isInteractive, onComponentClick, theme } =
this.props;
let components = this.getComponentInfos();
if (components.length === 0) {
return null;
}
// Components only not action stations (Currently due to Spelljammer)
// Filters out helm (primary component) from Spelljammer
components = components.filter(
(component) =>
!(
component.displayType ===
Constants.VehicleConfigurationDisplayTypeEnum.SPELLJAMMER &&
component.isPrimaryComponent
)
);
return (
<VehicleBlockComponentsShell>
{components.map((componentProps) => (
<VehicleBlockComponent
{...componentProps}
theme={theme}
isInteractive={
componentProps.enableComponentManagement && isInteractive
}
onComponentClick={onComponentClick}
shouldCoalesce={shouldCoalesce}
/>
))}
</VehicleBlockComponentsShell>
);
}
}
@@ -0,0 +1,4 @@
import VehicleBlockComponents from "./VehicleBlockComponents";
export default VehicleBlockComponents;
export { VehicleBlockComponents };