ngx-tethys 19.1.13 → 19.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
4
 
5
+ ## [19.1.14](https://github.com/atinc/ngx-tethys/compare/19.1.13...19.1.14) (2025-11-12)
6
+
7
+
8
+ ### Features
9
+
10
+ * **input-number:** support thyShowStepControls #TINFR-2994 ([#3605](https://github.com/atinc/ngx-tethys/issues/3605)) ([c06a6f8](https://github.com/atinc/ngx-tethys/commit/c06a6f813e619ef63ac99459f8c149439c93bafd)), closes [#TINFR-2994](https://github.com/atinc/ngx-tethys/issues/TINFR-2994)
11
+
12
+
13
+
5
14
  ## [19.1.13](https://github.com/atinc/ngx-tethys/compare/19.1.12...19.1.13) (2025-11-05)
6
15
 
7
16
 
@@ -708,7 +708,7 @@ class ThyColorInputs {
708
708
  this.colorChange.emit(newColor);
709
709
  }
710
710
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyColorInputs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
711
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThyColorInputs, isStandalone: true, selector: "thy-color-inputs", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.thy-color-inputs": "this.className" } }, ngImport: i0, template: "<div class=\"hex-column\">\n <thy-input-group class=\"hex-input-group\">\n <ng-template #prefix>\n <span>#</span>\n </ng-template>\n <input\n class=\"px-0 form-control-xs\"\n thyInput\n [(ngModel)]=\"hex\"\n maxlength=\"6\"\n (blur)=\"onInputChange($event, 'hex')\"\n (thyEnter)=\"onInputChange($event, 'hex')\" />\n </thy-input-group>\n <span>HEX</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.red\"\n (thyBlur)=\"onInputChange($event, 'R')\"\n (thyEnter)=\"onInputChange($event, 'R')\"></thy-input-number>\n <span>R</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.green\"\n (thyBlur)=\"onInputChange($event, 'G')\"\n (thyEnter)=\"onInputChange($event, 'G')\"></thy-input-number>\n <span>G</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.blue\"\n (thyBlur)=\"onInputChange($event, 'B')\"\n (thyEnter)=\"onInputChange($event, 'B')\"></thy-input-number>\n <span>B</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n [thyMin]=\"0\"\n [thyMax]=\"100\"\n thySize=\"xs\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"alpha\"\n (thyBlur)=\"onInputChange($event, 'A')\"\n (thyEnter)=\"onInputChange($event, 'A')\"></thy-input-number>\n <span>A</span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }] }); }
711
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThyColorInputs, isStandalone: true, selector: "thy-color-inputs", inputs: { color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { colorChange: "colorChange" }, host: { properties: { "class.thy-color-inputs": "this.className" } }, ngImport: i0, template: "<div class=\"hex-column\">\n <thy-input-group class=\"hex-input-group\">\n <ng-template #prefix>\n <span>#</span>\n </ng-template>\n <input\n class=\"px-0 form-control-xs\"\n thyInput\n [(ngModel)]=\"hex\"\n maxlength=\"6\"\n (blur)=\"onInputChange($event, 'hex')\"\n (thyEnter)=\"onInputChange($event, 'hex')\" />\n </thy-input-group>\n <span>HEX</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.red\"\n (thyBlur)=\"onInputChange($event, 'R')\"\n (thyEnter)=\"onInputChange($event, 'R')\"></thy-input-number>\n <span>R</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.green\"\n (thyBlur)=\"onInputChange($event, 'G')\"\n (thyEnter)=\"onInputChange($event, 'G')\"></thy-input-number>\n <span>G</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.blue\"\n (thyBlur)=\"onInputChange($event, 'B')\"\n (thyEnter)=\"onInputChange($event, 'B')\"></thy-input-number>\n <span>B</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n [thyMin]=\"0\"\n [thyMax]=\"100\"\n thySize=\"xs\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"alpha\"\n (thyBlur)=\"onInputChange($event, 'A')\"\n (thyEnter)=\"onInputChange($event, 'A')\"></thy-input-number>\n <span>A</span>\n</div>\n", dependencies: [{ kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }, { kind: "component", type: ThyInputNumber, selector: "thy-input-number", inputs: ["thyAutoFocus", "thyPlaceholder", "thyDisabled", "thyMax", "thyMin", "thyStep", "thyShowStepControls", "thyStepDelay", "thySize", "thyPrecision", "thySuffix"], outputs: ["thyBlur", "thyFocus", "thyStepChange"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }] }); }
712
712
  }
