2936 lines
87 KiB
JavaScript
2936 lines
87 KiB
JavaScript
import {
|
|
_defineProperty,
|
|
canUseDom,
|
|
updateCSS,
|
|
warn,
|
|
wrapIntoObservable
|
|
} from "./chunk-5F4IS6F4.js";
|
|
import {
|
|
BarsOutline,
|
|
CalendarOutline,
|
|
CaretDownFill,
|
|
CaretDownOutline,
|
|
CaretUpFill,
|
|
CaretUpOutline,
|
|
CheckCircleFill,
|
|
CheckCircleOutline,
|
|
CheckOutline,
|
|
ClockCircleOutline,
|
|
CloseCircleFill,
|
|
CloseCircleOutline,
|
|
CloseOutline,
|
|
CopyOutline,
|
|
DeleteOutline,
|
|
DoubleLeftOutline,
|
|
DoubleRightOutline,
|
|
DownOutline,
|
|
EditOutline,
|
|
EllipsisOutline,
|
|
ExclamationCircleFill,
|
|
ExclamationCircleOutline,
|
|
EyeInvisibleOutline,
|
|
EyeOutline,
|
|
FileFill,
|
|
FileOutline,
|
|
FilterFill,
|
|
InfoCircleFill,
|
|
InfoCircleOutline,
|
|
LeftOutline,
|
|
LoadingOutline,
|
|
PaperClipOutline,
|
|
QuestionCircleOutline,
|
|
RightOutline,
|
|
RotateLeftOutline,
|
|
RotateRightOutline,
|
|
SearchOutline,
|
|
StarFill,
|
|
SwapOutline,
|
|
SwapRightOutline,
|
|
UpOutline,
|
|
UploadOutline,
|
|
VerticalAlignTopOutline,
|
|
ZoomInOutline,
|
|
ZoomOutOutline
|
|
} from "./chunk-OAOHUKFD.js";
|
|
import {
|
|
DomSanitizer
|
|
} from "./chunk-OVEDGMY5.js";
|
|
import {
|
|
HttpBackend,
|
|
HttpClient
|
|
} from "./chunk-ZKUNZJKW.js";
|
|
import {
|
|
isPlatformBrowser
|
|
} from "./chunk-PSDIAYZ2.js";
|
|
import {
|
|
CSP_NONCE,
|
|
ChangeDetectorRef,
|
|
DOCUMENT,
|
|
DestroyRef,
|
|
Directive,
|
|
ElementRef,
|
|
Inject,
|
|
Injectable,
|
|
InjectionToken,
|
|
Input,
|
|
NgModule,
|
|
NgZone,
|
|
Optional,
|
|
PLATFORM_ID,
|
|
PendingTasks,
|
|
Renderer2,
|
|
RendererFactory2,
|
|
SecurityContext,
|
|
afterNextRender,
|
|
assertInInjectionContext,
|
|
booleanAttribute,
|
|
inject,
|
|
isDevMode,
|
|
makeEnvironmentProviders,
|
|
numberAttribute,
|
|
setClassMetadata,
|
|
signal,
|
|
ɵɵInheritDefinitionFeature,
|
|
ɵɵNgOnChangesFeature,
|
|
ɵɵattribute,
|
|
ɵɵclassMap,
|
|
ɵɵclassProp,
|
|
ɵɵdefineDirective,
|
|
ɵɵdefineInjectable,
|
|
ɵɵdefineInjector,
|
|
ɵɵdefineNgModule,
|
|
ɵɵdirectiveInject,
|
|
ɵɵinject
|
|
} from "./chunk-COCNRMG2.js";
|
|
import {
|
|
animationFrameScheduler,
|
|
asapScheduler
|
|
} from "./chunk-576P5TAG.js";
|
|
import {
|
|
Observable,
|
|
Subject,
|
|
catchError,
|
|
debounceTime,
|
|
filter,
|
|
finalize,
|
|
map,
|
|
of,
|
|
share,
|
|
take,
|
|
takeUntil,
|
|
tap
|
|
} from "./chunk-2K3BB2X3.js";
|
|
import {
|
|
__spreadProps,
|
|
__spreadValues
|
|
} from "./chunk-WDMUDEB6.js";
|
|
|
|
// node_modules/@angular/core/fesm2022/rxjs-interop.mjs
|
|
function takeUntilDestroyed(destroyRef) {
|
|
if (!destroyRef) {
|
|
ngDevMode && assertInInjectionContext(takeUntilDestroyed);
|
|
destroyRef = inject(DestroyRef);
|
|
}
|
|
const destroyed$ = new Observable((subscriber) => {
|
|
if (destroyRef.destroyed) {
|
|
subscriber.next();
|
|
return;
|
|
}
|
|
const unregisterFn = destroyRef.onDestroy(subscriber.next.bind(subscriber));
|
|
return unregisterFn;
|
|
});
|
|
return (source) => {
|
|
return source.pipe(takeUntil(destroyed$));
|
|
};
|
|
}
|
|
|
|
// node_modules/@ant-design/fast-color/es/FastColor.js
|
|
var round = Math.round;
|
|
function splitColorStr(str, parseNum) {
|
|
const match = str.replace(/^[^(]*\((.*)/, "$1").replace(/\).*/, "").match(/\d*\.?\d+%?/g) || [];
|
|
const numList = match.map((item) => parseFloat(item));
|
|
for (let i = 0; i < 3; i += 1) {
|
|
numList[i] = parseNum(numList[i] || 0, match[i] || "", i);
|
|
}
|
|
if (match[3]) {
|
|
numList[3] = match[3].includes("%") ? numList[3] / 100 : numList[3];
|
|
} else {
|
|
numList[3] = 1;
|
|
}
|
|
return numList;
|
|
}
|
|
var parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;
|
|
function limitRange(value, max) {
|
|
const mergedMax = max || 255;
|
|
if (value > mergedMax) {
|
|
return mergedMax;
|
|
}
|
|
if (value < 0) {
|
|
return 0;
|
|
}
|
|
return value;
|
|
}
|
|
var FastColor = class _FastColor {
|
|
constructor(input) {
|
|
_defineProperty(this, "isValid", true);
|
|
_defineProperty(this, "r", 0);
|
|
_defineProperty(this, "g", 0);
|
|
_defineProperty(this, "b", 0);
|
|
_defineProperty(this, "a", 1);
|
|
_defineProperty(this, "_h", void 0);
|
|
_defineProperty(this, "_s", void 0);
|
|
_defineProperty(this, "_l", void 0);
|
|
_defineProperty(this, "_v", void 0);
|
|
_defineProperty(this, "_max", void 0);
|
|
_defineProperty(this, "_min", void 0);
|
|
_defineProperty(this, "_brightness", void 0);
|
|
function matchFormat(str) {
|
|
return str[0] in input && str[1] in input && str[2] in input;
|
|
}
|
|
if (!input) {
|
|
} else if (typeof input === "string") {
|
|
let matchPrefix = function(prefix) {
|
|
return trimStr.startsWith(prefix);
|
|
};
|
|
const trimStr = input.trim();
|
|
if (/^#?[A-F\d]{3,8}$/i.test(trimStr)) {
|
|
this.fromHexString(trimStr);
|
|
} else if (matchPrefix("rgb")) {
|
|
this.fromRgbString(trimStr);
|
|
} else if (matchPrefix("hsl")) {
|
|
this.fromHslString(trimStr);
|
|
} else if (matchPrefix("hsv") || matchPrefix("hsb")) {
|
|
this.fromHsvString(trimStr);
|
|
}
|
|
} else if (input instanceof _FastColor) {
|
|
this.r = input.r;
|
|
this.g = input.g;
|
|
this.b = input.b;
|
|
this.a = input.a;
|
|
this._h = input._h;
|
|
this._s = input._s;
|
|
this._l = input._l;
|
|
this._v = input._v;
|
|
} else if (matchFormat("rgb")) {
|
|
this.r = limitRange(input.r);
|
|
this.g = limitRange(input.g);
|
|
this.b = limitRange(input.b);
|
|
this.a = typeof input.a === "number" ? limitRange(input.a, 1) : 1;
|
|
} else if (matchFormat("hsl")) {
|
|
this.fromHsl(input);
|
|
} else if (matchFormat("hsv")) {
|
|
this.fromHsv(input);
|
|
} else {
|
|
throw new Error("@ant-design/fast-color: unsupported input " + JSON.stringify(input));
|
|
}
|
|
}
|
|
// ======================= Setter =======================
|
|
setR(value) {
|
|
return this._sc("r", value);
|
|
}
|
|
setG(value) {
|
|
return this._sc("g", value);
|
|
}
|
|
setB(value) {
|
|
return this._sc("b", value);
|
|
}
|
|
setA(value) {
|
|
return this._sc("a", value, 1);
|
|
}
|
|
setHue(value) {
|
|
const hsv = this.toHsv();
|
|
hsv.h = value;
|
|
return this._c(hsv);
|
|
}
|
|
// ======================= Getter =======================
|
|
/**
|
|
* Returns the perceived luminance of a color, from 0-1.
|
|
* @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef
|
|
*/
|
|
getLuminance() {
|
|
function adjustGamma(raw) {
|
|
const val = raw / 255;
|
|
return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);
|
|
}
|
|
const R = adjustGamma(this.r);
|
|
const G = adjustGamma(this.g);
|
|
const B = adjustGamma(this.b);
|
|
return 0.2126 * R + 0.7152 * G + 0.0722 * B;
|
|
}
|
|
getHue() {
|
|
if (typeof this._h === "undefined") {
|
|
const delta = this.getMax() - this.getMin();
|
|
if (delta === 0) {
|
|
this._h = 0;
|
|
} else {
|
|
this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));
|
|
}
|
|
}
|
|
return this._h;
|
|
}
|
|
getSaturation() {
|
|
if (typeof this._s === "undefined") {
|
|
const delta = this.getMax() - this.getMin();
|
|
if (delta === 0) {
|
|
this._s = 0;
|
|
} else {
|
|
this._s = delta / this.getMax();
|
|
}
|
|
}
|
|
return this._s;
|
|
}
|
|
getLightness() {
|
|
if (typeof this._l === "undefined") {
|
|
this._l = (this.getMax() + this.getMin()) / 510;
|
|
}
|
|
return this._l;
|
|
}
|
|
getValue() {
|
|
if (typeof this._v === "undefined") {
|
|
this._v = this.getMax() / 255;
|
|
}
|
|
return this._v;
|
|
}
|
|
/**
|
|
* Returns the perceived brightness of the color, from 0-255.
|
|
* Note: this is not the b of HSB
|
|
* @see http://www.w3.org/TR/AERT#color-contrast
|
|
*/
|
|
getBrightness() {
|
|
if (typeof this._brightness === "undefined") {
|
|
this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1e3;
|
|
}
|
|
return this._brightness;
|
|
}
|
|
// ======================== Func ========================
|
|
darken(amount = 10) {
|
|
const h = this.getHue();
|
|
const s = this.getSaturation();
|
|
let l = this.getLightness() - amount / 100;
|
|
if (l < 0) {
|
|
l = 0;
|
|
}
|
|
return this._c({
|
|
h,
|
|
s,
|
|
l,
|
|
a: this.a
|
|
});
|
|
}
|
|
lighten(amount = 10) {
|
|
const h = this.getHue();
|
|
const s = this.getSaturation();
|
|
let l = this.getLightness() + amount / 100;
|
|
if (l > 1) {
|
|
l = 1;
|
|
}
|
|
return this._c({
|
|
h,
|
|
s,
|
|
l,
|
|
a: this.a
|
|
});
|
|
}
|
|
/**
|
|
* Mix the current color a given amount with another color, from 0 to 100.
|
|
* 0 means no mixing (return current color).
|
|
*/
|
|
mix(input, amount = 50) {
|
|
const color = this._c(input);
|
|
const p = amount / 100;
|
|
const calc = (key) => (color[key] - this[key]) * p + this[key];
|
|
const rgba = {
|
|
r: round(calc("r")),
|
|
g: round(calc("g")),
|
|
b: round(calc("b")),
|
|
a: round(calc("a") * 100) / 100
|
|
};
|
|
return this._c(rgba);
|
|
}
|
|
/**
|
|
* Mix the color with pure white, from 0 to 100.
|
|
* Providing 0 will do nothing, providing 100 will always return white.
|
|
*/
|
|
tint(amount = 10) {
|
|
return this.mix({
|
|
r: 255,
|
|
g: 255,
|
|
b: 255,
|
|
a: 1
|
|
}, amount);
|
|
}
|
|
/**
|
|
* Mix the color with pure black, from 0 to 100.
|
|
* Providing 0 will do nothing, providing 100 will always return black.
|
|
*/
|
|
shade(amount = 10) {
|
|
return this.mix({
|
|
r: 0,
|
|
g: 0,
|
|
b: 0,
|
|
a: 1
|
|
}, amount);
|
|
}
|
|
onBackground(background) {
|
|
const bg = this._c(background);
|
|
const alpha = this.a + bg.a * (1 - this.a);
|
|
const calc = (key) => {
|
|
return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);
|
|
};
|
|
return this._c({
|
|
r: calc("r"),
|
|
g: calc("g"),
|
|
b: calc("b"),
|
|
a: alpha
|
|
});
|
|
}
|
|
// ======================= Status =======================
|
|
isDark() {
|
|
return this.getBrightness() < 128;
|
|
}
|
|
isLight() {
|
|
return this.getBrightness() >= 128;
|
|
}
|
|
// ======================== MISC ========================
|
|
equals(other) {
|
|
return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;
|
|
}
|
|
clone() {
|
|
return this._c(this);
|
|
}
|
|
// ======================= Format =======================
|
|
toHexString() {
|
|
let hex = "#";
|
|
const rHex = (this.r || 0).toString(16);
|
|
hex += rHex.length === 2 ? rHex : "0" + rHex;
|
|
const gHex = (this.g || 0).toString(16);
|
|
hex += gHex.length === 2 ? gHex : "0" + gHex;
|
|
const bHex = (this.b || 0).toString(16);
|
|
hex += bHex.length === 2 ? bHex : "0" + bHex;
|
|
if (typeof this.a === "number" && this.a >= 0 && this.a < 1) {
|
|
const aHex = round(this.a * 255).toString(16);
|
|
hex += aHex.length === 2 ? aHex : "0" + aHex;
|
|
}
|
|
return hex;
|
|
}
|
|
/** CSS support color pattern */
|
|
toHsl() {
|
|
return {
|
|
h: this.getHue(),
|
|
s: this.getSaturation(),
|
|
l: this.getLightness(),
|
|
a: this.a
|
|
};
|
|
}
|
|
/** CSS support color pattern */
|
|
toHslString() {
|
|
const h = this.getHue();
|
|
const s = round(this.getSaturation() * 100);
|
|
const l = round(this.getLightness() * 100);
|
|
return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;
|
|
}
|
|
/** Same as toHsb */
|
|
toHsv() {
|
|
return {
|
|
h: this.getHue(),
|
|
s: this.getSaturation(),
|
|
v: this.getValue(),
|
|
a: this.a
|
|
};
|
|
}
|
|
toRgb() {
|
|
return {
|
|
r: this.r,
|
|
g: this.g,
|
|
b: this.b,
|
|
a: this.a
|
|
};
|
|
}
|
|
toRgbString() {
|
|
return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;
|
|
}
|
|
toString() {
|
|
return this.toRgbString();
|
|
}
|
|
// ====================== Privates ======================
|
|
/** Return a new FastColor object with one channel changed */
|
|
_sc(rgb, value, max) {
|
|
const clone = this.clone();
|
|
clone[rgb] = limitRange(value, max);
|
|
return clone;
|
|
}
|
|
_c(input) {
|
|
return new this.constructor(input);
|
|
}
|
|
getMax() {
|
|
if (typeof this._max === "undefined") {
|
|
this._max = Math.max(this.r, this.g, this.b);
|
|
}
|
|
return this._max;
|
|
}
|
|
getMin() {
|
|
if (typeof this._min === "undefined") {
|
|
this._min = Math.min(this.r, this.g, this.b);
|
|
}
|
|
return this._min;
|
|
}
|
|
fromHexString(trimStr) {
|
|
const withoutPrefix = trimStr.replace("#", "");
|
|
function connectNum(index1, index2) {
|
|
return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);
|
|
}
|
|
if (withoutPrefix.length < 6) {
|
|
this.r = connectNum(0);
|
|
this.g = connectNum(1);
|
|
this.b = connectNum(2);
|
|
this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;
|
|
} else {
|
|
this.r = connectNum(0, 1);
|
|
this.g = connectNum(2, 3);
|
|
this.b = connectNum(4, 5);
|
|
this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;
|
|
}
|
|
}
|
|
fromHsl({
|
|
h,
|
|
s,
|
|
l,
|
|
a
|
|
}) {
|
|
this._h = h % 360;
|
|
this._s = s;
|
|
this._l = l;
|
|
this.a = typeof a === "number" ? a : 1;
|
|
if (s <= 0) {
|
|
const rgb = round(l * 255);
|
|
this.r = rgb;
|
|
this.g = rgb;
|
|
this.b = rgb;
|
|
}
|
|
let r = 0, g = 0, b = 0;
|
|
const huePrime = h / 60;
|
|
const chroma = (1 - Math.abs(2 * l - 1)) * s;
|
|
const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));
|
|
if (huePrime >= 0 && huePrime < 1) {
|
|
r = chroma;
|
|
g = secondComponent;
|
|
} else if (huePrime >= 1 && huePrime < 2) {
|
|
r = secondComponent;
|
|
g = chroma;
|
|
} else if (huePrime >= 2 && huePrime < 3) {
|
|
g = chroma;
|
|
b = secondComponent;
|
|
} else if (huePrime >= 3 && huePrime < 4) {
|
|
g = secondComponent;
|
|
b = chroma;
|
|
} else if (huePrime >= 4 && huePrime < 5) {
|
|
r = secondComponent;
|
|
b = chroma;
|
|
} else if (huePrime >= 5 && huePrime < 6) {
|
|
r = chroma;
|
|
b = secondComponent;
|
|
}
|
|
const lightnessModification = l - chroma / 2;
|
|
this.r = round((r + lightnessModification) * 255);
|
|
this.g = round((g + lightnessModification) * 255);
|
|
this.b = round((b + lightnessModification) * 255);
|
|
}
|
|
fromHsv({
|
|
h,
|
|
s,
|
|
v,
|
|
a
|
|
}) {
|
|
this._h = h % 360;
|
|
this._s = s;
|
|
this._v = v;
|
|
this.a = typeof a === "number" ? a : 1;
|
|
const vv = round(v * 255);
|
|
this.r = vv;
|
|
this.g = vv;
|
|
this.b = vv;
|
|
if (s <= 0) {
|
|
return;
|
|
}
|
|
const hh = h / 60;
|
|
const i = Math.floor(hh);
|
|
const ff = hh - i;
|
|
const p = round(v * (1 - s) * 255);
|
|
const q = round(v * (1 - s * ff) * 255);
|
|
const t = round(v * (1 - s * (1 - ff)) * 255);
|
|
switch (i) {
|
|
case 0:
|
|
this.g = t;
|
|
this.b = p;
|
|
break;
|
|
case 1:
|
|
this.r = q;
|
|
this.b = p;
|
|
break;
|
|
case 2:
|
|
this.r = p;
|
|
this.b = t;
|
|
break;
|
|
case 3:
|
|
this.r = p;
|
|
this.g = q;
|
|
break;
|
|
case 4:
|
|
this.r = t;
|
|
this.g = p;
|
|
break;
|
|
case 5:
|
|
default:
|
|
this.g = p;
|
|
this.b = q;
|
|
break;
|
|
}
|
|
}
|
|
fromHsvString(trimStr) {
|
|
const cells = splitColorStr(trimStr, parseHSVorHSL);
|
|
this.fromHsv({
|
|
h: cells[0],
|
|
s: cells[1],
|
|
v: cells[2],
|
|
a: cells[3]
|
|
});
|
|
}
|
|
fromHslString(trimStr) {
|
|
const cells = splitColorStr(trimStr, parseHSVorHSL);
|
|
this.fromHsl({
|
|
h: cells[0],
|
|
s: cells[1],
|
|
l: cells[2],
|
|
a: cells[3]
|
|
});
|
|
}
|
|
fromRgbString(trimStr) {
|
|
const cells = splitColorStr(trimStr, (num, txt) => (
|
|
// Convert percentage to number. e.g. 50% -> 128
|
|
txt.includes("%") ? round(num / 100 * 255) : num
|
|
));
|
|
this.r = cells[0];
|
|
this.g = cells[1];
|
|
this.b = cells[2];
|
|
this.a = cells[3];
|
|
}
|
|
};
|
|
|
|
// node_modules/@ant-design/colors/es/generate.js
|
|
var hueStep = 2;
|
|
var saturationStep = 0.16;
|
|
var saturationStep2 = 0.05;
|
|
var brightnessStep1 = 0.05;
|
|
var brightnessStep2 = 0.15;
|
|
var lightColorCount = 5;
|
|
var darkColorCount = 4;
|
|
var darkColorMap = [{
|
|
index: 7,
|
|
amount: 15
|
|
}, {
|
|
index: 6,
|
|
amount: 25
|
|
}, {
|
|
index: 5,
|
|
amount: 30
|
|
}, {
|
|
index: 5,
|
|
amount: 45
|
|
}, {
|
|
index: 5,
|
|
amount: 65
|
|
}, {
|
|
index: 5,
|
|
amount: 85
|
|
}, {
|
|
index: 4,
|
|
amount: 90
|
|
}, {
|
|
index: 3,
|
|
amount: 95
|
|
}, {
|
|
index: 2,
|
|
amount: 97
|
|
}, {
|
|
index: 1,
|
|
amount: 98
|
|
}];
|
|
function getHue(hsv, i, light) {
|
|
var hue;
|
|
if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {
|
|
hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;
|
|
} else {
|
|
hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;
|
|
}
|
|
if (hue < 0) {
|
|
hue += 360;
|
|
} else if (hue >= 360) {
|
|
hue -= 360;
|
|
}
|
|
return hue;
|
|
}
|
|
function getSaturation(hsv, i, light) {
|
|
if (hsv.h === 0 && hsv.s === 0) {
|
|
return hsv.s;
|
|
}
|
|
var saturation;
|
|
if (light) {
|
|
saturation = hsv.s - saturationStep * i;
|
|
} else if (i === darkColorCount) {
|
|
saturation = hsv.s + saturationStep;
|
|
} else {
|
|
saturation = hsv.s + saturationStep2 * i;
|
|
}
|
|
if (saturation > 1) {
|
|
saturation = 1;
|
|
}
|
|
if (light && i === lightColorCount && saturation > 0.1) {
|
|
saturation = 0.1;
|
|
}
|
|
if (saturation < 0.06) {
|
|
saturation = 0.06;
|
|
}
|
|
return Math.round(saturation * 100) / 100;
|
|
}
|
|
function getValue(hsv, i, light) {
|
|
var value;
|
|
if (light) {
|
|
value = hsv.v + brightnessStep1 * i;
|
|
} else {
|
|
value = hsv.v - brightnessStep2 * i;
|
|
}
|
|
value = Math.max(0, Math.min(1, value));
|
|
return Math.round(value * 100) / 100;
|
|
}
|
|
function generate(color) {
|
|
var opts = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
var patterns = [];
|
|
var pColor = new FastColor(color);
|
|
var hsv = pColor.toHsv();
|
|
for (var i = lightColorCount; i > 0; i -= 1) {
|
|
var c = new FastColor({
|
|
h: getHue(hsv, i, true),
|
|
s: getSaturation(hsv, i, true),
|
|
v: getValue(hsv, i, true)
|
|
});
|
|
patterns.push(c);
|
|
}
|
|
patterns.push(pColor);
|
|
for (var _i = 1; _i <= darkColorCount; _i += 1) {
|
|
var _c = new FastColor({
|
|
h: getHue(hsv, _i),
|
|
s: getSaturation(hsv, _i),
|
|
v: getValue(hsv, _i)
|
|
});
|
|
patterns.push(_c);
|
|
}
|
|
if (opts.theme === "dark") {
|
|
return darkColorMap.map(function(_ref) {
|
|
var index = _ref.index, amount = _ref.amount;
|
|
return new FastColor(opts.backgroundColor || "#141414").mix(patterns[index], amount).toHexString();
|
|
});
|
|
}
|
|
return patterns.map(function(c2) {
|
|
return c2.toHexString();
|
|
});
|
|
}
|
|
|
|
// node_modules/@ant-design/colors/es/presets.js
|
|
var red = ["#fff1f0", "#ffccc7", "#ffa39e", "#ff7875", "#ff4d4f", "#f5222d", "#cf1322", "#a8071a", "#820014", "#5c0011"];
|
|
red.primary = red[5];
|
|
var volcano = ["#fff2e8", "#ffd8bf", "#ffbb96", "#ff9c6e", "#ff7a45", "#fa541c", "#d4380d", "#ad2102", "#871400", "#610b00"];
|
|
volcano.primary = volcano[5];
|
|
var orange = ["#fff7e6", "#ffe7ba", "#ffd591", "#ffc069", "#ffa940", "#fa8c16", "#d46b08", "#ad4e00", "#873800", "#612500"];
|
|
orange.primary = orange[5];
|
|
var gold = ["#fffbe6", "#fff1b8", "#ffe58f", "#ffd666", "#ffc53d", "#faad14", "#d48806", "#ad6800", "#874d00", "#613400"];
|
|
gold.primary = gold[5];
|
|
var yellow = ["#feffe6", "#ffffb8", "#fffb8f", "#fff566", "#ffec3d", "#fadb14", "#d4b106", "#ad8b00", "#876800", "#614700"];
|
|
yellow.primary = yellow[5];
|
|
var lime = ["#fcffe6", "#f4ffb8", "#eaff8f", "#d3f261", "#bae637", "#a0d911", "#7cb305", "#5b8c00", "#3f6600", "#254000"];
|
|
lime.primary = lime[5];
|
|
var green = ["#f6ffed", "#d9f7be", "#b7eb8f", "#95de64", "#73d13d", "#52c41a", "#389e0d", "#237804", "#135200", "#092b00"];
|
|
green.primary = green[5];
|
|
var cyan = ["#e6fffb", "#b5f5ec", "#87e8de", "#5cdbd3", "#36cfc9", "#13c2c2", "#08979c", "#006d75", "#00474f", "#002329"];
|
|
cyan.primary = cyan[5];
|
|
var blue = ["#e6f4ff", "#bae0ff", "#91caff", "#69b1ff", "#4096ff", "#1677ff", "#0958d9", "#003eb3", "#002c8c", "#001d66"];
|
|
blue.primary = blue[5];
|
|
var geekblue = ["#f0f5ff", "#d6e4ff", "#adc6ff", "#85a5ff", "#597ef7", "#2f54eb", "#1d39c4", "#10239e", "#061178", "#030852"];
|
|
geekblue.primary = geekblue[5];
|
|
var purple = ["#f9f0ff", "#efdbff", "#d3adf7", "#b37feb", "#9254de", "#722ed1", "#531dab", "#391085", "#22075e", "#120338"];
|
|
purple.primary = purple[5];
|
|
var magenta = ["#fff0f6", "#ffd6e7", "#ffadd2", "#ff85c0", "#f759ab", "#eb2f96", "#c41d7f", "#9e1068", "#780650", "#520339"];
|
|
magenta.primary = magenta[5];
|
|
var grey = ["#a6a6a6", "#999999", "#8c8c8c", "#808080", "#737373", "#666666", "#404040", "#1a1a1a", "#000000", "#000000"];
|
|
grey.primary = grey[5];
|
|
var redDark = ["#2a1215", "#431418", "#58181c", "#791a1f", "#a61d24", "#d32029", "#e84749", "#f37370", "#f89f9a", "#fac8c3"];
|
|
redDark.primary = redDark[5];
|
|
var volcanoDark = ["#2b1611", "#441d12", "#592716", "#7c3118", "#aa3e19", "#d84a1b", "#e87040", "#f3956a", "#f8b692", "#fad4bc"];
|
|
volcanoDark.primary = volcanoDark[5];
|
|
var orangeDark = ["#2b1d11", "#442a11", "#593815", "#7c4a15", "#aa6215", "#d87a16", "#e89a3c", "#f3b765", "#f8cf8d", "#fae3b7"];
|
|
orangeDark.primary = orangeDark[5];
|
|
var goldDark = ["#2b2111", "#443111", "#594214", "#7c5914", "#aa7714", "#d89614", "#e8b339", "#f3cc62", "#f8df8b", "#faedb5"];
|
|
goldDark.primary = goldDark[5];
|
|
var yellowDark = ["#2b2611", "#443b11", "#595014", "#7c6e14", "#aa9514", "#d8bd14", "#e8d639", "#f3ea62", "#f8f48b", "#fafab5"];
|
|
yellowDark.primary = yellowDark[5];
|
|
var limeDark = ["#1f2611", "#2e3c10", "#3e4f13", "#536d13", "#6f9412", "#8bbb11", "#a9d134", "#c9e75d", "#e4f88b", "#f0fab5"];
|
|
limeDark.primary = limeDark[5];
|
|
var greenDark = ["#162312", "#1d3712", "#274916", "#306317", "#3c8618", "#49aa19", "#6abe39", "#8fd460", "#b2e58b", "#d5f2bb"];
|
|
greenDark.primary = greenDark[5];
|
|
var cyanDark = ["#112123", "#113536", "#144848", "#146262", "#138585", "#13a8a8", "#33bcb7", "#58d1c9", "#84e2d8", "#b2f1e8"];
|
|
cyanDark.primary = cyanDark[5];
|
|
var blueDark = ["#111a2c", "#112545", "#15325b", "#15417e", "#1554ad", "#1668dc", "#3c89e8", "#65a9f3", "#8dc5f8", "#b7dcfa"];
|
|
blueDark.primary = blueDark[5];
|
|
var geekblueDark = ["#131629", "#161d40", "#1c2755", "#203175", "#263ea0", "#2b4acb", "#5273e0", "#7f9ef3", "#a8c1f8", "#d2e0fa"];
|
|
geekblueDark.primary = geekblueDark[5];
|
|
var purpleDark = ["#1a1325", "#24163a", "#301c4d", "#3e2069", "#51258f", "#642ab5", "#854eca", "#ab7ae0", "#cda8f0", "#ebd7fa"];
|
|
purpleDark.primary = purpleDark[5];
|
|
var magentaDark = ["#291321", "#40162f", "#551c3b", "#75204f", "#a02669", "#cb2b83", "#e0529c", "#f37fb7", "#f8a8cc", "#fad2e3"];
|
|
magentaDark.primary = magentaDark[5];
|
|
var greyDark = ["#151515", "#1f1f1f", "#2d2d2d", "#393939", "#494949", "#5a5a5a", "#6a6a6a", "#7b7b7b", "#888888", "#969696"];
|
|
greyDark.primary = greyDark[5];
|
|
|
|
// node_modules/@ant-design/icons-angular/fesm2022/ant-design-icons-angular.mjs
|
|
var ANT_ICON_ANGULAR_CONSOLE_PREFIX = "[@ant-design/icons-angular]:";
|
|
function error(message) {
|
|
console.error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} ${message}.`);
|
|
}
|
|
function warn2(message) {
|
|
if (isDevMode()) {
|
|
console.warn(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX} ${message}.`);
|
|
}
|
|
}
|
|
function getSecondaryColor(primaryColor) {
|
|
return generate(primaryColor)[0];
|
|
}
|
|
function withSuffix(name2, theme) {
|
|
switch (theme) {
|
|
case "fill":
|
|
return `${name2}-fill`;
|
|
case "outline":
|
|
return `${name2}-o`;
|
|
case "twotone":
|
|
return `${name2}-twotone`;
|
|
case void 0:
|
|
return name2;
|
|
default:
|
|
throw new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Theme "${theme}" is not a recognized theme!`);
|
|
}
|
|
}
|
|
function withSuffixAndColor(name2, theme, pri, sec) {
|
|
return `${withSuffix(name2, theme)}-${pri}-${sec}`;
|
|
}
|
|
function mapAbbrToTheme(abbr) {
|
|
return abbr === "o" ? "outline" : abbr;
|
|
}
|
|
function alreadyHasAThemeSuffix(name2) {
|
|
return name2.endsWith("-fill") || name2.endsWith("-o") || name2.endsWith("-twotone");
|
|
}
|
|
function isIconDefinition(target) {
|
|
return typeof target === "object" && typeof target.name === "string" && (typeof target.theme === "string" || target.theme === void 0) && typeof target.icon === "string";
|
|
}
|
|
function getIconDefinitionFromAbbr(str) {
|
|
const arr = str.split("-");
|
|
const theme = mapAbbrToTheme(arr.splice(arr.length - 1, 1)[0]);
|
|
const name2 = arr.join("-");
|
|
return {
|
|
name: name2,
|
|
theme,
|
|
icon: ""
|
|
};
|
|
}
|
|
function cloneSVG(svg) {
|
|
return svg.cloneNode(true);
|
|
}
|
|
function replaceFillColor(raw) {
|
|
return raw.replace(/['"]#333['"]/g, '"primaryColor"').replace(/['"]#E6E6E6['"]/g, '"secondaryColor"').replace(/['"]#D9D9D9['"]/g, '"secondaryColor"').replace(/['"]#D8D8D8['"]/g, '"secondaryColor"');
|
|
}
|
|
function getNameAndNamespace(type) {
|
|
const split = type.split(":");
|
|
switch (split.length) {
|
|
case 1:
|
|
return [type, ""];
|
|
case 2:
|
|
return [split[1], split[0]];
|
|
default:
|
|
throw new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}The icon type ${type} is not valid!`);
|
|
}
|
|
}
|
|
function hasNamespace(type) {
|
|
return getNameAndNamespace(type)[1] !== "";
|
|
}
|
|
function NameSpaceIsNotSpecifyError() {
|
|
return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Type should have a namespace. Try "namespace:${name}".`);
|
|
}
|
|
function IconNotFoundError(icon) {
|
|
return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}the icon ${icon} does not exist or is not registered.`);
|
|
}
|
|
function HttpModuleNotImport() {
|
|
error(`you need to import "HttpClientModule" to use dynamic importing.`);
|
|
return null;
|
|
}
|
|
function UrlNotSafeError(url) {
|
|
return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}The url "${url}" is unsafe.`);
|
|
}
|
|
function SVGTagNotFoundError() {
|
|
return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}<svg> tag not found.`);
|
|
}
|
|
function DynamicLoadingTimeoutError() {
|
|
return new Error(`${ANT_ICON_ANGULAR_CONSOLE_PREFIX}Importing timeout error.`);
|
|
}
|
|
var JSONP_HANDLER_NAME = "__ant_icon_load";
|
|
var ANT_ICONS = new InjectionToken("ant_icons");
|
|
var _IconService = class _IconService {
|
|
set twoToneColor({
|
|
primaryColor,
|
|
secondaryColor
|
|
}) {
|
|
this._twoToneColorPalette.primaryColor = primaryColor;
|
|
this._twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);
|
|
}
|
|
get twoToneColor() {
|
|
return __spreadValues({}, this._twoToneColorPalette);
|
|
}
|
|
/**
|
|
* Disable dynamic loading (support static loading only).
|
|
*/
|
|
get _disableDynamicLoading() {
|
|
return false;
|
|
}
|
|
constructor(_antIcons) {
|
|
this._antIcons = _antIcons;
|
|
this.defaultTheme = "outline";
|
|
this._svgDefinitions = /* @__PURE__ */ new Map();
|
|
this._svgRenderedDefinitions = /* @__PURE__ */ new Map();
|
|
this._inProgressFetches = /* @__PURE__ */ new Map();
|
|
this._assetsUrlRoot = "";
|
|
this._twoToneColorPalette = {
|
|
primaryColor: "#333333",
|
|
secondaryColor: "#E6E6E6"
|
|
};
|
|
this._enableJsonpLoading = false;
|
|
this._jsonpIconLoad$ = new Subject();
|
|
this._rendererFactory = inject(RendererFactory2);
|
|
this._handler = inject(HttpBackend, {
|
|
optional: true
|
|
});
|
|
this._document = inject(DOCUMENT);
|
|
this.sanitizer = inject(DomSanitizer);
|
|
this._renderer = this._rendererFactory.createRenderer(null, null);
|
|
if (this._handler) {
|
|
this._http = new HttpClient(this._handler);
|
|
}
|
|
if (this._antIcons) {
|
|
this.addIcon(...this._antIcons);
|
|
}
|
|
}
|
|
/**
|
|
* Call this method to switch to jsonp like loading.
|
|
*/
|
|
useJsonpLoading() {
|
|
if (!this._enableJsonpLoading) {
|
|
this._enableJsonpLoading = true;
|
|
window[JSONP_HANDLER_NAME] = (icon) => {
|
|
this._jsonpIconLoad$.next(icon);
|
|
};
|
|
} else {
|
|
warn2("You are already using jsonp loading.");
|
|
}
|
|
}
|
|
/**
|
|
* Change the prefix of the inline svg resources, so they could be deployed elsewhere, like CDN.
|
|
* @param prefix
|
|
*/
|
|
changeAssetsSource(prefix) {
|
|
this._assetsUrlRoot = prefix.endsWith("/") ? prefix : prefix + "/";
|
|
}
|
|
/**
|
|
* Add icons provided by ant design.
|
|
* @param icons
|
|
*/
|
|
addIcon(...icons) {
|
|
icons.forEach((icon) => {
|
|
this._svgDefinitions.set(withSuffix(icon.name, icon.theme), icon);
|
|
});
|
|
}
|
|
/**
|
|
* Register an icon. Namespace is required.
|
|
* @param type
|
|
* @param literal
|
|
*/
|
|
addIconLiteral(type, literal) {
|
|
const [_, namespace] = getNameAndNamespace(type);
|
|
if (!namespace) {
|
|
throw NameSpaceIsNotSpecifyError();
|
|
}
|
|
this.addIcon({
|
|
name: type,
|
|
icon: literal
|
|
});
|
|
}
|
|
/**
|
|
* Remove all cache.
|
|
*/
|
|
clear() {
|
|
this._svgDefinitions.clear();
|
|
this._svgRenderedDefinitions.clear();
|
|
}
|
|
/**
|
|
* Get a rendered `SVGElement`.
|
|
* @param icon
|
|
* @param twoToneColor
|
|
*/
|
|
getRenderedContent(icon, twoToneColor) {
|
|
const definition = isIconDefinition(icon) ? icon : this._svgDefinitions.get(icon) || null;
|
|
if (!definition && this._disableDynamicLoading) {
|
|
throw IconNotFoundError(icon);
|
|
}
|
|
const $iconDefinition = definition ? of(definition) : this._loadIconDynamically(icon);
|
|
return $iconDefinition.pipe(map((i) => {
|
|
if (!i) {
|
|
throw IconNotFoundError(icon);
|
|
}
|
|
return this._loadSVGFromCacheOrCreateNew(i, twoToneColor);
|
|
}));
|
|
}
|
|
getCachedIcons() {
|
|
return this._svgDefinitions;
|
|
}
|
|
/**
|
|
* Get raw svg and assemble a `IconDefinition` object.
|
|
* @param type
|
|
*/
|
|
_loadIconDynamically(type) {
|
|
if (!this._http && !this._enableJsonpLoading) {
|
|
return of(HttpModuleNotImport());
|
|
}
|
|
let inProgress = this._inProgressFetches.get(type);
|
|
if (!inProgress) {
|
|
const [name2, namespace] = getNameAndNamespace(type);
|
|
const icon = namespace ? {
|
|
name: type,
|
|
icon: ""
|
|
} : getIconDefinitionFromAbbr(name2);
|
|
const suffix = this._enableJsonpLoading ? ".js" : ".svg";
|
|
const url = (namespace ? `${this._assetsUrlRoot}assets/${namespace}/${name2}` : `${this._assetsUrlRoot}assets/${icon.theme}/${icon.name}`) + suffix;
|
|
const safeUrl = this.sanitizer.sanitize(SecurityContext.URL, url);
|
|
if (!safeUrl) {
|
|
throw UrlNotSafeError(url);
|
|
}
|
|
const source = !this._enableJsonpLoading ? this._http.get(safeUrl, {
|
|
responseType: "text"
|
|
}).pipe(map((literal) => __spreadProps(__spreadValues({}, icon), {
|
|
icon: literal
|
|
}))) : this._loadIconDynamicallyWithJsonp(icon, safeUrl);
|
|
inProgress = source.pipe(tap((definition) => this.addIcon(definition)), finalize(() => this._inProgressFetches.delete(type)), catchError(() => of(null)), share());
|
|
this._inProgressFetches.set(type, inProgress);
|
|
}
|
|
return inProgress;
|
|
}
|
|
_loadIconDynamicallyWithJsonp(icon, url) {
|
|
return new Observable((subscriber) => {
|
|
const loader = this._document.createElement("script");
|
|
const timer = setTimeout(() => {
|
|
clean();
|
|
subscriber.error(DynamicLoadingTimeoutError());
|
|
}, 6e3);
|
|
loader.src = url;
|
|
function clean() {
|
|
loader.parentNode.removeChild(loader);
|
|
clearTimeout(timer);
|
|
}
|
|
this._document.body.appendChild(loader);
|
|
this._jsonpIconLoad$.pipe(filter((i) => i.name === icon.name && i.theme === icon.theme), take(1)).subscribe((i) => {
|
|
subscriber.next(i);
|
|
clean();
|
|
});
|
|
});
|
|
}
|
|
/**
|
|
* Render a new `SVGElement` for a given `IconDefinition`, or make a copy from cache.
|
|
* @param icon
|
|
* @param twoToneColor
|
|
*/
|
|
_loadSVGFromCacheOrCreateNew(icon, twoToneColor) {
|
|
let svg;
|
|
const pri = twoToneColor || this._twoToneColorPalette.primaryColor;
|
|
const sec = getSecondaryColor(pri) || this._twoToneColorPalette.secondaryColor;
|
|
const key = icon.theme === "twotone" ? withSuffixAndColor(icon.name, icon.theme, pri, sec) : icon.theme === void 0 ? icon.name : withSuffix(icon.name, icon.theme);
|
|
const cached = this._svgRenderedDefinitions.get(key);
|
|
if (cached) {
|
|
svg = cached.icon;
|
|
} else {
|
|
svg = this._setSVGAttribute(this._colorizeSVGIcon(
|
|
// Icons provided by ant design should be refined to remove preset colors.
|
|
this._createSVGElementFromString(hasNamespace(icon.name) ? icon.icon : replaceFillColor(icon.icon)),
|
|
icon.theme === "twotone",
|
|
pri,
|
|
sec
|
|
));
|
|
this._svgRenderedDefinitions.set(key, __spreadProps(__spreadValues({}, icon), {
|
|
icon: svg
|
|
}));
|
|
}
|
|
return cloneSVG(svg);
|
|
}
|
|
_createSVGElementFromString(str) {
|
|
const div = this._document.createElement("div");
|
|
div.innerHTML = str;
|
|
const svg = div.querySelector("svg");
|
|
if (!svg) {
|
|
throw SVGTagNotFoundError;
|
|
}
|
|
return svg;
|
|
}
|
|
_setSVGAttribute(svg) {
|
|
this._renderer.setAttribute(svg, "width", "1em");
|
|
this._renderer.setAttribute(svg, "height", "1em");
|
|
return svg;
|
|
}
|
|
_colorizeSVGIcon(svg, twotone, pri, sec) {
|
|
if (twotone) {
|
|
const children = svg.childNodes;
|
|
const length = children.length;
|
|
for (let i = 0; i < length; i++) {
|
|
const child = children[i];
|
|
if (child.getAttribute("fill") === "secondaryColor") {
|
|
this._renderer.setAttribute(child, "fill", sec);
|
|
} else {
|
|
this._renderer.setAttribute(child, "fill", pri);
|
|
}
|
|
}
|
|
}
|
|
this._renderer.setAttribute(svg, "fill", "currentColor");
|
|
return svg;
|
|
}
|
|
};
|
|
_IconService.ɵfac = function IconService_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _IconService)(ɵɵinject(ANT_ICONS, 8));
|
|
};
|
|
_IconService.ɵprov = ɵɵdefineInjectable({
|
|
token: _IconService,
|
|
factory: _IconService.ɵfac,
|
|
providedIn: "root"
|
|
});
|
|
var IconService = _IconService;
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IconService, [{
|
|
type: Injectable,
|
|
args: [{
|
|
providedIn: "root"
|
|
}]
|
|
}], () => [{
|
|
type: void 0,
|
|
decorators: [{
|
|
type: Optional
|
|
}, {
|
|
type: Inject,
|
|
args: [ANT_ICONS]
|
|
}]
|
|
}], null);
|
|
})();
|
|
function checkMeta(prev, after) {
|
|
return prev.type === after.type && prev.theme === after.theme && prev.twoToneColor === after.twoToneColor;
|
|
}
|
|
var _IconDirective = class _IconDirective {
|
|
constructor(_iconService) {
|
|
this._iconService = _iconService;
|
|
this._elementRef = inject(ElementRef);
|
|
this._renderer = inject(Renderer2);
|
|
}
|
|
ngOnChanges(changes) {
|
|
if (changes.type || changes.theme || changes.twoToneColor) {
|
|
this._changeIcon();
|
|
}
|
|
}
|
|
/**
|
|
* Render a new icon in the current element. Remove the icon when `type` is falsy.
|
|
*/
|
|
_changeIcon() {
|
|
return new Promise((resolve) => {
|
|
if (!this.type) {
|
|
this._clearSVGElement();
|
|
resolve(null);
|
|
return;
|
|
}
|
|
const beforeMeta = this._getSelfRenderMeta();
|
|
this._iconService.getRenderedContent(this._parseIconType(this.type, this.theme), this.twoToneColor).subscribe((svg) => {
|
|
const afterMeta = this._getSelfRenderMeta();
|
|
if (checkMeta(beforeMeta, afterMeta)) {
|
|
this._setSVGElement(svg);
|
|
resolve(svg);
|
|
} else {
|
|
resolve(null);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
_getSelfRenderMeta() {
|
|
return {
|
|
type: this.type,
|
|
theme: this.theme,
|
|
twoToneColor: this.twoToneColor
|
|
};
|
|
}
|
|
/**
|
|
* Parse a icon to the standard form, an `IconDefinition` or a string like 'account-book-fill` (with a theme suffixed).
|
|
* If namespace is specified, ignore theme because it meaningless for users' icons.
|
|
*
|
|
* @param type
|
|
* @param theme
|
|
*/
|
|
_parseIconType(type, theme) {
|
|
if (isIconDefinition(type)) {
|
|
return type;
|
|
} else {
|
|
const [name2, namespace] = getNameAndNamespace(type);
|
|
if (namespace) {
|
|
return type;
|
|
}
|
|
if (alreadyHasAThemeSuffix(name2)) {
|
|
if (theme) {
|
|
warn2(`'type' ${name2} already gets a theme inside so 'theme' ${theme} would be ignored`);
|
|
}
|
|
return name2;
|
|
} else {
|
|
return withSuffix(name2, theme || this._iconService.defaultTheme);
|
|
}
|
|
}
|
|
}
|
|
_setSVGElement(svg) {
|
|
this._clearSVGElement();
|
|
this._renderer.appendChild(this._elementRef.nativeElement, svg);
|
|
}
|
|
_clearSVGElement() {
|
|
const el = this._elementRef.nativeElement;
|
|
const children = el.childNodes;
|
|
const length = children.length;
|
|
for (let i = length - 1; i >= 0; i--) {
|
|
const child = children[i];
|
|
if (child.tagName?.toLowerCase() === "svg") {
|
|
this._renderer.removeChild(el, child);
|
|
}
|
|
}
|
|
}
|
|
};
|
|
_IconDirective.ɵfac = function IconDirective_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _IconDirective)(ɵɵdirectiveInject(IconService));
|
|
};
|
|
_IconDirective.ɵdir = ɵɵdefineDirective({
|
|
type: _IconDirective,
|
|
selectors: [["", "antIcon", ""]],
|
|
inputs: {
|
|
type: "type",
|
|
theme: "theme",
|
|
twoToneColor: "twoToneColor"
|
|
},
|
|
features: [ɵɵNgOnChangesFeature]
|
|
});
|
|
var IconDirective = _IconDirective;
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(IconDirective, [{
|
|
type: Directive,
|
|
args: [{
|
|
selector: "[antIcon]"
|
|
}]
|
|
}], () => [{
|
|
type: IconService
|
|
}], {
|
|
type: [{
|
|
type: Input
|
|
}],
|
|
theme: [{
|
|
type: Input
|
|
}],
|
|
twoToneColor: [{
|
|
type: Input
|
|
}]
|
|
});
|
|
})();
|
|
|
|
// node_modules/@angular/cdk/fesm2022/platform2.mjs
|
|
var hasV8BreakIterator;
|
|
try {
|
|
hasV8BreakIterator = typeof Intl !== "undefined" && Intl.v8BreakIterator;
|
|
} catch {
|
|
hasV8BreakIterator = false;
|
|
}
|
|
var Platform = class _Platform {
|
|
_platformId = inject(PLATFORM_ID);
|
|
// We want to use the Angular platform check because if the Document is shimmed
|
|
// without the navigator, the following checks will fail. This is preferred because
|
|
// sometimes the Document may be shimmed without the user's knowledge or intention
|
|
/** Whether the Angular application is being rendered in the browser. */
|
|
isBrowser = this._platformId ? isPlatformBrowser(this._platformId) : typeof document === "object" && !!document;
|
|
/** Whether the current browser is Microsoft Edge. */
|
|
EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);
|
|
/** Whether the current rendering engine is Microsoft Trident. */
|
|
TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);
|
|
// EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.
|
|
/** Whether the current rendering engine is Blink. */
|
|
BLINK = this.isBrowser && !!(window.chrome || hasV8BreakIterator) && typeof CSS !== "undefined" && !this.EDGE && !this.TRIDENT;
|
|
// Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to
|
|
// ensure that Webkit runs standalone and is not used as another engine's base.
|
|
/** Whether the current rendering engine is WebKit. */
|
|
WEBKIT = this.isBrowser && /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;
|
|
/** Whether the current platform is Apple iOS. */
|
|
IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !("MSStream" in window);
|
|
// It's difficult to detect the plain Gecko engine, because most of the browsers identify
|
|
// them self as Gecko-like browsers and modify the userAgent's according to that.
|
|
// Since we only cover one explicit Firefox case, we can simply check for Firefox
|
|
// instead of having an unstable check for Gecko.
|
|
/** Whether the current browser is Firefox. */
|
|
FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);
|
|
/** Whether the current platform is Android. */
|
|
// Trident on mobile adds the android platform to the userAgent to trick detections.
|
|
ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;
|
|
// Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake
|
|
// this and just place the Safari keyword in the userAgent. To be more safe about Safari every
|
|
// Safari browser should also use Webkit as its layout engine.
|
|
/** Whether the current browser is Safari. */
|
|
SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;
|
|
constructor() {
|
|
}
|
|
static ɵfac = function Platform_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _Platform)();
|
|
};
|
|
static ɵprov = ɵɵdefineInjectable({
|
|
token: _Platform,
|
|
factory: _Platform.ɵfac,
|
|
providedIn: "root"
|
|
});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(Platform, [{
|
|
type: Injectable,
|
|
args: [{
|
|
providedIn: "root"
|
|
}]
|
|
}], () => [], null);
|
|
})();
|
|
|
|
// node_modules/@angular/cdk/fesm2022/scrolling2.mjs
|
|
var RtlScrollAxisType;
|
|
(function(RtlScrollAxisType2) {
|
|
RtlScrollAxisType2[RtlScrollAxisType2["NORMAL"] = 0] = "NORMAL";
|
|
RtlScrollAxisType2[RtlScrollAxisType2["NEGATED"] = 1] = "NEGATED";
|
|
RtlScrollAxisType2[RtlScrollAxisType2["INVERTED"] = 2] = "INVERTED";
|
|
})(RtlScrollAxisType || (RtlScrollAxisType = {}));
|
|
var rtlScrollAxisType;
|
|
var scrollBehaviorSupported;
|
|
function supportsScrollBehavior() {
|
|
if (scrollBehaviorSupported == null) {
|
|
if (typeof document !== "object" || !document || typeof Element !== "function" || !Element) {
|
|
scrollBehaviorSupported = false;
|
|
return scrollBehaviorSupported;
|
|
}
|
|
if (document.documentElement?.style && "scrollBehavior" in document.documentElement.style) {
|
|
scrollBehaviorSupported = true;
|
|
} else {
|
|
const scrollToFunction = Element.prototype.scrollTo;
|
|
if (scrollToFunction) {
|
|
scrollBehaviorSupported = !/\{\s*\[native code\]\s*\}/.test(scrollToFunction.toString());
|
|
} else {
|
|
scrollBehaviorSupported = false;
|
|
}
|
|
}
|
|
}
|
|
return scrollBehaviorSupported;
|
|
}
|
|
function getRtlScrollAxisType() {
|
|
if (typeof document !== "object" || !document) {
|
|
return RtlScrollAxisType.NORMAL;
|
|
}
|
|
if (rtlScrollAxisType == null) {
|
|
const scrollContainer = document.createElement("div");
|
|
const containerStyle = scrollContainer.style;
|
|
scrollContainer.dir = "rtl";
|
|
containerStyle.width = "1px";
|
|
containerStyle.overflow = "auto";
|
|
containerStyle.visibility = "hidden";
|
|
containerStyle.pointerEvents = "none";
|
|
containerStyle.position = "absolute";
|
|
const content = document.createElement("div");
|
|
const contentStyle = content.style;
|
|
contentStyle.width = "2px";
|
|
contentStyle.height = "1px";
|
|
scrollContainer.appendChild(content);
|
|
document.body.appendChild(scrollContainer);
|
|
rtlScrollAxisType = RtlScrollAxisType.NORMAL;
|
|
if (scrollContainer.scrollLeft === 0) {
|
|
scrollContainer.scrollLeft = 1;
|
|
rtlScrollAxisType = scrollContainer.scrollLeft === 0 ? RtlScrollAxisType.NEGATED : RtlScrollAxisType.INVERTED;
|
|
}
|
|
scrollContainer.remove();
|
|
}
|
|
return rtlScrollAxisType;
|
|
}
|
|
|
|
// node_modules/@angular/cdk/fesm2022/shadow-dom.mjs
|
|
function _getEventTarget(event) {
|
|
return event.composedPath ? event.composedPath()[0] : event.target;
|
|
}
|
|
|
|
// node_modules/@angular/cdk/fesm2022/test-environment.mjs
|
|
function _isTestEnvironment() {
|
|
return (
|
|
// @ts-ignore
|
|
typeof __karma__ !== "undefined" && !!__karma__ || // @ts-ignore
|
|
typeof jasmine !== "undefined" && !!jasmine || // @ts-ignore
|
|
typeof jest !== "undefined" && !!jest || // @ts-ignore
|
|
typeof Mocha !== "undefined" && !!Mocha
|
|
);
|
|
}
|
|
|
|
// node_modules/@angular/cdk/fesm2022/platform.mjs
|
|
var PlatformModule = class _PlatformModule {
|
|
static ɵfac = function PlatformModule_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _PlatformModule)();
|
|
};
|
|
static ɵmod = ɵɵdefineNgModule({
|
|
type: _PlatformModule
|
|
});
|
|
static ɵinj = ɵɵdefineInjector({});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(PlatformModule, [{
|
|
type: NgModule,
|
|
args: [{}]
|
|
}], null, null);
|
|
})();
|
|
|
|
// node_modules/@ctrl/tinycolor/dist/module/util.js
|
|
function bound01(n, max) {
|
|
if (isOnePointZero(n)) {
|
|
n = "100%";
|
|
}
|
|
var isPercent = isPercentage(n);
|
|
n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));
|
|
if (isPercent) {
|
|
n = parseInt(String(n * max), 10) / 100;
|
|
}
|
|
if (Math.abs(n - max) < 1e-6) {
|
|
return 1;
|
|
}
|
|
if (max === 360) {
|
|
n = (n < 0 ? n % max + max : n % max) / parseFloat(String(max));
|
|
} else {
|
|
n = n % max / parseFloat(String(max));
|
|
}
|
|
return n;
|
|
}
|
|
function clamp01(val) {
|
|
return Math.min(1, Math.max(0, val));
|
|
}
|
|
function isOnePointZero(n) {
|
|
return typeof n === "string" && n.indexOf(".") !== -1 && parseFloat(n) === 1;
|
|
}
|
|
function isPercentage(n) {
|
|
return typeof n === "string" && n.indexOf("%") !== -1;
|
|
}
|
|
function boundAlpha(a) {
|
|
a = parseFloat(a);
|
|
if (isNaN(a) || a < 0 || a > 1) {
|
|
a = 1;
|
|
}
|
|
return a;
|
|
}
|
|
function convertToPercentage(n) {
|
|
if (n <= 1) {
|
|
return "".concat(Number(n) * 100, "%");
|
|
}
|
|
return n;
|
|
}
|
|
function pad2(c) {
|
|
return c.length === 1 ? "0" + c : String(c);
|
|
}
|
|
|
|
// node_modules/@ctrl/tinycolor/dist/module/conversion.js
|
|
function rgbToRgb(r, g, b) {
|
|
return {
|
|
r: bound01(r, 255) * 255,
|
|
g: bound01(g, 255) * 255,
|
|
b: bound01(b, 255) * 255
|
|
};
|
|
}
|
|
function rgbToHsl(r, g, b) {
|
|
r = bound01(r, 255);
|
|
g = bound01(g, 255);
|
|
b = bound01(b, 255);
|
|
var max = Math.max(r, g, b);
|
|
var min = Math.min(r, g, b);
|
|
var h = 0;
|
|
var s = 0;
|
|
var l = (max + min) / 2;
|
|
if (max === min) {
|
|
s = 0;
|
|
h = 0;
|
|
} else {
|
|
var d = max - min;
|
|
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
switch (max) {
|
|
case r:
|
|
h = (g - b) / d + (g < b ? 6 : 0);
|
|
break;
|
|
case g:
|
|
h = (b - r) / d + 2;
|
|
break;
|
|
case b:
|
|
h = (r - g) / d + 4;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
h /= 6;
|
|
}
|
|
return { h, s, l };
|
|
}
|
|
function hue2rgb(p, q, t) {
|
|
if (t < 0) {
|
|
t += 1;
|
|
}
|
|
if (t > 1) {
|
|
t -= 1;
|
|
}
|
|
if (t < 1 / 6) {
|
|
return p + (q - p) * (6 * t);
|
|
}
|
|
if (t < 1 / 2) {
|
|
return q;
|
|
}
|
|
if (t < 2 / 3) {
|
|
return p + (q - p) * (2 / 3 - t) * 6;
|
|
}
|
|
return p;
|
|
}
|
|
function hslToRgb(h, s, l) {
|
|
var r;
|
|
var g;
|
|
var b;
|
|
h = bound01(h, 360);
|
|
s = bound01(s, 100);
|
|
l = bound01(l, 100);
|
|
if (s === 0) {
|
|
g = l;
|
|
b = l;
|
|
r = l;
|
|
} else {
|
|
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
|
var p = 2 * l - q;
|
|
r = hue2rgb(p, q, h + 1 / 3);
|
|
g = hue2rgb(p, q, h);
|
|
b = hue2rgb(p, q, h - 1 / 3);
|
|
}
|
|
return { r: r * 255, g: g * 255, b: b * 255 };
|
|
}
|
|
function rgbToHsv(r, g, b) {
|
|
r = bound01(r, 255);
|
|
g = bound01(g, 255);
|
|
b = bound01(b, 255);
|
|
var max = Math.max(r, g, b);
|
|
var min = Math.min(r, g, b);
|
|
var h = 0;
|
|
var v = max;
|
|
var d = max - min;
|
|
var s = max === 0 ? 0 : d / max;
|
|
if (max === min) {
|
|
h = 0;
|
|
} else {
|
|
switch (max) {
|
|
case r:
|
|
h = (g - b) / d + (g < b ? 6 : 0);
|
|
break;
|
|
case g:
|
|
h = (b - r) / d + 2;
|
|
break;
|
|
case b:
|
|
h = (r - g) / d + 4;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
h /= 6;
|
|
}
|
|
return { h, s, v };
|
|
}
|
|
function hsvToRgb(h, s, v) {
|
|
h = bound01(h, 360) * 6;
|
|
s = bound01(s, 100);
|
|
v = bound01(v, 100);
|
|
var i = Math.floor(h);
|
|
var f = h - i;
|
|
var p = v * (1 - s);
|
|
var q = v * (1 - f * s);
|
|
var t = v * (1 - (1 - f) * s);
|
|
var mod = i % 6;
|
|
var r = [v, q, p, p, t, v][mod];
|
|
var g = [t, v, v, q, p, p][mod];
|
|
var b = [p, p, t, v, v, q][mod];
|
|
return { r: r * 255, g: g * 255, b: b * 255 };
|
|
}
|
|
function rgbToHex(r, g, b, allow3Char) {
|
|
var hex = [
|
|
pad2(Math.round(r).toString(16)),
|
|
pad2(Math.round(g).toString(16)),
|
|
pad2(Math.round(b).toString(16))
|
|
];
|
|
if (allow3Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1))) {
|
|
return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);
|
|
}
|
|
return hex.join("");
|
|
}
|
|
function rgbaToHex(r, g, b, a, allow4Char) {
|
|
var hex = [
|
|
pad2(Math.round(r).toString(16)),
|
|
pad2(Math.round(g).toString(16)),
|
|
pad2(Math.round(b).toString(16)),
|
|
pad2(convertDecimalToHex(a))
|
|
];
|
|
if (allow4Char && hex[0].startsWith(hex[0].charAt(1)) && hex[1].startsWith(hex[1].charAt(1)) && hex[2].startsWith(hex[2].charAt(1)) && hex[3].startsWith(hex[3].charAt(1))) {
|
|
return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);
|
|
}
|
|
return hex.join("");
|
|
}
|
|
function convertDecimalToHex(d) {
|
|
return Math.round(parseFloat(d) * 255).toString(16);
|
|
}
|
|
function convertHexToDecimal(h) {
|
|
return parseIntFromHex(h) / 255;
|
|
}
|
|
function parseIntFromHex(val) {
|
|
return parseInt(val, 16);
|
|
}
|
|
function numberInputToObject(color) {
|
|
return {
|
|
r: color >> 16,
|
|
g: (color & 65280) >> 8,
|
|
b: color & 255
|
|
};
|
|
}
|
|
|
|
// node_modules/@ctrl/tinycolor/dist/module/css-color-names.js
|
|
var names = {
|
|
aliceblue: "#f0f8ff",
|
|
antiquewhite: "#faebd7",
|
|
aqua: "#00ffff",
|
|
aquamarine: "#7fffd4",
|
|
azure: "#f0ffff",
|
|
beige: "#f5f5dc",
|
|
bisque: "#ffe4c4",
|
|
black: "#000000",
|
|
blanchedalmond: "#ffebcd",
|
|
blue: "#0000ff",
|
|
blueviolet: "#8a2be2",
|
|
brown: "#a52a2a",
|
|
burlywood: "#deb887",
|
|
cadetblue: "#5f9ea0",
|
|
chartreuse: "#7fff00",
|
|
chocolate: "#d2691e",
|
|
coral: "#ff7f50",
|
|
cornflowerblue: "#6495ed",
|
|
cornsilk: "#fff8dc",
|
|
crimson: "#dc143c",
|
|
cyan: "#00ffff",
|
|
darkblue: "#00008b",
|
|
darkcyan: "#008b8b",
|
|
darkgoldenrod: "#b8860b",
|
|
darkgray: "#a9a9a9",
|
|
darkgreen: "#006400",
|
|
darkgrey: "#a9a9a9",
|
|
darkkhaki: "#bdb76b",
|
|
darkmagenta: "#8b008b",
|
|
darkolivegreen: "#556b2f",
|
|
darkorange: "#ff8c00",
|
|
darkorchid: "#9932cc",
|
|
darkred: "#8b0000",
|
|
darksalmon: "#e9967a",
|
|
darkseagreen: "#8fbc8f",
|
|
darkslateblue: "#483d8b",
|
|
darkslategray: "#2f4f4f",
|
|
darkslategrey: "#2f4f4f",
|
|
darkturquoise: "#00ced1",
|
|
darkviolet: "#9400d3",
|
|
deeppink: "#ff1493",
|
|
deepskyblue: "#00bfff",
|
|
dimgray: "#696969",
|
|
dimgrey: "#696969",
|
|
dodgerblue: "#1e90ff",
|
|
firebrick: "#b22222",
|
|
floralwhite: "#fffaf0",
|
|
forestgreen: "#228b22",
|
|
fuchsia: "#ff00ff",
|
|
gainsboro: "#dcdcdc",
|
|
ghostwhite: "#f8f8ff",
|
|
goldenrod: "#daa520",
|
|
gold: "#ffd700",
|
|
gray: "#808080",
|
|
green: "#008000",
|
|
greenyellow: "#adff2f",
|
|
grey: "#808080",
|
|
honeydew: "#f0fff0",
|
|
hotpink: "#ff69b4",
|
|
indianred: "#cd5c5c",
|
|
indigo: "#4b0082",
|
|
ivory: "#fffff0",
|
|
khaki: "#f0e68c",
|
|
lavenderblush: "#fff0f5",
|
|
lavender: "#e6e6fa",
|
|
lawngreen: "#7cfc00",
|
|
lemonchiffon: "#fffacd",
|
|
lightblue: "#add8e6",
|
|
lightcoral: "#f08080",
|
|
lightcyan: "#e0ffff",
|
|
lightgoldenrodyellow: "#fafad2",
|
|
lightgray: "#d3d3d3",
|
|
lightgreen: "#90ee90",
|
|
lightgrey: "#d3d3d3",
|
|
lightpink: "#ffb6c1",
|
|
lightsalmon: "#ffa07a",
|
|
lightseagreen: "#20b2aa",
|
|
lightskyblue: "#87cefa",
|
|
lightslategray: "#778899",
|
|
lightslategrey: "#778899",
|
|
lightsteelblue: "#b0c4de",
|
|
lightyellow: "#ffffe0",
|
|
lime: "#00ff00",
|
|
limegreen: "#32cd32",
|
|
linen: "#faf0e6",
|
|
magenta: "#ff00ff",
|
|
maroon: "#800000",
|
|
mediumaquamarine: "#66cdaa",
|
|
mediumblue: "#0000cd",
|
|
mediumorchid: "#ba55d3",
|
|
mediumpurple: "#9370db",
|
|
mediumseagreen: "#3cb371",
|
|
mediumslateblue: "#7b68ee",
|
|
mediumspringgreen: "#00fa9a",
|
|
mediumturquoise: "#48d1cc",
|
|
mediumvioletred: "#c71585",
|
|
midnightblue: "#191970",
|
|
mintcream: "#f5fffa",
|
|
mistyrose: "#ffe4e1",
|
|
moccasin: "#ffe4b5",
|
|
navajowhite: "#ffdead",
|
|
navy: "#000080",
|
|
oldlace: "#fdf5e6",
|
|
olive: "#808000",
|
|
olivedrab: "#6b8e23",
|
|
orange: "#ffa500",
|
|
orangered: "#ff4500",
|
|
orchid: "#da70d6",
|
|
palegoldenrod: "#eee8aa",
|
|
palegreen: "#98fb98",
|
|
paleturquoise: "#afeeee",
|
|
palevioletred: "#db7093",
|
|
papayawhip: "#ffefd5",
|
|
peachpuff: "#ffdab9",
|
|
peru: "#cd853f",
|
|
pink: "#ffc0cb",
|
|
plum: "#dda0dd",
|
|
powderblue: "#b0e0e6",
|
|
purple: "#800080",
|
|
rebeccapurple: "#663399",
|
|
red: "#ff0000",
|
|
rosybrown: "#bc8f8f",
|
|
royalblue: "#4169e1",
|
|
saddlebrown: "#8b4513",
|
|
salmon: "#fa8072",
|
|
sandybrown: "#f4a460",
|
|
seagreen: "#2e8b57",
|
|
seashell: "#fff5ee",
|
|
sienna: "#a0522d",
|
|
silver: "#c0c0c0",
|
|
skyblue: "#87ceeb",
|
|
slateblue: "#6a5acd",
|
|
slategray: "#708090",
|
|
slategrey: "#708090",
|
|
snow: "#fffafa",
|
|
springgreen: "#00ff7f",
|
|
steelblue: "#4682b4",
|
|
tan: "#d2b48c",
|
|
teal: "#008080",
|
|
thistle: "#d8bfd8",
|
|
tomato: "#ff6347",
|
|
turquoise: "#40e0d0",
|
|
violet: "#ee82ee",
|
|
wheat: "#f5deb3",
|
|
white: "#ffffff",
|
|
whitesmoke: "#f5f5f5",
|
|
yellow: "#ffff00",
|
|
yellowgreen: "#9acd32"
|
|
};
|
|
|
|
// node_modules/@ctrl/tinycolor/dist/module/format-input.js
|
|
function inputToRGB(color) {
|
|
var rgb = { r: 0, g: 0, b: 0 };
|
|
var a = 1;
|
|
var s = null;
|
|
var v = null;
|
|
var l = null;
|
|
var ok = false;
|
|
var format = false;
|
|
if (typeof color === "string") {
|
|
color = stringInputToObject(color);
|
|
}
|
|
if (typeof color === "object") {
|
|
if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {
|
|
rgb = rgbToRgb(color.r, color.g, color.b);
|
|
ok = true;
|
|
format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb";
|
|
} else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {
|
|
s = convertToPercentage(color.s);
|
|
v = convertToPercentage(color.v);
|
|
rgb = hsvToRgb(color.h, s, v);
|
|
ok = true;
|
|
format = "hsv";
|
|
} else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {
|
|
s = convertToPercentage(color.s);
|
|
l = convertToPercentage(color.l);
|
|
rgb = hslToRgb(color.h, s, l);
|
|
ok = true;
|
|
format = "hsl";
|
|
}
|
|
if (Object.prototype.hasOwnProperty.call(color, "a")) {
|
|
a = color.a;
|
|
}
|
|
}
|
|
a = boundAlpha(a);
|
|
return {
|
|
ok,
|
|
format: color.format || format,
|
|
r: Math.min(255, Math.max(rgb.r, 0)),
|
|
g: Math.min(255, Math.max(rgb.g, 0)),
|
|
b: Math.min(255, Math.max(rgb.b, 0)),
|
|
a
|
|
};
|
|
}
|
|
var CSS_INTEGER = "[-\\+]?\\d+%?";
|
|
var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?";
|
|
var CSS_UNIT = "(?:".concat(CSS_NUMBER, ")|(?:").concat(CSS_INTEGER, ")");
|
|
var PERMISSIVE_MATCH3 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
|
|
var PERMISSIVE_MATCH4 = "[\\s|\\(]+(".concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")[,|\\s]+(").concat(CSS_UNIT, ")\\s*\\)?");
|
|
var matchers = {
|
|
CSS_UNIT: new RegExp(CSS_UNIT),
|
|
rgb: new RegExp("rgb" + PERMISSIVE_MATCH3),
|
|
rgba: new RegExp("rgba" + PERMISSIVE_MATCH4),
|
|
hsl: new RegExp("hsl" + PERMISSIVE_MATCH3),
|
|
hsla: new RegExp("hsla" + PERMISSIVE_MATCH4),
|
|
hsv: new RegExp("hsv" + PERMISSIVE_MATCH3),
|
|
hsva: new RegExp("hsva" + PERMISSIVE_MATCH4),
|
|
hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
|
hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,
|
|
hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,
|
|
hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/
|
|
};
|
|
function stringInputToObject(color) {
|
|
color = color.trim().toLowerCase();
|
|
if (color.length === 0) {
|
|
return false;
|
|
}
|
|
var named = false;
|
|
if (names[color]) {
|
|
color = names[color];
|
|
named = true;
|
|
} else if (color === "transparent") {
|
|
return { r: 0, g: 0, b: 0, a: 0, format: "name" };
|
|
}
|
|
var match = matchers.rgb.exec(color);
|
|
if (match) {
|
|
return { r: match[1], g: match[2], b: match[3] };
|
|
}
|
|
match = matchers.rgba.exec(color);
|
|
if (match) {
|
|
return { r: match[1], g: match[2], b: match[3], a: match[4] };
|
|
}
|
|
match = matchers.hsl.exec(color);
|
|
if (match) {
|
|
return { h: match[1], s: match[2], l: match[3] };
|
|
}
|
|
match = matchers.hsla.exec(color);
|
|
if (match) {
|
|
return { h: match[1], s: match[2], l: match[3], a: match[4] };
|
|
}
|
|
match = matchers.hsv.exec(color);
|
|
if (match) {
|
|
return { h: match[1], s: match[2], v: match[3] };
|
|
}
|
|
match = matchers.hsva.exec(color);
|
|
if (match) {
|
|
return { h: match[1], s: match[2], v: match[3], a: match[4] };
|
|
}
|
|
match = matchers.hex8.exec(color);
|
|
if (match) {
|
|
return {
|
|
r: parseIntFromHex(match[1]),
|
|
g: parseIntFromHex(match[2]),
|
|
b: parseIntFromHex(match[3]),
|
|
a: convertHexToDecimal(match[4]),
|
|
format: named ? "name" : "hex8"
|
|
};
|
|
}
|
|
match = matchers.hex6.exec(color);
|
|
if (match) {
|
|
return {
|
|
r: parseIntFromHex(match[1]),
|
|
g: parseIntFromHex(match[2]),
|
|
b: parseIntFromHex(match[3]),
|
|
format: named ? "name" : "hex"
|
|
};
|
|
}
|
|
match = matchers.hex4.exec(color);
|
|
if (match) {
|
|
return {
|
|
r: parseIntFromHex(match[1] + match[1]),
|
|
g: parseIntFromHex(match[2] + match[2]),
|
|
b: parseIntFromHex(match[3] + match[3]),
|
|
a: convertHexToDecimal(match[4] + match[4]),
|
|
format: named ? "name" : "hex8"
|
|
};
|
|
}
|
|
match = matchers.hex3.exec(color);
|
|
if (match) {
|
|
return {
|
|
r: parseIntFromHex(match[1] + match[1]),
|
|
g: parseIntFromHex(match[2] + match[2]),
|
|
b: parseIntFromHex(match[3] + match[3]),
|
|
format: named ? "name" : "hex"
|
|
};
|
|
}
|
|
return false;
|
|
}
|
|
function isValidCSSUnit(color) {
|
|
return Boolean(matchers.CSS_UNIT.exec(String(color)));
|
|
}
|
|
|
|
// node_modules/@ctrl/tinycolor/dist/module/index.js
|
|
var TinyColor = (
|
|
/** @class */
|
|
(function() {
|
|
function TinyColor2(color, opts) {
|
|
if (color === void 0) {
|
|
color = "";
|
|
}
|
|
if (opts === void 0) {
|
|
opts = {};
|
|
}
|
|
var _a;
|
|
if (color instanceof TinyColor2) {
|
|
return color;
|
|
}
|
|
if (typeof color === "number") {
|
|
color = numberInputToObject(color);
|
|
}
|
|
this.originalInput = color;
|
|
var rgb = inputToRGB(color);
|
|
this.originalInput = color;
|
|
this.r = rgb.r;
|
|
this.g = rgb.g;
|
|
this.b = rgb.b;
|
|
this.a = rgb.a;
|
|
this.roundA = Math.round(100 * this.a) / 100;
|
|
this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;
|
|
this.gradientType = opts.gradientType;
|
|
if (this.r < 1) {
|
|
this.r = Math.round(this.r);
|
|
}
|
|
if (this.g < 1) {
|
|
this.g = Math.round(this.g);
|
|
}
|
|
if (this.b < 1) {
|
|
this.b = Math.round(this.b);
|
|
}
|
|
this.isValid = rgb.ok;
|
|
}
|
|
TinyColor2.prototype.isDark = function() {
|
|
return this.getBrightness() < 128;
|
|
};
|
|
TinyColor2.prototype.isLight = function() {
|
|
return !this.isDark();
|
|
};
|
|
TinyColor2.prototype.getBrightness = function() {
|
|
var rgb = this.toRgb();
|
|
return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1e3;
|
|
};
|
|
TinyColor2.prototype.getLuminance = function() {
|
|
var rgb = this.toRgb();
|
|
var R;
|
|
var G;
|
|
var B;
|
|
var RsRGB = rgb.r / 255;
|
|
var GsRGB = rgb.g / 255;
|
|
var BsRGB = rgb.b / 255;
|
|
if (RsRGB <= 0.03928) {
|
|
R = RsRGB / 12.92;
|
|
} else {
|
|
R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);
|
|
}
|
|
if (GsRGB <= 0.03928) {
|
|
G = GsRGB / 12.92;
|
|
} else {
|
|
G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);
|
|
}
|
|
if (BsRGB <= 0.03928) {
|
|
B = BsRGB / 12.92;
|
|
} else {
|
|
B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);
|
|
}
|
|
return 0.2126 * R + 0.7152 * G + 0.0722 * B;
|
|
};
|
|
TinyColor2.prototype.getAlpha = function() {
|
|
return this.a;
|
|
};
|
|
TinyColor2.prototype.setAlpha = function(alpha) {
|
|
this.a = boundAlpha(alpha);
|
|
this.roundA = Math.round(100 * this.a) / 100;
|
|
return this;
|
|
};
|
|
TinyColor2.prototype.isMonochrome = function() {
|
|
var s = this.toHsl().s;
|
|
return s === 0;
|
|
};
|
|
TinyColor2.prototype.toHsv = function() {
|
|
var hsv = rgbToHsv(this.r, this.g, this.b);
|
|
return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };
|
|
};
|
|
TinyColor2.prototype.toHsvString = function() {
|
|
var hsv = rgbToHsv(this.r, this.g, this.b);
|
|
var h = Math.round(hsv.h * 360);
|
|
var s = Math.round(hsv.s * 100);
|
|
var v = Math.round(hsv.v * 100);
|
|
return this.a === 1 ? "hsv(".concat(h, ", ").concat(s, "%, ").concat(v, "%)") : "hsva(".concat(h, ", ").concat(s, "%, ").concat(v, "%, ").concat(this.roundA, ")");
|
|
};
|
|
TinyColor2.prototype.toHsl = function() {
|
|
var hsl = rgbToHsl(this.r, this.g, this.b);
|
|
return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };
|
|
};
|
|
TinyColor2.prototype.toHslString = function() {
|
|
var hsl = rgbToHsl(this.r, this.g, this.b);
|
|
var h = Math.round(hsl.h * 360);
|
|
var s = Math.round(hsl.s * 100);
|
|
var l = Math.round(hsl.l * 100);
|
|
return this.a === 1 ? "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)") : "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(this.roundA, ")");
|
|
};
|
|
TinyColor2.prototype.toHex = function(allow3Char) {
|
|
if (allow3Char === void 0) {
|
|
allow3Char = false;
|
|
}
|
|
return rgbToHex(this.r, this.g, this.b, allow3Char);
|
|
};
|
|
TinyColor2.prototype.toHexString = function(allow3Char) {
|
|
if (allow3Char === void 0) {
|
|
allow3Char = false;
|
|
}
|
|
return "#" + this.toHex(allow3Char);
|
|
};
|
|
TinyColor2.prototype.toHex8 = function(allow4Char) {
|
|
if (allow4Char === void 0) {
|
|
allow4Char = false;
|
|
}
|
|
return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);
|
|
};
|
|
TinyColor2.prototype.toHex8String = function(allow4Char) {
|
|
if (allow4Char === void 0) {
|
|
allow4Char = false;
|
|
}
|
|
return "#" + this.toHex8(allow4Char);
|
|
};
|
|
TinyColor2.prototype.toHexShortString = function(allowShortChar) {
|
|
if (allowShortChar === void 0) {
|
|
allowShortChar = false;
|
|
}
|
|
return this.a === 1 ? this.toHexString(allowShortChar) : this.toHex8String(allowShortChar);
|
|
};
|
|
TinyColor2.prototype.toRgb = function() {
|
|
return {
|
|
r: Math.round(this.r),
|
|
g: Math.round(this.g),
|
|
b: Math.round(this.b),
|
|
a: this.a
|
|
};
|
|
};
|
|
TinyColor2.prototype.toRgbString = function() {
|
|
var r = Math.round(this.r);
|
|
var g = Math.round(this.g);
|
|
var b = Math.round(this.b);
|
|
return this.a === 1 ? "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")") : "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(this.roundA, ")");
|
|
};
|
|
TinyColor2.prototype.toPercentageRgb = function() {
|
|
var fmt = function(x) {
|
|
return "".concat(Math.round(bound01(x, 255) * 100), "%");
|
|
};
|
|
return {
|
|
r: fmt(this.r),
|
|
g: fmt(this.g),
|
|
b: fmt(this.b),
|
|
a: this.a
|
|
};
|
|
};
|
|
TinyColor2.prototype.toPercentageRgbString = function() {
|
|
var rnd = function(x) {
|
|
return Math.round(bound01(x, 255) * 100);
|
|
};
|
|
return this.a === 1 ? "rgb(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%)") : "rgba(".concat(rnd(this.r), "%, ").concat(rnd(this.g), "%, ").concat(rnd(this.b), "%, ").concat(this.roundA, ")");
|
|
};
|
|
TinyColor2.prototype.toName = function() {
|
|
if (this.a === 0) {
|
|
return "transparent";
|
|
}
|
|
if (this.a < 1) {
|
|
return false;
|
|
}
|
|
var hex = "#" + rgbToHex(this.r, this.g, this.b, false);
|
|
for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {
|
|
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
if (hex === value) {
|
|
return key;
|
|
}
|
|
}
|
|
return false;
|
|
};
|
|
TinyColor2.prototype.toString = function(format) {
|
|
var formatSet = Boolean(format);
|
|
format = format !== null && format !== void 0 ? format : this.format;
|
|
var formattedString = false;
|
|
var hasAlpha = this.a < 1 && this.a >= 0;
|
|
var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith("hex") || format === "name");
|
|
if (needsAlphaFormat) {
|
|
if (format === "name" && this.a === 0) {
|
|
return this.toName();
|
|
}
|
|
return this.toRgbString();
|
|
}
|
|
if (format === "rgb") {
|
|
formattedString = this.toRgbString();
|
|
}
|
|
if (format === "prgb") {
|
|
formattedString = this.toPercentageRgbString();
|
|
}
|
|
if (format === "hex" || format === "hex6") {
|
|
formattedString = this.toHexString();
|
|
}
|
|
if (format === "hex3") {
|
|
formattedString = this.toHexString(true);
|
|
}
|
|
if (format === "hex4") {
|
|
formattedString = this.toHex8String(true);
|
|
}
|
|
if (format === "hex8") {
|
|
formattedString = this.toHex8String();
|
|
}
|
|
if (format === "name") {
|
|
formattedString = this.toName();
|
|
}
|
|
if (format === "hsl") {
|
|
formattedString = this.toHslString();
|
|
}
|
|
if (format === "hsv") {
|
|
formattedString = this.toHsvString();
|
|
}
|
|
return formattedString || this.toHexString();
|
|
};
|
|
TinyColor2.prototype.toNumber = function() {
|
|
return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);
|
|
};
|
|
TinyColor2.prototype.clone = function() {
|
|
return new TinyColor2(this.toString());
|
|
};
|
|
TinyColor2.prototype.lighten = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
var hsl = this.toHsl();
|
|
hsl.l += amount / 100;
|
|
hsl.l = clamp01(hsl.l);
|
|
return new TinyColor2(hsl);
|
|
};
|
|
TinyColor2.prototype.brighten = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
var rgb = this.toRgb();
|
|
rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));
|
|
rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));
|
|
rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));
|
|
return new TinyColor2(rgb);
|
|
};
|
|
TinyColor2.prototype.darken = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
var hsl = this.toHsl();
|
|
hsl.l -= amount / 100;
|
|
hsl.l = clamp01(hsl.l);
|
|
return new TinyColor2(hsl);
|
|
};
|
|
TinyColor2.prototype.tint = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
return this.mix("white", amount);
|
|
};
|
|
TinyColor2.prototype.shade = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
return this.mix("black", amount);
|
|
};
|
|
TinyColor2.prototype.desaturate = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
var hsl = this.toHsl();
|
|
hsl.s -= amount / 100;
|
|
hsl.s = clamp01(hsl.s);
|
|
return new TinyColor2(hsl);
|
|
};
|
|
TinyColor2.prototype.saturate = function(amount) {
|
|
if (amount === void 0) {
|
|
amount = 10;
|
|
}
|
|
var hsl = this.toHsl();
|
|
hsl.s += amount / 100;
|
|
hsl.s = clamp01(hsl.s);
|
|
return new TinyColor2(hsl);
|
|
};
|
|
TinyColor2.prototype.greyscale = function() {
|
|
return this.desaturate(100);
|
|
};
|
|
TinyColor2.prototype.spin = function(amount) {
|
|
var hsl = this.toHsl();
|
|
var hue = (hsl.h + amount) % 360;
|
|
hsl.h = hue < 0 ? 360 + hue : hue;
|
|
return new TinyColor2(hsl);
|
|
};
|
|
TinyColor2.prototype.mix = function(color, amount) {
|
|
if (amount === void 0) {
|
|
amount = 50;
|
|
}
|
|
var rgb1 = this.toRgb();
|
|
var rgb2 = new TinyColor2(color).toRgb();
|
|
var p = amount / 100;
|
|
var rgba = {
|
|
r: (rgb2.r - rgb1.r) * p + rgb1.r,
|
|
g: (rgb2.g - rgb1.g) * p + rgb1.g,
|
|
b: (rgb2.b - rgb1.b) * p + rgb1.b,
|
|
a: (rgb2.a - rgb1.a) * p + rgb1.a
|
|
};
|
|
return new TinyColor2(rgba);
|
|
};
|
|
TinyColor2.prototype.analogous = function(results, slices) {
|
|
if (results === void 0) {
|
|
results = 6;
|
|
}
|
|
if (slices === void 0) {
|
|
slices = 30;
|
|
}
|
|
var hsl = this.toHsl();
|
|
var part = 360 / slices;
|
|
var ret = [this];
|
|
for (hsl.h = (hsl.h - (part * results >> 1) + 720) % 360; --results; ) {
|
|
hsl.h = (hsl.h + part) % 360;
|
|
ret.push(new TinyColor2(hsl));
|
|
}
|
|
return ret;
|
|
};
|
|
TinyColor2.prototype.complement = function() {
|
|
var hsl = this.toHsl();
|
|
hsl.h = (hsl.h + 180) % 360;
|
|
return new TinyColor2(hsl);
|
|
};
|
|
TinyColor2.prototype.monochromatic = function(results) {
|
|
if (results === void 0) {
|
|
results = 6;
|
|
}
|
|
var hsv = this.toHsv();
|
|
var h = hsv.h;
|
|
var s = hsv.s;
|
|
var v = hsv.v;
|
|
var res = [];
|
|
var modification = 1 / results;
|
|
while (results--) {
|
|
res.push(new TinyColor2({ h, s, v }));
|
|
v = (v + modification) % 1;
|
|
}
|
|
return res;
|
|
};
|
|
TinyColor2.prototype.splitcomplement = function() {
|
|
var hsl = this.toHsl();
|
|
var h = hsl.h;
|
|
return [
|
|
this,
|
|
new TinyColor2({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),
|
|
new TinyColor2({ h: (h + 216) % 360, s: hsl.s, l: hsl.l })
|
|
];
|
|
};
|
|
TinyColor2.prototype.onBackground = function(background) {
|
|
var fg = this.toRgb();
|
|
var bg = new TinyColor2(background).toRgb();
|
|
var alpha = fg.a + bg.a * (1 - fg.a);
|
|
return new TinyColor2({
|
|
r: (fg.r * fg.a + bg.r * bg.a * (1 - fg.a)) / alpha,
|
|
g: (fg.g * fg.a + bg.g * bg.a * (1 - fg.a)) / alpha,
|
|
b: (fg.b * fg.a + bg.b * bg.a * (1 - fg.a)) / alpha,
|
|
a: alpha
|
|
});
|
|
};
|
|
TinyColor2.prototype.triad = function() {
|
|
return this.polyad(3);
|
|
};
|
|
TinyColor2.prototype.tetrad = function() {
|
|
return this.polyad(4);
|
|
};
|
|
TinyColor2.prototype.polyad = function(n) {
|
|
var hsl = this.toHsl();
|
|
var h = hsl.h;
|
|
var result = [this];
|
|
var increment = 360 / n;
|
|
for (var i = 1; i < n; i++) {
|
|
result.push(new TinyColor2({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));
|
|
}
|
|
return result;
|
|
};
|
|
TinyColor2.prototype.equals = function(color) {
|
|
return this.toRgbString() === new TinyColor2(color).toRgbString();
|
|
};
|
|
return TinyColor2;
|
|
})()
|
|
);
|
|
|
|
// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-color.mjs
|
|
var hueStep2 = 2;
|
|
var saturationStep3 = 0.16;
|
|
var saturationStep22 = 0.05;
|
|
var brightnessStep12 = 0.05;
|
|
var brightnessStep22 = 0.15;
|
|
var lightColorCount2 = 5;
|
|
var darkColorCount2 = 4;
|
|
var darkColorMap2 = [
|
|
{ index: 7, opacity: 0.15 },
|
|
{ index: 6, opacity: 0.25 },
|
|
{ index: 5, opacity: 0.3 },
|
|
{ index: 5, opacity: 0.45 },
|
|
{ index: 5, opacity: 0.65 },
|
|
{ index: 5, opacity: 0.85 },
|
|
{ index: 4, opacity: 0.9 },
|
|
{ index: 3, opacity: 0.95 },
|
|
{ index: 2, opacity: 0.97 },
|
|
{ index: 1, opacity: 0.98 }
|
|
];
|
|
function toHsv({ r, g, b }) {
|
|
const hsv = rgbToHsv(r, g, b);
|
|
return { h: hsv.h * 360, s: hsv.s, v: hsv.v };
|
|
}
|
|
function toHex({ r, g, b }) {
|
|
return `#${rgbToHex(r, g, b, false)}`;
|
|
}
|
|
function mix(rgb1, rgb2, amount) {
|
|
const p = amount / 100;
|
|
const rgb = {
|
|
r: (rgb2.r - rgb1.r) * p + rgb1.r,
|
|
g: (rgb2.g - rgb1.g) * p + rgb1.g,
|
|
b: (rgb2.b - rgb1.b) * p + rgb1.b
|
|
};
|
|
return rgb;
|
|
}
|
|
function getHue2(hsv, i, light) {
|
|
let hue;
|
|
if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {
|
|
hue = light ? Math.round(hsv.h) - hueStep2 * i : Math.round(hsv.h) + hueStep2 * i;
|
|
} else {
|
|
hue = light ? Math.round(hsv.h) + hueStep2 * i : Math.round(hsv.h) - hueStep2 * i;
|
|
}
|
|
if (hue < 0) {
|
|
hue += 360;
|
|
} else if (hue >= 360) {
|
|
hue -= 360;
|
|
}
|
|
return hue;
|
|
}
|
|
function getSaturation2(hsv, i, light) {
|
|
if (hsv.h === 0 && hsv.s === 0) {
|
|
return hsv.s;
|
|
}
|
|
let saturation;
|
|
if (light) {
|
|
saturation = hsv.s - saturationStep3 * i;
|
|
} else if (i === darkColorCount2) {
|
|
saturation = hsv.s + saturationStep3;
|
|
} else {
|
|
saturation = hsv.s + saturationStep22 * i;
|
|
}
|
|
if (saturation > 1) {
|
|
saturation = 1;
|
|
}
|
|
if (light && i === lightColorCount2 && saturation > 0.1) {
|
|
saturation = 0.1;
|
|
}
|
|
if (saturation < 0.06) {
|
|
saturation = 0.06;
|
|
}
|
|
return Number(saturation.toFixed(2));
|
|
}
|
|
function getValue2(hsv, i, light) {
|
|
let value;
|
|
if (light) {
|
|
value = hsv.v + brightnessStep12 * i;
|
|
} else {
|
|
value = hsv.v - brightnessStep22 * i;
|
|
}
|
|
if (value > 1) {
|
|
value = 1;
|
|
}
|
|
return Number(value.toFixed(2));
|
|
}
|
|
function generate2(color, opts = {}) {
|
|
const patterns = [];
|
|
const pColor = inputToRGB(color);
|
|
for (let i = lightColorCount2; i > 0; i -= 1) {
|
|
const hsv = toHsv(pColor);
|
|
const colorString = toHex(inputToRGB({
|
|
h: getHue2(hsv, i, true),
|
|
s: getSaturation2(hsv, i, true),
|
|
v: getValue2(hsv, i, true)
|
|
}));
|
|
patterns.push(colorString);
|
|
}
|
|
patterns.push(toHex(pColor));
|
|
for (let i = 1; i <= darkColorCount2; i += 1) {
|
|
const hsv = toHsv(pColor);
|
|
const colorString = toHex(inputToRGB({
|
|
h: getHue2(hsv, i),
|
|
s: getSaturation2(hsv, i),
|
|
v: getValue2(hsv, i)
|
|
}));
|
|
patterns.push(colorString);
|
|
}
|
|
if (opts.theme === "dark") {
|
|
return darkColorMap2.map(({ index, opacity }) => {
|
|
const darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || "#141414"), inputToRGB(patterns[index]), opacity * 100));
|
|
return darkColorString;
|
|
});
|
|
}
|
|
return patterns;
|
|
}
|
|
|
|
// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-config.mjs
|
|
var NZ_CONFIG = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "nz-config" : "");
|
|
var dynamicStyleMark = `-ant-${Date.now()}-${Math.random()}`;
|
|
function getStyle(globalPrefixCls, theme) {
|
|
const variables = {};
|
|
const formatColor = (color, updater) => {
|
|
let clone = color.clone();
|
|
clone = updater?.(clone) || clone;
|
|
return clone.toRgbString();
|
|
};
|
|
const fillColor = (colorVal, type) => {
|
|
const baseColor = new TinyColor(colorVal);
|
|
const colorPalettes = generate2(baseColor.toRgbString());
|
|
variables[`${type}-color`] = formatColor(baseColor);
|
|
variables[`${type}-color-disabled`] = colorPalettes[1];
|
|
variables[`${type}-color-hover`] = colorPalettes[4];
|
|
variables[`${type}-color-active`] = colorPalettes[7];
|
|
variables[`${type}-color-outline`] = baseColor.clone().setAlpha(0.2).toRgbString();
|
|
variables[`${type}-color-deprecated-bg`] = colorPalettes[1];
|
|
variables[`${type}-color-deprecated-border`] = colorPalettes[3];
|
|
};
|
|
if (theme.primaryColor) {
|
|
fillColor(theme.primaryColor, "primary");
|
|
const primaryColor = new TinyColor(theme.primaryColor);
|
|
const primaryColors = generate2(primaryColor.toRgbString());
|
|
primaryColors.forEach((color, index) => {
|
|
variables[`primary-${index + 1}`] = color;
|
|
});
|
|
variables["primary-color-deprecated-l-35"] = formatColor(primaryColor, (c) => c.lighten(35));
|
|
variables["primary-color-deprecated-l-20"] = formatColor(primaryColor, (c) => c.lighten(20));
|
|
variables["primary-color-deprecated-t-20"] = formatColor(primaryColor, (c) => c.tint(20));
|
|
variables["primary-color-deprecated-t-50"] = formatColor(primaryColor, (c) => c.tint(50));
|
|
variables["primary-color-deprecated-f-12"] = formatColor(primaryColor, (c) => c.setAlpha(c.getAlpha() * 0.12));
|
|
const primaryActiveColor = new TinyColor(primaryColors[0]);
|
|
variables["primary-color-active-deprecated-f-30"] = formatColor(primaryActiveColor, (c) => c.setAlpha(c.getAlpha() * 0.3));
|
|
variables["primary-color-active-deprecated-d-02"] = formatColor(primaryActiveColor, (c) => c.darken(2));
|
|
}
|
|
if (theme.successColor) {
|
|
fillColor(theme.successColor, "success");
|
|
}
|
|
if (theme.warningColor) {
|
|
fillColor(theme.warningColor, "warning");
|
|
}
|
|
if (theme.errorColor) {
|
|
fillColor(theme.errorColor, "error");
|
|
}
|
|
if (theme.infoColor) {
|
|
fillColor(theme.infoColor, "info");
|
|
}
|
|
const cssList = Object.keys(variables).map((key) => `--${globalPrefixCls}-${key}: ${variables[key]};`);
|
|
return `
|
|
:root {
|
|
${cssList.join("\n")}
|
|
}
|
|
`.trim();
|
|
}
|
|
function registerTheme(globalPrefixCls, theme, cspNonce) {
|
|
const style = getStyle(globalPrefixCls, theme);
|
|
if (canUseDom()) {
|
|
updateCSS(style, `${dynamicStyleMark}-dynamic-theme`, {
|
|
cspNonce
|
|
});
|
|
} else {
|
|
warn(`NzConfigService: SSR do not support dynamic theme with css variables.`);
|
|
}
|
|
}
|
|
var defaultPrefixCls = "ant";
|
|
var NzConfigService = class _NzConfigService {
|
|
configUpdated$ = new Subject();
|
|
/**
|
|
* Sharing config signals for all components, used for {@link withConfigFactory}
|
|
* @internal
|
|
* @todo use nested signal to refactor the whole config service
|
|
*/
|
|
_configMap = /* @__PURE__ */ new Map();
|
|
/** Global config holding property. */
|
|
config = inject(NZ_CONFIG, {
|
|
optional: true
|
|
}) || {};
|
|
cspNonce = inject(CSP_NONCE, {
|
|
optional: true
|
|
});
|
|
constructor() {
|
|
if (this.config.theme) {
|
|
registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme, this.cspNonce);
|
|
}
|
|
}
|
|
_getConfigValue(componentName) {
|
|
let configValue = this._configMap.get(componentName);
|
|
if (configValue) {
|
|
return configValue;
|
|
}
|
|
configValue = signal(this.config[componentName]);
|
|
this._configMap.set(componentName, configValue);
|
|
return configValue;
|
|
}
|
|
getConfig() {
|
|
return this.config;
|
|
}
|
|
getConfigForComponent(componentName) {
|
|
return this.config[componentName];
|
|
}
|
|
getConfigChangeEventForComponent(componentName) {
|
|
return this.configUpdated$.pipe(filter((n) => n === componentName), map(() => void 0));
|
|
}
|
|
set(componentName, value) {
|
|
this.config[componentName] = __spreadValues(__spreadValues({}, this.config[componentName]), value);
|
|
this._configMap.get(componentName)?.set(this.config[componentName]);
|
|
if (componentName === "theme" && this.config.theme) {
|
|
registerTheme(this.getConfig().prefixCls?.prefixCls || defaultPrefixCls, this.config.theme, this.cspNonce);
|
|
}
|
|
this.configUpdated$.next(componentName);
|
|
}
|
|
static ɵfac = function NzConfigService_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _NzConfigService)();
|
|
};
|
|
static ɵprov = ɵɵdefineInjectable({
|
|
token: _NzConfigService,
|
|
factory: _NzConfigService.ɵfac,
|
|
providedIn: "root"
|
|
});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzConfigService, [{
|
|
type: Injectable,
|
|
args: [{
|
|
providedIn: "root"
|
|
}]
|
|
}], () => [], null);
|
|
})();
|
|
function onConfigChangeEventForComponent(componentName, callback) {
|
|
if (typeof ngDevMode !== "undefined" && ngDevMode) {
|
|
assertInInjectionContext(onConfigChangeEventForComponent);
|
|
}
|
|
const destroyRef = inject(DestroyRef);
|
|
const nzConfigService = inject(NzConfigService);
|
|
let subscription = null;
|
|
const ref = afterNextRender(() => {
|
|
subscription = nzConfigService.getConfigChangeEventForComponent(componentName).pipe(takeUntilDestroyed(destroyRef)).subscribe(callback);
|
|
});
|
|
return () => {
|
|
ref.destroy();
|
|
subscription?.unsubscribe();
|
|
};
|
|
}
|
|
|
|
// node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-icon.mjs
|
|
var NZ_ICONS_USED_BY_ZORRO = [BarsOutline, CalendarOutline, CaretUpFill, CaretUpOutline, CaretDownFill, CaretDownOutline, CheckCircleFill, CheckCircleOutline, CheckOutline, ClockCircleOutline, CloseCircleOutline, CloseCircleFill, CloseOutline, CopyOutline, DeleteOutline, DoubleLeftOutline, DoubleRightOutline, DownOutline, EditOutline, EllipsisOutline, ExclamationCircleFill, ExclamationCircleOutline, EyeOutline, EyeInvisibleOutline, FileFill, FileOutline, FilterFill, InfoCircleFill, InfoCircleOutline, LeftOutline, LoadingOutline, PaperClipOutline, QuestionCircleOutline, RightOutline, RotateRightOutline, RotateLeftOutline, StarFill, SearchOutline, StarFill, UploadOutline, VerticalAlignTopOutline, UpOutline, SwapOutline, SwapRightOutline, ZoomInOutline, ZoomOutOutline];
|
|
var NZ_ICONS = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "nz-icons" : "");
|
|
var NZ_ICON_DEFAULT_TWOTONE_COLOR = new InjectionToken(typeof ngDevMode !== "undefined" && ngDevMode ? "nz-icon-default-twotone-color" : "");
|
|
var DEFAULT_TWOTONE_COLOR = "#1890ff";
|
|
var NzIconService = class _NzIconService extends IconService {
|
|
nzConfigService = inject(NzConfigService);
|
|
platform = inject(Platform);
|
|
configUpdated$ = new Subject();
|
|
get _disableDynamicLoading() {
|
|
return !this.platform.isBrowser;
|
|
}
|
|
iconfontCache = /* @__PURE__ */ new Set();
|
|
normalizeSvgElement(svg) {
|
|
if (!svg.getAttribute("viewBox")) {
|
|
this._renderer.setAttribute(svg, "viewBox", "0 0 1024 1024");
|
|
}
|
|
if (!svg.getAttribute("width") || !svg.getAttribute("height")) {
|
|
this._renderer.setAttribute(svg, "width", "1em");
|
|
this._renderer.setAttribute(svg, "height", "1em");
|
|
}
|
|
if (!svg.getAttribute("fill")) {
|
|
this._renderer.setAttribute(svg, "fill", "currentColor");
|
|
}
|
|
}
|
|
fetchFromIconfont(opt) {
|
|
const {
|
|
scriptUrl
|
|
} = opt;
|
|
if (this._document && !this.iconfontCache.has(scriptUrl)) {
|
|
const script = this._renderer.createElement("script");
|
|
this._renderer.setAttribute(script, "src", scriptUrl);
|
|
this._renderer.setAttribute(script, "data-namespace", scriptUrl.replace(/^(https?|http):/g, ""));
|
|
this._renderer.appendChild(this._document.body, script);
|
|
this.iconfontCache.add(scriptUrl);
|
|
}
|
|
}
|
|
createIconfontIcon(type) {
|
|
return this._createSVGElementFromString(`<svg><use xlink:href="${type}"></svg>`);
|
|
}
|
|
constructor() {
|
|
super([...NZ_ICONS_USED_BY_ZORRO, ...inject(NZ_ICONS, {
|
|
optional: true
|
|
}) || []]);
|
|
this.onConfigChange();
|
|
this.configDefaultTwotoneColor();
|
|
this.configDefaultTheme();
|
|
}
|
|
onConfigChange() {
|
|
onConfigChangeEventForComponent("icon", () => {
|
|
this.configDefaultTwotoneColor();
|
|
this.configDefaultTheme();
|
|
this.configUpdated$.next();
|
|
});
|
|
}
|
|
configDefaultTheme() {
|
|
const iconConfig = this.getConfig();
|
|
this.defaultTheme = iconConfig.nzTheme || "outline";
|
|
}
|
|
configDefaultTwotoneColor() {
|
|
const iconConfig = this.getConfig();
|
|
const defaultTwotoneColor = iconConfig.nzTwotoneColor || DEFAULT_TWOTONE_COLOR;
|
|
let primaryColor = DEFAULT_TWOTONE_COLOR;
|
|
if (defaultTwotoneColor) {
|
|
if (defaultTwotoneColor.startsWith("#")) {
|
|
primaryColor = defaultTwotoneColor;
|
|
} else {
|
|
warn("Twotone color must be a hex color!");
|
|
}
|
|
}
|
|
this.twoToneColor = {
|
|
primaryColor
|
|
};
|
|
}
|
|
getConfig() {
|
|
return this.nzConfigService.getConfigForComponent("icon") || {};
|
|
}
|
|
static ɵfac = function NzIconService_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _NzIconService)();
|
|
};
|
|
static ɵprov = ɵɵdefineInjectable({
|
|
token: _NzIconService,
|
|
factory: _NzIconService.ɵfac,
|
|
providedIn: "root"
|
|
});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconService, [{
|
|
type: Injectable,
|
|
args: [{
|
|
providedIn: "root"
|
|
}]
|
|
}], () => [], null);
|
|
})();
|
|
var NZ_ICONS_PATCH = new InjectionToken("nz_icons_patch");
|
|
var NzIconPatchService = class _NzIconPatchService {
|
|
rootIconService;
|
|
patched = false;
|
|
extraIcons = inject(NZ_ICONS_PATCH, {
|
|
self: true
|
|
});
|
|
constructor(rootIconService) {
|
|
this.rootIconService = rootIconService;
|
|
}
|
|
doPatch() {
|
|
if (this.patched) {
|
|
return;
|
|
}
|
|
this.extraIcons.forEach((iconDefinition) => this.rootIconService.addIcon(iconDefinition));
|
|
this.patched = true;
|
|
}
|
|
static ɵfac = function NzIconPatchService_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _NzIconPatchService)(ɵɵinject(NzIconService));
|
|
};
|
|
static ɵprov = ɵɵdefineInjectable({
|
|
token: _NzIconPatchService,
|
|
factory: _NzIconPatchService.ɵfac
|
|
});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconPatchService, [{
|
|
type: Injectable
|
|
}], () => [{
|
|
type: NzIconService
|
|
}], null);
|
|
})();
|
|
var NzIconDirective = class _NzIconDirective extends IconDirective {
|
|
iconService;
|
|
ngZone = inject(NgZone);
|
|
changeDetectorRef = inject(ChangeDetectorRef);
|
|
renderer = inject(Renderer2);
|
|
destroyRef = inject(DestroyRef);
|
|
pendingTasks = inject(PendingTasks);
|
|
isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
|
|
nzSpin = false;
|
|
nzRotate = 0;
|
|
set nzType(value) {
|
|
this.type = value;
|
|
}
|
|
set nzTheme(value) {
|
|
this.theme = value;
|
|
}
|
|
set nzTwotoneColor(value) {
|
|
this.twoToneColor = value;
|
|
}
|
|
set nzIconfont(value) {
|
|
this.iconfont = value;
|
|
}
|
|
hostClass;
|
|
el;
|
|
iconfont;
|
|
constructor(iconService) {
|
|
super(iconService);
|
|
this.iconService = iconService;
|
|
inject(NzIconPatchService, {
|
|
optional: true
|
|
})?.doPatch();
|
|
this.el = this._elementRef.nativeElement;
|
|
}
|
|
ngOnChanges(changes) {
|
|
const {
|
|
nzType,
|
|
nzTwotoneColor,
|
|
nzTheme,
|
|
nzRotate,
|
|
nzSpin
|
|
} = changes;
|
|
if (nzType || nzTwotoneColor || nzTheme || nzSpin) {
|
|
this.ngZone.runOutsideAngular(() => this.changeIcon2());
|
|
} else if (nzRotate) {
|
|
this.handleRotate(this.el.firstChild);
|
|
} else {
|
|
this._setSVGElement(this.iconService.createIconfontIcon(`#${this.iconfont}`));
|
|
}
|
|
}
|
|
/**
|
|
* If custom content is provided, try to normalize SVG elements.
|
|
*/
|
|
ngAfterContentChecked() {
|
|
if (!this.type) {
|
|
const children = this.el.children;
|
|
let length = children.length;
|
|
if (!this.type && children.length) {
|
|
while (length--) {
|
|
const child = children[length];
|
|
if (child.tagName.toLowerCase() === "svg") {
|
|
this.iconService.normalizeSvgElement(child);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
* Replacement of `changeIcon` for more modifications.
|
|
*/
|
|
changeIcon2() {
|
|
const removeTask = this.pendingTasks.add();
|
|
const svgOrRemove$ = wrapIntoObservable(this._changeIcon()).pipe(
|
|
// We need to individually debounce the icon rendering on each animation
|
|
// frame to prevent frame drops when many icons are being rendered on the
|
|
// page, such as in a `@for` loop.
|
|
debounceTime(0, this.isBrowser ? animationFrameScheduler : asapScheduler),
|
|
takeUntilDestroyed(this.destroyRef),
|
|
finalize(removeTask)
|
|
);
|
|
svgOrRemove$.subscribe({
|
|
next: (svgOrRemove) => {
|
|
this.ngZone.run(() => {
|
|
this.changeDetectorRef.detectChanges();
|
|
if (svgOrRemove) {
|
|
this.setSVGData(svgOrRemove);
|
|
this.handleRotate(svgOrRemove);
|
|
}
|
|
});
|
|
},
|
|
error: warn
|
|
});
|
|
}
|
|
handleRotate(svg) {
|
|
if (this.nzRotate) {
|
|
this.renderer.setAttribute(svg, "style", `transform: rotate(${this.nzRotate}deg)`);
|
|
} else {
|
|
this.renderer.removeAttribute(svg, "style");
|
|
}
|
|
}
|
|
setSVGData(svg) {
|
|
this.renderer.setAttribute(svg, "data-icon", this.type);
|
|
this.renderer.setAttribute(svg, "aria-hidden", "true");
|
|
}
|
|
static ɵfac = function NzIconDirective_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _NzIconDirective)(ɵɵdirectiveInject(NzIconService));
|
|
};
|
|
static ɵdir = ɵɵdefineDirective({
|
|
type: _NzIconDirective,
|
|
selectors: [["nz-icon"], ["", "nz-icon", ""]],
|
|
hostAttrs: ["role", "img", 1, "anticon"],
|
|
hostVars: 5,
|
|
hostBindings: function NzIconDirective_HostBindings(rf, ctx) {
|
|
if (rf & 2) {
|
|
ɵɵattribute("aria-label", ctx.type);
|
|
ɵɵclassMap("anticon-" + ctx.type);
|
|
ɵɵclassProp("anticon-spin", ctx.nzSpin || ctx.type === "loading");
|
|
}
|
|
},
|
|
inputs: {
|
|
nzSpin: [2, "nzSpin", "nzSpin", booleanAttribute],
|
|
nzRotate: [2, "nzRotate", "nzRotate", numberAttribute],
|
|
nzType: "nzType",
|
|
nzTheme: "nzTheme",
|
|
nzTwotoneColor: "nzTwotoneColor",
|
|
nzIconfont: "nzIconfont"
|
|
},
|
|
exportAs: ["nzIcon"],
|
|
features: [ɵɵInheritDefinitionFeature, ɵɵNgOnChangesFeature]
|
|
});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconDirective, [{
|
|
type: Directive,
|
|
args: [{
|
|
selector: "nz-icon,[nz-icon]",
|
|
exportAs: "nzIcon",
|
|
host: {
|
|
class: "anticon",
|
|
"[class]": `'anticon-' + type`,
|
|
"[class.anticon-spin]": `nzSpin || type === 'loading'`,
|
|
role: "img",
|
|
"[attr.aria-label]": "type"
|
|
}
|
|
}]
|
|
}], () => [{
|
|
type: NzIconService
|
|
}], {
|
|
nzSpin: [{
|
|
type: Input,
|
|
args: [{
|
|
transform: booleanAttribute
|
|
}]
|
|
}],
|
|
nzRotate: [{
|
|
type: Input,
|
|
args: [{
|
|
transform: numberAttribute
|
|
}]
|
|
}],
|
|
nzType: [{
|
|
type: Input
|
|
}],
|
|
nzTheme: [{
|
|
type: Input
|
|
}],
|
|
nzTwotoneColor: [{
|
|
type: Input
|
|
}],
|
|
nzIconfont: [{
|
|
type: Input
|
|
}]
|
|
});
|
|
})();
|
|
var provideNzIcons = (icons) => {
|
|
return makeEnvironmentProviders([{
|
|
provide: NZ_ICONS,
|
|
useValue: icons
|
|
}]);
|
|
};
|
|
var provideNzIconsPatch = (icons) => {
|
|
return [NzIconPatchService, {
|
|
provide: NZ_ICONS_PATCH,
|
|
useValue: icons
|
|
}];
|
|
};
|
|
var NzIconModule = class _NzIconModule {
|
|
static forRoot(icons) {
|
|
return {
|
|
ngModule: _NzIconModule,
|
|
providers: [provideNzIcons(icons)]
|
|
};
|
|
}
|
|
static forChild(icons) {
|
|
return {
|
|
ngModule: _NzIconModule,
|
|
providers: [provideNzIconsPatch(icons)]
|
|
};
|
|
}
|
|
static ɵfac = function NzIconModule_Factory(__ngFactoryType__) {
|
|
return new (__ngFactoryType__ || _NzIconModule)();
|
|
};
|
|
static ɵmod = ɵɵdefineNgModule({
|
|
type: _NzIconModule,
|
|
imports: [NzIconDirective],
|
|
exports: [NzIconDirective]
|
|
});
|
|
static ɵinj = ɵɵdefineInjector({});
|
|
};
|
|
(() => {
|
|
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(NzIconModule, [{
|
|
type: NgModule,
|
|
args: [{
|
|
imports: [NzIconDirective],
|
|
exports: [NzIconDirective]
|
|
}]
|
|
}], null, null);
|
|
})();
|
|
|
|
export {
|
|
takeUntilDestroyed,
|
|
Platform,
|
|
RtlScrollAxisType,
|
|
supportsScrollBehavior,
|
|
getRtlScrollAxisType,
|
|
_getEventTarget,
|
|
_isTestEnvironment,
|
|
NzConfigService,
|
|
onConfigChangeEventForComponent,
|
|
NZ_ICONS_USED_BY_ZORRO,
|
|
NZ_ICONS,
|
|
NZ_ICON_DEFAULT_TWOTONE_COLOR,
|
|
DEFAULT_TWOTONE_COLOR,
|
|
NzIconService,
|
|
NZ_ICONS_PATCH,
|
|
NzIconPatchService,
|
|
NzIconDirective,
|
|
provideNzIcons,
|
|
provideNzIconsPatch,
|
|
NzIconModule
|
|
};
|
|
/*! Bundled license information:
|
|
|
|
@angular/core/fesm2022/rxjs-interop.mjs:
|
|
(**
|
|
* @license Angular v20.3.18
|
|
* (c) 2010-2025 Google LLC. https://angular.dev/
|
|
* License: MIT
|
|
*)
|
|
*/
|
|
//# sourceMappingURL=chunk-RKFSA2AP.js.map
|