ngx-kit 8.3.0 → 8.3.1
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { input, output, forwardRef, ViewChild, ChangeDetectionStrategy, Component, ElementRef,
|
|
2
|
+
import { input, output, forwardRef, ViewChild, ChangeDetectionStrategy, Component, ElementRef, HostListener, Input, Directive } from '@angular/core';
|
|
3
3
|
import * as i2 from '@angular/forms';
|
|
4
4
|
import { FormsModule, NG_VALUE_ACCESSOR, NG_VALIDATORS } from '@angular/forms';
|
|
5
5
|
import * as i1$1 from 'ngx-kit/core';
|
|
@@ -431,8 +431,11 @@ class NgxInputGradient {
|
|
|
431
431
|
renderer;
|
|
432
432
|
viewContainerRef;
|
|
433
433
|
overlayService;
|
|
434
|
-
setInputBackground = true
|
|
434
|
+
setInputBackground = input(true, /* @ts-ignore */
|
|
435
|
+
...(ngDevMode ? [{ debugName: "setInputBackground" }] : /* istanbul ignore next */ []));
|
|
435
436
|
_targetInput;
|
|
437
|
+
showSamples = input(true, /* @ts-ignore */
|
|
438
|
+
...(ngDevMode ? [{ debugName: "showSamples" }] : /* istanbul ignore next */ []));
|
|
436
439
|
set ngxInputColor(el) {
|
|
437
440
|
this.isHostInput = false;
|
|
438
441
|
if (el instanceof ElementRef) {
|
|
@@ -450,7 +453,7 @@ class NgxInputGradient {
|
|
|
450
453
|
this._targetInput.addEventListener('input', this.boundInputHandler);
|
|
451
454
|
}
|
|
452
455
|
}
|
|
453
|
-
change =
|
|
456
|
+
change = output();
|
|
454
457
|
boundInputHandler = (e) => {
|
|
455
458
|
this.writeValue(e.target.value);
|
|
456
459
|
};
|
|
@@ -503,7 +506,7 @@ class NgxInputGradient {
|
|
|
503
506
|
this.value = val;
|
|
504
507
|
if (val && isValidGradient(val)) {
|
|
505
508
|
// const parsed = parseGradient(val);
|
|
506
|
-
if (this.setInputBackground) {
|
|
509
|
+
if (this.setInputBackground()) {
|
|
507
510
|
this.renderer.setStyle(this.el.nativeElement, 'background', val);
|
|
508
511
|
}
|
|
509
512
|
if (this.isHostInput) {
|
|
@@ -528,6 +531,7 @@ class NgxInputGradient {
|
|
|
528
531
|
placement: 'auto',
|
|
529
532
|
configure: (instance, ref) => {
|
|
530
533
|
instance.writeValue(this.value);
|
|
534
|
+
ref.componentRef?.setInput('showSamples', this.showSamples());
|
|
531
535
|
instance.change.subscribe((c) => {
|
|
532
536
|
this.value = c;
|
|
533
537
|
this.emitChange(c);
|
|
@@ -546,7 +550,7 @@ class NgxInputGradient {
|
|
|
546
550
|
}
|
|
547
551
|
}
|
|
548
552
|
async emitChange(c) {
|
|
549
|
-
if (this.setInputBackground) {
|
|
553
|
+
if (this.setInputBackground()) {
|
|
550
554
|
this.renderer.setStyle(this.el.nativeElement, 'background', c);
|
|
551
555
|
}
|
|
552
556
|
// اگر روی input باشیم، مقدار رو در input قرار بده
|
|
@@ -565,7 +569,7 @@ class NgxInputGradient {
|
|
|
565
569
|
this._onTouched();
|
|
566
570
|
}
|
|
567
571
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: NgxInputGradient, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i1$1.OverlayService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
568
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
572
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.4", type: NgxInputGradient, isStandalone: true, selector: "[ngxInputGradient]", inputs: { setInputBackground: { classPropertyName: "setInputBackground", publicName: "setInputBackground", isSignal: true, isRequired: false, transformFunction: null }, showSamples: { classPropertyName: "showSamples", publicName: "showSamples", isSignal: true, isRequired: false, transformFunction: null }, ngxInputColor: { classPropertyName: "ngxInputColor", publicName: "ngxInputColor", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { change: "change" }, host: { listeners: { "click": "onClick($event)" } }, providers: [
|
|
569
573
|
{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgxInputGradient), multi: true },
|
|
570
574
|
{
|
|
571
575
|
provide: NG_VALIDATORS,
|
|
@@ -587,14 +591,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImpor
|
|
|
587
591
|
},
|
|
588
592
|
],
|
|
589
593
|
}]
|
|
590
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1$1.OverlayService }], propDecorators: { setInputBackground: [{
|
|
591
|
-
type: Input
|
|
592
|
-
}], ngxInputColor: [{
|
|
594
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i1$1.OverlayService }], propDecorators: { setInputBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "setInputBackground", required: false }] }], showSamples: [{ type: i0.Input, args: [{ isSignal: true, alias: "showSamples", required: false }] }], ngxInputColor: [{
|
|
593
595
|
type: Input,
|
|
594
596
|
args: ['ngxInputColor']
|
|
595
|
-
}], change: [{
|
|
596
|
-
type: Output
|
|
597
|
-
}], onClick: [{
|
|
597
|
+
}], change: [{ type: i0.Output, args: ["change"] }], onClick: [{
|
|
598
598
|
type: HostListener,
|
|
599
599
|
args: ['click', ['$event']]
|
|
600
600
|
}] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-kit-gradient-picker.mjs","sources":["../../../projects/libs/gradient-picker/utils/build-gradient.ts","../../../projects/libs/gradient-picker/contracts/default-gradients.ts","../../../projects/libs/gradient-picker/components/input-gradient.component.ts","../../../projects/libs/gradient-picker/components/input-gradient.component.html","../../../projects/libs/gradient-picker/directives/ngx-input-gradient.directive.ts","../../../projects/libs/gradient-picker/ngx-kit-gradient-picker.ts"],"sourcesContent":["import { GradientStop, GradientType } from '../contracts/GradientStop';\n\nexport function buildGradientFromStops(\n stops: GradientStop[],\n type: GradientType = 'linear',\n rotation: number | string = 0,\n options = '',\n): string {\n if (!stops?.length) return '';\n\n const sorted = [...stops].sort((a, b) => a.value - b.value);\n const parts = sorted.map((stop) => {\n const value = Math.max(0, Math.min(Number(stop.value) || 0, 100));\n return `${stop.color.trim()} ${value}%`;\n });\n\n const kind = type.replace('repeating-', '');\n let prefix = options.trim();\n if (!prefix && kind === 'linear') {\n prefix = typeof rotation === 'number' ? `${rotation}deg` : rotation.trim();\n } else if (!prefix && kind === 'radial') {\n prefix = typeof rotation === 'string' && rotation.trim() ? rotation.trim() : 'circle';\n } else if (!prefix && kind === 'conic') {\n prefix = typeof rotation === 'number' ? `from ${rotation}deg` : rotation.trim();\n }\n\n return `${type}-gradient(${prefix ? `${prefix}, ` : ''}${parts.join(', ')})`;\n}\n\nexport function generateRandomColor(): string {\n const letters = '0123456789ABCDEF';\n let color = '#';\n for (let i = 0; i < 6; i++) color += letters[Math.floor(Math.random() * 16)];\n return color;\n}\n\nexport function isValidGradient(value: string): boolean {\n return (\n typeof value === 'string' &&\n /^\\s*(?:repeating-)?(?:conic|linear|radial)-gradient\\s*\\(/i.test(value)\n );\n}\n\nexport function parseGradient(value: string): {\n type: GradientType;\n rotation: number;\n options: string;\n shape?: string;\n stops: GradientStop[];\n valid: boolean;\n} {\n let type: GradientType = 'linear';\n let rotation = 180;\n let options = '';\n let shape: string | undefined;\n const stops: GradientStop[] = [];\n let valid = false;\n\n if (!value) return { type, rotation, options, shape, stops, valid };\n const match = value\n .trim()\n .match(/^((?:repeating-)?(?:conic|linear|radial))-gradient\\s*\\((.*)\\)$/i);\n if (!match) return { type, rotation, options, shape, stops, valid };\n\n type = match[1].toLowerCase() as GradientType;\n const parts = splitGradientArguments(match[2]);\n const first = parts[0] ?? '';\n const kind = type.replace('repeating-', '');\n const hasPrelude =\n kind === 'linear'\n ? /^(?:to\\s+|in\\s+|[-+]?(?:\\d*\\.)?\\d+(?:deg|grad|rad|turn)\\b)/i.test(first)\n : kind === 'radial'\n ? /^(?:(?:circle|ellipse|closest-side|closest-corner|farthest-side|farthest-corner)\\b|at\\s+)/i.test(\n first,\n ) || !parseColorStop(first)\n : /^(?:from\\s+|at\\s+)/i.test(first) || !parseColorStop(first);\n\n let firstStop = 0;\n if (hasPrelude) {\n options = first;\n firstStop = 1;\n const angle = first.match(/(?:from\\s+)?([-+]?(?:\\d*\\.)?\\d+)(deg|grad|rad|turn)\\b/i);\n if (angle) rotation = angleToDegrees(Number(angle[1]), angle[2]);\n if (kind === 'radial') shape = first;\n } else if (kind === 'conic') {\n rotation = 0;\n }\n\n for (let i = firstStop; i < parts.length; i++) {\n const parsed = parseColorStop(parts[i]);\n if (!parsed) continue;\n\n let position = parsed.position;\n if (position === undefined) {\n position =\n stops.length === 0\n ? 0\n : i === parts.length - 1\n ? 100\n : (100 / (parts.length - firstStop - 1)) * stops.length;\n }\n stops.push({ color: parsed.color, value: position, id: generateId(stops) });\n }\n\n valid = stops.length >= 2;\n return { type, rotation, options, shape, stops, valid };\n}\n\nfunction splitGradientArguments(value: string): string[] {\n const parts: string[] = [];\n let depth = 0;\n let start = 0;\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '(') depth++;\n else if (value[i] === ')') depth--;\n else if (value[i] === ',' && depth === 0) {\n parts.push(value.slice(start, i).trim());\n start = i + 1;\n }\n }\n parts.push(value.slice(start).trim());\n return parts.filter(Boolean);\n}\n\nfunction parseColorStop(value: string): { color: string; position?: number } | undefined {\n const stop = value.trim();\n const positionMatch = stop.match(/\\s+([-+]?(?:\\d*\\.)?\\d+)%?$/);\n const color = positionMatch ? stop.slice(0, positionMatch.index).trim() : stop;\n if (!/^(?:#[\\da-f]{3,8}|[a-z][\\w-]*|[a-z][\\w-]*\\()/i.test(color)) return undefined;\n\n if (color.includes('(')) {\n let depth = 0;\n for (const char of color) {\n if (char === '(') depth++;\n else if (char === ')') depth--;\n if (depth < 0) return undefined;\n }\n if (depth !== 0 || !/\\)$/.test(color)) return undefined;\n }\n\n return { color, position: positionMatch ? Number.parseFloat(positionMatch[1]) : undefined };\n}\n\nfunction angleToDegrees(value: number, unit: string): number {\n switch (unit.toLowerCase()) {\n case 'turn':\n return value * 360;\n case 'grad':\n return value * 0.9;\n case 'rad':\n return value * (180 / Math.PI);\n default:\n return value;\n }\n}\n\nfunction generateId(stops: GradientStop[]): string {\n const id = 'ngx-stop-' + Math.random().toString(36).substring(2, 9);\n return stops.some((stop) => stop.id === id) ? generateId(stops) : id;\n}\n","import { GradientStop } from './GradientStop';\n\nexport const DefaultGradients: GradientStop[][] = [\n // Sunset\n [\n { id: '1', value: 0, color: '#ff7e5f' },\n { id: '2', value: 100, color: '#feb47b' },\n ],\n\n // Ocean Blue\n [\n { id: '1', value: 0, color: '#00c6ff' },\n { id: '2', value: 100, color: '#0072ff' },\n ],\n\n // Purple Dream\n [\n { id: '1', value: 0, color: '#a18cd1' },\n { id: '2', value: 100, color: '#fbc2eb' },\n ],\n\n // Cool Sky\n [\n { id: '1', value: 0, color: '#2193b0' },\n { id: '2', value: 100, color: '#6dd5ed' },\n ],\n\n // Peach\n [\n { id: '1', value: 0, color: '#ed4264' },\n { id: '2', value: 100, color: '#ffedbc' },\n ],\n\n // Night Fade\n [\n { id: '1', value: 0, color: '#a18cd1' },\n { id: '2', value: 100, color: '#fbc2eb' },\n ],\n\n // Aqua Marine\n [\n { id: '1', value: 0, color: '#1a2980' },\n { id: '2', value: 100, color: '#26d0ce' },\n ],\n\n // Forest\n [\n { id: '1', value: 0, color: '#5a3f37' },\n { id: '2', value: 100, color: '#2c7744' },\n ],\n\n // Flame\n [\n { id: '1', value: 0, color: '#ff4e50' },\n { id: '2', value: 100, color: '#f9d423' },\n ],\n\n // Blue Lagoon\n [\n { id: '1', value: 0, color: '#43cea2' },\n { id: '2', value: 100, color: '#185a9d' },\n ],\n\n // Retro\n [\n { id: '1', value: 0, color: '#3fada8' },\n { id: '2', value: 100, color: '#808080' },\n ],\n\n // Sunrise\n [\n { id: '1', value: 0, color: '#ff512f' },\n { id: '2', value: 100, color: '#dd2476' },\n ],\n\n // Rainbow\n [\n { id: '1', value: 0, color: '#ff0000' },\n { id: '2', value: 20, color: '#ff9900' },\n { id: '3', value: 40, color: '#ffff00' },\n { id: '4', value: 60, color: '#00ff00' },\n { id: '5', value: 80, color: '#0000ff' },\n { id: '6', value: 100, color: '#8b00ff' },\n ],\n\n // Candy\n [\n { id: '1', value: 0, color: '#f953c6' },\n { id: '2', value: 100, color: '#b91d73' },\n ],\n\n // Citrus\n [\n { id: '1', value: 0, color: '#fdc830' },\n { id: '2', value: 100, color: '#f37335' },\n ],\n\n // Lava\n [\n { id: '1', value: 0, color: '#e52d27' },\n { id: '2', value: 100, color: '#b31217' },\n ],\n\n // Winter\n [\n { id: '1', value: 0, color: '#e6dada' },\n { id: '2', value: 100, color: '#274046' },\n ],\n\n // Purple Love\n [\n { id: '1', value: 0, color: '#cc2b5e' },\n { id: '2', value: 100, color: '#753a88' },\n ],\n\n // // Mint\n // [\n // { id: '1', value: 0, color: '#76b852' },\n // { id: '2', value: 100, color: '#8dc26f' },\n // ],\n\n // // Cloud\n // [\n // { id: '1', value: 0, color: '#bdc3c7' },\n // { id: '2', value: 100, color: '#2c3e50' },\n // ],\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n input,\n Input,\n OnDestroy,\n OnInit,\n output,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n AbstractControl,\n ValidationErrors,\n FormsModule,\n} from '@angular/forms';\nimport { GradientStop, GradientType } from '../contracts/GradientStop';\nimport {\n buildGradientFromStops,\n generateRandomColor,\n isValidGradient,\n parseGradient,\n} from '../utils/build-gradient';\nimport { DefaultGradients } from '../contracts/default-gradients';\nimport { BrowserService, RangeSliderComponent } from 'ngx-kit/core';\nimport { NgxInputColor } from 'ngx-kit/color-picker';\nimport { NgxInputAngle } from 'ngx-kit/angle-selector';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngx-input-gradient',\n templateUrl: './input-gradient.component.html',\n styleUrls: ['./input-gradient.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxInputGradientComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: NgxInputGradientComponent,\n },\n ],\n imports: [CommonModule, FormsModule, RangeSliderComponent, NgxInputColor, NgxInputAngle],\n})\nexport class NgxInputGradientComponent\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n readonly showSamples = input(true);\n readonly change = output<string>();\n\n defaultGradients: string[] = [];\n\n resultGradient = '';\n baseBg = '';\n rangeValues: GradientStop[] = [];\n type: GradientType = 'linear';\n rotation: number = 90;\n gradientOptions = '';\n selectedIndex = 0;\n\n isDisabled = false;\n protected _onChange = (value: string) => {};\n protected _onTouched = () => {};\n _onValidateChange = () => {};\n\n @ViewChild('rangeSlider', { static: true }) rangeSlider?: RangeSliderComponent;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.setDefaultGradients();\n }\n ngOnDestroy(): void {}\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n setDisabledState(disabled: boolean): void {\n this.isDisabled = disabled;\n }\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n validate(control: AbstractControl): ValidationErrors | null {\n if (!this.resultGradient) return { required: true };\n const parsed = parseGradient(this.resultGradient);\n if (!parsed.valid) return { invalid: true };\n if (parsed.stops.length < 2) return { stops: 'at least 2 color stops required' };\n return null;\n }\n\n writeValue(value: any): void {\n if (value && isValidGradient(value)) {\n const parsed = parseGradient(value);\n if (parsed.valid) {\n this.resultGradient = value;\n this.type = parsed.type;\n this.rotation = parsed.rotation;\n this.gradientOptions = parsed.options;\n this.rangeValues = parsed.stops;\n } else {\n this.resultGradient = '';\n this.rangeValues = [\n { color: generateRandomColor(), value: 0, id: this.generateId() },\n { color: generateRandomColor(), value: 100, id: this.generateId() },\n ];\n this.type = 'linear';\n this.rotation = 90;\n this.gradientOptions = '';\n }\n } else {\n this.resultGradient = '';\n this.rangeValues = [\n { color: generateRandomColor(), value: 0, id: this.generateId() },\n { color: generateRandomColor(), value: 100, id: this.generateId() },\n ];\n this.type = 'linear';\n this.rotation = 90;\n this.gradientOptions = '';\n }\n this.generateGradient();\n }\n private generateId(): string {\n let id = 'ngx-thumb-' + Math.random().toString(36).substring(2, 9);\n if (this.rangeValues.findIndex((x) => x.id == id) >= 0) {\n return this.generateId();\n }\n return id;\n }\n\n stopPropagation(ev: Event) {\n ev.stopPropagation();\n }\n\n remove() {\n if (this.rangeValues.length > 2) {\n this.rangeValues.splice(this.selectedIndex, 1);\n this.selectedIndex = 0;\n this.generateGradient();\n }\n }\n\n generateGradient(ev?: string) {\n if (ev && this.rangeValues[this.selectedIndex]) {\n this.rangeValues[this.selectedIndex].color = ev;\n }\n for (let item of this.rangeValues) {\n item.color ??= generateRandomColor();\n }\n this.baseBg = buildGradientFromStops(this.rangeValues, 'linear', 90);\n this.resultGradient = buildGradientFromStops(\n this.rangeValues,\n this.type,\n this.rotation,\n this.gradientOptions,\n );\n this.emitChange();\n }\n\n updateGradientType() {\n this.gradientOptions = '';\n this.generateGradient();\n }\n\n updateRotation() {\n this.gradientOptions = '';\n this.generateGradient();\n }\n\n updateRangeSlider() {\n if (this.rangeSlider) {\n this.rangeSlider.writeValue(this.rangeValues);\n }\n }\n emitChange() {\n this._onChange(this.resultGradient);\n this.change.emit(this.resultGradient);\n }\n\n setDefaultGradients() {\n this.defaultGradients = [];\n\n for (let item of DefaultGradients) {\n this.defaultGradients.push(buildGradientFromStops(item, 'linear', 90));\n }\n }\n\n onSelectDefault(item: string, i: number) {\n // console.log('onSelectDefault', item, i);\n this.writeValue(item);\n this.emitChange();\n }\n}\n","<div class=\"ngx-input-gradient-picker\" (click)=\"stopPropagation($event)\">\n <div class=\"ngx-color-preview\" [ngStyle]=\"{ '--ngx-selected-gradient': resultGradient }\"></div>\n <div class=\"ngx-c-inner\">\n <range-slider\n [(ngModel)]=\"rangeValues\"\n name=\"rangeCalues\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n [addNewRangeOnClick]=\"true\"\n [background]=\"baseBg\"\n [(selectedIndex)]=\"selectedIndex\"\n (change)=\"generateGradient()\"\n #rangeSlider></range-slider>\n\n <div class=\"text-end\">\n <button class=\"remove-btn\" type=\"button\" (click)=\"remove()\">remove</button>\n </div>\n @if (rangeValues[selectedIndex]) {\n <div class=\"ngx-row\">\n <div class=\"ngx-col-6\">\n <div class=\"label\">Color</div>\n <div class=\"input-color\">\n <input\n type=\"text\"\n [(ngModel)]=\"rangeValues[selectedIndex].color\"\n name=\"color\"\n #inputColor\n (ngModelChange)=\"generateGradient(); updateRangeSlider()\" />\n <span\n #ngxGradColor\n class=\"color\"\n [style.backgroundColor]=\"rangeValues[selectedIndex].color\"\n [ngxInputColor]=\"inputColor\"\n [ngModel]=\"rangeValues[selectedIndex].color\"\n [simpleMode]=\"true\"\n (change)=\"generateGradient($event)\"></span>\n </div>\n </div>\n <div class=\"ngx-col-6\">\n <div class=\"label\">Position</div>\n <input\n type=\"number\"\n [(ngModel)]=\"rangeValues[selectedIndex].value\"\n min=\"0\"\n max=\"100\"\n name=\"posiition\"\n (change)=\"generateGradient(); updateRangeSlider()\" />\n </div>\n <div class=\"ngx-col-6\">\n <div class=\"label\">Rotation</div>\n <div class=\"ngx-input-group\">\n <input\n type=\"text\"\n [(ngModel)]=\"rotation\"\n ngxInputAngle\n (change)=\"updateRotation()\"\n name=\"rotation\"\n [disabled]=\"type.endsWith('radial')\" />\n <span class=\"ngx-input-prefix\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\">\n <path\n d=\"M360.5 217.5l-152 143.1C203.9 365.8 197.9 368 192 368s-11.88-2.188-16.5-6.562L23.5 217.5C13.87 208.3 13.47 193.1 22.56 183.5C31.69 173.8 46.94 173.5 56.5 182.6L192 310.9l135.5-128.4c9.562-9.094 24.75-8.75 33.94 .9375C370.5 193.1 370.1 208.3 360.5 217.5z\" />\n </svg>\n </span>\n </div>\n </div>\n <div class=\"ngx-col-6\">\n <div class=\"label\">Type</div>\n <div class=\"ngx-input-group\">\n <select [(ngModel)]=\"type\" (change)=\"updateGradientType()\" name=\"type\">\n <option value=\"linear\">linear</option>\n <option value=\"radial\">radial</option>\n <option value=\"conic\">conic</option>\n <option value=\"repeating-linear\">repeating linear</option>\n <option value=\"repeating-radial\">repeating radial</option>\n <option value=\"repeating-conic\">repeating conic</option>\n </select>\n <span class=\"ngx-input-prefix\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\">\n <path\n d=\"M360.5 217.5l-152 143.1C203.9 365.8 197.9 368 192 368s-11.88-2.188-16.5-6.562L23.5 217.5C13.87 208.3 13.47 193.1 22.56 183.5C31.69 173.8 46.94 173.5 56.5 182.6L192 310.9l135.5-128.4c9.562-9.094 24.75-8.75 33.94 .9375C370.5 193.1 370.1 208.3 360.5 217.5z\" />\n </svg>\n </span>\n </div>\n </div>\n </div>\n }\n\n @if (showSamples()) {\n <div class=\"default-list\">\n @for (item of defaultGradients; track $index; let i = $index) {\n <span [style.background]=\"item\" (click)=\"onSelectDefault(item, i)\"></span>\n }\n </div>\n }\n </div>\n</div>\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n ViewContainerRef,\n forwardRef,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { NgxInputGradientComponent } from '../components/input-gradient.component';\nimport { isValidGradient, parseGradient } from '../utils/build-gradient';\nimport { OverlayRef, OverlayService } from 'ngx-kit/core';\n\n@Directive({\n selector: '[ngxInputGradient]',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgxInputGradient), multi: true },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: NgxInputGradient,\n },\n ],\n})\nexport class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {\n @Input() setInputBackground = true;\n private _targetInput?: HTMLInputElement;\n @Input('ngxInputColor') set ngxInputColor(\n el: HTMLInputElement | ElementRef<HTMLInputElement> | null | undefined | '',\n ) {\n this.isHostInput = false;\n if (el instanceof ElementRef) {\n this._targetInput = el.nativeElement;\n } else if (el instanceof HTMLInputElement) {\n this.isHostInput = true;\n this._targetInput = el;\n } else {\n this._targetInput = undefined;\n }\n\n if (this._targetInput) {\n this._targetInput.removeEventListener('input', this.boundInputHandler);\n this._targetInput.addEventListener('input', this.boundInputHandler);\n }\n }\n @Output() change = new EventEmitter<string>();\n\n private boundInputHandler = (e: Event) => {\n this.writeValue((e.target as HTMLInputElement).value);\n };\n private isHostInput = false;\n private pickerRef?: OverlayRef<NgxInputGradientComponent>;\n\n value = '';\n\n protected _onChange = (value: string) => {};\n protected _onTouched = () => {};\n _onValidateChange = () => {};\n constructor(\n private el: ElementRef<HTMLInputElement>,\n private renderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private overlayService: OverlayService,\n ) {}\n\n @HostListener('click', ['$event']) onClick(ev: Event) {\n ev.stopPropagation();\n ev.preventDefault();\n this.toggle();\n }\n ngAfterViewInit(): void {\n if (this._targetInput && this._targetInput.tagName.toLowerCase() === 'input') {\n this.writeValue(this._targetInput.value);\n }\n }\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n setDisabledState(disabled: boolean): void {\n if (disabled) {\n this.renderer.setProperty(this.el.nativeElement, 'disabled', disabled);\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n }\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n validate(control: AbstractControl): ValidationErrors | null {\n return null;\n }\n\n ngOnDestroy(): void {\n this.destroyPicker();\n }\n\n writeValue(val: any): void {\n this.value = val;\n if (val && isValidGradient(val)) {\n // const parsed = parseGradient(val);\n if (this.setInputBackground) {\n this.renderer.setStyle(this.el.nativeElement, 'background', val);\n }\n if (this.isHostInput) {\n this.el.nativeElement.value = this.value;\n }\n this._onValidateChange();\n } else {\n this.renderer.setStyle(this.el.nativeElement, 'background', '');\n }\n }\n\n toggle() {\n if (this.pickerRef) {\n this.destroyPicker();\n return;\n }\n\n this.pickerRef = this.overlayService.open({\n anchor: this.el.nativeElement,\n component: NgxInputGradientComponent,\n viewContainerRef: this.viewContainerRef,\n alignment: 'start',\n placement: 'auto',\n configure: (instance, ref) => {\n instance.writeValue(this.value);\n\n instance.change.subscribe((c: string) => {\n this.value = c;\n this.emitChange(c);\n });\n\n // instance.closed.subscribe(() => ref.close());\n },\n onClosed: () => {\n this.pickerRef = undefined;\n },\n });\n }\n\n destroyPicker() {\n if (this.pickerRef) {\n this.pickerRef.close();\n this.pickerRef = undefined;\n }\n }\n\n private async emitChange(c: string) {\n if (this.setInputBackground) {\n this.renderer.setStyle(this.el.nativeElement, 'background', c);\n }\n\n // اگر روی input باشیم، مقدار رو در input قرار بده\n if (this.isHostInput) {\n const input = this.el.nativeElement as HTMLInputElement;\n input.value = c;\n }\n\n // اگر targetInput وجود داره، در اونم مقدار ست کن\n if (this._targetInput instanceof HTMLInputElement) {\n this._targetInput.value = c;\n const event = new Event('input', { bubbles: true });\n this._targetInput.dispatchEvent(event);\n }\n\n this._onChange(c);\n this.change.emit(c);\n this._onTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-kit-gradient-picker.mjs","sources":["../../../projects/libs/gradient-picker/utils/build-gradient.ts","../../../projects/libs/gradient-picker/contracts/default-gradients.ts","../../../projects/libs/gradient-picker/components/input-gradient.component.ts","../../../projects/libs/gradient-picker/components/input-gradient.component.html","../../../projects/libs/gradient-picker/directives/ngx-input-gradient.directive.ts","../../../projects/libs/gradient-picker/ngx-kit-gradient-picker.ts"],"sourcesContent":["import { GradientStop, GradientType } from '../contracts/GradientStop';\n\nexport function buildGradientFromStops(\n stops: GradientStop[],\n type: GradientType = 'linear',\n rotation: number | string = 0,\n options = '',\n): string {\n if (!stops?.length) return '';\n\n const sorted = [...stops].sort((a, b) => a.value - b.value);\n const parts = sorted.map((stop) => {\n const value = Math.max(0, Math.min(Number(stop.value) || 0, 100));\n return `${stop.color.trim()} ${value}%`;\n });\n\n const kind = type.replace('repeating-', '');\n let prefix = options.trim();\n if (!prefix && kind === 'linear') {\n prefix = typeof rotation === 'number' ? `${rotation}deg` : rotation.trim();\n } else if (!prefix && kind === 'radial') {\n prefix = typeof rotation === 'string' && rotation.trim() ? rotation.trim() : 'circle';\n } else if (!prefix && kind === 'conic') {\n prefix = typeof rotation === 'number' ? `from ${rotation}deg` : rotation.trim();\n }\n\n return `${type}-gradient(${prefix ? `${prefix}, ` : ''}${parts.join(', ')})`;\n}\n\nexport function generateRandomColor(): string {\n const letters = '0123456789ABCDEF';\n let color = '#';\n for (let i = 0; i < 6; i++) color += letters[Math.floor(Math.random() * 16)];\n return color;\n}\n\nexport function isValidGradient(value: string): boolean {\n return (\n typeof value === 'string' &&\n /^\\s*(?:repeating-)?(?:conic|linear|radial)-gradient\\s*\\(/i.test(value)\n );\n}\n\nexport function parseGradient(value: string): {\n type: GradientType;\n rotation: number;\n options: string;\n shape?: string;\n stops: GradientStop[];\n valid: boolean;\n} {\n let type: GradientType = 'linear';\n let rotation = 180;\n let options = '';\n let shape: string | undefined;\n const stops: GradientStop[] = [];\n let valid = false;\n\n if (!value) return { type, rotation, options, shape, stops, valid };\n const match = value\n .trim()\n .match(/^((?:repeating-)?(?:conic|linear|radial))-gradient\\s*\\((.*)\\)$/i);\n if (!match) return { type, rotation, options, shape, stops, valid };\n\n type = match[1].toLowerCase() as GradientType;\n const parts = splitGradientArguments(match[2]);\n const first = parts[0] ?? '';\n const kind = type.replace('repeating-', '');\n const hasPrelude =\n kind === 'linear'\n ? /^(?:to\\s+|in\\s+|[-+]?(?:\\d*\\.)?\\d+(?:deg|grad|rad|turn)\\b)/i.test(first)\n : kind === 'radial'\n ? /^(?:(?:circle|ellipse|closest-side|closest-corner|farthest-side|farthest-corner)\\b|at\\s+)/i.test(\n first,\n ) || !parseColorStop(first)\n : /^(?:from\\s+|at\\s+)/i.test(first) || !parseColorStop(first);\n\n let firstStop = 0;\n if (hasPrelude) {\n options = first;\n firstStop = 1;\n const angle = first.match(/(?:from\\s+)?([-+]?(?:\\d*\\.)?\\d+)(deg|grad|rad|turn)\\b/i);\n if (angle) rotation = angleToDegrees(Number(angle[1]), angle[2]);\n if (kind === 'radial') shape = first;\n } else if (kind === 'conic') {\n rotation = 0;\n }\n\n for (let i = firstStop; i < parts.length; i++) {\n const parsed = parseColorStop(parts[i]);\n if (!parsed) continue;\n\n let position = parsed.position;\n if (position === undefined) {\n position =\n stops.length === 0\n ? 0\n : i === parts.length - 1\n ? 100\n : (100 / (parts.length - firstStop - 1)) * stops.length;\n }\n stops.push({ color: parsed.color, value: position, id: generateId(stops) });\n }\n\n valid = stops.length >= 2;\n return { type, rotation, options, shape, stops, valid };\n}\n\nfunction splitGradientArguments(value: string): string[] {\n const parts: string[] = [];\n let depth = 0;\n let start = 0;\n for (let i = 0; i < value.length; i++) {\n if (value[i] === '(') depth++;\n else if (value[i] === ')') depth--;\n else if (value[i] === ',' && depth === 0) {\n parts.push(value.slice(start, i).trim());\n start = i + 1;\n }\n }\n parts.push(value.slice(start).trim());\n return parts.filter(Boolean);\n}\n\nfunction parseColorStop(value: string): { color: string; position?: number } | undefined {\n const stop = value.trim();\n const positionMatch = stop.match(/\\s+([-+]?(?:\\d*\\.)?\\d+)%?$/);\n const color = positionMatch ? stop.slice(0, positionMatch.index).trim() : stop;\n if (!/^(?:#[\\da-f]{3,8}|[a-z][\\w-]*|[a-z][\\w-]*\\()/i.test(color)) return undefined;\n\n if (color.includes('(')) {\n let depth = 0;\n for (const char of color) {\n if (char === '(') depth++;\n else if (char === ')') depth--;\n if (depth < 0) return undefined;\n }\n if (depth !== 0 || !/\\)$/.test(color)) return undefined;\n }\n\n return { color, position: positionMatch ? Number.parseFloat(positionMatch[1]) : undefined };\n}\n\nfunction angleToDegrees(value: number, unit: string): number {\n switch (unit.toLowerCase()) {\n case 'turn':\n return value * 360;\n case 'grad':\n return value * 0.9;\n case 'rad':\n return value * (180 / Math.PI);\n default:\n return value;\n }\n}\n\nfunction generateId(stops: GradientStop[]): string {\n const id = 'ngx-stop-' + Math.random().toString(36).substring(2, 9);\n return stops.some((stop) => stop.id === id) ? generateId(stops) : id;\n}\n","import { GradientStop } from './GradientStop';\n\nexport const DefaultGradients: GradientStop[][] = [\n // Sunset\n [\n { id: '1', value: 0, color: '#ff7e5f' },\n { id: '2', value: 100, color: '#feb47b' },\n ],\n\n // Ocean Blue\n [\n { id: '1', value: 0, color: '#00c6ff' },\n { id: '2', value: 100, color: '#0072ff' },\n ],\n\n // Purple Dream\n [\n { id: '1', value: 0, color: '#a18cd1' },\n { id: '2', value: 100, color: '#fbc2eb' },\n ],\n\n // Cool Sky\n [\n { id: '1', value: 0, color: '#2193b0' },\n { id: '2', value: 100, color: '#6dd5ed' },\n ],\n\n // Peach\n [\n { id: '1', value: 0, color: '#ed4264' },\n { id: '2', value: 100, color: '#ffedbc' },\n ],\n\n // Night Fade\n [\n { id: '1', value: 0, color: '#a18cd1' },\n { id: '2', value: 100, color: '#fbc2eb' },\n ],\n\n // Aqua Marine\n [\n { id: '1', value: 0, color: '#1a2980' },\n { id: '2', value: 100, color: '#26d0ce' },\n ],\n\n // Forest\n [\n { id: '1', value: 0, color: '#5a3f37' },\n { id: '2', value: 100, color: '#2c7744' },\n ],\n\n // Flame\n [\n { id: '1', value: 0, color: '#ff4e50' },\n { id: '2', value: 100, color: '#f9d423' },\n ],\n\n // Blue Lagoon\n [\n { id: '1', value: 0, color: '#43cea2' },\n { id: '2', value: 100, color: '#185a9d' },\n ],\n\n // Retro\n [\n { id: '1', value: 0, color: '#3fada8' },\n { id: '2', value: 100, color: '#808080' },\n ],\n\n // Sunrise\n [\n { id: '1', value: 0, color: '#ff512f' },\n { id: '2', value: 100, color: '#dd2476' },\n ],\n\n // Rainbow\n [\n { id: '1', value: 0, color: '#ff0000' },\n { id: '2', value: 20, color: '#ff9900' },\n { id: '3', value: 40, color: '#ffff00' },\n { id: '4', value: 60, color: '#00ff00' },\n { id: '5', value: 80, color: '#0000ff' },\n { id: '6', value: 100, color: '#8b00ff' },\n ],\n\n // Candy\n [\n { id: '1', value: 0, color: '#f953c6' },\n { id: '2', value: 100, color: '#b91d73' },\n ],\n\n // Citrus\n [\n { id: '1', value: 0, color: '#fdc830' },\n { id: '2', value: 100, color: '#f37335' },\n ],\n\n // Lava\n [\n { id: '1', value: 0, color: '#e52d27' },\n { id: '2', value: 100, color: '#b31217' },\n ],\n\n // Winter\n [\n { id: '1', value: 0, color: '#e6dada' },\n { id: '2', value: 100, color: '#274046' },\n ],\n\n // Purple Love\n [\n { id: '1', value: 0, color: '#cc2b5e' },\n { id: '2', value: 100, color: '#753a88' },\n ],\n\n // // Mint\n // [\n // { id: '1', value: 0, color: '#76b852' },\n // { id: '2', value: 100, color: '#8dc26f' },\n // ],\n\n // // Cloud\n // [\n // { id: '1', value: 0, color: '#bdc3c7' },\n // { id: '2', value: 100, color: '#2c3e50' },\n // ],\n];\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n inject,\n input,\n Input,\n OnDestroy,\n OnInit,\n output,\n Output,\n ViewChild,\n} from '@angular/core';\nimport {\n NG_VALUE_ACCESSOR,\n NG_VALIDATORS,\n ControlValueAccessor,\n Validator,\n AbstractControl,\n ValidationErrors,\n FormsModule,\n} from '@angular/forms';\nimport { GradientStop, GradientType } from '../contracts/GradientStop';\nimport {\n buildGradientFromStops,\n generateRandomColor,\n isValidGradient,\n parseGradient,\n} from '../utils/build-gradient';\nimport { DefaultGradients } from '../contracts/default-gradients';\nimport { BrowserService, RangeSliderComponent } from 'ngx-kit/core';\nimport { NgxInputColor } from 'ngx-kit/color-picker';\nimport { NgxInputAngle } from 'ngx-kit/angle-selector';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'ngx-input-gradient',\n templateUrl: './input-gradient.component.html',\n styleUrls: ['./input-gradient.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgxInputGradientComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: NgxInputGradientComponent,\n },\n ],\n imports: [CommonModule, FormsModule, RangeSliderComponent, NgxInputColor, NgxInputAngle],\n})\nexport class NgxInputGradientComponent\n implements OnInit, OnDestroy, ControlValueAccessor, Validator\n{\n readonly showSamples = input(true);\n readonly change = output<string>();\n\n defaultGradients: string[] = [];\n\n resultGradient = '';\n baseBg = '';\n rangeValues: GradientStop[] = [];\n type: GradientType = 'linear';\n rotation: number = 90;\n gradientOptions = '';\n selectedIndex = 0;\n\n isDisabled = false;\n protected _onChange = (value: string) => {};\n protected _onTouched = () => {};\n _onValidateChange = () => {};\n\n @ViewChild('rangeSlider', { static: true }) rangeSlider?: RangeSliderComponent;\n\n constructor(private cd: ChangeDetectorRef) {}\n\n ngOnInit(): void {\n this.setDefaultGradients();\n }\n ngOnDestroy(): void {}\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n setDisabledState(disabled: boolean): void {\n this.isDisabled = disabled;\n }\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n validate(control: AbstractControl): ValidationErrors | null {\n if (!this.resultGradient) return { required: true };\n const parsed = parseGradient(this.resultGradient);\n if (!parsed.valid) return { invalid: true };\n if (parsed.stops.length < 2) return { stops: 'at least 2 color stops required' };\n return null;\n }\n\n writeValue(value: any): void {\n if (value && isValidGradient(value)) {\n const parsed = parseGradient(value);\n if (parsed.valid) {\n this.resultGradient = value;\n this.type = parsed.type;\n this.rotation = parsed.rotation;\n this.gradientOptions = parsed.options;\n this.rangeValues = parsed.stops;\n } else {\n this.resultGradient = '';\n this.rangeValues = [\n { color: generateRandomColor(), value: 0, id: this.generateId() },\n { color: generateRandomColor(), value: 100, id: this.generateId() },\n ];\n this.type = 'linear';\n this.rotation = 90;\n this.gradientOptions = '';\n }\n } else {\n this.resultGradient = '';\n this.rangeValues = [\n { color: generateRandomColor(), value: 0, id: this.generateId() },\n { color: generateRandomColor(), value: 100, id: this.generateId() },\n ];\n this.type = 'linear';\n this.rotation = 90;\n this.gradientOptions = '';\n }\n this.generateGradient();\n }\n private generateId(): string {\n let id = 'ngx-thumb-' + Math.random().toString(36).substring(2, 9);\n if (this.rangeValues.findIndex((x) => x.id == id) >= 0) {\n return this.generateId();\n }\n return id;\n }\n\n stopPropagation(ev: Event) {\n ev.stopPropagation();\n }\n\n remove() {\n if (this.rangeValues.length > 2) {\n this.rangeValues.splice(this.selectedIndex, 1);\n this.selectedIndex = 0;\n this.generateGradient();\n }\n }\n\n generateGradient(ev?: string) {\n if (ev && this.rangeValues[this.selectedIndex]) {\n this.rangeValues[this.selectedIndex].color = ev;\n }\n for (let item of this.rangeValues) {\n item.color ??= generateRandomColor();\n }\n this.baseBg = buildGradientFromStops(this.rangeValues, 'linear', 90);\n this.resultGradient = buildGradientFromStops(\n this.rangeValues,\n this.type,\n this.rotation,\n this.gradientOptions,\n );\n this.emitChange();\n }\n\n updateGradientType() {\n this.gradientOptions = '';\n this.generateGradient();\n }\n\n updateRotation() {\n this.gradientOptions = '';\n this.generateGradient();\n }\n\n updateRangeSlider() {\n if (this.rangeSlider) {\n this.rangeSlider.writeValue(this.rangeValues);\n }\n }\n emitChange() {\n this._onChange(this.resultGradient);\n this.change.emit(this.resultGradient);\n }\n\n setDefaultGradients() {\n this.defaultGradients = [];\n\n for (let item of DefaultGradients) {\n this.defaultGradients.push(buildGradientFromStops(item, 'linear', 90));\n }\n }\n\n onSelectDefault(item: string, i: number) {\n // console.log('onSelectDefault', item, i);\n this.writeValue(item);\n this.emitChange();\n }\n}\n","<div class=\"ngx-input-gradient-picker\" (click)=\"stopPropagation($event)\">\n <div class=\"ngx-color-preview\" [ngStyle]=\"{ '--ngx-selected-gradient': resultGradient }\"></div>\n <div class=\"ngx-c-inner\">\n <range-slider\n [(ngModel)]=\"rangeValues\"\n name=\"rangeCalues\"\n [min]=\"0\"\n [max]=\"100\"\n [step]=\"1\"\n [addNewRangeOnClick]=\"true\"\n [background]=\"baseBg\"\n [(selectedIndex)]=\"selectedIndex\"\n (change)=\"generateGradient()\"\n #rangeSlider></range-slider>\n\n <div class=\"text-end\">\n <button class=\"remove-btn\" type=\"button\" (click)=\"remove()\">remove</button>\n </div>\n @if (rangeValues[selectedIndex]) {\n <div class=\"ngx-row\">\n <div class=\"ngx-col-6\">\n <div class=\"label\">Color</div>\n <div class=\"input-color\">\n <input\n type=\"text\"\n [(ngModel)]=\"rangeValues[selectedIndex].color\"\n name=\"color\"\n #inputColor\n (ngModelChange)=\"generateGradient(); updateRangeSlider()\" />\n <span\n #ngxGradColor\n class=\"color\"\n [style.backgroundColor]=\"rangeValues[selectedIndex].color\"\n [ngxInputColor]=\"inputColor\"\n [ngModel]=\"rangeValues[selectedIndex].color\"\n [simpleMode]=\"true\"\n (change)=\"generateGradient($event)\"></span>\n </div>\n </div>\n <div class=\"ngx-col-6\">\n <div class=\"label\">Position</div>\n <input\n type=\"number\"\n [(ngModel)]=\"rangeValues[selectedIndex].value\"\n min=\"0\"\n max=\"100\"\n name=\"posiition\"\n (change)=\"generateGradient(); updateRangeSlider()\" />\n </div>\n <div class=\"ngx-col-6\">\n <div class=\"label\">Rotation</div>\n <div class=\"ngx-input-group\">\n <input\n type=\"text\"\n [(ngModel)]=\"rotation\"\n ngxInputAngle\n (change)=\"updateRotation()\"\n name=\"rotation\"\n [disabled]=\"type.endsWith('radial')\" />\n <span class=\"ngx-input-prefix\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\">\n <path\n d=\"M360.5 217.5l-152 143.1C203.9 365.8 197.9 368 192 368s-11.88-2.188-16.5-6.562L23.5 217.5C13.87 208.3 13.47 193.1 22.56 183.5C31.69 173.8 46.94 173.5 56.5 182.6L192 310.9l135.5-128.4c9.562-9.094 24.75-8.75 33.94 .9375C370.5 193.1 370.1 208.3 360.5 217.5z\" />\n </svg>\n </span>\n </div>\n </div>\n <div class=\"ngx-col-6\">\n <div class=\"label\">Type</div>\n <div class=\"ngx-input-group\">\n <select [(ngModel)]=\"type\" (change)=\"updateGradientType()\" name=\"type\">\n <option value=\"linear\">linear</option>\n <option value=\"radial\">radial</option>\n <option value=\"conic\">conic</option>\n <option value=\"repeating-linear\">repeating linear</option>\n <option value=\"repeating-radial\">repeating radial</option>\n <option value=\"repeating-conic\">repeating conic</option>\n </select>\n <span class=\"ngx-input-prefix\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 384 512\">\n <path\n d=\"M360.5 217.5l-152 143.1C203.9 365.8 197.9 368 192 368s-11.88-2.188-16.5-6.562L23.5 217.5C13.87 208.3 13.47 193.1 22.56 183.5C31.69 173.8 46.94 173.5 56.5 182.6L192 310.9l135.5-128.4c9.562-9.094 24.75-8.75 33.94 .9375C370.5 193.1 370.1 208.3 360.5 217.5z\" />\n </svg>\n </span>\n </div>\n </div>\n </div>\n }\n\n @if (showSamples()) {\n <div class=\"default-list\">\n @for (item of defaultGradients; track $index; let i = $index) {\n <span [style.background]=\"item\" (click)=\"onSelectDefault(item, i)\"></span>\n }\n </div>\n }\n </div>\n</div>\n","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n Renderer2,\n ViewContainerRef,\n forwardRef,\n input,\n output,\n} from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { NgxInputGradientComponent } from '../components/input-gradient.component';\nimport { isValidGradient } from '../utils/build-gradient';\nimport { OverlayRef, OverlayService } from 'ngx-kit/core';\n\n@Directive({\n selector: '[ngxInputGradient]',\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => NgxInputGradient), multi: true },\n {\n provide: NG_VALIDATORS,\n multi: true,\n useExisting: NgxInputGradient,\n },\n ],\n})\nexport class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {\n readonly setInputBackground = input(true);\n private _targetInput?: HTMLInputElement;\n\n readonly showSamples = input(true);\n @Input('ngxInputColor') set ngxInputColor(\n el: HTMLInputElement | ElementRef<HTMLInputElement> | null | undefined | '',\n ) {\n this.isHostInput = false;\n if (el instanceof ElementRef) {\n this._targetInput = el.nativeElement;\n } else if (el instanceof HTMLInputElement) {\n this.isHostInput = true;\n this._targetInput = el;\n } else {\n this._targetInput = undefined;\n }\n\n if (this._targetInput) {\n this._targetInput.removeEventListener('input', this.boundInputHandler);\n this._targetInput.addEventListener('input', this.boundInputHandler);\n }\n }\n protected readonly change = output<string>();\n\n private boundInputHandler = (e: Event) => {\n this.writeValue((e.target as HTMLInputElement).value);\n };\n private isHostInput = false;\n private pickerRef?: OverlayRef<NgxInputGradientComponent>;\n\n value = '';\n\n protected _onChange = (value: string) => {};\n protected _onTouched = () => {};\n _onValidateChange = () => {};\n constructor(\n private el: ElementRef<HTMLInputElement>,\n private renderer: Renderer2,\n private viewContainerRef: ViewContainerRef,\n private overlayService: OverlayService,\n ) {}\n\n @HostListener('click', ['$event']) onClick(ev: Event) {\n ev.stopPropagation();\n ev.preventDefault();\n this.toggle();\n }\n ngAfterViewInit(): void {\n if (this._targetInput && this._targetInput.tagName.toLowerCase() === 'input') {\n this.writeValue(this._targetInput.value);\n }\n }\n registerOnChange(fn: any): void {\n this._onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this._onTouched = fn;\n }\n setDisabledState(disabled: boolean): void {\n if (disabled) {\n this.renderer.setProperty(this.el.nativeElement, 'disabled', disabled);\n } else {\n this.renderer.removeAttribute(this.el.nativeElement, 'disabled');\n }\n }\n registerOnValidatorChange(fn: () => void): void {\n this._onValidateChange = fn;\n }\n validate(control: AbstractControl): ValidationErrors | null {\n return null;\n }\n\n ngOnDestroy(): void {\n this.destroyPicker();\n }\n\n writeValue(val: any): void {\n this.value = val;\n if (val && isValidGradient(val)) {\n // const parsed = parseGradient(val);\n if (this.setInputBackground()) {\n this.renderer.setStyle(this.el.nativeElement, 'background', val);\n }\n if (this.isHostInput) {\n this.el.nativeElement.value = this.value;\n }\n this._onValidateChange();\n } else {\n this.renderer.setStyle(this.el.nativeElement, 'background', '');\n }\n }\n\n toggle() {\n if (this.pickerRef) {\n this.destroyPicker();\n return;\n }\n\n this.pickerRef = this.overlayService.open({\n anchor: this.el.nativeElement,\n component: NgxInputGradientComponent,\n viewContainerRef: this.viewContainerRef,\n alignment: 'start',\n placement: 'auto',\n configure: (instance, ref) => {\n instance.writeValue(this.value);\n ref.componentRef?.setInput('showSamples', this.showSamples());\n instance.change.subscribe((c: string) => {\n this.value = c;\n this.emitChange(c);\n });\n\n // instance.closed.subscribe(() => ref.close());\n },\n onClosed: () => {\n this.pickerRef = undefined;\n },\n });\n }\n\n destroyPicker() {\n if (this.pickerRef) {\n this.pickerRef.close();\n this.pickerRef = undefined;\n }\n }\n\n private async emitChange(c: string) {\n if (this.setInputBackground()) {\n this.renderer.setStyle(this.el.nativeElement, 'background', c);\n }\n\n // اگر روی input باشیم، مقدار رو در input قرار بده\n if (this.isHostInput) {\n const input = this.el.nativeElement as HTMLInputElement;\n input.value = c;\n }\n\n // اگر targetInput وجود داره، در اونم مقدار ست کن\n if (this._targetInput instanceof HTMLInputElement) {\n this._targetInput.value = c;\n const event = new Event('input', { bubbles: true });\n this._targetInput.dispatchEvent(event);\n }\n\n this._onChange(c);\n this.change.emit(c);\n this._onTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import { OnInit, OnDestroy, ChangeDetectorRef, AfterViewInit, ElementRef,
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OnInit, OnDestroy, ChangeDetectorRef, AfterViewInit, ElementRef, Renderer2, ViewContainerRef } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor, Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
4
|
import { RangeSliderComponent, OverlayService } from 'ngx-kit/core';
|
|
5
5
|
|
|
@@ -12,8 +12,8 @@ type GradientType = 'linear' | 'radial' | 'conic' | 'repeating-linear' | 'repeat
|
|
|
12
12
|
|
|
13
13
|
declare class NgxInputGradientComponent implements OnInit, OnDestroy, ControlValueAccessor, Validator {
|
|
14
14
|
private cd;
|
|
15
|
-
readonly showSamples:
|
|
16
|
-
readonly change:
|
|
15
|
+
readonly showSamples: _angular_core.InputSignal<boolean>;
|
|
16
|
+
readonly change: _angular_core.OutputEmitterRef<string>;
|
|
17
17
|
defaultGradients: string[];
|
|
18
18
|
resultGradient: string;
|
|
19
19
|
baseBg: string;
|
|
@@ -46,8 +46,8 @@ declare class NgxInputGradientComponent implements OnInit, OnDestroy, ControlVal
|
|
|
46
46
|
emitChange(): void;
|
|
47
47
|
setDefaultGradients(): void;
|
|
48
48
|
onSelectDefault(item: string, i: number): void;
|
|
49
|
-
static ɵfac:
|
|
50
|
-
static ɵcmp:
|
|
49
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputGradientComponent, never>;
|
|
50
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NgxInputGradientComponent, "ngx-input-gradient", never, { "showSamples": { "alias": "showSamples"; "required": false; "isSignal": true; }; }, { "change": "change"; }, never, never, true, never>;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
declare class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValueAccessor, Validator {
|
|
@@ -55,10 +55,11 @@ declare class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValue
|
|
|
55
55
|
private renderer;
|
|
56
56
|
private viewContainerRef;
|
|
57
57
|
private overlayService;
|
|
58
|
-
setInputBackground: boolean
|
|
58
|
+
readonly setInputBackground: _angular_core.InputSignal<boolean>;
|
|
59
59
|
private _targetInput?;
|
|
60
|
+
readonly showSamples: _angular_core.InputSignal<boolean>;
|
|
60
61
|
set ngxInputColor(el: HTMLInputElement | ElementRef<HTMLInputElement> | null | undefined | '');
|
|
61
|
-
change:
|
|
62
|
+
protected readonly change: _angular_core.OutputEmitterRef<string>;
|
|
62
63
|
private boundInputHandler;
|
|
63
64
|
private isHostInput;
|
|
64
65
|
private pickerRef?;
|
|
@@ -79,8 +80,8 @@ declare class NgxInputGradient implements AfterViewInit, OnDestroy, ControlValue
|
|
|
79
80
|
toggle(): void;
|
|
80
81
|
destroyPicker(): void;
|
|
81
82
|
private emitChange;
|
|
82
|
-
static ɵfac:
|
|
83
|
-
static ɵdir:
|
|
83
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxInputGradient, never>;
|
|
84
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxInputGradient, "[ngxInputGradient]", never, { "setInputBackground": { "alias": "setInputBackground"; "required": false; "isSignal": true; }; "showSamples": { "alias": "showSamples"; "required": false; "isSignal": true; }; "ngxInputColor": { "alias": "ngxInputColor"; "required": false; }; }, { "change": "change"; }, never, never, true, never>;
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
export { NgxInputGradient, NgxInputGradientComponent };
|