Packages

Advanced configurable navigation component for Phoenix LiveView with native DaisyUI integration, Tailwind CSS support, permissions filtering, dropdowns, mega menus, and modern responsive design. Optimized for Phoenix 1.8+ and LiveView 1.1+.

Current section

Files

Jump to
navbuddy assets node_modules culori src interpolate splineNatural.js
Raw

assets/node_modules/culori/src/interpolate/splineNatural.js

import {
interpolatorSplineBasisClosed,
interpolatorSplineBasis
} from './splineBasis.js';
const solve = v => {
let i;
let n = v.length - 1;
let c = new Array(n);
let _v = new Array(n);
let sol = new Array(n);
c[1] = 1 / 4;
_v[1] = (6 * v[1] - v[0]) / 4;
for (i = 2; i < n; ++i) {
c[i] = 1 / (4 - c[i - 1]);
_v[i] = (6 * v[i] - (i == n - 1 ? v[n] : 0) - _v[i - 1]) * c[i];
}
sol[0] = v[0];
sol[n] = v[n];
if (n - 1 > 0) {
sol[n - 1] = _v[n - 1];
}
for (i = n - 2; i > 0; --i) {
sol[i] = _v[i] - c[i] * sol[i + 1];
}
return sol;
};
export const interpolatorSplineNatural = arr =>
interpolatorSplineBasis(solve(arr));
export const interpolatorSplineNaturalClosed = arr =>
interpolatorSplineBasisClosed(solve(arr));