713
713
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyColorInputs, decorators: [{
714
714
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-color-picker.mjs","sources":["../../../src/color-picker/helpers/rgba.class.ts","../../../src/color-picker/helpers/colors-table.class.ts","../../../src/color-picker/helpers/color.class.ts","../../../src/color-picker/coordinates.directive.ts","../../../src/color-picker/parts/alpha/alpha.component.ts","../../../src/color-picker/parts/alpha/alpha.component.html","../../../src/color-picker/parts/hue/hue.component.ts","../../../src/color-picker/parts/hue/hue.component.html","../../../src/color-picker/parts/indicator/indicator.component.ts","../../../src/color-picker/parts/indicator/indicator.component.html","../../../src/color-picker/parts/inputs/inputs.component.ts","../../../src/color-picker/parts/inputs/inputs.component.html","../../../src/color-picker/parts/saturation/saturation.component.ts","../../../src/color-picker/parts/saturation/saturation.component.html","../../../src/color-picker/color-picker-custom-panel.component.ts","../../../src/color-picker/color-picker-custom-panel.component.html","../../../src/color-picker/color-picker-panel.component.ts","../../../src/color-picker/color-picker-panel.component.html","../../../src/color-picker/constant.ts","../../../src/color-picker/color-picker.component.ts","../../../src/color-picker/module.ts","../../../src/color-picker/ngx-tethys-color-picker.ts"],"sourcesContent":["/**\n * RGB (Red Green Blue)\n *\n * Red = ranges from 0-255\n * Green = ranges from 0-255\n * Blue = ranges from 0-255\n * Alpha = range from 0-1\n */\nexport class ThyRgba {\n constructor(\n public red: number,\n public green: number,\n public blue: number,\n public alpha: number\n ) {}\n\n public toString(showAlphaChannel: boolean = true): string {\n return showAlphaChannel\n ? `rgba(${this.getRed()}, ${this.getGreen()}, ${this.getBlue()}, ${this.getAlpha()})`\n : `rgb(${this.getRed()}, ${this.getGreen()}, ${this.getBlue()})`;\n }\n\n public getRed(): number {\n return Math.round(this.red);\n }\n\n public getGreen(): number {\n return Math.round(this.green);\n }\n\n public getBlue(): number {\n return Math.round(this.blue);\n }\n\n public getAlpha(): number {\n return Math.round(this.alpha * 100) / 100;\n }\n}\n","import { ThyRgba } from './rgba.class';\n\n/**\n * http://www.w3.org/TR/css3-color/\n */\nexport class ThyColorsTable {\n public static transparent = new ThyRgba(0, 0, 0, 0);\n public static aliceblue = new ThyRgba(240, 248, 255, 1);\n public static antiquewhite = new ThyRgba(250, 235, 215, 1);\n public static aqua = new ThyRgba(0, 255, 255, 1);\n public static aquamarine = new ThyRgba(127, 255, 212, 1);\n public static azure = new ThyRgba(240, 255, 255, 1);\n public static beige = new ThyRgba(245, 245, 220, 1);\n public static bisque = new ThyRgba(255, 228, 196, 1);\n public static black = new ThyRgba(0, 0, 0, 1);\n public static blanchedalmond = new ThyRgba(255, 235, 205, 1);\n public static blue = new ThyRgba(0, 0, 255, 1);\n public static blueviolet = new ThyRgba(138, 43, 226, 1);\n public static brown = new ThyRgba(165, 42, 42, 1);\n public static burlywood = new ThyRgba(222, 184, 135, 1);\n public static cadetblue = new ThyRgba(95, 158, 160, 1);\n public static chartreuse = new ThyRgba(127, 255, 0, 1);\n public static chocolate = new ThyRgba(210, 105, 30, 1);\n public static coral = new ThyRgba(255, 127, 80, 1);\n public static cornflowerblue = new ThyRgba(100, 149, 237, 1);\n public static cornsilk = new ThyRgba(255, 248, 220, 1);\n public static crimson = new ThyRgba(220, 20, 60, 1);\n public static cyan = new ThyRgba(0, 255, 255, 1);\n public static darkblue = new ThyRgba(0, 0, 139, 1);\n public static darkcyan = new ThyRgba(0, 139, 139, 1);\n public static darkgoldenrod = new ThyRgba(184, 134, 11, 1);\n public static darkgray = new ThyRgba(169, 169, 169, 1);\n public static darkgreen = new ThyRgba(0, 100, 0, 1);\n public static darkgrey = ThyColorsTable.darkgray;\n public static darkkhaki = new ThyRgba(189, 183, 107, 1);\n public static darkmagenta = new ThyRgba(139, 0, 139, 1);\n public static darkolivegreen = new ThyRgba(85, 107, 47, 1);\n public static darkorange = new ThyRgba(255, 140, 0, 1);\n public static darkorchid = new ThyRgba(153, 50, 204, 1);\n public static darkred = new ThyRgba(139, 0, 0, 1);\n public static darksalmon = new ThyRgba(233, 150, 122, 1);\n public static darkseagreen = new ThyRgba(143, 188, 143, 1);\n public static darkslateblue = new ThyRgba(72, 61, 139, 1);\n public static darkslategray = new ThyRgba(47, 79, 79, 1);\n public static darkslategrey = ThyColorsTable.darkslategray;\n public static darkturquoise = new ThyRgba(0, 206, 209, 1);\n public static darkviolet = new ThyRgba(148, 0, 211, 1);\n public static deeppink = new ThyRgba(255, 20, 147, 1);\n public static deepskyblue = new ThyRgba(0, 191, 255, 1);\n public static dimgray = new ThyRgba(105, 105, 105, 1);\n public static dimgrey = ThyColorsTable.dimgray;\n public static dodgerblue = new ThyRgba(30, 144, 255, 1);\n public static firebrick = new ThyRgba(178, 34, 34, 1);\n public static floralwhite = new ThyRgba(255, 250, 240, 1);\n public static forestgreen = new ThyRgba(34, 139, 34, 1);\n public static fuchsia = new ThyRgba(255, 0, 255, 1);\n public static gainsboro = new ThyRgba(220, 220, 220, 1);\n public static ghostwhite = new ThyRgba(248, 248, 255, 1);\n public static gold = new ThyRgba(255, 215, 0, 1);\n public static goldenrod = new ThyRgba(218, 165, 32, 1);\n public static gray = new ThyRgba(128, 128, 128, 1);\n public static grey = ThyColorsTable.gray;\n public static green = new ThyRgba(0, 128, 0, 1);\n public static greenyellow = new ThyRgba(173, 255, 47, 1);\n public static honeydew = new ThyRgba(240, 255, 240, 1);\n public static hotpink = new ThyRgba(255, 105, 180, 1);\n public static indianred = new ThyRgba(205, 92, 92, 1);\n public static indigo = new ThyRgba(75, 0, 130, 1);\n public static ivory = new ThyRgba(255, 255, 240, 1);\n public static khaki = new ThyRgba(240, 230, 140, 1);\n public static lavender = new ThyRgba(230, 230, 250, 1);\n public static lavenderblush = new ThyRgba(255, 240, 245, 1);\n public static lawngreen = new ThyRgba(124, 252, 0, 1);\n public static lemonchiffon = new ThyRgba(255, 250, 205, 1);\n public static lightblue = new ThyRgba(173, 216, 230, 1);\n public static lightcoral = new ThyRgba(240, 128, 128, 1);\n public static lightcyan = new ThyRgba(224, 255, 255, 1);\n public static lightgoldenrodyellow = new ThyRgba(250, 250, 210, 1);\n public static lightgray = new ThyRgba(211, 211, 211, 1);\n public static lightgreen = new ThyRgba(144, 238, 144, 1);\n public static lightgrey = ThyColorsTable.lightgray;\n public static lightpink = new ThyRgba(255, 182, 193, 1);\n public static lightsalmon = new ThyRgba(255, 160, 122, 1);\n public static lightseagreen = new ThyRgba(32, 178, 170, 1);\n public static lightskyblue = new ThyRgba(135, 206, 250, 1);\n public static lightslategray = new ThyRgba(119, 136, 153, 1);\n public static lightslategrey = ThyColorsTable.lightslategray;\n public static lightsteelblue = new ThyRgba(176, 196, 222, 1);\n public static lightyellow = new ThyRgba(255, 255, 224, 1);\n public static lime = new ThyRgba(0, 255, 0, 1);\n public static limegreen = new ThyRgba(50, 205, 50, 1);\n public static linen = new ThyRgba(250, 240, 230, 1);\n public static magenta = new ThyRgba(255, 0, 255, 1);\n public static maroon = new ThyRgba(128, 0, 0, 1);\n public static mediumaquamarine = new ThyRgba(102, 205, 170, 1);\n public static mediumblue = new ThyRgba(0, 0, 205, 1);\n public static mediumorchid = new ThyRgba(186, 85, 211, 1);\n public static mediumpurple = new ThyRgba(147, 112, 219, 1);\n public static mediumseagreen = new ThyRgba(60, 179, 113, 1);\n public static mediumslateblue = new ThyRgba(123, 104, 238, 1);\n public static mediumspringgreen = new ThyRgba(0, 250, 154, 1);\n public static mediumturquoise = new ThyRgba(72, 209, 204, 1);\n public static mediumvioletred = new ThyRgba(199, 21, 133, 1);\n public static midnightblue = new ThyRgba(25, 25, 112, 1);\n public static mintcream = new ThyRgba(245, 255, 250, 1);\n public static mistyrose = new ThyRgba(255, 228, 225, 1);\n public static moccasin = new ThyRgba(255, 228, 181, 1);\n public static navajowhite = new ThyRgba(255, 222, 173, 1);\n public static navy = new ThyRgba(0, 0, 128, 1);\n public static oldlace = new ThyRgba(253, 245, 230, 1);\n public static olive = new ThyRgba(128, 128, 0, 1);\n public static olivedrab = new ThyRgba(107, 142, 35, 1);\n public static orange = new ThyRgba(255, 165, 0, 1);\n public static orangered = new ThyRgba(255, 69, 0, 1);\n public static orchid = new ThyRgba(218, 112, 214, 1);\n public static palegoldenrod = new ThyRgba(238, 232, 170, 1);\n public static palegreen = new ThyRgba(152, 251, 152, 1);\n public static paleturquoise = new ThyRgba(175, 238, 238, 1);\n public static palevioletred = new ThyRgba(219, 112, 147, 1);\n public static papayawhip = new ThyRgba(255, 239, 213, 1);\n public static peachpuff = new ThyRgba(255, 218, 185, 1);\n public static peru = new ThyRgba(205, 133, 63, 1);\n public static pink = new ThyRgba(255, 192, 203, 1);\n public static plum = new ThyRgba(221, 160, 221, 1);\n public static powderblue = new ThyRgba(176, 224, 230, 1);\n public static purple = new ThyRgba(128, 0, 128, 1);\n public static red = new ThyRgba(255, 0, 0, 1);\n public static rosybrown = new ThyRgba(188, 143, 143, 1);\n public static royalblue = new ThyRgba(65, 105, 225, 1);\n public static saddlebrown = new ThyRgba(139, 69, 19, 1);\n public static salmon = new ThyRgba(250, 128, 114, 1);\n public static sandybrown = new ThyRgba(244, 164, 96, 1);\n public static seagreen = new ThyRgba(46, 139, 87, 1);\n public static seashell = new ThyRgba(255, 245, 238, 1);\n public static sienna = new ThyRgba(160, 82, 45, 1);\n public static silver = new ThyRgba(192, 192, 192, 1);\n public static skyblue = new ThyRgba(135, 206, 235, 1);\n public static slateblue = new ThyRgba(106, 90, 205, 1);\n public static slategray = new ThyRgba(112, 128, 144, 1);\n public static slategrey = ThyColorsTable.slategray;\n public static snow = new ThyRgba(255, 250, 250, 1);\n public static springgreen = new ThyRgba(0, 255, 127, 1);\n public static steelblue = new ThyRgba(70, 130, 180, 1);\n public static tan = new ThyRgba(210, 180, 140, 1);\n public static teal = new ThyRgba(0, 128, 128, 1);\n public static thistle = new ThyRgba(216, 191, 216, 1);\n public static tomato = new ThyRgba(255, 99, 71, 1);\n public static turquoise = new ThyRgba(64, 224, 208, 1);\n public static violet = new ThyRgba(238, 130, 238, 1);\n public static wheat = new ThyRgba(245, 222, 179, 1);\n public static white = new ThyRgba(255, 255, 255, 1);\n public static whitesmoke = new ThyRgba(245, 245, 245, 1);\n public static yellow = new ThyRgba(255, 255, 0, 1);\n public static yellowgreen = new ThyRgba(154, 205, 50, 1);\n}\n","import { ThyColorsTable } from './colors-table.class';\nimport { ThyRgba } from './rgba.class';\n\nconst hsv2hsl = function (hue: number, sat: number, val: number) {\n return [hue, (sat * val) / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0, hue / 2];\n};\n\nexport class ThyColor {\n hue = 0;\n saturation = 0;\n value = 0;\n alpha = 1;\n enableAlpha = false;\n format = 'hex';\n displayValue = '#000000'; // 最终展示的值\n rgba: ThyRgba = new ThyRgba(0, 0, 0, 1);\n\n constructor(color?: string | { h: number; s: number; v: number; alpha: number }) {\n if (color) {\n this.stringToColor(color);\n }\n }\n\n private stringToColor(color: string | { h: number; s: number; v: number; alpha: number }): this {\n if (typeof color === 'string') {\n const str = color.replace(/ /g, '').toLowerCase();\n /**\n * try to find color by name in table\n */\n let rgba: ThyRgba = ThyColorsTable[str] || null;\n\n /**\n * hex find\n */\n if (str[0] === '#') {\n let hex = str.substr(1);\n const length = hex.length;\n let hexArray: string[] = [];\n\n if (length === 3) {\n hexArray = hex.split('').map(value => value + value);\n } else if (length === 6) {\n hexArray = hex.match(/.{2}/g);\n } else if (length === 8) {\n const alpha = hex.substr(-2);\n hex = hex.substr(0, length - 2);\n this.alpha = this.roundNumber(parseInt(alpha || 'FF', 16) / 255);\n hexArray = hex.match(/.{2}/g);\n }\n\n if (hexArray.length === 3) {\n rgba = new ThyRgba(parseInt(hexArray[0], 16), parseInt(hexArray[1], 16), parseInt(hexArray[2], 16), this.alpha);\n }\n }\n const OpenParenthesis = str.indexOf('(');\n const CloseParenthesis = str.indexOf(')');\n if (OpenParenthesis !== -1 && CloseParenthesis + 1 === str.length) {\n const colorTypeName = str.substr(0, OpenParenthesis);\n const params = str.substr(OpenParenthesis + 1, CloseParenthesis - (OpenParenthesis + 1)).split(',');\n switch (colorTypeName) {\n case 'rgba':\n this.alpha = parseFloat(params.pop());\n case 'rgb':\n rgba = new ThyRgba(parseInt(params[0], 10), parseInt(params[1], 10), parseInt(params[2], 10), this.alpha);\n break;\n case 'hsla':\n this.alpha = parseFloat(params.pop());\n case 'hsl':\n rgba = this.hslaToRgba(parseInt(params[0], 10), parseInt(params[1], 10), parseInt(params[2], 10), this.alpha);\n break;\n // case 'cmyk':\n // const cmyk = new Cmyk(\n // parseInt(params[0], 10),\n // parseInt(params[1], 10),\n // parseInt(params[2], 10),\n // parseInt(params[3], 10)\n // );\n // rgba = this.cmykToRgba(cmyk);\n // break;\n }\n }\n if (rgba) {\n this.rgba = new ThyRgba(rgba.red, rgba.green, rgba.blue, rgba.alpha);\n const hsv = this.rgbTohsv(rgba.red, rgba.green, rgba.blue);\n this.updateColor(hsv.h, hsv.s, hsv.v, rgba.alpha, false);\n }\n } else {\n this.updateColor(color.h, color.s, color.v, color.alpha, true);\n }\n return this;\n }\n\n public setRgba(red: number = null, green: number = null, blue: number = null, alpha: number = 1): this {\n if (red != null) {\n this.rgba.red = red;\n }\n\n if (green != null) {\n this.rgba.green = green;\n }\n\n if (blue != null) {\n this.rgba.blue = blue;\n }\n\n if (alpha != null) {\n alpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;\n this.rgba.alpha = alpha;\n }\n\n const { h, s, v } = this.rgbTohsv(this.rgba.red, this.rgba.green, this.rgba.blue);\n this.updateColor(h, s, v, this.rgba.alpha, false);\n return this;\n }\n\n rgbTohsv(r: number, g: number, b: number) {\n const red = r / 255;\n const green = g / 255;\n const blue = b / 255;\n const Cmax = Math.max(red, green, blue);\n const Cmin = Math.min(red, green, blue);\n const delta = Cmax - Cmin;\n let hue = 0;\n let saturation: number = Cmax === 0 ? 0 : delta / Cmax;\n let brightness: number = Cmax;\n if (Cmax !== Cmin) {\n switch (Cmax) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = 2 + (blue - red) / delta;\n break;\n case blue:\n hue = 4 + (red - green) / delta;\n break;\n }\n hue /= 6;\n }\n\n return { h: Math.round(hue * 360), s: Math.round(saturation * 100), v: Math.round(brightness * 100) };\n }\n\n public getRgba(): ThyRgba {\n return new ThyRgba(this.rgba.red, this.rgba.green, this.rgba.blue, this.rgba.alpha);\n }\n\n private hslaToRgba(h: number, s: number, l: number, a: number): ThyRgba {\n const hue = h / 360;\n const saturation = s / 100;\n const lightness = l / 100;\n const alpha = a;\n\n let red = lightness;\n let green = lightness;\n let blue = lightness;\n\n if (saturation !== 0) {\n const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n\n red = this.hueToRgb(p, q, hue + 1 / 3);\n green = this.hueToRgb(p, q, hue);\n blue = this.hueToRgb(p, q, hue - 1 / 3);\n }\n\n red = red * 255;\n green = green * 255;\n blue = blue * 255;\n\n return new ThyRgba(red, green, blue, alpha);\n }\n\n private hueToRgb(p: number, q: number, t: number): number {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n }\n\n private roundNumber(n: number): number {\n return Math.round(n * 100) / 100;\n }\n\n updateColor(h: number, s: number, v: number, alpha: number, updateRgba: boolean, enableAlpha = true, format = 'hex') {\n this.hue = Math.max(0, Math.min(360, h));\n this.saturation = Math.max(0, Math.min(100, s));\n this.value = Math.max(0, Math.min(100, v));\n this.alpha = alpha;\n if (updateRgba) {\n this.rgba = this.hsvaToRgba(this.hue, Math.round(this.saturation), Math.round(this.value), this.alpha);\n }\n this.enableAlpha = enableAlpha;\n this.format = format;\n this.getFinalValue();\n }\n\n public toHexString(alpha: boolean = false): string {\n let hex = '#' + ((1 << 24) | (this.rgba.getRed() << 16) | (this.rgba.getGreen() << 8) | this.rgba.getBlue()).toString(16).substr(1);\n if (alpha && this.rgba.alpha !== 1) {\n hex += ((1 << 8) | Math.round(this.rgba.alpha * 255)).toString(16).substr(1);\n }\n return hex.toUpperCase();\n }\n\n hsvaToRgba(h: number, s: number, v: number, alpha: number) {\n let red = 1;\n let green = 0;\n let blue = 0;\n const saturation = Math.round(s) / 100;\n const brightness = Math.round(v) / 100;\n const hex = h / 60;\n const primary = Math.floor(hex);\n const secoundary = hex - primary;\n const a = (1 - saturation) * brightness;\n const b = (1 - saturation * secoundary) * brightness;\n const c = (1 - saturation * (1 - secoundary)) * brightness;\n\n switch (primary) {\n case 6:\n case 0:\n red = brightness;\n green = c;\n blue = a;\n break;\n case 1:\n red = b;\n green = brightness;\n blue = a;\n break;\n case 2:\n red = a;\n green = brightness;\n blue = c;\n break;\n case 3:\n red = a;\n green = b;\n blue = brightness;\n break;\n case 4:\n red = c;\n green = a;\n blue = brightness;\n break;\n case 5:\n red = brightness;\n green = a;\n blue = b;\n break;\n }\n\n red = red * 255;\n green = green * 255;\n blue = blue * 255;\n\n return new ThyRgba(Math.round(red), Math.round(green), Math.round(blue), alpha);\n }\n\n getFinalValue() {\n let { hue, saturation, value, alpha, format } = this;\n if (this.enableAlpha) {\n switch (format) {\n case 'hsl':\n const hsl = hsv2hsl(hue, saturation / 100, value / 100);\n this.displayValue = `hsla(${hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%, ${alpha})`;\n break;\n case 'hsv':\n this.displayValue = `hsva(${hue}, ${Math.round(saturation)}%, ${Math.round(value)}%, ${alpha})`;\n break;\n case 'rgb':\n this.displayValue = `rgba(${this.rgba.red}, ${this.rgba.green}, ${this.rgba.blue}, ${this.rgba.alpha})`;\n break;\n default:\n this.displayValue = this.toHexString(true);\n }\n } else {\n switch (format) {\n case 'hsl':\n const hsl = hsv2hsl(hue, saturation / 100, value / 100);\n this.displayValue = `hsl(${hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%)`;\n break;\n case 'hsv':\n this.displayValue = `hsv(${hue}, ${Math.round(saturation)}%, ${Math.round(value)}%)`;\n break;\n case 'rgb':\n this.displayValue = `rgb(${this.rgba.red}, ${this.rgba.green}, ${this.rgba.blue})`;\n break;\n default:\n this.displayValue = this.toHexString();\n }\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit, inject, output } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[thyColorCoordinates]'\n})\nexport class ThyCoordinatesDirective implements OnInit, OnDestroy {\n el = inject(ElementRef);\n\n readonly coordinatesChange = output<{\n x: number;\n y: number;\n left: number;\n top: number;\n containerWidth: number;\n containerHeight: number;\n $event: any;\n }>();\n\n private mousechange = new Subject<{\n x: number;\n y: number;\n $event: any;\n }>();\n\n private mouseListening = false;\n\n private sub?: Subscription;\n\n @HostListener('mousedown', ['$event', '$event.pageX', '$event.pageY'])\n mousedown($event: Event, x: number, y: number) {\n $event.preventDefault();\n this.mouseListening = true;\n this.mousechange.next({ x, y, $event });\n }\n\n @HostListener('window:mousemove', ['$event', '$event.pageX', '$event.pageY'])\n mousemove($event: Event, x: number, y: number) {\n if (this.mouseListening) {\n $event.preventDefault();\n this.mousechange.next({ x, y, $event });\n }\n }\n\n @HostListener('window:mouseup')\n mouseup() {\n this.mouseListening = false;\n }\n\n ngOnInit() {\n this.sub = this.mousechange\n .pipe(distinctUntilChanged((last, current) => last.x === current.x && last.y === current.y))\n .subscribe(n => this.handleChange(n.x, n.y, n.$event));\n }\n\n handleChange(x: number, y: number, $event: Event) {\n const containerWidth = this.el.nativeElement.clientWidth;\n const containerHeight = this.el.nativeElement.clientHeight;\n const left = x - (this.el.nativeElement.getBoundingClientRect().left + window.pageXOffset);\n const top = y - (this.el.nativeElement.getBoundingClientRect().top + window.pageYOffset);\n this.coordinatesChange.emit({\n x,\n y,\n top,\n left,\n containerHeight,\n containerWidth,\n $event\n });\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Renderer2,\n effect,\n inject,\n input,\n output,\n viewChild\n} from '@angular/core';\nimport { ThyCoordinatesDirective } from '../../coordinates.directive';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-alpha',\n templateUrl: './alpha.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyCoordinatesDirective]\n})\nexport class ThyAlpha {\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class.thy-alpha') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly pointer = viewChild<ElementRef>('pointer');\n\n readonly gradient = viewChild<ElementRef>('gradient');\n\n readonly colorChange = output<ThyColor>();\n\n constructor() {\n effect(() => {\n this.setBackground();\n this.changePointerPosition();\n });\n }\n\n setBackground() {\n this.renderer.setStyle(\n this.gradient().nativeElement,\n 'background',\n `linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(${this.color().rgba.red},\n ${this.color().rgba.green},\n ${this.color().rgba.blue},\n 1) 100%)`\n );\n }\n\n private changePointerPosition(alpha?: number): void {\n const x = (alpha ?? this.color().alpha) * 100;\n this.renderer.setStyle(this.pointer().nativeElement, 'left', `${x}%`);\n }\n\n handleChange(event: {\n x: number;\n y: number;\n top: number;\n left: number;\n containerHeight: number;\n containerWidth: number;\n $event: Event;\n }) {\n let x;\n if (event.left < 0) {\n x = 0;\n } else if (event.left > event.containerWidth) {\n x = 1;\n } else {\n x = Math.round((event.left * 100) / event.containerWidth) / 100;\n }\n this.changePointerPosition(x);\n this.colorChange.emit(new ThyColor({ h: this.color().hue, s: this.color().saturation, v: this.color().value, alpha: x }));\n }\n}\n","<div class=\"gradient-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"gradient-color\" #gradient>\n <div class=\"pointer-container\">\n <div class=\"pointer\" #pointer></div>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Renderer2,\n ViewChild,\n effect,\n inject,\n input,\n output\n} from '@angular/core';\nimport { ThyCoordinatesDirective } from '../../coordinates.directive';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-hue',\n templateUrl: './hue.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyCoordinatesDirective]\n})\nexport class ThyHue {\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class.thy-hue') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly colorChange = output<ThyColor>();\n\n @ViewChild('pointer', { static: true })\n public pointer: ElementRef;\n\n constructor() {\n effect(() => {\n this.changePointerPosition();\n });\n }\n\n private changePointerPosition(hue?: number): void {\n const newHue = hue ?? this.color().hue;\n const x = (newHue / 360) * 100;\n this.renderer.setStyle(this.pointer.nativeElement, 'left', `${x}%`);\n }\n\n handleChange(event: {\n x: number;\n y: number;\n top: number;\n left: number;\n containerHeight: number;\n containerWidth: number;\n $event: Event;\n }) {\n let x;\n if (event.left < 0) {\n x = 0;\n } else if (event.left > event.containerWidth) {\n x = 1;\n } else {\n x = Math.round((event.left * 100) / event.containerWidth) / 100;\n }\n this.changePointerPosition(x * 360);\n this.colorChange.emit(new ThyColor({ h: x * 360, s: this.color().saturation, v: this.color().value, alpha: this.color().alpha }));\n }\n}\n","<div class=\"hue-contianer\">\n <div class=\"pointer-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"pointer\" #pointer></div>\n </div>\n</div>\n","import { Component, computed, HostBinding, input, Signal } from '@angular/core';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-indicator',\n templateUrl: './indicator.component.html'\n})\nexport class ThyIndicator {\n @HostBinding('class.thy-indicator') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly backgroundColor: Signal<string> = computed(() => {\n return this.color()?.rgba.toString() || '';\n });\n}\n","<div [style.backgroundColor]=\"backgroundColor()\" class=\"icon-container\"></div>\n","import { Component, effect, HostBinding, input, OnInit, output, signal, WritableSignal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputDirective, ThyInputGroup } from 'ngx-tethys/input';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThyEnterDirective } from 'ngx-tethys/shared';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-color-inputs',\n templateUrl: './inputs.component.html',\n imports: [ThyInputDirective, FormsModule, ThyEnterDirective, ThyInputNumber, ThyInputGroup]\n})\nexport class ThyColorInputs implements OnInit {\n @HostBinding('class.thy-color-inputs') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly colorChange = output<ThyColor>();\n\n readonly hex: WritableSignal<string> = signal('');\n\n readonly alpha: WritableSignal<number> = signal(100);\n\n constructor() {\n effect(() => {\n this.hex.set(this.color()?.toHexString(false).slice(1, 7) || '');\n this.alpha.set(Math.round(this.color()?.rgba.alpha * 100) || 100);\n });\n }\n\n ngOnInit(): void {}\n\n onInputChange(event: Event, type: string) {\n let newColor;\n const alpha = this.alpha() / 100;\n if (type === 'hex') {\n let finalDisplayValue = this.hex();\n if (this.hex().length === 3) {\n finalDisplayValue = this.hex()\n .split('')\n .map(value => value + value)\n .join('');\n }\n finalDisplayValue = `#${finalDisplayValue}`;\n if (alpha !== 1) {\n finalDisplayValue += ((1 << 8) | Math.round(alpha * 255)).toString(16).substr(1);\n }\n newColor = new ThyColor(finalDisplayValue);\n } else {\n newColor = new ThyColor().setRgba(this.color().rgba.red, this.color().rgba.green, this.color().rgba.blue, alpha);\n }\n this.colorChange.emit(newColor);\n }\n}\n","<div class=\"hex-column\">\n <thy-input-group class=\"hex-input-group\">\n <ng-template #prefix>\n <span>#</span>\n </ng-template>\n <input\n class=\"px-0 form-control-xs\"\n thyInput\n [(ngModel)]=\"hex\"\n maxlength=\"6\"\n (blur)=\"onInputChange($event, 'hex')\"\n (thyEnter)=\"onInputChange($event, 'hex')\" />\n </thy-input-group>\n <span>HEX</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.red\"\n (thyBlur)=\"onInputChange($event, 'R')\"\n (thyEnter)=\"onInputChange($event, 'R')\"></thy-input-number>\n <span>R</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.green\"\n (thyBlur)=\"onInputChange($event, 'G')\"\n (thyEnter)=\"onInputChange($event, 'G')\"></thy-input-number>\n <span>G</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.blue\"\n (thyBlur)=\"onInputChange($event, 'B')\"\n (thyEnter)=\"onInputChange($event, 'B')\"></thy-input-number>\n <span>B</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n [thyMin]=\"0\"\n [thyMax]=\"100\"\n thySize=\"xs\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"alpha\"\n (thyBlur)=\"onInputChange($event, 'A')\"\n (thyEnter)=\"onInputChange($event, 'A')\"></thy-input-number>\n <span>A</span>\n</div>\n","import { Component, ElementRef, HostBinding, Renderer2, effect, inject, input, output, viewChild } from '@angular/core';\nimport { ThyCoordinatesDirective } from '../../coordinates.directive';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-saturation',\n templateUrl: './saturation.component.html',\n imports: [ThyCoordinatesDirective]\n})\nexport class ThySaturation {\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class.thy-saturation') className = true;\n\n readonly panel = viewChild<ElementRef>('panel');\n\n readonly pointer = viewChild<ElementRef>('pointer');\n\n readonly colorChange = output<ThyColor>();\n\n readonly color = input<ThyColor>();\n\n constructor() {\n effect(() => {\n this.setBackground();\n this.changePointerPosition();\n });\n }\n\n setBackground() {\n this.renderer.setStyle(this.panel().nativeElement, 'background', `hsl(${this.color().hue},100%,50%)`);\n }\n\n changePointerPosition(s?: number, v?: number) {\n const saturation = s ?? this.color().saturation;\n const value = v ?? this.color().value;\n const pointer = this.pointer();\n this.renderer.setStyle(pointer.nativeElement, 'left', `${saturation}%`);\n this.renderer.setStyle(pointer.nativeElement, 'top', `${100 - value}%`);\n }\n\n handleChange(event: {\n x: number;\n y: number;\n top: number;\n left: number;\n containerHeight: number;\n containerWidth: number;\n $event: Event;\n }) {\n let x = event.left,\n y = event.top;\n if (event.left < 0) {\n x = 0;\n } else if (event.left > event.containerWidth) {\n x = event.containerWidth;\n }\n if (event.top < 0) {\n y = 0;\n } else if (event.top > event.containerHeight) {\n y = event.containerHeight;\n }\n\n const s = x / event.containerWidth;\n let v = 1 - y / event.containerHeight;\n v = v > 0 ? v : 0;\n v = v > 1 ? 1 : v;\n\n this.changePointerPosition(s * 100, v * 100);\n\n this.colorChange.emit(new ThyColor({ h: this.color().hue, s: s * 100, v: v * 100, alpha: this.color().alpha }));\n }\n}\n","<div class=\"color-panel\" #panel thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"color-panel-white\"></div>\n <div class=\"color-panel-black\"></div>\n <div class=\"color-panel-pointer\" #pointer></div>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit, WritableSignal, input, model, signal } from '@angular/core';\nimport { ThyColor } from './helpers/color.class';\nimport { ThyAlpha } from './parts/alpha/alpha.component';\nimport { ThyHue } from './parts/hue/hue.component';\nimport { ThyIndicator } from './parts/indicator/indicator.component';\nimport { ThyColorInputs } from './parts/inputs/inputs.component';\nimport { ThySaturation } from './parts/saturation/saturation.component';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-color-picker-custom-panel',\n templateUrl: './color-picker-custom-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThySaturation, ThyHue, ThyAlpha, ThyIndicator, ThyColorInputs]\n})\nexport class ThyColorPickerCustomPanel implements OnInit {\n @HostBinding('class.thy-color-picker-custom-panel') className = true;\n\n readonly color = model<string>();\n\n colorInstance: WritableSignal<ThyColor> = signal<ThyColor>(null);\n\n readonly pickerColorChange = input<(color: string) => {}>();\n\n constructor() {}\n\n ngOnInit() {\n this.colorInstance.set(new ThyColor(this.color()));\n }\n\n colorChangeEvent($event: ThyColor) {\n this.colorInstance.set($event);\n this.color.set(this.colorInstance().displayValue);\n this.pickerColorChange()(this.color());\n }\n}\n","<thy-saturation [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-saturation>\n<div class=\"controls\">\n <div class=\"indicator-hue-alp\">\n <div class=\"rows\">\n <thy-hue [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-hue>\n <thy-alpha [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-alpha>\n </div>\n <thy-indicator [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-indicator>\n </div>\n</div>\n<thy-color-inputs [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-color-inputs>\n","import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, model, OnInit, Signal, ViewContainerRef } from '@angular/core';\nimport { injectLocale, ThyColorPickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyColorPickerCustomPanel } from './color-picker-custom-panel.component';\nimport { ThyColor } from './helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-color-picker-panel',\n templateUrl: './color-picker-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.pt-4]': '!transparentColorSelectable()',\n '[class.thy-color-picker-panel]': 'true'\n },\n imports: [NgClass, NgTemplateOutlet, ThyIcon, NgStyle]\n})\nexport class ThyColorPickerPanel implements OnInit {\n private thyPopover = inject(ThyPopover);\n private viewContainerRef = inject(ViewContainerRef);\n private thyPopoverRef = inject<ThyPopoverRef<ThyColorPickerPanel>>(ThyPopoverRef);\n locale: Signal<ThyColorPickerLocale> = injectLocale('colorPicker');\n\n readonly color = model<string>();\n\n readonly colorChange = input<(color: string) => {}>();\n\n readonly defaultColor = input<string, string>('', {\n transform: (value: string) => {\n return (value && new ThyColor(value).toHexString(true)) || '';\n }\n });\n\n readonly transparentColorSelectable = input(false, { transform: coerceBooleanProperty });\n\n readonly defaultColors = input<string[]>();\n\n recentColors: string[] = [];\n\n newColor: string;\n\n customPanelPopoverRef: ThyPopoverRef<ThyColorPickerCustomPanel>;\n\n ngOnInit(): void {\n const colors = localStorage.getItem('recentColors');\n if (colors) {\n this.recentColors = JSON.parse(colors);\n }\n }\n\n selectColor(color: string) {\n this.color.set(color);\n this.colorChange()(this.color());\n this.thyPopoverRef.close();\n }\n\n showMoreColor(event: Event) {\n if (!this.customPanelPopoverRef) {\n this.customPanelPopoverRef = this.thyPopover.open(ThyColorPickerCustomPanel, {\n origin: event.currentTarget as HTMLElement,\n offset: -4,\n placement: 'rightBottom',\n manualClosure: true,\n width: '260px',\n hasBackdrop: false,\n viewContainerRef: this.viewContainerRef,\n originActiveClass: 'thy-color-picker-active',\n initialState: {\n color: this.color(),\n pickerColorChange: (value: string) => {\n this.newColor = value;\n this.colorChange()(value);\n }\n }\n });\n }\n this.customPanelPopoverRef?.afterClosed().subscribe(() => {\n if (this.newColor) {\n const index = this.recentColors.findIndex(item => item === this.newColor);\n if (index !== -1) {\n this.recentColors.splice(index, 1);\n }\n this.recentColors.unshift(this.newColor);\n this.recentColors = this.recentColors.slice(0, 10);\n localStorage.setItem('recentColors', JSON.stringify(this.recentColors));\n }\n this.thyPopoverRef.close();\n });\n }\n\n getIconColor(item: string) {\n const rgba = new ThyColor(item).rgba;\n const hsp = 0.299 * rgba.red + 0.587 * rgba.green + 0.114 * rgba.blue;\n return hsp > 192 ? 'black' : 'white';\n }\n}\n","@if (defaultColor()) {\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable() ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor())\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor() }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().defaultColor }}</span>\n </div>\n}\n@if (transparentColorSelectable()) {\n <div class=\"quick-color\" [ngClass]=\"defaultColor() ? 'mt-0 pt-0' : ''\" (click)=\"selectColor('transparent')\">\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().noFillColor }}</span>\n </div>\n}\n<div class=\"main-content\">\n <div class=\"default-color\">\n @for (item of defaultColors(); track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">{{ locale().recentUsedColor }}</p>\n <div class=\"recent-color-container\">\n @for (item of recentColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (recentColors.length === 0) {\n <div class=\"font-size-sm px-1 text-muted\">{{ locale().none }}</div>\n }\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">{{ locale().customColor }}</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\">\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"\n color() === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\n \"></thy-icon>\n </div>\n</ng-template>\n","export const DEFAULT_COLORS = [\n '#333333',\n '#666666',\n '#999999',\n '#AAAAAA',\n '#CACACA',\n '#DDDDDD',\n '#EEEEEE',\n '#F5F5F5',\n '#F7F7F7',\n '#FFFFFF',\n '#E48483',\n '#E0B75D',\n '#69B1E4',\n '#77C386',\n '#6EC4C4',\n '#E581D4',\n '#B0C774',\n '#6F81DB',\n '#C18976',\n '#A287E1',\n '#FDEFED',\n '#FCF6E1',\n '#E5F3FC',\n '#E9F7E9',\n '#E3F7F5',\n '#FBECF6',\n '#F7FAE6',\n '#E8EEFC',\n '#F7EDE6',\n '#F0E7FA',\n '#FBD3D0',\n '#F8E8BC',\n '#C3E4F5',\n '#CEEBD2',\n '#C0EBE5',\n '#F1CFE7',\n '#E4EDCA',\n '#C2CDF0',\n '#EBD5C9',\n '#DCCEF5',\n '#EFACA9',\n '#EBD28D',\n '#92C9ED',\n '#9ED0A6',\n '#9BD6D4',\n '#ECA6D9',\n '#D0DF9D',\n '#92A2E3',\n '#D5AD9A',\n '#C0ABEA',\n '#BD6568',\n '#B98F44',\n '#5593C6',\n '#579B67',\n '#4F9FA1',\n '#BA5FA5',\n '#8BA257',\n '#5461B8',\n '#9B6657',\n '#8069BF',\n '#703039',\n '#6B4C1D',\n '#224870',\n '#244F31',\n '#214D52',\n '#6A2E61',\n '#405122',\n '#272B69',\n '#4F2B24',\n '#392E6E'\n];\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { mixinDisabled, mixinTabIndex, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyColorPickerPanel } from './color-picker-panel.component';\nimport { DEFAULT_COLORS } from './constant';\nimport { ThyColor } from './helpers/color.class';\n\nexport class OverlayBase extends ThyOverlayDirectiveBase {\n constructor(\n protected zone: NgZone,\n protected elementRef: ElementRef<HTMLElement>,\n platform: Platform,\n focusMonitor: FocusMonitor\n ) {\n super(elementRef, platform, focusMonitor, zone, true);\n }\n\n show(): void {}\n\n hide() {}\n}\n\nconst _BaseMixin = mixinTabIndex(mixinDisabled(OverlayBase));\n\n/**\n * 颜色选择组件\n * @name thyColorPicker\n */\n@Directive({\n selector: '[thyColorPicker]',\n host: {\n class: 'thy-color-picker',\n '[attr.tabindex]': `tabIndex`,\n '[class.thy-color-picker-disabled]': 'disabled'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyColorPickerDirective)\n }\n ]\n})\nexport class ThyColorPickerDirective extends _BaseMixin implements OnInit, OnDestroy, AfterViewInit {\n private thyPopover = inject(ThyPopover);\n\n /**\n * 弹框偏移量\n * @type number\n */\n readonly thyOffset = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 颜色选择面板是否有幕布\n */\n readonly thyHasBackdrop = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 设置颜色选择面板的默认颜色选项值\n */\n readonly thyDefaultColor = input<string>();\n\n /**\n * 是否显示'无填充色'选项\n */\n readonly thyTransparentColorSelectable = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 预设的快捷选择颜色\n * @type string[]\n */\n readonly thyPresetColors = input<string[]>(DEFAULT_COLORS);\n\n /**\n * 颜色面板弹出位置 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'\n * @type ThyPlacement\n */\n readonly thyPlacement = input<ThyPlacement>('bottom');\n\n /**\n * panel 展开后触发\n */\n readonly thyPanelOpen = output<ThyPopoverRef<ThyColorPickerPanel>>();\n\n /**\n * panel 关闭后触发\n */\n readonly thyPanelClose = output<ThyPopoverRef<ThyColorPickerPanel>>();\n\n /**\n * 弹出悬浮层的触发方式\n * @type 'hover' | 'click'\n */\n readonly thyTrigger = input<ThyOverlayTrigger>('click');\n\n /**\n * 显示延迟时间\n */\n readonly thyShowDelay = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 隐藏延迟时间\n */\n readonly thyHideDelay = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 是否属于禁用状态\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n protected onChangeFn: (value: number | string) => void = () => {};\n\n private onTouchFn: () => void = () => {};\n\n color: string;\n\n private popoverRef: ThyPopoverRef<ThyColorPickerPanel>;\n\n private closePanel = true;\n\n private destroy$ = new Subject<void>();\n\n public get backgroundColor(): string {\n return this.color;\n }\n\n constructor() {\n const zone = inject(NgZone);\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n\n super(zone, elementRef, platform, focusMonitor);\n\n effect(() => {\n // TODO: 基类参数\n this.showDelay = this.thyShowDelay() ?? 100;\n this.hideDelay = this.thyHideDelay() ?? 100;\n this.trigger = this.thyTrigger() || 'click';\n });\n }\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.initialize();\n if (this.trigger === 'hover') {\n this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.popoverRef?.getOverlayRef()?.hasAttached()) {\n if (\n this.elementRef.nativeElement.contains(event.target as HTMLElement) ||\n (event.target as HTMLElement).closest('.thy-color-picker-custom-panel') ||\n !!(event.target as HTMLElement).querySelector('.thy-color-picker-custom-panel') ||\n this.popoverRef.getOverlayRef()?.hostElement?.contains(event.target as HTMLElement)\n ) {\n this.closePanel = false;\n } else {\n this.closePanel = true;\n this.popoverRef.close();\n }\n }\n });\n });\n }\n }\n\n togglePanel(): OverlayRef {\n this.closePanel = false;\n this.popoverRef = this.thyPopover.open(ThyColorPickerPanel, {\n origin: this.elementRef.nativeElement as HTMLElement,\n offset: this.thyOffset(),\n manualClosure: true,\n width: '286px',\n placement: this.thyPlacement(),\n originActiveClass: 'thy-default-picker-active',\n hasBackdrop: this.thyHasBackdrop(),\n outsideClosable: false,\n canClose: () => {\n if (this.trigger === 'hover') {\n return this.closePanel;\n }\n return true;\n },\n initialState: {\n color: new ThyColor(this.color).toHexString(true),\n defaultColor: this.thyDefaultColor(),\n transparentColorSelectable: this.thyTransparentColorSelectable(),\n defaultColors: this.thyPresetColors(),\n colorChange: (value: string) => {\n this.closePanel = true;\n this.onModelChange(value);\n }\n }\n });\n if (this.popoverRef) {\n this.popoverRef.afterOpened().subscribe(() => {\n this.thyPanelOpen.emit(this.popoverRef);\n });\n this.popoverRef.afterClosed().subscribe(() => {\n this.thyPanelClose.emit(this.popoverRef);\n this.elementRef.nativeElement.focus();\n });\n }\n if (this.popoverRef && !this.thyHasBackdrop()) {\n this.popoverRef\n .getOverlayRef()\n .outsidePointerEvents()\n .subscribe(event => {\n if ((event.target as HTMLElement).closest('.thy-color-picker-custom-panel')) {\n return;\n }\n if (!this.popoverRef.getOverlayRef().hostElement.contains(event.target as HTMLElement)) {\n this.popoverRef.close();\n }\n });\n }\n return this.popoverRef.getOverlayRef();\n }\n\n override show(delay: number = this.showDelay): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n const overlayRef = this.togglePanel();\n this.overlayRef = overlayRef;\n this.showTimeoutId = null;\n }, delay);\n }\n\n override hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef?.getOverlayRef()?.hasAttached() && this.popoverRef.close();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n writeValue(value: string): void {\n this.color = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onModelChange(value: string): void {\n this.color = value;\n this.onChangeFn(value);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.hide();\n this.dispose();\n this.popoverRef = null;\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyColorPickerDirective } from './color-picker.component';\nimport { ThyColorPickerCustomPanel } from './color-picker-custom-panel.component';\nimport { ThySaturation } from './parts/saturation/saturation.component';\nimport { ThyDialogModule } from 'ngx-tethys/dialog';\nimport { ThyHue } from './parts/hue/hue.component';\nimport { ThyAlpha } from './parts/alpha/alpha.component';\nimport { ThyIndicator } from './parts/indicator/indicator.component';\nimport { ThyCoordinatesDirective } from './coordinates.directive';\nimport { ThyColorPickerPanel } from './color-picker-panel.component';\nimport { ThyColorInputs } from './parts/inputs/inputs.component';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputNumberModule } from 'ngx-tethys/input-number';\nimport { ThySharedModule } from 'ngx-tethys/shared';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyDialogModule,\n ThyInputModule,\n ThyIconModule,\n FormsModule,\n ThyInputNumberModule,\n ThySharedModule,\n ThyColorPickerDirective,\n ThyColorPickerCustomPanel,\n ThySaturation,\n ThyHue,\n ThyAlpha,\n ThyIndicator,\n ThyCoordinatesDirective,\n ThyColorPickerPanel,\n ThyColorInputs\n ],\n exports: [ThyColorPickerDirective]\n})\nexport class ThyColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-color-picker.mjs","sources":["../../../src/color-picker/helpers/rgba.class.ts","../../../src/color-picker/helpers/colors-table.class.ts","../../../src/color-picker/helpers/color.class.ts","../../../src/color-picker/coordinates.directive.ts","../../../src/color-picker/parts/alpha/alpha.component.ts","../../../src/color-picker/parts/alpha/alpha.component.html","../../../src/color-picker/parts/hue/hue.component.ts","../../../src/color-picker/parts/hue/hue.component.html","../../../src/color-picker/parts/indicator/indicator.component.ts","../../../src/color-picker/parts/indicator/indicator.component.html","../../../src/color-picker/parts/inputs/inputs.component.ts","../../../src/color-picker/parts/inputs/inputs.component.html","../../../src/color-picker/parts/saturation/saturation.component.ts","../../../src/color-picker/parts/saturation/saturation.component.html","../../../src/color-picker/color-picker-custom-panel.component.ts","../../../src/color-picker/color-picker-custom-panel.component.html","../../../src/color-picker/color-picker-panel.component.ts","../../../src/color-picker/color-picker-panel.component.html","../../../src/color-picker/constant.ts","../../../src/color-picker/color-picker.component.ts","../../../src/color-picker/module.ts","../../../src/color-picker/ngx-tethys-color-picker.ts"],"sourcesContent":["/**\n * RGB (Red Green Blue)\n *\n * Red = ranges from 0-255\n * Green = ranges from 0-255\n * Blue = ranges from 0-255\n * Alpha = range from 0-1\n */\nexport class ThyRgba {\n constructor(\n public red: number,\n public green: number,\n public blue: number,\n public alpha: number\n ) {}\n\n public toString(showAlphaChannel: boolean = true): string {\n return showAlphaChannel\n ? `rgba(${this.getRed()}, ${this.getGreen()}, ${this.getBlue()}, ${this.getAlpha()})`\n : `rgb(${this.getRed()}, ${this.getGreen()}, ${this.getBlue()})`;\n }\n\n public getRed(): number {\n return Math.round(this.red);\n }\n\n public getGreen(): number {\n return Math.round(this.green);\n }\n\n public getBlue(): number {\n return Math.round(this.blue);\n }\n\n public getAlpha(): number {\n return Math.round(this.alpha * 100) / 100;\n }\n}\n","import { ThyRgba } from './rgba.class';\n\n/**\n * http://www.w3.org/TR/css3-color/\n */\nexport class ThyColorsTable {\n public static transparent = new ThyRgba(0, 0, 0, 0);\n public static aliceblue = new ThyRgba(240, 248, 255, 1);\n public static antiquewhite = new ThyRgba(250, 235, 215, 1);\n public static aqua = new ThyRgba(0, 255, 255, 1);\n public static aquamarine = new ThyRgba(127, 255, 212, 1);\n public static azure = new ThyRgba(240, 255, 255, 1);\n public static beige = new ThyRgba(245, 245, 220, 1);\n public static bisque = new ThyRgba(255, 228, 196, 1);\n public static black = new ThyRgba(0, 0, 0, 1);\n public static blanchedalmond = new ThyRgba(255, 235, 205, 1);\n public static blue = new ThyRgba(0, 0, 255, 1);\n public static blueviolet = new ThyRgba(138, 43, 226, 1);\n public static brown = new ThyRgba(165, 42, 42, 1);\n public static burlywood = new ThyRgba(222, 184, 135, 1);\n public static cadetblue = new ThyRgba(95, 158, 160, 1);\n public static chartreuse = new ThyRgba(127, 255, 0, 1);\n public static chocolate = new ThyRgba(210, 105, 30, 1);\n public static coral = new ThyRgba(255, 127, 80, 1);\n public static cornflowerblue = new ThyRgba(100, 149, 237, 1);\n public static cornsilk = new ThyRgba(255, 248, 220, 1);\n public static crimson = new ThyRgba(220, 20, 60, 1);\n public static cyan = new ThyRgba(0, 255, 255, 1);\n public static darkblue = new ThyRgba(0, 0, 139, 1);\n public static darkcyan = new ThyRgba(0, 139, 139, 1);\n public static darkgoldenrod = new ThyRgba(184, 134, 11, 1);\n public static darkgray = new ThyRgba(169, 169, 169, 1);\n public static darkgreen = new ThyRgba(0, 100, 0, 1);\n public static darkgrey = ThyColorsTable.darkgray;\n public static darkkhaki = new ThyRgba(189, 183, 107, 1);\n public static darkmagenta = new ThyRgba(139, 0, 139, 1);\n public static darkolivegreen = new ThyRgba(85, 107, 47, 1);\n public static darkorange = new ThyRgba(255, 140, 0, 1);\n public static darkorchid = new ThyRgba(153, 50, 204, 1);\n public static darkred = new ThyRgba(139, 0, 0, 1);\n public static darksalmon = new ThyRgba(233, 150, 122, 1);\n public static darkseagreen = new ThyRgba(143, 188, 143, 1);\n public static darkslateblue = new ThyRgba(72, 61, 139, 1);\n public static darkslategray = new ThyRgba(47, 79, 79, 1);\n public static darkslategrey = ThyColorsTable.darkslategray;\n public static darkturquoise = new ThyRgba(0, 206, 209, 1);\n public static darkviolet = new ThyRgba(148, 0, 211, 1);\n public static deeppink = new ThyRgba(255, 20, 147, 1);\n public static deepskyblue = new ThyRgba(0, 191, 255, 1);\n public static dimgray = new ThyRgba(105, 105, 105, 1);\n public static dimgrey = ThyColorsTable.dimgray;\n public static dodgerblue = new ThyRgba(30, 144, 255, 1);\n public static firebrick = new ThyRgba(178, 34, 34, 1);\n public static floralwhite = new ThyRgba(255, 250, 240, 1);\n public static forestgreen = new ThyRgba(34, 139, 34, 1);\n public static fuchsia = new ThyRgba(255, 0, 255, 1);\n public static gainsboro = new ThyRgba(220, 220, 220, 1);\n public static ghostwhite = new ThyRgba(248, 248, 255, 1);\n public static gold = new ThyRgba(255, 215, 0, 1);\n public static goldenrod = new ThyRgba(218, 165, 32, 1);\n public static gray = new ThyRgba(128, 128, 128, 1);\n public static grey = ThyColorsTable.gray;\n public static green = new ThyRgba(0, 128, 0, 1);\n public static greenyellow = new ThyRgba(173, 255, 47, 1);\n public static honeydew = new ThyRgba(240, 255, 240, 1);\n public static hotpink = new ThyRgba(255, 105, 180, 1);\n public static indianred = new ThyRgba(205, 92, 92, 1);\n public static indigo = new ThyRgba(75, 0, 130, 1);\n public static ivory = new ThyRgba(255, 255, 240, 1);\n public static khaki = new ThyRgba(240, 230, 140, 1);\n public static lavender = new ThyRgba(230, 230, 250, 1);\n public static lavenderblush = new ThyRgba(255, 240, 245, 1);\n public static lawngreen = new ThyRgba(124, 252, 0, 1);\n public static lemonchiffon = new ThyRgba(255, 250, 205, 1);\n public static lightblue = new ThyRgba(173, 216, 230, 1);\n public static lightcoral = new ThyRgba(240, 128, 128, 1);\n public static lightcyan = new ThyRgba(224, 255, 255, 1);\n public static lightgoldenrodyellow = new ThyRgba(250, 250, 210, 1);\n public static lightgray = new ThyRgba(211, 211, 211, 1);\n public static lightgreen = new ThyRgba(144, 238, 144, 1);\n public static lightgrey = ThyColorsTable.lightgray;\n public static lightpink = new ThyRgba(255, 182, 193, 1);\n public static lightsalmon = new ThyRgba(255, 160, 122, 1);\n public static lightseagreen = new ThyRgba(32, 178, 170, 1);\n public static lightskyblue = new ThyRgba(135, 206, 250, 1);\n public static lightslategray = new ThyRgba(119, 136, 153, 1);\n public static lightslategrey = ThyColorsTable.lightslategray;\n public static lightsteelblue = new ThyRgba(176, 196, 222, 1);\n public static lightyellow = new ThyRgba(255, 255, 224, 1);\n public static lime = new ThyRgba(0, 255, 0, 1);\n public static limegreen = new ThyRgba(50, 205, 50, 1);\n public static linen = new ThyRgba(250, 240, 230, 1);\n public static magenta = new ThyRgba(255, 0, 255, 1);\n public static maroon = new ThyRgba(128, 0, 0, 1);\n public static mediumaquamarine = new ThyRgba(102, 205, 170, 1);\n public static mediumblue = new ThyRgba(0, 0, 205, 1);\n public static mediumorchid = new ThyRgba(186, 85, 211, 1);\n public static mediumpurple = new ThyRgba(147, 112, 219, 1);\n public static mediumseagreen = new ThyRgba(60, 179, 113, 1);\n public static mediumslateblue = new ThyRgba(123, 104, 238, 1);\n public static mediumspringgreen = new ThyRgba(0, 250, 154, 1);\n public static mediumturquoise = new ThyRgba(72, 209, 204, 1);\n public static mediumvioletred = new ThyRgba(199, 21, 133, 1);\n public static midnightblue = new ThyRgba(25, 25, 112, 1);\n public static mintcream = new ThyRgba(245, 255, 250, 1);\n public static mistyrose = new ThyRgba(255, 228, 225, 1);\n public static moccasin = new ThyRgba(255, 228, 181, 1);\n public static navajowhite = new ThyRgba(255, 222, 173, 1);\n public static navy = new ThyRgba(0, 0, 128, 1);\n public static oldlace = new ThyRgba(253, 245, 230, 1);\n public static olive = new ThyRgba(128, 128, 0, 1);\n public static olivedrab = new ThyRgba(107, 142, 35, 1);\n public static orange = new ThyRgba(255, 165, 0, 1);\n public static orangered = new ThyRgba(255, 69, 0, 1);\n public static orchid = new ThyRgba(218, 112, 214, 1);\n public static palegoldenrod = new ThyRgba(238, 232, 170, 1);\n public static palegreen = new ThyRgba(152, 251, 152, 1);\n public static paleturquoise = new ThyRgba(175, 238, 238, 1);\n public static palevioletred = new ThyRgba(219, 112, 147, 1);\n public static papayawhip = new ThyRgba(255, 239, 213, 1);\n public static peachpuff = new ThyRgba(255, 218, 185, 1);\n public static peru = new ThyRgba(205, 133, 63, 1);\n public static pink = new ThyRgba(255, 192, 203, 1);\n public static plum = new ThyRgba(221, 160, 221, 1);\n public static powderblue = new ThyRgba(176, 224, 230, 1);\n public static purple = new ThyRgba(128, 0, 128, 1);\n public static red = new ThyRgba(255, 0, 0, 1);\n public static rosybrown = new ThyRgba(188, 143, 143, 1);\n public static royalblue = new ThyRgba(65, 105, 225, 1);\n public static saddlebrown = new ThyRgba(139, 69, 19, 1);\n public static salmon = new ThyRgba(250, 128, 114, 1);\n public static sandybrown = new ThyRgba(244, 164, 96, 1);\n public static seagreen = new ThyRgba(46, 139, 87, 1);\n public static seashell = new ThyRgba(255, 245, 238, 1);\n public static sienna = new ThyRgba(160, 82, 45, 1);\n public static silver = new ThyRgba(192, 192, 192, 1);\n public static skyblue = new ThyRgba(135, 206, 235, 1);\n public static slateblue = new ThyRgba(106, 90, 205, 1);\n public static slategray = new ThyRgba(112, 128, 144, 1);\n public static slategrey = ThyColorsTable.slategray;\n public static snow = new ThyRgba(255, 250, 250, 1);\n public static springgreen = new ThyRgba(0, 255, 127, 1);\n public static steelblue = new ThyRgba(70, 130, 180, 1);\n public static tan = new ThyRgba(210, 180, 140, 1);\n public static teal = new ThyRgba(0, 128, 128, 1);\n public static thistle = new ThyRgba(216, 191, 216, 1);\n public static tomato = new ThyRgba(255, 99, 71, 1);\n public static turquoise = new ThyRgba(64, 224, 208, 1);\n public static violet = new ThyRgba(238, 130, 238, 1);\n public static wheat = new ThyRgba(245, 222, 179, 1);\n public static white = new ThyRgba(255, 255, 255, 1);\n public static whitesmoke = new ThyRgba(245, 245, 245, 1);\n public static yellow = new ThyRgba(255, 255, 0, 1);\n public static yellowgreen = new ThyRgba(154, 205, 50, 1);\n}\n","import { ThyColorsTable } from './colors-table.class';\nimport { ThyRgba } from './rgba.class';\n\nconst hsv2hsl = function (hue: number, sat: number, val: number) {\n return [hue, (sat * val) / ((hue = (2 - sat) * val) < 1 ? hue : 2 - hue) || 0, hue / 2];\n};\n\nexport class ThyColor {\n hue = 0;\n saturation = 0;\n value = 0;\n alpha = 1;\n enableAlpha = false;\n format = 'hex';\n displayValue = '#000000'; // 最终展示的值\n rgba: ThyRgba = new ThyRgba(0, 0, 0, 1);\n\n constructor(color?: string | { h: number; s: number; v: number; alpha: number }) {\n if (color) {\n this.stringToColor(color);\n }\n }\n\n private stringToColor(color: string | { h: number; s: number; v: number; alpha: number }): this {\n if (typeof color === 'string') {\n const str = color.replace(/ /g, '').toLowerCase();\n /**\n * try to find color by name in table\n */\n let rgba: ThyRgba = ThyColorsTable[str] || null;\n\n /**\n * hex find\n */\n if (str[0] === '#') {\n let hex = str.substr(1);\n const length = hex.length;\n let hexArray: string[] = [];\n\n if (length === 3) {\n hexArray = hex.split('').map(value => value + value);\n } else if (length === 6) {\n hexArray = hex.match(/.{2}/g);\n } else if (length === 8) {\n const alpha = hex.substr(-2);\n hex = hex.substr(0, length - 2);\n this.alpha = this.roundNumber(parseInt(alpha || 'FF', 16) / 255);\n hexArray = hex.match(/.{2}/g);\n }\n\n if (hexArray.length === 3) {\n rgba = new ThyRgba(parseInt(hexArray[0], 16), parseInt(hexArray[1], 16), parseInt(hexArray[2], 16), this.alpha);\n }\n }\n const OpenParenthesis = str.indexOf('(');\n const CloseParenthesis = str.indexOf(')');\n if (OpenParenthesis !== -1 && CloseParenthesis + 1 === str.length) {\n const colorTypeName = str.substr(0, OpenParenthesis);\n const params = str.substr(OpenParenthesis + 1, CloseParenthesis - (OpenParenthesis + 1)).split(',');\n switch (colorTypeName) {\n case 'rgba':\n this.alpha = parseFloat(params.pop());\n case 'rgb':\n rgba = new ThyRgba(parseInt(params[0], 10), parseInt(params[1], 10), parseInt(params[2], 10), this.alpha);\n break;\n case 'hsla':\n this.alpha = parseFloat(params.pop());\n case 'hsl':\n rgba = this.hslaToRgba(parseInt(params[0], 10), parseInt(params[1], 10), parseInt(params[2], 10), this.alpha);\n break;\n // case 'cmyk':\n // const cmyk = new Cmyk(\n // parseInt(params[0], 10),\n // parseInt(params[1], 10),\n // parseInt(params[2], 10),\n // parseInt(params[3], 10)\n // );\n // rgba = this.cmykToRgba(cmyk);\n // break;\n }\n }\n if (rgba) {\n this.rgba = new ThyRgba(rgba.red, rgba.green, rgba.blue, rgba.alpha);\n const hsv = this.rgbTohsv(rgba.red, rgba.green, rgba.blue);\n this.updateColor(hsv.h, hsv.s, hsv.v, rgba.alpha, false);\n }\n } else {\n this.updateColor(color.h, color.s, color.v, color.alpha, true);\n }\n return this;\n }\n\n public setRgba(red: number = null, green: number = null, blue: number = null, alpha: number = 1): this {\n if (red != null) {\n this.rgba.red = red;\n }\n\n if (green != null) {\n this.rgba.green = green;\n }\n\n if (blue != null) {\n this.rgba.blue = blue;\n }\n\n if (alpha != null) {\n alpha = alpha > 1 ? 1 : alpha < 0 ? 0 : alpha;\n this.rgba.alpha = alpha;\n }\n\n const { h, s, v } = this.rgbTohsv(this.rgba.red, this.rgba.green, this.rgba.blue);\n this.updateColor(h, s, v, this.rgba.alpha, false);\n return this;\n }\n\n rgbTohsv(r: number, g: number, b: number) {\n const red = r / 255;\n const green = g / 255;\n const blue = b / 255;\n const Cmax = Math.max(red, green, blue);\n const Cmin = Math.min(red, green, blue);\n const delta = Cmax - Cmin;\n let hue = 0;\n let saturation: number = Cmax === 0 ? 0 : delta / Cmax;\n let brightness: number = Cmax;\n if (Cmax !== Cmin) {\n switch (Cmax) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n case green:\n hue = 2 + (blue - red) / delta;\n break;\n case blue:\n hue = 4 + (red - green) / delta;\n break;\n }\n hue /= 6;\n }\n\n return { h: Math.round(hue * 360), s: Math.round(saturation * 100), v: Math.round(brightness * 100) };\n }\n\n public getRgba(): ThyRgba {\n return new ThyRgba(this.rgba.red, this.rgba.green, this.rgba.blue, this.rgba.alpha);\n }\n\n private hslaToRgba(h: number, s: number, l: number, a: number): ThyRgba {\n const hue = h / 360;\n const saturation = s / 100;\n const lightness = l / 100;\n const alpha = a;\n\n let red = lightness;\n let green = lightness;\n let blue = lightness;\n\n if (saturation !== 0) {\n const q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n\n red = this.hueToRgb(p, q, hue + 1 / 3);\n green = this.hueToRgb(p, q, hue);\n blue = this.hueToRgb(p, q, hue - 1 / 3);\n }\n\n red = red * 255;\n green = green * 255;\n blue = blue * 255;\n\n return new ThyRgba(red, green, blue, alpha);\n }\n\n private hueToRgb(p: number, q: number, t: number): number {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n }\n\n private roundNumber(n: number): number {\n return Math.round(n * 100) / 100;\n }\n\n updateColor(h: number, s: number, v: number, alpha: number, updateRgba: boolean, enableAlpha = true, format = 'hex') {\n this.hue = Math.max(0, Math.min(360, h));\n this.saturation = Math.max(0, Math.min(100, s));\n this.value = Math.max(0, Math.min(100, v));\n this.alpha = alpha;\n if (updateRgba) {\n this.rgba = this.hsvaToRgba(this.hue, Math.round(this.saturation), Math.round(this.value), this.alpha);\n }\n this.enableAlpha = enableAlpha;\n this.format = format;\n this.getFinalValue();\n }\n\n public toHexString(alpha: boolean = false): string {\n let hex = '#' + ((1 << 24) | (this.rgba.getRed() << 16) | (this.rgba.getGreen() << 8) | this.rgba.getBlue()).toString(16).substr(1);\n if (alpha && this.rgba.alpha !== 1) {\n hex += ((1 << 8) | Math.round(this.rgba.alpha * 255)).toString(16).substr(1);\n }\n return hex.toUpperCase();\n }\n\n hsvaToRgba(h: number, s: number, v: number, alpha: number) {\n let red = 1;\n let green = 0;\n let blue = 0;\n const saturation = Math.round(s) / 100;\n const brightness = Math.round(v) / 100;\n const hex = h / 60;\n const primary = Math.floor(hex);\n const secoundary = hex - primary;\n const a = (1 - saturation) * brightness;\n const b = (1 - saturation * secoundary) * brightness;\n const c = (1 - saturation * (1 - secoundary)) * brightness;\n\n switch (primary) {\n case 6:\n case 0:\n red = brightness;\n green = c;\n blue = a;\n break;\n case 1:\n red = b;\n green = brightness;\n blue = a;\n break;\n case 2:\n red = a;\n green = brightness;\n blue = c;\n break;\n case 3:\n red = a;\n green = b;\n blue = brightness;\n break;\n case 4:\n red = c;\n green = a;\n blue = brightness;\n break;\n case 5:\n red = brightness;\n green = a;\n blue = b;\n break;\n }\n\n red = red * 255;\n green = green * 255;\n blue = blue * 255;\n\n return new ThyRgba(Math.round(red), Math.round(green), Math.round(blue), alpha);\n }\n\n getFinalValue() {\n let { hue, saturation, value, alpha, format } = this;\n if (this.enableAlpha) {\n switch (format) {\n case 'hsl':\n const hsl = hsv2hsl(hue, saturation / 100, value / 100);\n this.displayValue = `hsla(${hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%, ${alpha})`;\n break;\n case 'hsv':\n this.displayValue = `hsva(${hue}, ${Math.round(saturation)}%, ${Math.round(value)}%, ${alpha})`;\n break;\n case 'rgb':\n this.displayValue = `rgba(${this.rgba.red}, ${this.rgba.green}, ${this.rgba.blue}, ${this.rgba.alpha})`;\n break;\n default:\n this.displayValue = this.toHexString(true);\n }\n } else {\n switch (format) {\n case 'hsl':\n const hsl = hsv2hsl(hue, saturation / 100, value / 100);\n this.displayValue = `hsl(${hue}, ${Math.round(hsl[1] * 100)}%, ${Math.round(hsl[2] * 100)}%)`;\n break;\n case 'hsv':\n this.displayValue = `hsv(${hue}, ${Math.round(saturation)}%, ${Math.round(value)}%)`;\n break;\n case 'rgb':\n this.displayValue = `rgb(${this.rgba.red}, ${this.rgba.green}, ${this.rgba.blue})`;\n break;\n default:\n this.displayValue = this.toHexString();\n }\n }\n }\n}\n","import { Directive, ElementRef, HostListener, OnDestroy, OnInit, inject, output } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n/**\n * @internal\n */\n@Directive({\n selector: '[thyColorCoordinates]'\n})\nexport class ThyCoordinatesDirective implements OnInit, OnDestroy {\n el = inject(ElementRef);\n\n readonly coordinatesChange = output<{\n x: number;\n y: number;\n left: number;\n top: number;\n containerWidth: number;\n containerHeight: number;\n $event: any;\n }>();\n\n private mousechange = new Subject<{\n x: number;\n y: number;\n $event: any;\n }>();\n\n private mouseListening = false;\n\n private sub?: Subscription;\n\n @HostListener('mousedown', ['$event', '$event.pageX', '$event.pageY'])\n mousedown($event: Event, x: number, y: number) {\n $event.preventDefault();\n this.mouseListening = true;\n this.mousechange.next({ x, y, $event });\n }\n\n @HostListener('window:mousemove', ['$event', '$event.pageX', '$event.pageY'])\n mousemove($event: Event, x: number, y: number) {\n if (this.mouseListening) {\n $event.preventDefault();\n this.mousechange.next({ x, y, $event });\n }\n }\n\n @HostListener('window:mouseup')\n mouseup() {\n this.mouseListening = false;\n }\n\n ngOnInit() {\n this.sub = this.mousechange\n .pipe(distinctUntilChanged((last, current) => last.x === current.x && last.y === current.y))\n .subscribe(n => this.handleChange(n.x, n.y, n.$event));\n }\n\n handleChange(x: number, y: number, $event: Event) {\n const containerWidth = this.el.nativeElement.clientWidth;\n const containerHeight = this.el.nativeElement.clientHeight;\n const left = x - (this.el.nativeElement.getBoundingClientRect().left + window.pageXOffset);\n const top = y - (this.el.nativeElement.getBoundingClientRect().top + window.pageYOffset);\n this.coordinatesChange.emit({\n x,\n y,\n top,\n left,\n containerHeight,\n containerWidth,\n $event\n });\n }\n\n ngOnDestroy(): void {\n this.sub?.unsubscribe();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Renderer2,\n effect,\n inject,\n input,\n output,\n viewChild\n} from '@angular/core';\nimport { ThyCoordinatesDirective } from '../../coordinates.directive';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-alpha',\n templateUrl: './alpha.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyCoordinatesDirective]\n})\nexport class ThyAlpha {\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class.thy-alpha') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly pointer = viewChild<ElementRef>('pointer');\n\n readonly gradient = viewChild<ElementRef>('gradient');\n\n readonly colorChange = output<ThyColor>();\n\n constructor() {\n effect(() => {\n this.setBackground();\n this.changePointerPosition();\n });\n }\n\n setBackground() {\n this.renderer.setStyle(\n this.gradient().nativeElement,\n 'background',\n `linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(${this.color().rgba.red},\n ${this.color().rgba.green},\n ${this.color().rgba.blue},\n 1) 100%)`\n );\n }\n\n private changePointerPosition(alpha?: number): void {\n const x = (alpha ?? this.color().alpha) * 100;\n this.renderer.setStyle(this.pointer().nativeElement, 'left', `${x}%`);\n }\n\n handleChange(event: {\n x: number;\n y: number;\n top: number;\n left: number;\n containerHeight: number;\n containerWidth: number;\n $event: Event;\n }) {\n let x;\n if (event.left < 0) {\n x = 0;\n } else if (event.left > event.containerWidth) {\n x = 1;\n } else {\n x = Math.round((event.left * 100) / event.containerWidth) / 100;\n }\n this.changePointerPosition(x);\n this.colorChange.emit(new ThyColor({ h: this.color().hue, s: this.color().saturation, v: this.color().value, alpha: x }));\n }\n}\n","<div class=\"gradient-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"gradient-color\" #gradient>\n <div class=\"pointer-container\">\n <div class=\"pointer\" #pointer></div>\n </div>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Renderer2,\n ViewChild,\n effect,\n inject,\n input,\n output\n} from '@angular/core';\nimport { ThyCoordinatesDirective } from '../../coordinates.directive';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-hue',\n templateUrl: './hue.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThyCoordinatesDirective]\n})\nexport class ThyHue {\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class.thy-hue') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly colorChange = output<ThyColor>();\n\n @ViewChild('pointer', { static: true })\n public pointer: ElementRef;\n\n constructor() {\n effect(() => {\n this.changePointerPosition();\n });\n }\n\n private changePointerPosition(hue?: number): void {\n const newHue = hue ?? this.color().hue;\n const x = (newHue / 360) * 100;\n this.renderer.setStyle(this.pointer.nativeElement, 'left', `${x}%`);\n }\n\n handleChange(event: {\n x: number;\n y: number;\n top: number;\n left: number;\n containerHeight: number;\n containerWidth: number;\n $event: Event;\n }) {\n let x;\n if (event.left < 0) {\n x = 0;\n } else if (event.left > event.containerWidth) {\n x = 1;\n } else {\n x = Math.round((event.left * 100) / event.containerWidth) / 100;\n }\n this.changePointerPosition(x * 360);\n this.colorChange.emit(new ThyColor({ h: x * 360, s: this.color().saturation, v: this.color().value, alpha: this.color().alpha }));\n }\n}\n","<div class=\"hue-contianer\">\n <div class=\"pointer-container\" thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"pointer\" #pointer></div>\n </div>\n</div>\n","import { Component, computed, HostBinding, input, Signal } from '@angular/core';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-indicator',\n templateUrl: './indicator.component.html'\n})\nexport class ThyIndicator {\n @HostBinding('class.thy-indicator') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly backgroundColor: Signal<string> = computed(() => {\n return this.color()?.rgba.toString() || '';\n });\n}\n","<div [style.backgroundColor]=\"backgroundColor()\" class=\"icon-container\"></div>\n","import { Component, effect, HostBinding, input, OnInit, output, signal, WritableSignal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputDirective, ThyInputGroup } from 'ngx-tethys/input';\nimport { ThyInputNumber } from 'ngx-tethys/input-number';\nimport { ThyEnterDirective } from 'ngx-tethys/shared';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-color-inputs',\n templateUrl: './inputs.component.html',\n imports: [ThyInputDirective, FormsModule, ThyEnterDirective, ThyInputNumber, ThyInputGroup]\n})\nexport class ThyColorInputs implements OnInit {\n @HostBinding('class.thy-color-inputs') className = true;\n\n readonly color = input<ThyColor>();\n\n readonly colorChange = output<ThyColor>();\n\n readonly hex: WritableSignal<string> = signal('');\n\n readonly alpha: WritableSignal<number> = signal(100);\n\n constructor() {\n effect(() => {\n this.hex.set(this.color()?.toHexString(false).slice(1, 7) || '');\n this.alpha.set(Math.round(this.color()?.rgba.alpha * 100) || 100);\n });\n }\n\n ngOnInit(): void {}\n\n onInputChange(event: Event, type: string) {\n let newColor;\n const alpha = this.alpha() / 100;\n if (type === 'hex') {\n let finalDisplayValue = this.hex();\n if (this.hex().length === 3) {\n finalDisplayValue = this.hex()\n .split('')\n .map(value => value + value)\n .join('');\n }\n finalDisplayValue = `#${finalDisplayValue}`;\n if (alpha !== 1) {\n finalDisplayValue += ((1 << 8) | Math.round(alpha * 255)).toString(16).substr(1);\n }\n newColor = new ThyColor(finalDisplayValue);\n } else {\n newColor = new ThyColor().setRgba(this.color().rgba.red, this.color().rgba.green, this.color().rgba.blue, alpha);\n }\n this.colorChange.emit(newColor);\n }\n}\n","<div class=\"hex-column\">\n <thy-input-group class=\"hex-input-group\">\n <ng-template #prefix>\n <span>#</span>\n </ng-template>\n <input\n class=\"px-0 form-control-xs\"\n thyInput\n [(ngModel)]=\"hex\"\n maxlength=\"6\"\n (blur)=\"onInputChange($event, 'hex')\"\n (thyEnter)=\"onInputChange($event, 'hex')\" />\n </thy-input-group>\n <span>HEX</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.red\"\n (thyBlur)=\"onInputChange($event, 'R')\"\n (thyEnter)=\"onInputChange($event, 'R')\"></thy-input-number>\n <span>R</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.green\"\n (thyBlur)=\"onInputChange($event, 'G')\"\n (thyEnter)=\"onInputChange($event, 'G')\"></thy-input-number>\n <span>G</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n thySize=\"xs\"\n [thyMin]=\"0\"\n [thyMax]=\"255\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"color().rgba.blue\"\n (thyBlur)=\"onInputChange($event, 'B')\"\n (thyEnter)=\"onInputChange($event, 'B')\"></thy-input-number>\n <span>B</span>\n</div>\n<div class=\"column\">\n <thy-input-number\n [thyMin]=\"0\"\n [thyMax]=\"100\"\n thySize=\"xs\"\n class=\"px-0 text-center\"\n [(ngModel)]=\"alpha\"\n (thyBlur)=\"onInputChange($event, 'A')\"\n (thyEnter)=\"onInputChange($event, 'A')\"></thy-input-number>\n <span>A</span>\n</div>\n","import { Component, ElementRef, HostBinding, Renderer2, effect, inject, input, output, viewChild } from '@angular/core';\nimport { ThyCoordinatesDirective } from '../../coordinates.directive';\nimport { ThyColor } from '../../helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-saturation',\n templateUrl: './saturation.component.html',\n imports: [ThyCoordinatesDirective]\n})\nexport class ThySaturation {\n private readonly renderer = inject(Renderer2);\n\n @HostBinding('class.thy-saturation') className = true;\n\n readonly panel = viewChild<ElementRef>('panel');\n\n readonly pointer = viewChild<ElementRef>('pointer');\n\n readonly colorChange = output<ThyColor>();\n\n readonly color = input<ThyColor>();\n\n constructor() {\n effect(() => {\n this.setBackground();\n this.changePointerPosition();\n });\n }\n\n setBackground() {\n this.renderer.setStyle(this.panel().nativeElement, 'background', `hsl(${this.color().hue},100%,50%)`);\n }\n\n changePointerPosition(s?: number, v?: number) {\n const saturation = s ?? this.color().saturation;\n const value = v ?? this.color().value;\n const pointer = this.pointer();\n this.renderer.setStyle(pointer.nativeElement, 'left', `${saturation}%`);\n this.renderer.setStyle(pointer.nativeElement, 'top', `${100 - value}%`);\n }\n\n handleChange(event: {\n x: number;\n y: number;\n top: number;\n left: number;\n containerHeight: number;\n containerWidth: number;\n $event: Event;\n }) {\n let x = event.left,\n y = event.top;\n if (event.left < 0) {\n x = 0;\n } else if (event.left > event.containerWidth) {\n x = event.containerWidth;\n }\n if (event.top < 0) {\n y = 0;\n } else if (event.top > event.containerHeight) {\n y = event.containerHeight;\n }\n\n const s = x / event.containerWidth;\n let v = 1 - y / event.containerHeight;\n v = v > 0 ? v : 0;\n v = v > 1 ? 1 : v;\n\n this.changePointerPosition(s * 100, v * 100);\n\n this.colorChange.emit(new ThyColor({ h: this.color().hue, s: s * 100, v: v * 100, alpha: this.color().alpha }));\n }\n}\n","<div class=\"color-panel\" #panel thyColorCoordinates (coordinatesChange)=\"handleChange($event)\">\n <div class=\"color-panel-white\"></div>\n <div class=\"color-panel-black\"></div>\n <div class=\"color-panel-pointer\" #pointer></div>\n</div>\n","import { ChangeDetectionStrategy, Component, HostBinding, OnInit, WritableSignal, input, model, signal } from '@angular/core';\nimport { ThyColor } from './helpers/color.class';\nimport { ThyAlpha } from './parts/alpha/alpha.component';\nimport { ThyHue } from './parts/hue/hue.component';\nimport { ThyIndicator } from './parts/indicator/indicator.component';\nimport { ThyColorInputs } from './parts/inputs/inputs.component';\nimport { ThySaturation } from './parts/saturation/saturation.component';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-color-picker-custom-panel',\n templateUrl: './color-picker-custom-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ThySaturation, ThyHue, ThyAlpha, ThyIndicator, ThyColorInputs]\n})\nexport class ThyColorPickerCustomPanel implements OnInit {\n @HostBinding('class.thy-color-picker-custom-panel') className = true;\n\n readonly color = model<string>();\n\n colorInstance: WritableSignal<ThyColor> = signal<ThyColor>(null);\n\n readonly pickerColorChange = input<(color: string) => {}>();\n\n constructor() {}\n\n ngOnInit() {\n this.colorInstance.set(new ThyColor(this.color()));\n }\n\n colorChangeEvent($event: ThyColor) {\n this.colorInstance.set($event);\n this.color.set(this.colorInstance().displayValue);\n this.pickerColorChange()(this.color());\n }\n}\n","<thy-saturation [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-saturation>\n<div class=\"controls\">\n <div class=\"indicator-hue-alp\">\n <div class=\"rows\">\n <thy-hue [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-hue>\n <thy-alpha [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-alpha>\n </div>\n <thy-indicator [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-indicator>\n </div>\n</div>\n<thy-color-inputs [color]=\"colorInstance()\" (colorChange)=\"colorChangeEvent($event)\"></thy-color-inputs>\n","import { NgClass, NgStyle, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, inject, input, model, OnInit, Signal, ViewContainerRef } from '@angular/core';\nimport { injectLocale, ThyColorPickerLocale } from 'ngx-tethys/i18n';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { ThyColorPickerCustomPanel } from './color-picker-custom-panel.component';\nimport { ThyColor } from './helpers/color.class';\n\n/**\n * @internal\n */\n@Component({\n selector: 'thy-color-picker-panel',\n templateUrl: './color-picker-panel.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.pt-4]': '!transparentColorSelectable()',\n '[class.thy-color-picker-panel]': 'true'\n },\n imports: [NgClass, NgTemplateOutlet, ThyIcon, NgStyle]\n})\nexport class ThyColorPickerPanel implements OnInit {\n private thyPopover = inject(ThyPopover);\n private viewContainerRef = inject(ViewContainerRef);\n private thyPopoverRef = inject<ThyPopoverRef<ThyColorPickerPanel>>(ThyPopoverRef);\n locale: Signal<ThyColorPickerLocale> = injectLocale('colorPicker');\n\n readonly color = model<string>();\n\n readonly colorChange = input<(color: string) => {}>();\n\n readonly defaultColor = input<string, string>('', {\n transform: (value: string) => {\n return (value && new ThyColor(value).toHexString(true)) || '';\n }\n });\n\n readonly transparentColorSelectable = input(false, { transform: coerceBooleanProperty });\n\n readonly defaultColors = input<string[]>();\n\n recentColors: string[] = [];\n\n newColor: string;\n\n customPanelPopoverRef: ThyPopoverRef<ThyColorPickerCustomPanel>;\n\n ngOnInit(): void {\n const colors = localStorage.getItem('recentColors');\n if (colors) {\n this.recentColors = JSON.parse(colors);\n }\n }\n\n selectColor(color: string) {\n this.color.set(color);\n this.colorChange()(this.color());\n this.thyPopoverRef.close();\n }\n\n showMoreColor(event: Event) {\n if (!this.customPanelPopoverRef) {\n this.customPanelPopoverRef = this.thyPopover.open(ThyColorPickerCustomPanel, {\n origin: event.currentTarget as HTMLElement,\n offset: -4,\n placement: 'rightBottom',\n manualClosure: true,\n width: '260px',\n hasBackdrop: false,\n viewContainerRef: this.viewContainerRef,\n originActiveClass: 'thy-color-picker-active',\n initialState: {\n color: this.color(),\n pickerColorChange: (value: string) => {\n this.newColor = value;\n this.colorChange()(value);\n }\n }\n });\n }\n this.customPanelPopoverRef?.afterClosed().subscribe(() => {\n if (this.newColor) {\n const index = this.recentColors.findIndex(item => item === this.newColor);\n if (index !== -1) {\n this.recentColors.splice(index, 1);\n }\n this.recentColors.unshift(this.newColor);\n this.recentColors = this.recentColors.slice(0, 10);\n localStorage.setItem('recentColors', JSON.stringify(this.recentColors));\n }\n this.thyPopoverRef.close();\n });\n }\n\n getIconColor(item: string) {\n const rgba = new ThyColor(item).rgba;\n const hsp = 0.299 * rgba.red + 0.587 * rgba.green + 0.114 * rgba.blue;\n return hsp > 192 ? 'black' : 'white';\n }\n}\n","@if (defaultColor()) {\n <div class=\"quick-color\" [ngClass]=\"transparentColorSelectable() ? ' mb-0 pb-0' : ''\" (click)=\"selectColor(defaultColor())\">\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: defaultColor() }\"></ng-template>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().defaultColor }}</span>\n </div>\n}\n@if (transparentColorSelectable()) {\n <div class=\"quick-color\" [ngClass]=\"defaultColor() ? 'mt-0 pt-0' : ''\" (click)=\"selectColor('transparent')\">\n <div class=\"color-block\"></div>\n <span class=\"ml-2 font-size-sm text-secondary\">{{ locale().noFillColor }}</span>\n </div>\n}\n<div class=\"main-content\">\n <div class=\"default-color\">\n @for (item of defaultColors(); track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n </div>\n <p class=\"font-size-sm text-secondary recent-text\">{{ locale().recentUsedColor }}</p>\n <div class=\"recent-color-container\">\n @for (item of recentColors; track $index) {\n <ng-template [ngTemplateOutlet]=\"checkIconTpl\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n }\n @if (recentColors.length === 0) {\n <div class=\"font-size-sm px-1 text-muted\">{{ locale().none }}</div>\n }\n </div>\n</div>\n<div class=\"more-color\" (click)=\"showMoreColor($event)\">\n <thy-icon thyIconName=\"palette\" class=\"mr-2\"></thy-icon>\n <span class=\"font-size-sm custom-text\">{{ locale().customColor }}</span>\n <thy-icon thyDropdownMenuItemExtendIcon thyIconName=\"angle-right\"></thy-icon>\n</div>\n\n<ng-template #checkIconTpl let-colorItem>\n <div\n class=\"color-item\"\n [ngStyle]=\"{ background: colorItem }\"\n [ngClass]=\"colorItem === '#FFFFFF' ? 'item-border' : ''\"\n (click)=\"selectColor(colorItem)\">\n <thy-icon\n thyIconName=\"check-thick\"\n class=\"check-icon\"\n [ngClass]=\"\n color() === colorItem ? (getIconColor(colorItem) === 'white' ? 'checked white-check' : 'checked black-check') : ''\n \"></thy-icon>\n </div>\n</ng-template>\n","export const DEFAULT_COLORS = [\n '#333333',\n '#666666',\n '#999999',\n '#AAAAAA',\n '#CACACA',\n '#DDDDDD',\n '#EEEEEE',\n '#F5F5F5',\n '#F7F7F7',\n '#FFFFFF',\n '#E48483',\n '#E0B75D',\n '#69B1E4',\n '#77C386',\n '#6EC4C4',\n '#E581D4',\n '#B0C774',\n '#6F81DB',\n '#C18976',\n '#A287E1',\n '#FDEFED',\n '#FCF6E1',\n '#E5F3FC',\n '#E9F7E9',\n '#E3F7F5',\n '#FBECF6',\n '#F7FAE6',\n '#E8EEFC',\n '#F7EDE6',\n '#F0E7FA',\n '#FBD3D0',\n '#F8E8BC',\n '#C3E4F5',\n '#CEEBD2',\n '#C0EBE5',\n '#F1CFE7',\n '#E4EDCA',\n '#C2CDF0',\n '#EBD5C9',\n '#DCCEF5',\n '#EFACA9',\n '#EBD28D',\n '#92C9ED',\n '#9ED0A6',\n '#9BD6D4',\n '#ECA6D9',\n '#D0DF9D',\n '#92A2E3',\n '#D5AD9A',\n '#C0ABEA',\n '#BD6568',\n '#B98F44',\n '#5593C6',\n '#579B67',\n '#4F9FA1',\n '#BA5FA5',\n '#8BA257',\n '#5461B8',\n '#9B6657',\n '#8069BF',\n '#703039',\n '#6B4C1D',\n '#224870',\n '#244F31',\n '#214D52',\n '#6A2E61',\n '#405122',\n '#272B69',\n '#4F2B24',\n '#392E6E'\n];\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Platform } from '@angular/cdk/platform';\nimport {\n AfterViewInit,\n Directive,\n effect,\n ElementRef,\n forwardRef,\n inject,\n Input,\n input,\n NgZone,\n numberAttribute,\n OnDestroy,\n OnInit,\n output\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { mixinDisabled, mixinTabIndex, ThyOverlayDirectiveBase, ThyOverlayTrigger, ThyPlacement } from 'ngx-tethys/core';\nimport { ThyPopover, ThyPopoverRef } from 'ngx-tethys/popover';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { ThyColorPickerPanel } from './color-picker-panel.component';\nimport { DEFAULT_COLORS } from './constant';\nimport { ThyColor } from './helpers/color.class';\n\nexport class OverlayBase extends ThyOverlayDirectiveBase {\n constructor(\n protected zone: NgZone,\n protected elementRef: ElementRef<HTMLElement>,\n platform: Platform,\n focusMonitor: FocusMonitor\n ) {\n super(elementRef, platform, focusMonitor, zone, true);\n }\n\n show(): void {}\n\n hide() {}\n}\n\nconst _BaseMixin = mixinTabIndex(mixinDisabled(OverlayBase));\n\n/**\n * 颜色选择组件\n * @name thyColorPicker\n */\n@Directive({\n selector: '[thyColorPicker]',\n host: {\n class: 'thy-color-picker',\n '[attr.tabindex]': `tabIndex`,\n '[class.thy-color-picker-disabled]': 'disabled'\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => ThyColorPickerDirective)\n }\n ]\n})\nexport class ThyColorPickerDirective extends _BaseMixin implements OnInit, OnDestroy, AfterViewInit {\n private thyPopover = inject(ThyPopover);\n\n /**\n * 弹框偏移量\n * @type number\n */\n readonly thyOffset = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 颜色选择面板是否有幕布\n */\n readonly thyHasBackdrop = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 设置颜色选择面板的默认颜色选项值\n */\n readonly thyDefaultColor = input<string>();\n\n /**\n * 是否显示'无填充色'选项\n */\n readonly thyTransparentColorSelectable = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 预设的快捷选择颜色\n * @type string[]\n */\n readonly thyPresetColors = input<string[]>(DEFAULT_COLORS);\n\n /**\n * 颜色面板弹出位置 'top' | 'topLeft' | 'topRight' | 'bottom' | 'bottomLeft' | 'bottomRight' | 'left' | 'leftTop' | 'leftBottom' | 'right' | 'rightTop' | 'rightBottom'\n * @type ThyPlacement\n */\n readonly thyPlacement = input<ThyPlacement>('bottom');\n\n /**\n * panel 展开后触发\n */\n readonly thyPanelOpen = output<ThyPopoverRef<ThyColorPickerPanel>>();\n\n /**\n * panel 关闭后触发\n */\n readonly thyPanelClose = output<ThyPopoverRef<ThyColorPickerPanel>>();\n\n /**\n * 弹出悬浮层的触发方式\n * @type 'hover' | 'click'\n */\n readonly thyTrigger = input<ThyOverlayTrigger>('click');\n\n /**\n * 显示延迟时间\n */\n readonly thyShowDelay = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 隐藏延迟时间\n */\n readonly thyHideDelay = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 是否属于禁用状态\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n protected onChangeFn: (value: number | string) => void = () => {};\n\n private onTouchFn: () => void = () => {};\n\n color: string;\n\n private popoverRef: ThyPopoverRef<ThyColorPickerPanel>;\n\n private closePanel = true;\n\n private destroy$ = new Subject<void>();\n\n public get backgroundColor(): string {\n return this.color;\n }\n\n constructor() {\n const zone = inject(NgZone);\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n const platform = inject(Platform);\n const focusMonitor = inject(FocusMonitor);\n\n super(zone, elementRef, platform, focusMonitor);\n\n effect(() => {\n // TODO: 基类参数\n this.showDelay = this.thyShowDelay() ?? 100;\n this.hideDelay = this.thyHideDelay() ?? 100;\n this.trigger = this.thyTrigger() || 'click';\n });\n }\n\n ngOnInit(): void {}\n\n ngAfterViewInit() {\n this.initialize();\n if (this.trigger === 'hover') {\n this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n if (this.popoverRef?.getOverlayRef()?.hasAttached()) {\n if (\n this.elementRef.nativeElement.contains(event.target as HTMLElement) ||\n (event.target as HTMLElement).closest('.thy-color-picker-custom-panel') ||\n !!(event.target as HTMLElement).querySelector('.thy-color-picker-custom-panel') ||\n this.popoverRef.getOverlayRef()?.hostElement?.contains(event.target as HTMLElement)\n ) {\n this.closePanel = false;\n } else {\n this.closePanel = true;\n this.popoverRef.close();\n }\n }\n });\n });\n }\n }\n\n togglePanel(): OverlayRef {\n this.closePanel = false;\n this.popoverRef = this.thyPopover.open(ThyColorPickerPanel, {\n origin: this.elementRef.nativeElement as HTMLElement,\n offset: this.thyOffset(),\n manualClosure: true,\n width: '286px',\n placement: this.thyPlacement(),\n originActiveClass: 'thy-default-picker-active',\n hasBackdrop: this.thyHasBackdrop(),\n outsideClosable: false,\n canClose: () => {\n if (this.trigger === 'hover') {\n return this.closePanel;\n }\n return true;\n },\n initialState: {\n color: new ThyColor(this.color).toHexString(true),\n defaultColor: this.thyDefaultColor(),\n transparentColorSelectable: this.thyTransparentColorSelectable(),\n defaultColors: this.thyPresetColors(),\n colorChange: (value: string) => {\n this.closePanel = true;\n this.onModelChange(value);\n }\n }\n });\n if (this.popoverRef) {\n this.popoverRef.afterOpened().subscribe(() => {\n this.thyPanelOpen.emit(this.popoverRef);\n });\n this.popoverRef.afterClosed().subscribe(() => {\n this.thyPanelClose.emit(this.popoverRef);\n this.elementRef.nativeElement.focus();\n });\n }\n if (this.popoverRef && !this.thyHasBackdrop()) {\n this.popoverRef\n .getOverlayRef()\n .outsidePointerEvents()\n .subscribe(event => {\n if ((event.target as HTMLElement).closest('.thy-color-picker-custom-panel')) {\n return;\n }\n if (!this.popoverRef.getOverlayRef().hostElement.contains(event.target as HTMLElement)) {\n this.popoverRef.close();\n }\n });\n }\n return this.popoverRef.getOverlayRef();\n }\n\n override show(delay: number = this.showDelay): void {\n if (this.hideTimeoutId) {\n clearTimeout(this.hideTimeoutId);\n this.hideTimeoutId = null;\n }\n\n if (this.disabled || (this.overlayRef && this.overlayRef.hasAttached())) {\n return;\n }\n if (this.trigger !== 'hover') {\n delay = 0;\n }\n\n this.showTimeoutId = setTimeout(() => {\n const overlayRef = this.togglePanel();\n this.overlayRef = overlayRef;\n this.showTimeoutId = null;\n }, delay);\n }\n\n override hide(delay: number = this.hideDelay) {\n if (this.showTimeoutId) {\n clearTimeout(this.showTimeoutId);\n this.showTimeoutId = null;\n }\n\n this.hideTimeoutId = setTimeout(() => {\n if (this.popoverRef) {\n this.popoverRef?.getOverlayRef()?.hasAttached() && this.popoverRef.close();\n }\n this.hideTimeoutId = null;\n }, delay);\n }\n\n writeValue(value: string): void {\n this.color = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChangeFn = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchFn = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onModelChange(value: string): void {\n this.color = value;\n this.onChangeFn(value);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.hide();\n this.dispose();\n this.popoverRef = null;\n }\n}\n","import { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThyColorPickerDirective } from './color-picker.component';\nimport { ThyColorPickerCustomPanel } from './color-picker-custom-panel.component';\nimport { ThySaturation } from './parts/saturation/saturation.component';\nimport { ThyDialogModule } from 'ngx-tethys/dialog';\nimport { ThyHue } from './parts/hue/hue.component';\nimport { ThyAlpha } from './parts/alpha/alpha.component';\nimport { ThyIndicator } from './parts/indicator/indicator.component';\nimport { ThyCoordinatesDirective } from './coordinates.directive';\nimport { ThyColorPickerPanel } from './color-picker-panel.component';\nimport { ThyColorInputs } from './parts/inputs/inputs.component';\nimport { FormsModule } from '@angular/forms';\nimport { ThyInputNumberModule } from 'ngx-tethys/input-number';\nimport { ThySharedModule } from 'ngx-tethys/shared';\n\n@NgModule({\n imports: [\n CommonModule,\n ThyDialogModule,\n ThyInputModule,\n ThyIconModule,\n FormsModule,\n ThyInputNumberModule,\n ThySharedModule,\n ThyColorPickerDirective,\n ThyColorPickerCustomPanel,\n ThySaturation,\n ThyHue,\n ThyAlpha,\n ThyIndicator,\n ThyCoordinatesDirective,\n ThyColorPickerPanel,\n ThyColorInputs\n ],\n exports: [ThyColorPickerDirective]\n})\nexport class ThyColorPickerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -52,6 +52,10 @@ class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
52
52
  * 每次改变步数,可以为小数
53
53
  */
54
54
  this.thyStep = input(1, { transform: numberAttribute });
55
+ /**
56
+ * 是否展示步数切换按钮
57
+ */
58
+ this.thyShowStepControls = input(true, { transform: coerceBooleanProperty });
55
59
  /**
56
60
  * 改变步数时的延迟毫秒数,值越小变化的速度越快
57
61
  * @default 300
@@ -324,13 +328,13 @@ class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin {
324
328
  this.hostFocusControl.destroy();
325
329
  }
326
330
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyInputNumber, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
327
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "19.2.8", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: { classPropertyName: "thyAutoFocus", publicName: "thyAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyMin: { classPropertyName: "thyMin", publicName: "thyMin", isSignal: true, isRequired: false, transformFunction: null }, thyStep: { classPropertyName: "thyStep", publicName: "thyStep", isSignal: true, isRequired: false, transformFunction: null }, thyStepDelay: { classPropertyName: "thyStepDelay", publicName: "thyStepDelay", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyPrecision: { classPropertyName: "thyPrecision", publicName: "thyPrecision", isSignal: true, isRequired: false, transformFunction: null }, thySuffix: { classPropertyName: "thySuffix", publicName: "thySuffix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
331
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThyInputNumber, isStandalone: true, selector: "thy-input-number", inputs: { thyAutoFocus: { classPropertyName: "thyAutoFocus", publicName: "thyAutoFocus", isSignal: true, isRequired: false, transformFunction: null }, thyPlaceholder: { classPropertyName: "thyPlaceholder", publicName: "thyPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: false, isRequired: false, transformFunction: coerceBooleanProperty }, thyMax: { classPropertyName: "thyMax", publicName: "thyMax", isSignal: true, isRequired: false, transformFunction: null }, thyMin: { classPropertyName: "thyMin", publicName: "thyMin", isSignal: true, isRequired: false, transformFunction: null }, thyStep: { classPropertyName: "thyStep", publicName: "thyStep", isSignal: true, isRequired: false, transformFunction: null }, thyShowStepControls: { classPropertyName: "thyShowStepControls", publicName: "thyShowStepControls", isSignal: true, isRequired: false, transformFunction: null }, thyStepDelay: { classPropertyName: "thyStepDelay", publicName: "thyStepDelay", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyPrecision: { classPropertyName: "thyPrecision", publicName: "thyPrecision", isSignal: true, isRequired: false, transformFunction: null }, thySuffix: { classPropertyName: "thySuffix", publicName: "thySuffix", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyBlur: "thyBlur", thyFocus: "thyFocus", thyStepChange: "thyStepChange" }, host: { properties: { "attr.tabindex": "tabIndex" }, classAttribute: "thy-input-number" }, providers: [
328
332
  {
329
333
  provide: NG_VALUE_ACCESSOR,
330
334
  useExisting: forwardRef(() => ThyInputNumber),
331
335
  multi: true
332
336
  }
333
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
337
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (thyShowStepControls()) {\n <div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n </div>\n}\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n", dependencies: [{ kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
334
338
  }
335
339
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThyInputNumber, decorators: [{
336
340
  type: Component,
@@ -343,7 +347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
343
347
  ], imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule], host: {
344
348
  class: 'thy-input-number',
345
349
  '[attr.tabindex]': 'tabIndex'
346
- }, template: "<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
350
+ }, template: "@if (thyShowStepControls()) {\n <div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n </div>\n}\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n" }]
347
351
  }], ctorParameters: () => [], propDecorators: { thyDisabled: [{
348
352
  type: Input,
349
353
  args: [{ transform: coerceBooleanProperty }]
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-input-number.mjs","sources":["../../../src/input-number/input-number.component.ts","../../../src/input-number/input-number.component.html","../../../src/input-number/module.ts","../../../src/input-number/ngx-tethys-input-number.ts"],"sourcesContent":["import { TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';\nimport { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n Component,\n ElementRef,\n forwardRef,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit,\n input,\n effect,\n signal,\n output,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nenum Type {\n up,\n down\n}\n\n/**\n * 数字输入框\n * @name thy-input-number\n * @order 10\n */\n@Component({\n selector: 'thy-input-number',\n templateUrl: './input-number.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputNumber),\n multi: true\n }\n ],\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule],\n host: {\n class: 'thy-input-number',\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor, OnInit, OnDestroy {\n readonly inputElement = viewChild<ElementRef<any>>('input');\n\n private autoStepTimer: any;\n\n private hostFocusControl = useHostFocusControl();\n\n validValue: number | string;\n\n displayValue = signal<number | string>(undefined);\n\n disabledUp = signal(false);\n\n disabledDown = signal(false);\n\n activeValue: string = '';\n\n /**\n * 是否自动聚焦\n * @default false\n */\n readonly thyAutoFocus = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 输入框的placeholder\n */\n readonly thyPlaceholder = input<string>('');\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 最大值\n * @default Infinity\n */\n readonly thyMax = input(Infinity, { transform: (value: number) => (isNumber(value) ? value : Infinity) });\n\n /**\n * 最小值\n * @default -Infinity\n */\n readonly thyMin = input(-Infinity, { transform: (value: number) => (isNumber(value) ? value : -Infinity) });\n\n /**\n * 每次改变步数,可以为小数\n */\n readonly thyStep = input(1, { transform: numberAttribute });\n\n /**\n * 改变步数时的延迟毫秒数,值越小变化的速度越快\n * @default 300\n */\n readonly thyStepDelay = input(300, { transform: numberAttribute });\n\n /**\n * 输入框大小\n * @type xs | sm | md | lg\n */\n readonly thySize = input<InputSize>();\n\n /**\n * 数值精度\n */\n readonly thyPrecision = input<number>();\n\n /**\n * 数值后缀\n */\n readonly thySuffix = input<string>();\n\n /**\n * 焦点失去事件\n */\n readonly thyBlur = output();\n\n /**\n * 焦点激活事件\n */\n readonly thyFocus = output<Event>();\n\n /**\n * 上下箭头点击事件\n */\n readonly thyStepChange = output<{ value: number; type: Type }>();\n\n private isFocused: boolean;\n\n constructor() {\n super();\n\n effect(() => {\n const displayValue = this.displayValue();\n const max = this.thyMax();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledUp.set(val >= max);\n }\n });\n\n effect(() => {\n const min = this.thyMin();\n const displayValue = this.displayValue();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledDown.set(val <= min);\n }\n });\n\n effect(() => {\n const suffix = this.thySuffix();\n const validValue = this.getCurrentValidValue(this.validValue);\n this.updateValidValue(validValue);\n this.displayValue.set(this.formatterValue(validValue));\n });\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled = isDisabled;\n }\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.thyDisabled) {\n return;\n }\n\n if (origin) {\n if (!this.isFocused) {\n this.inputElement().nativeElement.focus();\n }\n } else {\n if (this.isFocused) {\n this.displayValue.set(this.formatterValue(this.validValue));\n this.onTouchedFn();\n this.thyBlur.emit();\n this.isFocused = false;\n }\n }\n };\n }\n\n writeValue(value: number | string): void {\n const _value = this.getCurrentValidValue(value);\n this.updateValidValue(_value);\n this.displayValue.set(this.formatterValue(_value));\n }\n\n updateValidValue(value: number | string): void {\n if (this.isNotValid(value)) {\n this.validValue = '';\n } else if (this.validValue !== value) {\n this.validValue = value;\n }\n this.disabledUp.set(false);\n this.disabledDown.set(false);\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.thyMax()) {\n this.disabledUp.set(true);\n }\n if (val <= this.thyMin()) {\n this.disabledDown.set(true);\n }\n }\n }\n\n onModelChange(value: string): void {\n const parseValue = this.parser(value);\n if (this.isInputNumber(value)) {\n this.activeValue = value;\n } else {\n this.displayValue.set(parseValue);\n this.inputElement().nativeElement.value = parseValue;\n }\n const validValue = this.getCurrentValidValue(parseValue);\n if (`${this.validValue}` !== `${validValue}`) {\n this.updateValidValue(validValue);\n this.onChangeFn(validValue);\n }\n }\n\n onInputFocus(event?: Event) {\n this.activeValue = this.parser(this.displayValue().toString());\n if (!this.isFocused) {\n this.isFocused = true;\n this.thyFocus.emit(event);\n }\n }\n\n onKeyDown(e: KeyboardEvent): void {\n if (e.keyCode === UP_ARROW) {\n this.up(e);\n this.stop();\n } else if (e.keyCode === DOWN_ARROW) {\n this.down(e);\n this.stop();\n } else if (e.keyCode === ENTER) {\n this.displayValue.set(this.formatterValue(this.validValue));\n }\n }\n\n stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n this.displayValue.set(this.toNumber(this.displayValue()));\n }\n\n step(type: Type, e: MouseEvent | KeyboardEvent): void {\n this.stop();\n e.preventDefault();\n if (this.thyDisabled) {\n return;\n }\n const value = this.validValue as number;\n let val;\n if (type === Type.up) {\n val = this.upStep(value);\n } else if (type === Type.down) {\n val = this.downStep(value);\n }\n const outOfRange = val > this.thyMax() || val < this.thyMin();\n val = this.getCurrentValidValue(val);\n this.updateValidValue(val);\n this.onChangeFn(this.validValue);\n this.thyStepChange.emit({ value: this.validValue as number, type });\n this.displayValue.set(this.formatterValue(val));\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[Type[type] as keyof typeof Type] as (e: MouseEvent | KeyboardEvent) => void)(e);\n }, this.thyStepDelay());\n }\n\n upStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = this.getMaxPrecision(value);\n const result = ((precisionFactor * value + precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n downStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = Math.abs(this.getMaxPrecision(value));\n const result = ((precisionFactor * value - precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n getMaxPrecision(value: string | number): number {\n const precision = this.thyPrecision();\n if (!isUndefinedOrNull(precision)) {\n return precision;\n }\n const stepPrecision = this.getPrecision(this.thyStep());\n const currentValuePrecision = this.getPrecision(value as number);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n }\n\n getPrecisionFactor(activeValue: string | number): number {\n const precision = this.getMaxPrecision(activeValue);\n return Math.pow(10, precision);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n // 0.0000000004.toString() = 4e10 => 10\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n // 1.2222 => 4\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n up(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.up, e);\n }\n\n down(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.down, e);\n }\n\n formatterValue(value: number | string) {\n const parseValue = this.parser(`${value}`);\n if (parseValue) {\n const suffix = this.thySuffix();\n return suffix ? `${parseValue} ${suffix}` : parseValue;\n } else {\n return '';\n }\n }\n\n parser(value: string) {\n return value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w\\.-]+/g, '')\n .replace(this.thySuffix(), '');\n }\n\n getCurrentValidValue(value: string | number): number | string {\n let val = value;\n if (value === '' || isUndefinedOrNull(value)) {\n return '';\n }\n val = parseFloat(value as string);\n if (this.isNotValid(val)) {\n val = this.validValue;\n }\n if ((val as number) < this.thyMin()) {\n val = this.thyMin();\n }\n if ((val as number) > this.thyMax()) {\n val = this.thyMax();\n }\n\n return this.toNumber(val);\n }\n\n isNotValid(num: string | number): boolean {\n return isNaN(num as number) || num === '' || num === null || !!(num && num.toString().indexOf('.') === num.toString().length - 1);\n }\n\n toNumber(num: string | number): number {\n if (this.isNotValid(num)) {\n return num as number;\n }\n const numStr = String(num);\n const precision = this.thyPrecision();\n if (numStr.indexOf('.') >= 0 && !isUndefinedOrNull(precision)) {\n return Number(Number(num).toFixed(precision));\n }\n return Number(num);\n }\n\n isInputNumber(value: string) {\n return isFloat(value) || /^[-+Ee]$|^([-+.]?[0-9])*(([.]|[.eE])?[eE]?[+-]?)?$|^$/.test(value);\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","<div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n</div>\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputNumber } from './input-number.component';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyFormModule } from 'ngx-tethys/form';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyInputModule, ThyFormModule, ThyInputNumber],\n exports: [ThyInputNumber]\n})\nexport class ThyInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-input-number.mjs","sources":["../../../src/input-number/input-number.component.ts","../../../src/input-number/input-number.component.html","../../../src/input-number/module.ts","../../../src/input-number/ngx-tethys-input-number.ts"],"sourcesContent":["import { TabIndexDisabledControlValueAccessorMixin, useHostFocusControl } from 'ngx-tethys/core';\nimport { ThyMaxDirective, ThyMinDirective } from 'ngx-tethys/form';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { ThyInputDirective } from 'ngx-tethys/input';\nimport { ThyAutofocusDirective } from 'ngx-tethys/shared';\nimport { coerceBooleanProperty, DOWN_ARROW, ENTER, isFloat, isNumber, isUndefinedOrNull, UP_ARROW } from 'ngx-tethys/util';\n\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport {\n Component,\n ElementRef,\n forwardRef,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit,\n input,\n effect,\n signal,\n output,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ntype InputSize = 'xs' | 'sm' | 'md' | 'lg' | '';\n\nenum Type {\n up,\n down\n}\n\n/**\n * 数字输入框\n * @name thy-input-number\n * @order 10\n */\n@Component({\n selector: 'thy-input-number',\n templateUrl: './input-number.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThyInputNumber),\n multi: true\n }\n ],\n imports: [ThyIcon, ThyInputDirective, ThyAutofocusDirective, FormsModule],\n host: {\n class: 'thy-input-number',\n '[attr.tabindex]': 'tabIndex'\n }\n})\nexport class ThyInputNumber extends TabIndexDisabledControlValueAccessorMixin implements ControlValueAccessor, OnInit, OnDestroy {\n readonly inputElement = viewChild<ElementRef<any>>('input');\n\n private autoStepTimer: any;\n\n private hostFocusControl = useHostFocusControl();\n\n validValue: number | string;\n\n displayValue = signal<number | string>(undefined);\n\n disabledUp = signal(false);\n\n disabledDown = signal(false);\n\n activeValue: string = '';\n\n /**\n * 是否自动聚焦\n * @default false\n */\n readonly thyAutoFocus = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 输入框的placeholder\n */\n readonly thyPlaceholder = input<string>('');\n\n /**\n * 是否禁用\n * @default false\n */\n @Input({ transform: coerceBooleanProperty }) thyDisabled: boolean;\n\n /**\n * 最大值\n * @default Infinity\n */\n readonly thyMax = input(Infinity, { transform: (value: number) => (isNumber(value) ? value : Infinity) });\n\n /**\n * 最小值\n * @default -Infinity\n */\n readonly thyMin = input(-Infinity, { transform: (value: number) => (isNumber(value) ? value : -Infinity) });\n\n /**\n * 每次改变步数,可以为小数\n */\n readonly thyStep = input(1, { transform: numberAttribute });\n\n /**\n * 是否展示步数切换按钮\n */\n readonly thyShowStepControls = input(true, { transform: coerceBooleanProperty });\n\n /**\n * 改变步数时的延迟毫秒数,值越小变化的速度越快\n * @default 300\n */\n readonly thyStepDelay = input(300, { transform: numberAttribute });\n\n /**\n * 输入框大小\n * @type xs | sm | md | lg\n */\n readonly thySize = input<InputSize>();\n\n /**\n * 数值精度\n */\n readonly thyPrecision = input<number>();\n\n /**\n * 数值后缀\n */\n readonly thySuffix = input<string>();\n\n /**\n * 焦点失去事件\n */\n readonly thyBlur = output();\n\n /**\n * 焦点激活事件\n */\n readonly thyFocus = output<Event>();\n\n /**\n * 上下箭头点击事件\n */\n readonly thyStepChange = output<{ value: number; type: Type }>();\n\n private isFocused: boolean;\n\n constructor() {\n super();\n\n effect(() => {\n const displayValue = this.displayValue();\n const max = this.thyMax();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledUp.set(val >= max);\n }\n });\n\n effect(() => {\n const min = this.thyMin();\n const displayValue = this.displayValue();\n if (displayValue || displayValue === 0) {\n const val = Number(displayValue);\n this.disabledDown.set(val <= min);\n }\n });\n\n effect(() => {\n const suffix = this.thySuffix();\n const validValue = this.getCurrentValidValue(this.validValue);\n this.updateValidValue(validValue);\n this.displayValue.set(this.formatterValue(validValue));\n });\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.thyDisabled = isDisabled;\n }\n\n ngOnInit() {\n this.hostFocusControl.focusChanged = (origin: FocusOrigin) => {\n if (this.thyDisabled) {\n return;\n }\n\n if (origin) {\n if (!this.isFocused) {\n this.inputElement().nativeElement.focus();\n }\n } else {\n if (this.isFocused) {\n this.displayValue.set(this.formatterValue(this.validValue));\n this.onTouchedFn();\n this.thyBlur.emit();\n this.isFocused = false;\n }\n }\n };\n }\n\n writeValue(value: number | string): void {\n const _value = this.getCurrentValidValue(value);\n this.updateValidValue(_value);\n this.displayValue.set(this.formatterValue(_value));\n }\n\n updateValidValue(value: number | string): void {\n if (this.isNotValid(value)) {\n this.validValue = '';\n } else if (this.validValue !== value) {\n this.validValue = value;\n }\n this.disabledUp.set(false);\n this.disabledDown.set(false);\n if (value || value === 0) {\n const val = Number(value);\n if (val >= this.thyMax()) {\n this.disabledUp.set(true);\n }\n if (val <= this.thyMin()) {\n this.disabledDown.set(true);\n }\n }\n }\n\n onModelChange(value: string): void {\n const parseValue = this.parser(value);\n if (this.isInputNumber(value)) {\n this.activeValue = value;\n } else {\n this.displayValue.set(parseValue);\n this.inputElement().nativeElement.value = parseValue;\n }\n const validValue = this.getCurrentValidValue(parseValue);\n if (`${this.validValue}` !== `${validValue}`) {\n this.updateValidValue(validValue);\n this.onChangeFn(validValue);\n }\n }\n\n onInputFocus(event?: Event) {\n this.activeValue = this.parser(this.displayValue().toString());\n if (!this.isFocused) {\n this.isFocused = true;\n this.thyFocus.emit(event);\n }\n }\n\n onKeyDown(e: KeyboardEvent): void {\n if (e.keyCode === UP_ARROW) {\n this.up(e);\n this.stop();\n } else if (e.keyCode === DOWN_ARROW) {\n this.down(e);\n this.stop();\n } else if (e.keyCode === ENTER) {\n this.displayValue.set(this.formatterValue(this.validValue));\n }\n }\n\n stop() {\n if (this.autoStepTimer) {\n clearTimeout(this.autoStepTimer);\n }\n this.displayValue.set(this.toNumber(this.displayValue()));\n }\n\n step(type: Type, e: MouseEvent | KeyboardEvent): void {\n this.stop();\n e.preventDefault();\n if (this.thyDisabled) {\n return;\n }\n const value = this.validValue as number;\n let val;\n if (type === Type.up) {\n val = this.upStep(value);\n } else if (type === Type.down) {\n val = this.downStep(value);\n }\n const outOfRange = val > this.thyMax() || val < this.thyMin();\n val = this.getCurrentValidValue(val);\n this.updateValidValue(val);\n this.onChangeFn(this.validValue);\n this.thyStepChange.emit({ value: this.validValue as number, type });\n this.displayValue.set(this.formatterValue(val));\n if (outOfRange) {\n return;\n }\n this.autoStepTimer = setTimeout(() => {\n (this[Type[type] as keyof typeof Type] as (e: MouseEvent | KeyboardEvent) => void)(e);\n }, this.thyStepDelay());\n }\n\n upStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = this.getMaxPrecision(value);\n const result = ((precisionFactor * value + precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n downStep(value: number): number {\n const precisionFactor = this.getPrecisionFactor(value);\n const precision = Math.abs(this.getMaxPrecision(value));\n const result = ((precisionFactor * value - precisionFactor * this.thyStep()) / precisionFactor).toFixed(precision);\n return this.toNumber(result);\n }\n\n getMaxPrecision(value: string | number): number {\n const precision = this.thyPrecision();\n if (!isUndefinedOrNull(precision)) {\n return precision;\n }\n const stepPrecision = this.getPrecision(this.thyStep());\n const currentValuePrecision = this.getPrecision(value as number);\n if (!value) {\n return stepPrecision;\n }\n return Math.max(currentValuePrecision, stepPrecision);\n }\n\n getPrecisionFactor(activeValue: string | number): number {\n const precision = this.getMaxPrecision(activeValue);\n return Math.pow(10, precision);\n }\n\n getPrecision(value: number): number {\n const valueString = value.toString();\n // 0.0000000004.toString() = 4e10 => 10\n if (valueString.indexOf('e-') >= 0) {\n return parseInt(valueString.slice(valueString.indexOf('e-') + 2), 10);\n }\n let precision = 0;\n // 1.2222 => 4\n if (valueString.indexOf('.') >= 0) {\n precision = valueString.length - valueString.indexOf('.') - 1;\n }\n return precision;\n }\n\n up(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.up, e);\n }\n\n down(e: MouseEvent | KeyboardEvent) {\n this.inputElement().nativeElement.focus();\n this.step(Type.down, e);\n }\n\n formatterValue(value: number | string) {\n const parseValue = this.parser(`${value}`);\n if (parseValue) {\n const suffix = this.thySuffix();\n return suffix ? `${parseValue} ${suffix}` : parseValue;\n } else {\n return '';\n }\n }\n\n parser(value: string) {\n return value\n .trim()\n .replace(/。/g, '.')\n .replace(/[^\\w\\.-]+/g, '')\n .replace(this.thySuffix(), '');\n }\n\n getCurrentValidValue(value: string | number): number | string {\n let val = value;\n if (value === '' || isUndefinedOrNull(value)) {\n return '';\n }\n val = parseFloat(value as string);\n if (this.isNotValid(val)) {\n val = this.validValue;\n }\n if ((val as number) < this.thyMin()) {\n val = this.thyMin();\n }\n if ((val as number) > this.thyMax()) {\n val = this.thyMax();\n }\n\n return this.toNumber(val);\n }\n\n isNotValid(num: string | number): boolean {\n return isNaN(num as number) || num === '' || num === null || !!(num && num.toString().indexOf('.') === num.toString().length - 1);\n }\n\n toNumber(num: string | number): number {\n if (this.isNotValid(num)) {\n return num as number;\n }\n const numStr = String(num);\n const precision = this.thyPrecision();\n if (numStr.indexOf('.') >= 0 && !isUndefinedOrNull(precision)) {\n return Number(Number(num).toFixed(precision));\n }\n return Number(num);\n }\n\n isInputNumber(value: string) {\n return isFloat(value) || /^[-+Ee]$|^([-+.]?[0-9])*(([.]|[.eE])?[eE]?[+-]?)?$|^$/.test(value);\n }\n\n ngOnDestroy() {\n this.hostFocusControl.destroy();\n }\n}\n","@if (thyShowStepControls()) {\n <div class=\"input-number-handler-wrap\" [class.input-number-disabled]=\"thyDisabled\">\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-up\"\n (mousedown)=\"up($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledUp()\">\n <thy-icon thyIconName=\"angle-up\"></thy-icon>\n </span>\n <span\n unselectable=\"unselectable\"\n class=\"input-number-handler input-number-handler-down\"\n (mousedown)=\"down($event)\"\n (mouseup)=\"stop()\"\n (mouseleave)=\"stop()\"\n [class.disabled]=\"disabledDown()\">\n <thy-icon thyIconName=\"angle-down\"></thy-icon>\n </span>\n </div>\n}\n<input\n thyInput\n #input\n autocomplete=\"off\"\n class=\"input-number-input form-control\"\n [thySize]=\"thySize()\"\n [thyAutofocus]=\"thyAutoFocus()\"\n [disabled]=\"thyDisabled\"\n [attr.min]=\"thyMin()\"\n [attr.max]=\"thyMax()\"\n [placeholder]=\"thyPlaceholder()\"\n [attr.step]=\"thyStep()\"\n (keydown)=\"onKeyDown($event)\"\n (keyup)=\"stop()\"\n [(ngModel)]=\"displayValue\"\n (ngModelChange)=\"onModelChange($event)\"\n (focus)=\"onInputFocus($event)\"\n tabindex=\"-1\" />\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyInputNumber } from './input-number.component';\nimport { ThyInputModule } from 'ngx-tethys/input';\nimport { ThyFormModule } from 'ngx-tethys/form';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySharedModule, ThyIconModule, ThyInputModule, ThyFormModule, ThyInputNumber],\n exports: [ThyInputNumber]\n})\nexport class ThyInputNumberModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('19.1.13');
3
+ const VERSION = new Version('19.1.14');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.1.13');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS;;ACF5C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('19.1.14');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS;;ACF5C;;AAEG;;;;"}
@@ -50,6 +50,10 @@ export declare class ThyInputNumber extends TabIndexDisabledControlValueAccessor
50
50
  * 每次改变步数,可以为小数
51
51
  */
52
52
  readonly thyStep: import("@angular/core").InputSignalWithTransform<number, unknown>;
53
+ /**
54
+ * 是否展示步数切换按钮
55
+ */
56
+ readonly thyShowStepControls: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
53
57
  /**
54
58
  * 改变步数时的延迟毫秒数,值越小变化的速度越快
55
59
  * @default 300
@@ -109,7 +113,7 @@ export declare class ThyInputNumber extends TabIndexDisabledControlValueAccessor
109
113
  isInputNumber(value: string): boolean;
110
114
  ngOnDestroy(): void;
111
115
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyInputNumber, never>;
112
- static ɵcmp: i0.ɵɵComponentDeclaration<ThyInputNumber, "thy-input-number", never, { "thyAutoFocus": { "alias": "thyAutoFocus"; "required": false; "isSignal": true; }; "thyPlaceholder": { "alias": "thyPlaceholder"; "required": false; "isSignal": true; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; "thyMax": { "alias": "thyMax"; "required": false; "isSignal": true; }; "thyMin": { "alias": "thyMin"; "required": false; "isSignal": true; }; "thyStep": { "alias": "thyStep"; "required": false; "isSignal": true; }; "thyStepDelay": { "alias": "thyStepDelay"; "required": false; "isSignal": true; }; "thySize": { "alias": "thySize"; "required": false; "isSignal": true; }; "thyPrecision": { "alias": "thyPrecision"; "required": false; "isSignal": true; }; "thySuffix": { "alias": "thySuffix"; "required": false; "isSignal": true; }; }, { "thyBlur": "thyBlur"; "thyFocus": "thyFocus"; "thyStepChange": "thyStepChange"; }, never, never, true, never>;
116
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThyInputNumber, "thy-input-number", never, { "thyAutoFocus": { "alias": "thyAutoFocus"; "required": false; "isSignal": true; }; "thyPlaceholder": { "alias": "thyPlaceholder"; "required": false; "isSignal": true; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; "thyMax": { "alias": "thyMax"; "required": false; "isSignal": true; }; "thyMin": { "alias": "thyMin"; "required": false; "isSignal": true; }; "thyStep": { "alias": "thyStep"; "required": false; "isSignal": true; }; "thyShowStepControls": { "alias": "thyShowStepControls"; "required": false; "isSignal": true; }; "thyStepDelay": { "alias": "thyStepDelay"; "required": false; "isSignal": true; }; "thySize": { "alias": "thySize"; "required": false; "isSignal": true; }; "thyPrecision": { "alias": "thyPrecision"; "required": false; "isSignal": true; }; "thySuffix": { "alias": "thySuffix"; "required": false; "isSignal": true; }; }, { "thyBlur": "thyBlur"; "thyFocus": "thyFocus"; "thyStepChange": "thyStepChange"; }, never, never, true, never>;
113
117
  static ngAcceptInputType_thyDisabled: i1.ThyBooleanInput;
114
118
  }
115
119
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-tethys",
3
- "version": "19.1.13",
3
+ "version": "19.1.14",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@github.com/atinc/ngx-tethys.git"
@@ -50,14 +50,14 @@
50
50
  "types": "./autocomplete/index.d.ts",
51
51
  "default": "./fesm2022/ngx-tethys-autocomplete.mjs"
52
52
  },
53
- "./back-top": {
54
- "types": "./back-top/index.d.ts",
55
- "default": "./fesm2022/ngx-tethys-back-top.mjs"
56
- },
57
53
  "./avatar": {
58
54
  "types": "./avatar/index.d.ts",
59
55
  "default": "./fesm2022/ngx-tethys-avatar.mjs"
60
56
  },
57
+ "./back-top": {
58
+ "types": "./back-top/index.d.ts",
59
+ "default": "./fesm2022/ngx-tethys-back-top.mjs"
60
+ },
61
61
  "./badge": {
62
62
  "types": "./badge/index.d.ts",
63
63
  "default": "./fesm2022/ngx-tethys-badge.mjs"
@@ -1 +1 @@
1
- export declare const VERSION = "19.1.13";
1
+ export declare const VERSION = "19.1.14";
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '19.1.13';
4
+ exports.VERSION = '19.1.14';