增加部分结构的构造函数。

This commit is contained in:
徐涛 2025-02-10 14:31:32 +08:00
parent 88e3d1f928
commit f944d48e1b
10 changed files with 371 additions and 204 deletions

View File

@ -12,6 +12,18 @@ pub struct HctDiffference {
pub lightness: Differ, pub lightness: Differ,
} }
#[wasm_bindgen]
impl HctDiffference {
#[wasm_bindgen(constructor)]
pub fn new(hue: Differ, chroma: Differ, lightness: Differ) -> Self {
Self {
hue,
chroma,
lightness,
}
}
}
impl ColorDifference for Cam16Jch<f32> { impl ColorDifference for Cam16Jch<f32> {
type Difference = HctDiffference; type Difference = HctDiffference;

View File

@ -12,6 +12,18 @@ pub struct HSLDifference {
pub lightness: Differ, pub lightness: Differ,
} }
#[wasm_bindgen]
impl HSLDifference {
#[wasm_bindgen(constructor)]
pub fn new(hue: Differ, saturation: Differ, lightness: Differ) -> Self {
Self {
hue,
saturation,
lightness,
}
}
}
impl ColorDifference for Hsl { impl ColorDifference for Hsl {
type Difference = HSLDifference; type Difference = HSLDifference;

View File

@ -13,6 +13,14 @@ pub struct Differ {
pub percent: f32, pub percent: f32,
} }
#[wasm_bindgen]
impl Differ {
#[wasm_bindgen(constructor)]
pub fn new(delta: f32, percent: f32) -> Self {
Self { delta, percent }
}
}
pub trait ColorDifference { pub trait ColorDifference {
type Difference; type Difference;

View File

@ -12,6 +12,18 @@ pub struct OklchDifference {
pub lightness: Differ, pub lightness: Differ,
} }
#[wasm_bindgen]
impl OklchDifference {
#[wasm_bindgen(constructor)]
pub fn new(hue: Differ, chroma: Differ, lightness: Differ) -> Self {
Self {
hue,
chroma,
lightness,
}
}
}
impl ColorDifference for Oklch { impl ColorDifference for Oklch {
type Difference = OklchDifference; type Difference = OklchDifference;

View File

@ -12,6 +12,14 @@ pub struct RGBDifference {
pub b: Differ, pub b: Differ,
} }
#[wasm_bindgen]
impl RGBDifference {
#[wasm_bindgen(constructor)]
pub fn new(r: Differ, g: Differ, b: Differ) -> Self {
Self { r, g, b }
}
}
impl ColorDifference for Srgb { impl ColorDifference for Srgb {
type Difference = RGBDifference; type Difference = RGBDifference;

View File

@ -11,6 +11,19 @@ pub struct MixReversing {
pub average: f32, pub average: f32,
} }
#[wasm_bindgen]
impl MixReversing {
#[wasm_bindgen(constructor)]
pub fn new(r_factor: f32, g_factor: f32, b_factor: f32, average: f32) -> Self {
Self {
r_factor,
g_factor,
b_factor,
average,
}
}
}
impl MixReversing { impl MixReversing {
pub fn from_tint_rgb(basic_color: Rgb, mixed_result: Rgb) -> Self { pub fn from_tint_rgb(basic_color: Rgb, mixed_result: Rgb) -> Self {
let r_factor = if basic_color.red == 1.0 { let r_factor = if basic_color.red == 1.0 {

View File

@ -10,6 +10,11 @@ export function generate_swatch_scheme(colors: SwatchEntry[], setting: SwatchSch
export function q_scheme_color_expanding_methods(): any; export function q_scheme_color_expanding_methods(): any;
export function q_scheme_wacg_settings(): any; export function q_scheme_wacg_settings(): any;
export function q_scheme_default_settings(): SchemeSetting; export function q_scheme_default_settings(): SchemeSetting;
export function generate_palette_from_color(reference_color: string, swatch_amount: number, minimum_lightness: number, maximum_lightness: number, use_reference_color?: boolean | null, reference_color_bias?: number | null): string[];
export function swatch_scheme_default_settings(): SwatchSchemeSetting;
export function series(color: string, expand_amount: number, step: number): string[];
export function tonal_lighten_series(color: string, expand_amount: number, step: number): string[];
export function tonal_darken_series(color: string, expand_amount: number, step: number): string[];
export function shift_hue(color: string, degree: number): string; export function shift_hue(color: string, degree: number): string;
export function analogous_30(color: string): string[]; export function analogous_30(color: string): string[];
export function analogous_60(color: string): string[]; export function analogous_60(color: string): string[];
@ -45,11 +50,6 @@ export function darken_absolute(color: string, value: number): string;
export function mix(color1: string, color2: string, percent: number): string; export function mix(color1: string, color2: string, percent: number): string;
export function tint(color: string, percent: number): string; export function tint(color: string, percent: number): string;
export function shade(color: string, percent: number): string; export function shade(color: string, percent: number): string;
export function generate_palette_from_color(reference_color: string, swatch_amount: number, minimum_lightness: number, maximum_lightness: number, use_reference_color?: boolean | null, reference_color_bias?: number | null): string[];
export function swatch_scheme_default_settings(): SwatchSchemeSetting;
export function series(color: string, expand_amount: number, step: number): string[];
export function tonal_lighten_series(color: string, expand_amount: number, step: number): string[];
export function tonal_darken_series(color: string, expand_amount: number, step: number): string[];
export enum ColorExpand { export enum ColorExpand {
Complementary = 0, Complementary = 0,
Analogous = 1, Analogous = 1,
@ -73,43 +73,43 @@ export class ColorShifting {
lightness: number; lightness: number;
} }
export class Differ { export class Differ {
private constructor();
free(): void; free(): void;
constructor(delta: number, percent: number);
delta: number; delta: number;
percent: number; percent: number;
} }
export class HSLDifference { export class HSLDifference {
private constructor();
free(): void; free(): void;
constructor(hue: Differ, saturation: Differ, lightness: Differ);
hue: Differ; hue: Differ;
saturation: Differ; saturation: Differ;
lightness: Differ; lightness: Differ;
} }
export class HctDiffference { export class HctDiffference {
private constructor();
free(): void; free(): void;
constructor(hue: Differ, chroma: Differ, lightness: Differ);
hue: Differ; hue: Differ;
chroma: Differ; chroma: Differ;
lightness: Differ; lightness: Differ;
} }
export class MixReversing { export class MixReversing {
private constructor();
free(): void; free(): void;
constructor(r_factor: number, g_factor: number, b_factor: number, average: number);
r_factor: number; r_factor: number;
g_factor: number; g_factor: number;
b_factor: number; b_factor: number;
average: number; average: number;
} }
export class OklchDifference { export class OklchDifference {
private constructor();
free(): void; free(): void;
constructor(hue: Differ, chroma: Differ, lightness: Differ);
hue: Differ; hue: Differ;
chroma: Differ; chroma: Differ;
lightness: Differ; lightness: Differ;
} }
export class RGBDifference { export class RGBDifference {
private constructor();
free(): void; free(): void;
constructor(r: Differ, g: Differ, b: Differ);
r: Differ; r: Differ;
g: Differ; g: Differ;
b: Differ; b: Differ;
@ -186,6 +186,7 @@ export interface InitOutput {
readonly __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; readonly __wbg_set_oklchdifference_chroma: (a: number, b: number) => void;
readonly __wbg_get_oklchdifference_lightness: (a: number) => number; readonly __wbg_get_oklchdifference_lightness: (a: number) => number;
readonly __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; readonly __wbg_set_oklchdifference_lightness: (a: number, b: number) => void;
readonly oklchdifference_new: (a: number, b: number, c: number) => number;
readonly __wbg_mixreversing_free: (a: number, b: number) => void; readonly __wbg_mixreversing_free: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_r_factor: (a: number) => number; readonly __wbg_get_mixreversing_r_factor: (a: number) => number;
readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void;
@ -195,6 +196,7 @@ export interface InitOutput {
readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void;
readonly __wbg_get_mixreversing_average: (a: number) => number; readonly __wbg_get_mixreversing_average: (a: number) => number;
readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; readonly __wbg_set_mixreversing_average: (a: number, b: number) => void;
readonly mixreversing_new: (a: number, b: number, c: number, d: number) => number;
readonly q_scheme_color_expanding_methods: () => [number, number, number]; readonly q_scheme_color_expanding_methods: () => [number, number, number];
readonly q_scheme_wacg_settings: () => [number, number, number]; readonly q_scheme_wacg_settings: () => [number, number, number];
readonly q_scheme_default_settings: () => number; readonly q_scheme_default_settings: () => number;
@ -203,24 +205,7 @@ export interface InitOutput {
readonly __wbg_set_differ_delta: (a: number, b: number) => void; readonly __wbg_set_differ_delta: (a: number, b: number) => void;
readonly __wbg_get_differ_percent: (a: number) => number; readonly __wbg_get_differ_percent: (a: number) => number;
readonly __wbg_set_differ_percent: (a: number, b: number) => void; readonly __wbg_set_differ_percent: (a: number, b: number) => void;
readonly shift_hue: (a: number, b: number, c: number) => [number, number, number, number]; readonly differ_new: (a: number, b: number) => number;
readonly analogous_30: (a: number, b: number) => [number, number, number, number];
readonly analogous_60: (a: number, b: number) => [number, number, number, number];
readonly complementary: (a: number, b: number) => [number, number, number, number];
readonly split_complementary: (a: number, b: number) => [number, number, number, number];
readonly tetradic: (a: number, b: number) => [number, number, number, number];
readonly triadic: (a: number, b: number) => [number, number, number, number];
readonly represent_rgb: (a: number, b: number) => [number, number, number, number];
readonly rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_hsl: (a: number, b: number) => [number, number, number, number];
readonly hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_lab: (a: number, b: number) => [number, number, number, number];
readonly lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_oklch: (a: number, b: number) => [number, number, number, number];
readonly oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_hct: (a: number, b: number) => [number, number, number, number];
readonly hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly __wbg_hctdiffference_free: (a: number, b: number) => void; readonly __wbg_hctdiffference_free: (a: number, b: number) => void;
readonly __wbg_get_hctdiffference_hue: (a: number) => number; readonly __wbg_get_hctdiffference_hue: (a: number) => number;
readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void;
@ -228,37 +213,7 @@ export interface InitOutput {
readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void;
readonly __wbg_get_hctdiffference_lightness: (a: number) => number; readonly __wbg_get_hctdiffference_lightness: (a: number) => number;
readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void;
readonly differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly hctdiffference_new: (a: number, b: number, c: number) => number;
readonly relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly tint_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly shade_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly __wbg_hsldifference_free: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_hue: (a: number) => number;
readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_saturation: (a: number) => number;
readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_lightness: (a: number) => number;
readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void;
readonly lighten: (a: number, b: number, c: number) => [number, number, number, number];
readonly lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number];
readonly darken: (a: number, b: number, c: number) => [number, number, number, number];
readonly darken_absolute: (a: number, b: number, c: number) => [number, number, number, number];
readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
readonly tint: (a: number, b: number, c: number) => [number, number, number, number];
readonly shade: (a: number, b: number, c: number) => [number, number, number, number];
readonly __wbg_rgbdifference_free: (a: number, b: number) => void;
readonly __wbg_get_rgbdifference_r: (a: number) => number;
readonly __wbg_set_rgbdifference_r: (a: number, b: number) => void;
readonly __wbg_get_rgbdifference_g: (a: number) => number;
readonly __wbg_set_rgbdifference_g: (a: number, b: number) => void;
readonly __wbg_get_rgbdifference_b: (a: number) => number;
readonly __wbg_set_rgbdifference_b: (a: number, b: number) => void;
readonly generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; readonly generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void; readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void;
readonly __wbg_get_swatchschemesetting_amount: (a: number) => number; readonly __wbg_get_swatchschemesetting_amount: (a: number) => number;
@ -284,14 +239,65 @@ export interface InitOutput {
readonly series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly series: (a: number, b: number, c: number, d: number) => [number, number, number, number];
readonly tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number];
readonly tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number];
readonly shift_hue: (a: number, b: number, c: number) => [number, number, number, number];
readonly analogous_30: (a: number, b: number) => [number, number, number, number];
readonly analogous_60: (a: number, b: number) => [number, number, number, number];
readonly complementary: (a: number, b: number) => [number, number, number, number];
readonly split_complementary: (a: number, b: number) => [number, number, number, number];
readonly tetradic: (a: number, b: number) => [number, number, number, number];
readonly triadic: (a: number, b: number) => [number, number, number, number];
readonly represent_rgb: (a: number, b: number) => [number, number, number, number];
readonly rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_hsl: (a: number, b: number) => [number, number, number, number];
readonly hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_lab: (a: number, b: number) => [number, number, number, number];
readonly lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_oklch: (a: number, b: number) => [number, number, number, number];
readonly oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly represent_hct: (a: number, b: number) => [number, number, number, number];
readonly hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
readonly wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly __wbg_rgbdifference_free: (a: number, b: number) => void;
readonly __wbg_get_rgbdifference_r: (a: number) => number;
readonly __wbg_set_rgbdifference_r: (a: number, b: number) => void;
readonly __wbg_get_rgbdifference_g: (a: number) => number;
readonly __wbg_set_rgbdifference_g: (a: number, b: number) => void;
readonly __wbg_get_rgbdifference_b: (a: number) => number;
readonly __wbg_set_rgbdifference_b: (a: number, b: number) => void;
readonly rgbdifference_new: (a: number, b: number, c: number) => number;
readonly differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly tint_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly shade_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
readonly __wbg_hsldifference_free: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_hue: (a: number) => number;
readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_saturation: (a: number) => number;
readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void;
readonly __wbg_get_hsldifference_lightness: (a: number) => number;
readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void;
readonly hsldifference_new: (a: number, b: number, c: number) => number;
readonly lighten: (a: number, b: number, c: number) => [number, number, number, number];
readonly lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number];
readonly darken: (a: number, b: number, c: number) => [number, number, number, number];
readonly darken_absolute: (a: number, b: number, c: number) => [number, number, number, number];
readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
readonly tint: (a: number, b: number, c: number) => [number, number, number, number];
readonly shade: (a: number, b: number, c: number) => [number, number, number, number];
readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_malloc: (a: number, b: number) => number;
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
readonly __wbindgen_exn_store: (a: number) => void; readonly __wbindgen_exn_store: (a: number) => void;
readonly __externref_table_alloc: () => number; readonly __externref_table_alloc: () => number;
readonly __wbindgen_export_4: WebAssembly.Table; readonly __wbindgen_export_4: WebAssembly.Table;
readonly __externref_table_dealloc: (a: number) => void; readonly __externref_table_dealloc: (a: number) => void;
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
readonly __externref_drop_slice: (a: number, b: number) => void; readonly __externref_drop_slice: (a: number, b: number) => void;
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
readonly __wbindgen_start: () => void; readonly __wbindgen_start: () => void;
} }

View File

@ -379,6 +379,99 @@ export function q_scheme_default_settings() {
return SchemeSetting.__wrap(ret); return SchemeSetting.__wrap(ret);
} }
function getArrayJsValueFromWasm0(ptr, len) {
ptr = ptr >>> 0;
const mem = getDataViewMemory0();
const result = [];
for (let i = ptr; i < ptr + 4 * len; i += 4) {
result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
}
wasm.__externref_drop_slice(ptr, len);
return result;
}
/**
* @param {string} reference_color
* @param {number} swatch_amount
* @param {number} minimum_lightness
* @param {number} maximum_lightness
* @param {boolean | null} [use_reference_color]
* @param {number | null} [reference_color_bias]
* @returns {string[]}
*/
export function generate_palette_from_color(reference_color, swatch_amount, minimum_lightness, maximum_lightness, use_reference_color, reference_color_bias) {
const ptr0 = passStringToWasm0(reference_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.generate_palette_from_color(ptr0, len0, swatch_amount, minimum_lightness, maximum_lightness, isLikeNone(use_reference_color) ? 0xFFFFFF : use_reference_color ? 1 : 0, isLikeNone(reference_color_bias) ? 0xFFFFFF : reference_color_bias);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/**
* @returns {SwatchSchemeSetting}
*/
export function swatch_scheme_default_settings() {
const ret = wasm.swatch_scheme_default_settings();
return SwatchSchemeSetting.__wrap(ret);
}
/**
* @param {string} color
* @param {number} expand_amount
* @param {number} step
* @returns {string[]}
*/
export function series(color, expand_amount, step) {
const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.series(ptr0, len0, expand_amount, step);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/**
* @param {string} color
* @param {number} expand_amount
* @param {number} step
* @returns {string[]}
*/
export function tonal_lighten_series(color, expand_amount, step) {
const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.tonal_lighten_series(ptr0, len0, expand_amount, step);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/**
* @param {string} color
* @param {number} expand_amount
* @param {number} step
* @returns {string[]}
*/
export function tonal_darken_series(color, expand_amount, step) {
const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.tonal_darken_series(ptr0, len0, expand_amount, step);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/** /**
* @param {string} color * @param {string} color
* @param {number} degree * @param {number} degree
@ -405,16 +498,6 @@ export function shift_hue(color, degree) {
} }
} }
function getArrayJsValueFromWasm0(ptr, len) {
ptr = ptr >>> 0;
const mem = getDataViewMemory0();
const result = [];
for (let i = ptr; i < ptr + 4 * len; i += 4) {
result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true)));
}
wasm.__externref_drop_slice(ptr, len);
return result;
}
/** /**
* @param {string} color * @param {string} color
* @returns {string[]} * @returns {string[]}
@ -1114,89 +1197,6 @@ export function shade(color, percent) {
} }
} }
/**
* @param {string} reference_color
* @param {number} swatch_amount
* @param {number} minimum_lightness
* @param {number} maximum_lightness
* @param {boolean | null} [use_reference_color]
* @param {number | null} [reference_color_bias]
* @returns {string[]}
*/
export function generate_palette_from_color(reference_color, swatch_amount, minimum_lightness, maximum_lightness, use_reference_color, reference_color_bias) {
const ptr0 = passStringToWasm0(reference_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.generate_palette_from_color(ptr0, len0, swatch_amount, minimum_lightness, maximum_lightness, isLikeNone(use_reference_color) ? 0xFFFFFF : use_reference_color ? 1 : 0, isLikeNone(reference_color_bias) ? 0xFFFFFF : reference_color_bias);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/**
* @returns {SwatchSchemeSetting}
*/
export function swatch_scheme_default_settings() {
const ret = wasm.swatch_scheme_default_settings();
return SwatchSchemeSetting.__wrap(ret);
}
/**
* @param {string} color
* @param {number} expand_amount
* @param {number} step
* @returns {string[]}
*/
export function series(color, expand_amount, step) {
const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.series(ptr0, len0, expand_amount, step);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/**
* @param {string} color
* @param {number} expand_amount
* @param {number} step
* @returns {string[]}
*/
export function tonal_lighten_series(color, expand_amount, step) {
const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.tonal_lighten_series(ptr0, len0, expand_amount, step);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/**
* @param {string} color
* @param {number} expand_amount
* @param {number} step
* @returns {string[]}
*/
export function tonal_darken_series(color, expand_amount, step) {
const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
const len0 = WASM_VECTOR_LEN;
const ret = wasm.tonal_darken_series(ptr0, len0, expand_amount, step);
if (ret[3]) {
throw takeFromExternrefTable0(ret[2]);
}
var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
wasm.__wbindgen_free(ret[0], ret[1] * 4, 4);
return v2;
}
/** /**
* @enum {0 | 1 | 2 | 3 | 4 | 5 | 6} * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6}
*/ */
@ -1343,6 +1343,16 @@ export class Differ {
set percent(arg0) { set percent(arg0) {
wasm.__wbg_set_differ_percent(this.__wbg_ptr, arg0); wasm.__wbg_set_differ_percent(this.__wbg_ptr, arg0);
} }
/**
* @param {number} delta
* @param {number} percent
*/
constructor(delta, percent) {
const ret = wasm.differ_new(delta, percent);
this.__wbg_ptr = ret >>> 0;
DifferFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const HSLDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') const HSLDifferenceFinalization = (typeof FinalizationRegistry === 'undefined')
@ -1415,6 +1425,23 @@ export class HSLDifference {
var ptr0 = arg0.__destroy_into_raw(); var ptr0 = arg0.__destroy_into_raw();
wasm.__wbg_set_hsldifference_lightness(this.__wbg_ptr, ptr0); wasm.__wbg_set_hsldifference_lightness(this.__wbg_ptr, ptr0);
} }
/**
* @param {Differ} hue
* @param {Differ} saturation
* @param {Differ} lightness
*/
constructor(hue, saturation, lightness) {
_assertClass(hue, Differ);
var ptr0 = hue.__destroy_into_raw();
_assertClass(saturation, Differ);
var ptr1 = saturation.__destroy_into_raw();
_assertClass(lightness, Differ);
var ptr2 = lightness.__destroy_into_raw();
const ret = wasm.hsldifference_new(ptr0, ptr1, ptr2);
this.__wbg_ptr = ret >>> 0;
HSLDifferenceFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const HctDiffferenceFinalization = (typeof FinalizationRegistry === 'undefined') const HctDiffferenceFinalization = (typeof FinalizationRegistry === 'undefined')
@ -1487,6 +1514,23 @@ export class HctDiffference {
var ptr0 = arg0.__destroy_into_raw(); var ptr0 = arg0.__destroy_into_raw();
wasm.__wbg_set_hctdiffference_lightness(this.__wbg_ptr, ptr0); wasm.__wbg_set_hctdiffference_lightness(this.__wbg_ptr, ptr0);
} }
/**
* @param {Differ} hue
* @param {Differ} chroma
* @param {Differ} lightness
*/
constructor(hue, chroma, lightness) {
_assertClass(hue, Differ);
var ptr0 = hue.__destroy_into_raw();
_assertClass(chroma, Differ);
var ptr1 = chroma.__destroy_into_raw();
_assertClass(lightness, Differ);
var ptr2 = lightness.__destroy_into_raw();
const ret = wasm.hctdiffference_new(ptr0, ptr1, ptr2);
this.__wbg_ptr = ret >>> 0;
HctDiffferenceFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const MixReversingFinalization = (typeof FinalizationRegistry === 'undefined') const MixReversingFinalization = (typeof FinalizationRegistry === 'undefined')
@ -1566,6 +1610,18 @@ export class MixReversing {
set average(arg0) { set average(arg0) {
wasm.__wbg_set_mixreversing_average(this.__wbg_ptr, arg0); wasm.__wbg_set_mixreversing_average(this.__wbg_ptr, arg0);
} }
/**
* @param {number} r_factor
* @param {number} g_factor
* @param {number} b_factor
* @param {number} average
*/
constructor(r_factor, g_factor, b_factor, average) {
const ret = wasm.mixreversing_new(r_factor, g_factor, b_factor, average);
this.__wbg_ptr = ret >>> 0;
MixReversingFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const OklchDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') const OklchDifferenceFinalization = (typeof FinalizationRegistry === 'undefined')
@ -1638,6 +1694,23 @@ export class OklchDifference {
var ptr0 = arg0.__destroy_into_raw(); var ptr0 = arg0.__destroy_into_raw();
wasm.__wbg_set_oklchdifference_lightness(this.__wbg_ptr, ptr0); wasm.__wbg_set_oklchdifference_lightness(this.__wbg_ptr, ptr0);
} }
/**
* @param {Differ} hue
* @param {Differ} chroma
* @param {Differ} lightness
*/
constructor(hue, chroma, lightness) {
_assertClass(hue, Differ);
var ptr0 = hue.__destroy_into_raw();
_assertClass(chroma, Differ);
var ptr1 = chroma.__destroy_into_raw();
_assertClass(lightness, Differ);
var ptr2 = lightness.__destroy_into_raw();
const ret = wasm.oklchdifference_new(ptr0, ptr1, ptr2);
this.__wbg_ptr = ret >>> 0;
OklchDifferenceFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const RGBDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') const RGBDifferenceFinalization = (typeof FinalizationRegistry === 'undefined')
@ -1710,6 +1783,23 @@ export class RGBDifference {
var ptr0 = arg0.__destroy_into_raw(); var ptr0 = arg0.__destroy_into_raw();
wasm.__wbg_set_rgbdifference_b(this.__wbg_ptr, ptr0); wasm.__wbg_set_rgbdifference_b(this.__wbg_ptr, ptr0);
} }
/**
* @param {Differ} r
* @param {Differ} g
* @param {Differ} b
*/
constructor(r, g, b) {
_assertClass(r, Differ);
var ptr0 = r.__destroy_into_raw();
_assertClass(g, Differ);
var ptr1 = g.__destroy_into_raw();
_assertClass(b, Differ);
var ptr2 = b.__destroy_into_raw();
const ret = wasm.rgbdifference_new(ptr0, ptr1, ptr2);
this.__wbg_ptr = ret >>> 0;
RGBDifferenceFinalization.register(this, this.__wbg_ptr, this);
return this;
}
} }
const SchemeSettingFinalization = (typeof FinalizationRegistry === 'undefined') const SchemeSettingFinalization = (typeof FinalizationRegistry === 'undefined')

View File

@ -39,6 +39,7 @@ export const __wbg_get_oklchdifference_chroma: (a: number) => number;
export const __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; export const __wbg_set_oklchdifference_chroma: (a: number, b: number) => void;
export const __wbg_get_oklchdifference_lightness: (a: number) => number; export const __wbg_get_oklchdifference_lightness: (a: number) => number;
export const __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; export const __wbg_set_oklchdifference_lightness: (a: number, b: number) => void;
export const oklchdifference_new: (a: number, b: number, c: number) => number;
export const __wbg_mixreversing_free: (a: number, b: number) => void; export const __wbg_mixreversing_free: (a: number, b: number) => void;
export const __wbg_get_mixreversing_r_factor: (a: number) => number; export const __wbg_get_mixreversing_r_factor: (a: number) => number;
export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void;
@ -48,6 +49,7 @@ export const __wbg_get_mixreversing_b_factor: (a: number) => number;
export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void;
export const __wbg_get_mixreversing_average: (a: number) => number; export const __wbg_get_mixreversing_average: (a: number) => number;
export const __wbg_set_mixreversing_average: (a: number, b: number) => void; export const __wbg_set_mixreversing_average: (a: number, b: number) => void;
export const mixreversing_new: (a: number, b: number, c: number, d: number) => number;
export const q_scheme_color_expanding_methods: () => [number, number, number]; export const q_scheme_color_expanding_methods: () => [number, number, number];
export const q_scheme_wacg_settings: () => [number, number, number]; export const q_scheme_wacg_settings: () => [number, number, number];
export const q_scheme_default_settings: () => number; export const q_scheme_default_settings: () => number;
@ -56,24 +58,7 @@ export const __wbg_get_differ_delta: (a: number) => number;
export const __wbg_set_differ_delta: (a: number, b: number) => void; export const __wbg_set_differ_delta: (a: number, b: number) => void;
export const __wbg_get_differ_percent: (a: number) => number; export const __wbg_get_differ_percent: (a: number) => number;
export const __wbg_set_differ_percent: (a: number, b: number) => void; export const __wbg_set_differ_percent: (a: number, b: number) => void;
export const shift_hue: (a: number, b: number, c: number) => [number, number, number, number]; export const differ_new: (a: number, b: number) => number;
export const analogous_30: (a: number, b: number) => [number, number, number, number];
export const analogous_60: (a: number, b: number) => [number, number, number, number];
export const complementary: (a: number, b: number) => [number, number, number, number];
export const split_complementary: (a: number, b: number) => [number, number, number, number];
export const tetradic: (a: number, b: number) => [number, number, number, number];
export const triadic: (a: number, b: number) => [number, number, number, number];
export const represent_rgb: (a: number, b: number) => [number, number, number, number];
export const rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_hsl: (a: number, b: number) => [number, number, number, number];
export const hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_lab: (a: number, b: number) => [number, number, number, number];
export const lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_oklch: (a: number, b: number) => [number, number, number, number];
export const oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_hct: (a: number, b: number) => [number, number, number, number];
export const hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number];
export const __wbg_hctdiffference_free: (a: number, b: number) => void; export const __wbg_hctdiffference_free: (a: number, b: number) => void;
export const __wbg_get_hctdiffference_hue: (a: number) => number; export const __wbg_get_hctdiffference_hue: (a: number) => number;
export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void;
@ -81,37 +66,7 @@ export const __wbg_get_hctdiffference_chroma: (a: number) => number;
export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void;
export const __wbg_get_hctdiffference_lightness: (a: number) => number; export const __wbg_get_hctdiffference_lightness: (a: number) => number;
export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void;
export const differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; export const hctdiffference_new: (a: number, b: number, c: number) => number;
export const relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number];
export const differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
export const differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
export const differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
export const tint_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
export const shade_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
export const __wbg_hsldifference_free: (a: number, b: number) => void;
export const __wbg_get_hsldifference_hue: (a: number) => number;
export const __wbg_set_hsldifference_hue: (a: number, b: number) => void;
export const __wbg_get_hsldifference_saturation: (a: number) => number;
export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void;
export const __wbg_get_hsldifference_lightness: (a: number) => number;
export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void;
export const lighten: (a: number, b: number, c: number) => [number, number, number, number];
export const lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number];
export const darken: (a: number, b: number, c: number) => [number, number, number, number];
export const darken_absolute: (a: number, b: number, c: number) => [number, number, number, number];
export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
export const tint: (a: number, b: number, c: number) => [number, number, number, number];
export const shade: (a: number, b: number, c: number) => [number, number, number, number];
export const __wbg_rgbdifference_free: (a: number, b: number) => void;
export const __wbg_get_rgbdifference_r: (a: number) => number;
export const __wbg_set_rgbdifference_r: (a: number, b: number) => void;
export const __wbg_get_rgbdifference_g: (a: number) => number;
export const __wbg_set_rgbdifference_g: (a: number, b: number) => void;
export const __wbg_get_rgbdifference_b: (a: number) => number;
export const __wbg_set_rgbdifference_b: (a: number, b: number) => void;
export const generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; export const generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
export const __wbg_swatchschemesetting_free: (a: number, b: number) => void; export const __wbg_swatchschemesetting_free: (a: number, b: number) => void;
export const __wbg_get_swatchschemesetting_amount: (a: number) => number; export const __wbg_get_swatchschemesetting_amount: (a: number) => number;
@ -137,12 +92,63 @@ export const swatch_scheme_default_settings: () => number;
export const series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const series: (a: number, b: number, c: number, d: number) => [number, number, number, number];
export const tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number];
export const tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number];
export const shift_hue: (a: number, b: number, c: number) => [number, number, number, number];
export const analogous_30: (a: number, b: number) => [number, number, number, number];
export const analogous_60: (a: number, b: number) => [number, number, number, number];
export const complementary: (a: number, b: number) => [number, number, number, number];
export const split_complementary: (a: number, b: number) => [number, number, number, number];
export const tetradic: (a: number, b: number) => [number, number, number, number];
export const triadic: (a: number, b: number) => [number, number, number, number];
export const represent_rgb: (a: number, b: number) => [number, number, number, number];
export const rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_hsl: (a: number, b: number) => [number, number, number, number];
export const hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_lab: (a: number, b: number) => [number, number, number, number];
export const lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_oklch: (a: number, b: number) => [number, number, number, number];
export const oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const represent_hct: (a: number, b: number) => [number, number, number, number];
export const hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number];
export const wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number];
export const __wbg_rgbdifference_free: (a: number, b: number) => void;
export const __wbg_get_rgbdifference_r: (a: number) => number;
export const __wbg_set_rgbdifference_r: (a: number, b: number) => void;
export const __wbg_get_rgbdifference_g: (a: number) => number;
export const __wbg_set_rgbdifference_g: (a: number, b: number) => void;
export const __wbg_get_rgbdifference_b: (a: number) => number;
export const __wbg_set_rgbdifference_b: (a: number, b: number) => void;
export const rgbdifference_new: (a: number, b: number, c: number) => number;
export const differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number];
export const differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number];
export const differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number];
export const differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
export const relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number];
export const tint_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
export const shade_scale: (a: number, b: number, c: number, d: number) => [number, number, number];
export const __wbg_hsldifference_free: (a: number, b: number) => void;
export const __wbg_get_hsldifference_hue: (a: number) => number;
export const __wbg_set_hsldifference_hue: (a: number, b: number) => void;
export const __wbg_get_hsldifference_saturation: (a: number) => number;
export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void;
export const __wbg_get_hsldifference_lightness: (a: number) => number;
export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void;
export const hsldifference_new: (a: number, b: number, c: number) => number;
export const lighten: (a: number, b: number, c: number) => [number, number, number, number];
export const lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number];
export const darken: (a: number, b: number, c: number) => [number, number, number, number];
export const darken_absolute: (a: number, b: number, c: number) => [number, number, number, number];
export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
export const tint: (a: number, b: number, c: number) => [number, number, number, number];
export const shade: (a: number, b: number, c: number) => [number, number, number, number];
export const __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_malloc: (a: number, b: number) => number;
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
export const __wbindgen_exn_store: (a: number) => void; export const __wbindgen_exn_store: (a: number) => void;
export const __externref_table_alloc: () => number; export const __externref_table_alloc: () => number;
export const __wbindgen_export_4: WebAssembly.Table; export const __wbindgen_export_4: WebAssembly.Table;
export const __externref_table_dealloc: (a: number) => void; export const __externref_table_dealloc: (a: number) => void;
export const __wbindgen_free: (a: number, b: number, c: number) => void;
export const __externref_drop_slice: (a: number, b: number) => void; export const __externref_drop_slice: (a: number, b: number) => void;
export const __wbindgen_free: (a: number, b: number, c: number) => void;
export const __wbindgen_start: () => void; export const __wbindgen_start: () => void;