- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117) - AppNav, ListingCard, SearchView with filters/sort, composables (useSnipeMode, useKonamiCode, useMotion), Pinia search store - Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue - docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve) - compose.yml: api (8510) + web (8509) services - Dockerfile CMD updated to uvicorn for upcoming FastAPI layer - Clean build: 0 TS errors, 380 modules
18 lines
No EOL
655 B
JavaScript
18 lines
No EOL
655 B
JavaScript
import { defaultExtendedIconProps, defaultIconTransformations } from "./defaults.js";
|
|
import { mergeIconTransformations } from "./transformations.js";
|
|
|
|
/**
|
|
* Merge icon and alias
|
|
*
|
|
* Can also be used to merge default values and icon
|
|
*/
|
|
function mergeIconData(parent, child) {
|
|
const result = mergeIconTransformations(parent, child);
|
|
for (const key in defaultExtendedIconProps) if (key in defaultIconTransformations) {
|
|
if (key in parent && !(key in result)) result[key] = defaultIconTransformations[key];
|
|
} else if (key in child) result[key] = child[key];
|
|
else if (key in parent) result[key] = parent[key];
|
|
return result;
|
|
}
|
|
|
|
export { mergeIconData }; |