7 changed files with 32 additions and 167 deletions
@ -1,35 +0,0 @@ |
|||||
<!-- |
|
||||
|
|
||||
Copyright © 2016-2023 The Thingsboard Authors |
|
||||
|
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); |
|
||||
you may not use this file except in compliance with the License. |
|
||||
You may obtain a copy of the License at |
|
||||
|
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
|
||||
|
|
||||
Unless required by applicable law or agreed to in writing, software |
|
||||
distributed under the License is distributed on an "AS IS" BASIS, |
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
||||
See the License for the specific language governing permissions and |
|
||||
limitations under the License. |
|
||||
|
|
||||
--> |
|
||||
<div fxLayoutAlign="row"> |
|
||||
<div fxLayoutAlign="row"> |
|
||||
<mat-form-field class="mat-block"> |
|
||||
<input matInput pattern="[0-9]*" min="0" max="255" [value]="value?.getRed().toString()" (input)="onInputChange($event, 'R')"> |
|
||||
</mat-form-field> |
|
||||
<mat-form-field class="mat-block"> |
|
||||
<input matInput pattern="[0-9]*" min="0" max="255" [value]="value?.getGreen().toString()" (input)="onInputChange($event, 'G')"> |
|
||||
</mat-form-field> |
|
||||
<mat-form-field class="mat-block"> |
|
||||
<input matInput pattern="[0-9]*" min="0" max="255" [value]="value?.getBlue().toString()" (input)="onInputChange($event, 'B')"> |
|
||||
</mat-form-field> |
|
||||
</div> |
|
||||
|
|
||||
<mat-form-field class="mat-block"> |
|
||||
<input matInput min="0" max="1" [value]="value?.getAlpha().toString()" (input)="onInputChange($event, 'A')"> |
|
||||
</mat-form-field> |
|
||||
</div> |
|
||||
|
|
||||
@ -1,86 +0,0 @@ |
|||||
///
|
|
||||
/// Copyright © 2016-2023 The Thingsboard Authors
|
|
||||
///
|
|
||||
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||
/// you may not use this file except in compliance with the License.
|
|
||||
/// You may obtain a copy of the License at
|
|
||||
///
|
|
||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||
///
|
|
||||
/// Unless required by applicable law or agreed to in writing, software
|
|
||||
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||
/// See the License for the specific language governing permissions and
|
|
||||
/// limitations under the License.
|
|
||||
///
|
|
||||
|
|
||||
import { |
|
||||
ChangeDetectionStrategy, |
|
||||
ChangeDetectorRef, |
|
||||
Component, |
|
||||
EventEmitter, |
|
||||
Input, |
|
||||
OnInit, |
|
||||
Output |
|
||||
} from '@angular/core'; |
|
||||
import { Color } from '@iplab/ngx-color-picker'; |
|
||||
import { ColorType } from '@shared/components/color-picker/color-picker.component'; |
|
||||
|
|
||||
@Component({ |
|
||||
selector: `tb-color-picker-input-component`, |
|
||||
templateUrl: `./color-picker-input.component.html`, |
|
||||
styleUrls: [], |
|
||||
changeDetection: ChangeDetectionStrategy.OnPush |
|
||||
}) |
|
||||
export class ColorPickerInputComponent { |
|
||||
|
|
||||
@Input() |
|
||||
public hue: Color; |
|
||||
|
|
||||
@Output() |
|
||||
public hueChange = new EventEmitter<Color>(false); |
|
||||
|
|
||||
@Input() |
|
||||
public color: Color; |
|
||||
|
|
||||
@Output() |
|
||||
public colorChange = new EventEmitter<Color>(false); |
|
||||
|
|
||||
public labelVisible: boolean; |
|
||||
|
|
||||
@Input() |
|
||||
public set label(value) { |
|
||||
this.labelVisible = true; |
|
||||
} |
|
||||
|
|
||||
@Input() |
|
||||
public colorFormat: string; |
|
||||
|
|
||||
public isAlphaVisible = true; |
|
||||
|
|
||||
@Input() |
|
||||
public set alpha(isVisible: boolean) { |
|
||||
this.isAlphaVisible = isVisible; |
|
||||
} |
|
||||
|
|
||||
public get value() { |
|
||||
return this.color ? this.color.getRgba() : null; |
|
||||
} |
|
||||
|
|
||||
constructor() { |
|
||||
} |
|
||||
|
|
||||
public onInputChange(newValue, color: 'R' | 'G' | 'B' | 'A') { |
|
||||
const value = this.value; |
|
||||
const red = color === 'R' ? newValue : value.red; |
|
||||
const green = color === 'G' ? newValue : value.green; |
|
||||
const blue = color === 'B' ? newValue : value.blue; |
|
||||
const alpha = color === 'A' ? newValue : value.alpha; |
|
||||
|
|
||||
const newColor = new Color().setRgba(red, green, blue, alpha); |
|
||||
const hue = new Color().setHsva(newColor.getHsva().hue); |
|
||||
|
|
||||
this.hueChange.emit(hue); |
|
||||
this.colorChange.emit(newColor); |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue