@festo-ui/angular 4.0.3-pre-20221007.1 → 4.0.3-pre-20221007.4
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.
|
@@ -245,7 +245,7 @@ ColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
245
245
|
useExisting: forwardRef(() => ColorPickerComponent),
|
|
246
246
|
multi: true
|
|
247
247
|
}
|
|
248
|
-
], usesOnChanges: true, ngImport: i0, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"], dependencies: [{ 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
248
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"], dependencies: [{ 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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
249
249
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ColorPickerComponent, decorators: [{
|
|
250
250
|
type: Component,
|
|
251
251
|
args: [{ selector: 'fng-color-picker', providers: [
|
|
@@ -254,7 +254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
254
254
|
useExisting: forwardRef(() => ColorPickerComponent),
|
|
255
255
|
multi: true
|
|
256
256
|
}
|
|
257
|
-
], encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"] }]
|
|
257
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"] }]
|
|
258
258
|
}], propDecorators: { useAlpha: [{
|
|
259
259
|
type: Input
|
|
260
260
|
}], alpha: [{
|
|
@@ -270,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
270
270
|
}], paletteOnly: [{
|
|
271
271
|
type: Input
|
|
272
272
|
}] } });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWE7SUFDekMsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFjSCxNQUFNLE9BQU8sb0JBQW9CO0lBYmpDO1FBY0UsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUVmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFWixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBY2hCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWlDbkQ7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQU03QixpQkFBaUI7UUFDakIs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QUFJLENBQUMsUUFBUSxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7O2lIQXRRVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw0TkFUcEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsK0NDakNILDJwTUFnSkE7MkZENUdhLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGlCQUNjLGlCQUFpQixDQUFDLElBQUk7OEJBUzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixLQUFLO2dCQVlJLFdBQVc7c0JBQXBCLE1BQU07Z0JBU0gsS0FBSztzQkFEUixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFhRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDZGtEcmFnTW92ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9ySGVscGVyIH0gZnJvbSAnLi9jb2xvci1oZWxwZXInO1xuXG5leHBvcnQgY29uc3QgUFJFREVGSU5FRF9DT0xPUlM6IHN0cmluZ1tdID0gW1xuICAnIzAwOTFkYycsXG4gICcjMzMzMzMzJyxcbiAgJyNmZmZmZmYnLFxuICAnI2YyZjNmNScsXG4gICcjZTVlOGViJyxcbiAgJyNkOGRjZTEnLFxuICAnI2I2YmVjNicsXG4gICcjODBjYTNkJyxcbiAgJyNmZmQ2MDAnLFxuICAnI2ZmOTYwMCcsXG4gICcjZDUwMDAwJ1xuXTtcblxuLyoqXG4gKiBBIGN1c3RvbSBmb3JtIGVsZW1lbnQgdG8gcGljayBhIGNvbG9yLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbmctY29sb3ItcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50LnNjc3MnLCAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2xvclBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBiYXNlU2l6ZSA9IDE4NDtcblxuICBpbnB1dFR5cGUgPSAnUkdCJztcblxuICBpc1NlbGVjdE9wZW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSB1c2VBbHBoYSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBhbHBoYSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlubmVyQWxwaGE7XG4gIH1cbiAgc2V0IGFscGhhKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPD0gMTAwICYmIHZhbHVlID49IDAgJiYgdGhpcy5pbm5lckFscGhhICE9PSBNYXRoLnJvdW5kKHZhbHVlKSkge1xuICAgICAgdGhpcy5pbm5lckFscGhhID0gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gICAgICB0aGlzLmFscGhhSW5wdXQgPSB0aGlzLmlubmVyQWxwaGE7XG4gICAgICB0aGlzLnVwZGF0ZUtub2JzKCk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIGFscGhhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGNvbG9yXG4gICAqL1xuICBnZXQgY29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckNvbG9yO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcih2YWx1ZSkpIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IHZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29sb3JSZ2IodHJ1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJEaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlubmVyRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFuIGFycmF5IHdpdGggY29sb3Igc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIHBhbGV0dGUuXG4gICAqIEV4YW1wbGU6IFsnIzIzNDU2NywgJyNBQTAwRkYnXVxuICAgKiBQYXNzIG51bGwgdG8gaGlkZSBwYWxldHRlLlxuICAgKi9cbiAgQElucHV0KCkgcGFsZXR0ZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGhpZGUgdGhlIGh1ZSBhbmQgZ3JhZGllbnQgcGlja2VyIGFuZCBzaG90IHRoZSBwYWxldHRlIG9ubHkuXG4gICAqL1xuICBASW5wdXQoKSBwYWxldHRlT25seSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgaW5uZXJDb2xvcjogc3RyaW5nO1xuICBwcml2YXRlIGlubmVyRGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgaW5uZXJBbHBoYTogbnVtYmVyO1xuXG4gIC8vIGlucHV0IGNvbnRyb2xzXG4gIGhleElucHV0Q29sb3IgPSAnI2ZmMDAwMCc7XG4gIHJlZElucHV0ID0gMjU1O1xuICBncmVlbklucHV0ID0gMDtcbiAgYmx1ZUlucHV0ID0gMDtcbiAgYWxwaGFJbnB1dCA9IDEwMDtcblxuICAvLyBIU1YgdmFsdWVcbiAgaHVlOiBudW1iZXI7XG4gIHNhdHVyYXRpb246IG51bWJlcjtcbiAgdmFsdWU6IG51bWJlcjtcblxuICAvLyBwb2l0aW9ucyBvZiB0aGUga25vYnMgaW4gcHhcbiAgaHVlS25vYk9mZnNldCA9IDA7XG4gIGFscGhhS25vYk9mZnNldCA9IDA7XG4gIHNhdHVyYXRpb25Lbm9iT2Zmc2V0ID0gMDtcbiAgdmFsdWVLbm9iT2Zmc2V0ID0gMDtcblxuICAvLyBjYWxsYmFja3MgZm9yIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIG9uVG91Y2hlZDogKCkgPT4gYW55O1xuICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IGFueTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXM/LnBhbGV0dGU/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCAmJiBjaGFuZ2VzLnBhbGV0dGUuY3VycmVudFZhbHVlLmluZGV4T2YoJ0ZFU1RPX0NPTE9SUycpICE9PSAtMSkge1xuICAgICAgdGhpcy5wYWxldHRlID0gUFJFREVGSU5FRF9DT0xPUlM7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZShjb2xvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcihjb2xvcikpIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IGNvbG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29sb3JSZ2IoZmFsc2UpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pbm5lckRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIHVwZGF0ZSBtZXRob2QgZm9yIGNoYW5nZXMgb2YgdGhlIHJnYiB2YWx1ZVxuICB1cGRhdGVDb2xvclJnYihlbWl0Q2hhbmdlOiBib29sZWFuKSB7XG4gICAgY29uc3QgY3VycmVudENvbG9yID0gdGhpcy5pbm5lckNvbG9yIHx8ICcjRkZGRkZGJztcbiAgICB0aGlzLnVwZGF0ZUlucHV0cyhjdXJyZW50Q29sb3IpO1xuICAgIGNvbnN0IHJnYiA9IENvbG9ySGVscGVyLmhleFRvUmdiKGN1cnJlbnRDb2xvcik7XG4gICAgY29uc3QgaHN2ID0gQ29sb3JIZWxwZXIucmdiVG9Ic3YocmdiKTtcbiAgICB0aGlzLmh1ZSA9IGhzdi5oO1xuICAgIHRoaXMuc2F0dXJhdGlvbiA9IGhzdi5zO1xuICAgIHRoaXMudmFsdWUgPSBoc3YudjtcbiAgICB0aGlzLnVwZGF0ZUtub2JzKCk7XG4gICAgaWYgKGVtaXRDaGFuZ2UpIHtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlubmVyQ29sb3IpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub25Ub3VjaGVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGUgbWV0aG9kIGZvciBjaGFuZ2VzIG9mIHRoZSBoc3YgdmFsdWVcbiAgdXBkYXRlQ29sb3JIc3YoKSB7XG4gICAgY29uc3QgcmdiID0gQ29sb3JIZWxwZXIuaHN2VG9SZ2IoeyBoOiB0aGlzLmh1ZSwgczogdGhpcy5zYXR1cmF0aW9uLCB2OiB0aGlzLnZhbHVlIH0pO1xuICAgIHRoaXMuaW5uZXJDb2xvciA9IENvbG9ySGVscGVyLnJnYlRvSGV4KHJnYik7XG4gICAgdGhpcy51cGRhdGVJbnB1dHModGhpcy5pbm5lckNvbG9yKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaW5uZXJDb2xvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGV2ZW50IGhhbmRsZXIgZm9yIGlucHV0c1xuICBvbkhleEJsdXIoKSB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcih0aGlzLmhleElucHV0Q29sb3IpKSB7XG4gICAgICB0aGlzLmNvbG9yID0gdGhpcy5oZXhJbnB1dENvbG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGV4SW5wdXRDb2xvciA9IHRoaXMuY29sb3I7XG4gICAgfVxuICB9XG5cbiAgb25IZXhJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5pc0hleENvbG9yKHRoaXMuaGV4SW5wdXRDb2xvcikpIHtcbiAgICAgIHRoaXMuY29sb3IgPSB0aGlzLmhleElucHV0Q29sb3IudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gIH1cblxuICBvblJnYkJsdXIoKSB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcih0aGlzLmhleElucHV0Q29sb3IpKSB7XG4gICAgICB0aGlzLmNvbG9yID0gdGhpcy5oZXhJbnB1dENvbG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGV4SW5wdXRDb2xvciA9IHRoaXMuY29sb3I7XG4gICAgfVxuICB9XG5cbiAgb25SZ2JJbnB1dCh2YWx1ZTogbnVtYmVyLCBjaGFubmVsOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPiAyNTUgfHwgdmFsdWUgPCAwKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0cyh0aGlzLmlubmVyQ29sb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZ2IgPSBDb2xvckhlbHBlci5oZXhUb1JnYih0aGlzLmlubmVyQ29sb3IpO1xuICAgICAgcmdiW2NoYW5uZWxdID0gdmFsdWU7XG4gICAgICB0aGlzLmlubmVyQ29sb3IgPSBDb2xvckhlbHBlci5yZ2JUb0hleChyZ2IpO1xuICAgICAgdGhpcy51cGRhdGVDb2xvclJnYih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvbkFscGhhSW5wdXQodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+IDEwMCB8fCB2YWx1ZSA8IDApIHtcbiAgICAgIHRoaXMuYWxwaGFJbnB1dCA9IHRoaXMuaW5uZXJBbHBoYTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hbHBoYSA9IHZhbHVlO1xuICAgICAgdGhpcy5hbHBoYUNoYW5nZS5lbWl0KHRoaXMuYWxwaGEpO1xuICAgIH1cbiAgfVxuXG4gIG9uR3JhZGllbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuc2F0dXJhdGlvbiA9IGV2ZW50Lm9mZnNldFggLyB0aGlzLmJhc2VTaXplO1xuICAgIHRoaXMudmFsdWUgPSAodGhpcy5iYXNlU2l6ZSAtIGV2ZW50Lm9mZnNldFkpIC8gdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ySHN2KCk7XG4gICAgdGhpcy51cGRhdGVLbm9icygpO1xuICB9XG5cbiAgb25HcmFkaWVudERyYWcoZXZlbnQ6IENka0RyYWdNb3ZlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xuICAgIHRoaXMuc2F0dXJhdGlvbiA9IE1hdGguZmxvb3IocG9zaXRpb24ueCkgLyB0aGlzLmJhc2VTaXplO1xuICAgIHRoaXMudmFsdWUgPSAodGhpcy5iYXNlU2l6ZSAtIHBvc2l0aW9uLnkpIC8gdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ySHN2KCk7XG4gIH1cblxuICBvbkh1ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5odWUgPSBldmVudC5vZmZzZXRZIC8gdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ySHN2KCk7XG4gICAgdGhpcy51cGRhdGVLbm9icygpO1xuICB9XG5cbiAgb25BbHBoYUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5hbHBoYSA9IDEwMCAtIE1hdGgucm91bmQoKGV2ZW50Lm9mZnNldFkgLyB0aGlzLmJhc2VTaXplKSAqIDEwMCk7XG4gICAgdGhpcy5hbHBoYUNoYW5nZS5lbWl0KHRoaXMuYWxwaGEpO1xuICB9XG5cbiAgb25IdWVEcmFnKGV2ZW50OiBDZGtEcmFnTW92ZSkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gZXZlbnQuc291cmNlLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcbiAgICB0aGlzLmh1ZSA9IChwb3NpdGlvbi55ICsgdGhpcy5iYXNlU2l6ZSArIDE0KSAvIHRoaXMuYmFzZVNpemU7XG4gICAgdGhpcy51cGRhdGVDb2xvckhzdigpO1xuICB9XG5cbiAgb25BbHBoYURyYWcoZXZlbnQ6IENka0RyYWdNb3ZlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xuICAgIHRoaXMuaW5uZXJBbHBoYSA9IDEwMCAtIE1hdGgucm91bmQoKHBvc2l0aW9uLnkgLyB0aGlzLmJhc2VTaXplKSAqIDEwMCk7XG4gICAgdGhpcy5hbHBoYUlucHV0ID0gdGhpcy5pbm5lckFscGhhO1xuICAgIHRoaXMuYWxwaGFDaGFuZ2UuZW1pdCh0aGlzLmlubmVyQWxwaGEpO1xuICB9XG5cbiAgb25SZW1vdmVDb2xvcigpIHtcbiAgICBpZiAodGhpcy51c2VBbHBoYSkge1xuICAgICAgdGhpcy5hbHBoYSA9IDA7XG4gICAgICB0aGlzLmFscGhhQ2hhbmdlLmVtaXQodGhpcy5hbHBoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sb3IgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzSGV4Q29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiAvXiNbMC05QS1GXXs2fSQvaS50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIGdldFNhdHVyYXRpb25HcmFkaWVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgIGhzbCgnICsgdGhpcy5odWUgKiAzNjAgKyAnLCAxMDAlLCA1MCUpICknO1xuICB9XG5cbiAgdXBkYXRlSW5wdXRzKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhleElucHV0Q29sb3IgPSBoZXhDb2xvcjtcbiAgICBjb25zdCByZ2IgPSBDb2xvckhlbHBlci5oZXhUb1JnYihoZXhDb2xvcik7XG4gICAgdGhpcy5yZWRJbnB1dCA9IHJnYi5yO1xuICAgIHRoaXMuZ3JlZW5JbnB1dCA9IHJnYi5nO1xuICAgIHRoaXMuYmx1ZUlucHV0ID0gcmdiLmI7XG4gIH1cblxuICB1cGRhdGVLbm9icygpIHtcbiAgICB0aGlzLmFscGhhS25vYk9mZnNldCA9ICgoMTAwIC0gdGhpcy5hbHBoYSkgLyAxMDApICogdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLmh1ZUtub2JPZmZzZXQgPSB0aGlzLmh1ZSAqIHRoaXMuYmFzZVNpemUgLSAodGhpcy5iYXNlU2l6ZSArIDE0KTtcbiAgICB0aGlzLnNhdHVyYXRpb25Lbm9iT2Zmc2V0ID0gdGhpcy5zYXR1cmF0aW9uICogdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnZhbHVlS25vYk9mZnNldCA9ICgxIC0gdGhpcy52YWx1ZSkgKiB0aGlzLmJhc2VTaXplO1xuICB9XG5cbiAgb25DaGFuZ2VUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuaW5wdXRUeXBlID0gdHlwZTtcbiAgICB0aGlzLmlzU2VsZWN0T3BlbiA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZndlLWNvbG9yLXBpY2tlclwiIFtjbGFzcy5md2UtYWxwaGEtYWN0aXZlXT1cInVzZUFscGhhXCI+XG4gIDxkaXYgY2xhc3M9XCJmd2UtZC1mbGV4XCIgKm5nSWY9XCIhcGFsZXR0ZU9ubHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZndlLWdyYWRpZW50LXBpY2tlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZ3ZS1zYXR1cmF0aW9uLWdyYWRpZW50XCIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6IGdldFNhdHVyYXRpb25HcmFkaWVudCgpIH1cIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmd2UtYnJpZ2h0bmVzcy1ncmFkaWVudFwiIChjbGljayk9XCJvbkdyYWRpZW50Q2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZ3ZS1rbm9iXCJcbiAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLmdyYWRpZW50LXBpY2tlclwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cInsgeDogc2F0dXJhdGlvbktub2JPZmZzZXQsIHk6IHZhbHVlS25vYk9mZnNldCB9XCJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJvbkdyYWRpZW50RHJhZygkZXZlbnQpXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiY29sb3JcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1odWUtcGlja2VyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZndlLXBpY2tlci1iYWNrZ3JvdW5kXCIgKGNsaWNrKT1cIm9uSHVlQ2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZ3ZS1rbm9iXCJcbiAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLmh1ZS1waWNrZXJcIlxuICAgICAgICBjZGtEcmFnTG9ja0F4aXM9XCJ5XCJcbiAgICAgICAgY2RrRHJhZ1xuICAgICAgICBbY2RrRHJhZ0ZyZWVEcmFnUG9zaXRpb25dPVwieyB4OiAzLCB5OiBodWVLbm9iT2Zmc2V0IH1cIlxuICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm9uSHVlRHJhZygkZXZlbnQpXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwiJ2hzbCgnICsgaHVlICogMzYwICsgJywgMTAwJSwgNTAlKSdcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1hbHBoYS1waWNrZXJcIiAqbmdJZj1cInVzZUFscGhhXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiZndlLW5vLWNvbG9yLXBhdHRlcm5cIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgIGlkPVwiY2FudmFzMVwiXG4gICAgICAgIHdpZHRoPVwiOFwiXG4gICAgICAgIGhlaWdodD1cIjE4NFwiXG4gICAgICA+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgIDxwYXR0ZXJuIGlkPVwiYndzcXVhcmUycHhcIiB3aWR0aD1cIjRcIiBoZWlnaHQ9XCI0XCIgcGF0dGVyblVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjBcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZTVlOGViXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjJcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZTVlOGViXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICA8L3BhdHRlcm4+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHJ4PVwiNFwiIHJ5PVwiNFwiIHdpZHRoPVwiOFwiIGhlaWdodD1cIjE4NFwiIGZpbGw9XCJ1cmwoI2J3c3F1YXJlMnB4KVwiIHN0cm9rZS13aWR0aD1cIjBcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZndlLXBpY2tlci1iYWNrZ3JvdW5kXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQWxwaGFDbGljaygkZXZlbnQpXCJcbiAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICdsaW5lYXItZ3JhZGllbnQoICcgKyBjb2xvciArICcgLCB0cmFuc3BhcmVudCknIH1cIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZndlLWtub2JcIlxuICAgICAgICBjZGtEcmFnQm91bmRhcnk9XCIuYWxwaGEtcGlja2VyXCJcbiAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieVwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cInsgeDogMywgeTogYWxwaGFLbm9iT2Zmc2V0IH1cIlxuICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm9uQWxwaGFEcmFnKCRldmVudClcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvclwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmd2UtbXQtc1wiICpuZ0lmPVwiIXBhbGV0dGVPbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImZ3ZS10eXBlLXNlbGVjdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZ3ZS10eXBlLWluZGljYXRvclwiIChjbGljayk9XCJpc1NlbGVjdE9wZW4gPSAhaXNTZWxlY3RPcGVuXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZndlLWlucHV0LXR5cGVcIj57eyBpbnB1dFR5cGUgfX08L3NwYW4+XG4gICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tYXJyb3dzLWNvbGxhcHNlXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZndlLXBvcG92ZXJcIiAqbmdJZj1cImlzU2VsZWN0T3BlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZndlLXR5cGUtaXRlbVwiIChjbGljayk9XCJvbkNoYW5nZVR5cGUoJ0hFWCcpXCIgW2NsYXNzLmZ3ZS1zZWxlY3RlZF09XCJpbnB1dFR5cGUgPT09ICdIRVgnXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1tZW51LWNoZWNrXCI+PC9pPiBIRVhcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmd2UtdHlwZS1pdGVtXCIgKGNsaWNrKT1cIm9uQ2hhbmdlVHlwZSgnUkdCJylcIiBbY2xhc3MuZndlLXNlbGVjdGVkXT1cImlucHV0VHlwZSA9PT0gJ1JHQidcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLW1lbnUtY2hlY2tcIj48L2k+IFJHQlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1kLWZsZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dFR5cGUgPT09ICdIRVgnXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0IGZ3ZS1oZXgtaW5wdXRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImhleElucHV0Q29sb3JcIiAoYmx1cik9XCJvbkhleEJsdXIoKVwiIChpbnB1dCk9XCJvbkhleElucHV0KClcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRUeXBlID09PSAnUkdCJ1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtcmVkLWlucHV0XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInJlZElucHV0XCIgKGlucHV0KT1cIm9uUmdiSW5wdXQocmVkSW5wdXQsICdyJylcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtZ3JlZW4taW5wdXRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwiZ3JlZW5JbnB1dFwiIChpbnB1dCk9XCJvblJnYklucHV0KGdyZWVuSW5wdXQsICdnJylcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtYmx1ZS1pbnB1dFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjI1NVwiIFsobmdNb2RlbCldPVwiYmx1ZUlucHV0XCIgKGlucHV0KT1cIm9uUmdiSW5wdXQoYmx1ZUlucHV0LCAnYicpXCIgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtYWxwaGEtaW5wdXQgZndlLW1sLWF1dG9cIiAqbmdJZj1cInVzZUFscGhhXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIFsobmdNb2RlbCldPVwiYWxwaGFJbnB1dFwiIChpbnB1dCk9XCJvbkFscGhhSW5wdXQoYWxwaGFJbnB1dClcIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZndlLXBlcmNlbnQtY2hhclwiPiU8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmd2UtbXQteHMgZndlLWNvbG9yLWdyaWRcIiAqbmdJZj1cInBhbGV0dGUgJiYgcGFsZXR0ZS5sZW5ndGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZndlLXJlbW92ZS1jb2xvci1idXR0b25cIiAoY2xpY2spPVwib25SZW1vdmVDb2xvcigpXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiZndlLW5vLWNvbG9yLXBhdHRlcm5cIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgIGlkPVwiY2FudmFzMVwiXG4gICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICA+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgIDxwYXR0ZXJuIGlkPVwiYndzcXVhcmUycHhcIiB3aWR0aD1cIjRcIiBoZWlnaHQ9XCI0XCIgcGF0dGVyblVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjBcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZTVlOGViXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjJcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZTVlOGViXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICA8L3BhdHRlcm4+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHJ4PVwiMFwiIHJ5PVwiMFwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ1cmwoI2J3c3F1YXJlMnB4KVwiIHN0cm9rZS13aWR0aD1cIjBcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLW1lbnUtY2hlY2tcIiBbY2xhc3MuZndlLWNvbG9yLXRleHRdPVwiIWNvbG9yXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbG9ySXRlbSBvZiBwYWxldHRlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZndlLWNvbG9yLWl0ZW1cIlxuICAgICAgICBbY2xhc3MuZndlLXdoaXRlLWl0ZW1dPVwiY29sb3JJdGVtLnRvVXBwZXJDYXNlKCkgPT09ICcjRkZGRkZGJ1wiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9ySXRlbVwiXG4gICAgICAgIChjbGljayk9XCJjb2xvciA9IGNvbG9ySXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tbWVudS1jaGVja1wiICpuZ0lmPVwiY29sb3JJdGVtLnRvVXBwZXJDYXNlKCkgPT09IGNvbG9yXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL2Zvcm1zL2NvbG9yLXBpY2tlci9jb2xvci1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvZm9ybXMvY29sb3ItcGlja2VyL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0MsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWE7SUFDekMsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsU0FBUztJQUNULFNBQVM7Q0FDVixDQUFDO0FBRUY7O0dBRUc7QUFjSCxNQUFNLE9BQU8sb0JBQW9CO0lBYmpDO1FBY0UsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUVmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFWixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBY2hCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQWlDbkQ7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQU03QixpQkFBaUI7UUFDakIs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QUFJLENBQUMsUUFBUSxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDMUQsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFZO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7O2lIQXRRVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw0TkFUcEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztZQUNuRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsK0NDakNILHVxTUFnSkE7MkZENUdhLG9CQUFvQjtrQkFiaEMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLGlCQUNjLGlCQUFpQixDQUFDLElBQUk7OEJBUzVCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0YsS0FBSztzQkFEUixLQUFLO2dCQVlJLFdBQVc7c0JBQXBCLE1BQU07Z0JBU0gsS0FBSztzQkFEUixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSztnQkFhRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDZGtEcmFnTW92ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbG9ySGVscGVyIH0gZnJvbSAnLi9jb2xvci1oZWxwZXInO1xuXG5leHBvcnQgY29uc3QgUFJFREVGSU5FRF9DT0xPUlM6IHN0cmluZ1tdID0gW1xuICAnIzAwOTFkYycsXG4gICcjMzMzMzMzJyxcbiAgJyNmZmZmZmYnLFxuICAnI2YyZjNmNScsXG4gICcjZTVlOGViJyxcbiAgJyNkOGRjZTEnLFxuICAnI2I2YmVjNicsXG4gICcjODBjYTNkJyxcbiAgJyNmZmQ2MDAnLFxuICAnI2ZmOTYwMCcsXG4gICcjZDUwMDAwJ1xuXTtcblxuLyoqXG4gKiBBIGN1c3RvbSBmb3JtIGVsZW1lbnQgdG8gcGljayBhIGNvbG9yLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmbmctY29sb3ItcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbG9yLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50LnNjc3MnLCAnLi9jb2xvci1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb2xvclBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb2xvclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBiYXNlU2l6ZSA9IDE4NDtcblxuICBpbnB1dFR5cGUgPSAnUkdCJztcblxuICBpc1NlbGVjdE9wZW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSB1c2VBbHBoYSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBhbHBoYSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlubmVyQWxwaGE7XG4gIH1cbiAgc2V0IGFscGhhKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPD0gMTAwICYmIHZhbHVlID49IDAgJiYgdGhpcy5pbm5lckFscGhhICE9PSBNYXRoLnJvdW5kKHZhbHVlKSkge1xuICAgICAgdGhpcy5pbm5lckFscGhhID0gTWF0aC5yb3VuZCh2YWx1ZSk7XG4gICAgICB0aGlzLmFscGhhSW5wdXQgPSB0aGlzLmlubmVyQWxwaGE7XG4gICAgICB0aGlzLnVwZGF0ZUtub2JzKCk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIGFscGhhQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGNvbG9yXG4gICAqL1xuICBnZXQgY29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbm5lckNvbG9yO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjb2xvcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcih2YWx1ZSkpIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IHZhbHVlLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29sb3JSZ2IodHJ1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW5uZXJEaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlubmVyRGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFuIGFycmF5IHdpdGggY29sb3Igc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIHBhbGV0dGUuXG4gICAqIEV4YW1wbGU6IFsnIzIzNDU2NywgJyNBQTAwRkYnXVxuICAgKiBQYXNzIG51bGwgdG8gaGlkZSBwYWxldHRlLlxuICAgKi9cbiAgQElucHV0KCkgcGFsZXR0ZTogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIGhpZGUgdGhlIGh1ZSBhbmQgZ3JhZGllbnQgcGlja2VyIGFuZCBzaG90IHRoZSBwYWxldHRlIG9ubHkuXG4gICAqL1xuICBASW5wdXQoKSBwYWxldHRlT25seSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgaW5uZXJDb2xvcjogc3RyaW5nO1xuICBwcml2YXRlIGlubmVyRGlzYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgaW5uZXJBbHBoYTogbnVtYmVyO1xuXG4gIC8vIGlucHV0IGNvbnRyb2xzXG4gIGhleElucHV0Q29sb3IgPSAnI2ZmMDAwMCc7XG4gIHJlZElucHV0ID0gMjU1O1xuICBncmVlbklucHV0ID0gMDtcbiAgYmx1ZUlucHV0ID0gMDtcbiAgYWxwaGFJbnB1dCA9IDEwMDtcblxuICAvLyBIU1YgdmFsdWVcbiAgaHVlOiBudW1iZXI7XG4gIHNhdHVyYXRpb246IG51bWJlcjtcbiAgdmFsdWU6IG51bWJlcjtcblxuICAvLyBwb2l0aW9ucyBvZiB0aGUga25vYnMgaW4gcHhcbiAgaHVlS25vYk9mZnNldCA9IDA7XG4gIGFscGhhS25vYk9mZnNldCA9IDA7XG4gIHNhdHVyYXRpb25Lbm9iT2Zmc2V0ID0gMDtcbiAgdmFsdWVLbm9iT2Zmc2V0ID0gMDtcblxuICAvLyBjYWxsYmFja3MgZm9yIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIG9uVG91Y2hlZDogKCkgPT4gYW55O1xuICBvbkNoYW5nZTogKGNvbG9yOiBzdHJpbmcpID0+IGFueTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXM/LnBhbGV0dGU/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCAmJiBjaGFuZ2VzLnBhbGV0dGUuY3VycmVudFZhbHVlLmluZGV4T2YoJ0ZFU1RPX0NPTE9SUycpICE9PSAtMSkge1xuICAgICAgdGhpcy5wYWxldHRlID0gUFJFREVGSU5FRF9DT0xPUlM7XG4gICAgfVxuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZShjb2xvcjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcihjb2xvcikpIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IGNvbG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5uZXJDb2xvciA9IG51bGw7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlQ29sb3JSZ2IoZmFsc2UpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pbm5lckRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIC8vIHVwZGF0ZSBtZXRob2QgZm9yIGNoYW5nZXMgb2YgdGhlIHJnYiB2YWx1ZVxuICB1cGRhdGVDb2xvclJnYihlbWl0Q2hhbmdlOiBib29sZWFuKSB7XG4gICAgY29uc3QgY3VycmVudENvbG9yID0gdGhpcy5pbm5lckNvbG9yIHx8ICcjRkZGRkZGJztcbiAgICB0aGlzLnVwZGF0ZUlucHV0cyhjdXJyZW50Q29sb3IpO1xuICAgIGNvbnN0IHJnYiA9IENvbG9ySGVscGVyLmhleFRvUmdiKGN1cnJlbnRDb2xvcik7XG4gICAgY29uc3QgaHN2ID0gQ29sb3JIZWxwZXIucmdiVG9Ic3YocmdiKTtcbiAgICB0aGlzLmh1ZSA9IGhzdi5oO1xuICAgIHRoaXMuc2F0dXJhdGlvbiA9IGhzdi5zO1xuICAgIHRoaXMudmFsdWUgPSBoc3YudjtcbiAgICB0aGlzLnVwZGF0ZUtub2JzKCk7XG4gICAgaWYgKGVtaXRDaGFuZ2UpIHtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlubmVyQ29sb3IpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMub25Ub3VjaGVkICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB1cGRhdGUgbWV0aG9kIGZvciBjaGFuZ2VzIG9mIHRoZSBoc3YgdmFsdWVcbiAgdXBkYXRlQ29sb3JIc3YoKSB7XG4gICAgY29uc3QgcmdiID0gQ29sb3JIZWxwZXIuaHN2VG9SZ2IoeyBoOiB0aGlzLmh1ZSwgczogdGhpcy5zYXR1cmF0aW9uLCB2OiB0aGlzLnZhbHVlIH0pO1xuICAgIHRoaXMuaW5uZXJDb2xvciA9IENvbG9ySGVscGVyLnJnYlRvSGV4KHJnYik7XG4gICAgdGhpcy51cGRhdGVJbnB1dHModGhpcy5pbm5lckNvbG9yKTtcbiAgICBpZiAodGhpcy5vbkNoYW5nZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaW5uZXJDb2xvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCAhPSBudWxsKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGV2ZW50IGhhbmRsZXIgZm9yIGlucHV0c1xuICBvbkhleEJsdXIoKSB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcih0aGlzLmhleElucHV0Q29sb3IpKSB7XG4gICAgICB0aGlzLmNvbG9yID0gdGhpcy5oZXhJbnB1dENvbG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGV4SW5wdXRDb2xvciA9IHRoaXMuY29sb3I7XG4gICAgfVxuICB9XG5cbiAgb25IZXhJbnB1dCgpIHtcbiAgICBpZiAodGhpcy5pc0hleENvbG9yKHRoaXMuaGV4SW5wdXRDb2xvcikpIHtcbiAgICAgIHRoaXMuY29sb3IgPSB0aGlzLmhleElucHV0Q29sb3IudG9VcHBlckNhc2UoKTtcbiAgICB9XG4gIH1cblxuICBvblJnYkJsdXIoKSB7XG4gICAgaWYgKHRoaXMuaXNIZXhDb2xvcih0aGlzLmhleElucHV0Q29sb3IpKSB7XG4gICAgICB0aGlzLmNvbG9yID0gdGhpcy5oZXhJbnB1dENvbG9yLnRvVXBwZXJDYXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGV4SW5wdXRDb2xvciA9IHRoaXMuY29sb3I7XG4gICAgfVxuICB9XG5cbiAgb25SZ2JJbnB1dCh2YWx1ZTogbnVtYmVyLCBjaGFubmVsOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPiAyNTUgfHwgdmFsdWUgPCAwKSB7XG4gICAgICB0aGlzLnVwZGF0ZUlucHV0cyh0aGlzLmlubmVyQ29sb3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZ2IgPSBDb2xvckhlbHBlci5oZXhUb1JnYih0aGlzLmlubmVyQ29sb3IpO1xuICAgICAgcmdiW2NoYW5uZWxdID0gdmFsdWU7XG4gICAgICB0aGlzLmlubmVyQ29sb3IgPSBDb2xvckhlbHBlci5yZ2JUb0hleChyZ2IpO1xuICAgICAgdGhpcy51cGRhdGVDb2xvclJnYih0cnVlKTtcbiAgICB9XG4gIH1cblxuICBvbkFscGhhSW5wdXQodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+IDEwMCB8fCB2YWx1ZSA8IDApIHtcbiAgICAgIHRoaXMuYWxwaGFJbnB1dCA9IHRoaXMuaW5uZXJBbHBoYTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hbHBoYSA9IHZhbHVlO1xuICAgICAgdGhpcy5hbHBoYUNoYW5nZS5lbWl0KHRoaXMuYWxwaGEpO1xuICAgIH1cbiAgfVxuXG4gIG9uR3JhZGllbnRDbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgIHRoaXMuc2F0dXJhdGlvbiA9IGV2ZW50Lm9mZnNldFggLyB0aGlzLmJhc2VTaXplO1xuICAgIHRoaXMudmFsdWUgPSAodGhpcy5iYXNlU2l6ZSAtIGV2ZW50Lm9mZnNldFkpIC8gdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ySHN2KCk7XG4gICAgdGhpcy51cGRhdGVLbm9icygpO1xuICB9XG5cbiAgb25HcmFkaWVudERyYWcoZXZlbnQ6IENka0RyYWdNb3ZlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xuICAgIHRoaXMuc2F0dXJhdGlvbiA9IE1hdGguZmxvb3IocG9zaXRpb24ueCkgLyB0aGlzLmJhc2VTaXplO1xuICAgIHRoaXMudmFsdWUgPSAodGhpcy5iYXNlU2l6ZSAtIHBvc2l0aW9uLnkpIC8gdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ySHN2KCk7XG4gIH1cblxuICBvbkh1ZUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5odWUgPSBldmVudC5vZmZzZXRZIC8gdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnVwZGF0ZUNvbG9ySHN2KCk7XG4gICAgdGhpcy51cGRhdGVLbm9icygpO1xuICB9XG5cbiAgb25BbHBoYUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5hbHBoYSA9IDEwMCAtIE1hdGgucm91bmQoKGV2ZW50Lm9mZnNldFkgLyB0aGlzLmJhc2VTaXplKSAqIDEwMCk7XG4gICAgdGhpcy5hbHBoYUNoYW5nZS5lbWl0KHRoaXMuYWxwaGEpO1xuICB9XG5cbiAgb25IdWVEcmFnKGV2ZW50OiBDZGtEcmFnTW92ZSkge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gZXZlbnQuc291cmNlLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcbiAgICB0aGlzLmh1ZSA9IChwb3NpdGlvbi55ICsgdGhpcy5iYXNlU2l6ZSArIDE0KSAvIHRoaXMuYmFzZVNpemU7XG4gICAgdGhpcy51cGRhdGVDb2xvckhzdigpO1xuICB9XG5cbiAgb25BbHBoYURyYWcoZXZlbnQ6IENka0RyYWdNb3ZlKSB7XG4gICAgY29uc3QgcG9zaXRpb24gPSBldmVudC5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xuICAgIHRoaXMuaW5uZXJBbHBoYSA9IDEwMCAtIE1hdGgucm91bmQoKHBvc2l0aW9uLnkgLyB0aGlzLmJhc2VTaXplKSAqIDEwMCk7XG4gICAgdGhpcy5hbHBoYUlucHV0ID0gdGhpcy5pbm5lckFscGhhO1xuICAgIHRoaXMuYWxwaGFDaGFuZ2UuZW1pdCh0aGlzLmlubmVyQWxwaGEpO1xuICB9XG5cbiAgb25SZW1vdmVDb2xvcigpIHtcbiAgICBpZiAodGhpcy51c2VBbHBoYSkge1xuICAgICAgdGhpcy5hbHBoYSA9IDA7XG4gICAgICB0aGlzLmFscGhhQ2hhbmdlLmVtaXQodGhpcy5hbHBoYSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29sb3IgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGlzSGV4Q29sb3IodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiAvXiNbMC05QS1GXXs2fSQvaS50ZXN0KHZhbHVlKTtcbiAgfVxuXG4gIGdldFNhdHVyYXRpb25HcmFkaWVudCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB3aGl0ZSwgIGhzbCgnICsgdGhpcy5odWUgKiAzNjAgKyAnLCAxMDAlLCA1MCUpICknO1xuICB9XG5cbiAgdXBkYXRlSW5wdXRzKGhleENvbG9yOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhleElucHV0Q29sb3IgPSBoZXhDb2xvcjtcbiAgICBjb25zdCByZ2IgPSBDb2xvckhlbHBlci5oZXhUb1JnYihoZXhDb2xvcik7XG4gICAgdGhpcy5yZWRJbnB1dCA9IHJnYi5yO1xuICAgIHRoaXMuZ3JlZW5JbnB1dCA9IHJnYi5nO1xuICAgIHRoaXMuYmx1ZUlucHV0ID0gcmdiLmI7XG4gIH1cblxuICB1cGRhdGVLbm9icygpIHtcbiAgICB0aGlzLmFscGhhS25vYk9mZnNldCA9ICgoMTAwIC0gdGhpcy5hbHBoYSkgLyAxMDApICogdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLmh1ZUtub2JPZmZzZXQgPSB0aGlzLmh1ZSAqIHRoaXMuYmFzZVNpemUgLSAodGhpcy5iYXNlU2l6ZSArIDE0KTtcbiAgICB0aGlzLnNhdHVyYXRpb25Lbm9iT2Zmc2V0ID0gdGhpcy5zYXR1cmF0aW9uICogdGhpcy5iYXNlU2l6ZTtcbiAgICB0aGlzLnZhbHVlS25vYk9mZnNldCA9ICgxIC0gdGhpcy52YWx1ZSkgKiB0aGlzLmJhc2VTaXplO1xuICB9XG5cbiAgb25DaGFuZ2VUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuaW5wdXRUeXBlID0gdHlwZTtcbiAgICB0aGlzLmlzU2VsZWN0T3BlbiA9IGZhbHNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZndlLWNvbG9yLXBpY2tlclwiIFtjbGFzcy5md2UtYWxwaGEtYWN0aXZlXT1cInVzZUFscGhhXCI+XG4gIDxkaXYgY2xhc3M9XCJmd2UtZC1mbGV4XCIgKm5nSWY9XCIhcGFsZXR0ZU9ubHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZndlLWdyYWRpZW50LXBpY2tlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZ3ZS1zYXR1cmF0aW9uLWdyYWRpZW50XCIgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6IGdldFNhdHVyYXRpb25HcmFkaWVudCgpIH1cIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmd2UtYnJpZ2h0bmVzcy1ncmFkaWVudFwiIChjbGljayk9XCJvbkdyYWRpZW50Q2xpY2soJGV2ZW50KVwiPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZ3ZS1rbm9iXCJcbiAgICAgICAgY2RrRHJhZ0JvdW5kYXJ5PVwiLmZ3ZS1ncmFkaWVudC1waWNrZXJcIlxuICAgICAgICBjZGtEcmFnXG4gICAgICAgIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJ7IHg6IHNhdHVyYXRpb25Lbm9iT2Zmc2V0LCB5OiB2YWx1ZUtub2JPZmZzZXQgfVwiXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwib25HcmFkaWVudERyYWcoJGV2ZW50KVwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9yXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmd2UtaHVlLXBpY2tlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZ3ZS1waWNrZXItYmFja2dyb3VuZFwiIChjbGljayk9XCJvbkh1ZUNsaWNrKCRldmVudClcIj48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmd2Uta25vYlwiXG4gICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5md2UtaHVlLXBpY2tlclwiXG4gICAgICAgIGNka0RyYWdMb2NrQXhpcz1cInlcIlxuICAgICAgICBjZGtEcmFnXG4gICAgICAgIFtjZGtEcmFnRnJlZURyYWdQb3NpdGlvbl09XCJ7IHg6IDMsIHk6IGh1ZUtub2JPZmZzZXQgfVwiXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwib25IdWVEcmFnKCRldmVudClcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCInaHNsKCcgKyBodWUgKiAzNjAgKyAnLCAxMDAlLCA1MCUpJ1wiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZndlLWFscGhhLXBpY2tlclwiICpuZ0lmPVwidXNlQWxwaGFcIj5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJmd2Utbm8tY29sb3ItcGF0dGVyblwiXG4gICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgaWQ9XCJjYW52YXMxXCJcbiAgICAgICAgd2lkdGg9XCI4XCJcbiAgICAgICAgaGVpZ2h0PVwiMTg0XCJcbiAgICAgID5cbiAgICAgICAgPGRlZnM+XG4gICAgICAgICAgPHBhdHRlcm4gaWQ9XCJid3NxdWFyZTJweFwiIHdpZHRoPVwiNFwiIGhlaWdodD1cIjRcIiBwYXR0ZXJuVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMlwiIGhlaWdodD1cIjJcIiBzdHJva2U9XCJub25lXCIgZmlsbD1cIiNmZmZmZmZcIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMFwiIHdpZHRoPVwiMlwiIGhlaWdodD1cIjJcIiBzdHJva2U9XCJub25lXCIgZmlsbD1cIiNlNWU4ZWJcIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMlwiIHdpZHRoPVwiMlwiIGhlaWdodD1cIjJcIiBzdHJva2U9XCJub25lXCIgZmlsbD1cIiNlNWU4ZWJcIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMlwiIGhlaWdodD1cIjJcIiBzdHJva2U9XCJub25lXCIgZmlsbD1cIiNmZmZmZmZcIiAvPlxuICAgICAgICAgIDwvcGF0dGVybj5cbiAgICAgICAgPC9kZWZzPlxuICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgcng9XCI0XCIgcnk9XCI0XCIgd2lkdGg9XCI4XCIgaGVpZ2h0PVwiMTg0XCIgZmlsbD1cInVybCgjYndzcXVhcmUycHgpXCIgc3Ryb2tlLXdpZHRoPVwiMFwiIC8+XG4gICAgICA8L3N2Zz5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmd2UtcGlja2VyLWJhY2tncm91bmRcIlxuICAgICAgICAoY2xpY2spPVwib25BbHBoYUNsaWNrKCRldmVudClcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWltYWdlJzogJ2xpbmVhci1ncmFkaWVudCggJyArIGNvbG9yICsgJyAsIHRyYW5zcGFyZW50KScgfVwiXG4gICAgICA+PC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmd2Uta25vYlwiXG4gICAgICAgIGNka0RyYWdCb3VuZGFyeT1cIi5md2UtYWxwaGEtcGlja2VyXCJcbiAgICAgICAgY2RrRHJhZ0xvY2tBeGlzPVwieVwiXG4gICAgICAgIGNka0RyYWdcbiAgICAgICAgW2Nka0RyYWdGcmVlRHJhZ1Bvc2l0aW9uXT1cInsgeDogMywgeTogYWxwaGFLbm9iT2Zmc2V0IH1cIlxuICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm9uQWxwaGFEcmFnKCRldmVudClcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZF09XCJjb2xvclwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmd2UtbXQtc1wiICpuZ0lmPVwiIXBhbGV0dGVPbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImZ3ZS10eXBlLXNlbGVjdFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZ3ZS10eXBlLWluZGljYXRvclwiIChjbGljayk9XCJpc1NlbGVjdE9wZW4gPSAhaXNTZWxlY3RPcGVuXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZndlLWlucHV0LXR5cGVcIj57eyBpbnB1dFR5cGUgfX08L3NwYW4+XG4gICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tYXJyb3dzLWNvbGxhcHNlXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZndlLXBvcG92ZXJcIiAqbmdJZj1cImlzU2VsZWN0T3BlblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZndlLXR5cGUtaXRlbVwiIChjbGljayk9XCJvbkNoYW5nZVR5cGUoJ0hFWCcpXCIgW2NsYXNzLmZ3ZS1zZWxlY3RlZF09XCJpbnB1dFR5cGUgPT09ICdIRVgnXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmd2UtaWNvbiBmd2UtaWNvbi1tZW51LWNoZWNrXCI+PC9pPiBIRVhcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmd2UtdHlwZS1pdGVtXCIgKGNsaWNrKT1cIm9uQ2hhbmdlVHlwZSgnUkdCJylcIiBbY2xhc3MuZndlLXNlbGVjdGVkXT1cImlucHV0VHlwZSA9PT0gJ1JHQidcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLW1lbnUtY2hlY2tcIj48L2k+IFJHQlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZ3ZS1kLWZsZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbnB1dFR5cGUgPT09ICdIRVgnXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZ3ZS1pbnB1dC10ZXh0IGZ3ZS1oZXgtaW5wdXRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImhleElucHV0Q29sb3JcIiAoYmx1cik9XCJvbkhleEJsdXIoKVwiIChpbnB1dCk9XCJvbkhleElucHV0KClcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5wdXRUeXBlID09PSAnUkdCJ1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtcmVkLWlucHV0XCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBbKG5nTW9kZWwpXT1cInJlZElucHV0XCIgKGlucHV0KT1cIm9uUmdiSW5wdXQocmVkSW5wdXQsICdyJylcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtZ3JlZW4taW5wdXRcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwiZ3JlZW5JbnB1dFwiIChpbnB1dCk9XCJvblJnYklucHV0KGdyZWVuSW5wdXQsICdnJylcIiAvPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtYmx1ZS1pbnB1dFwiPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjI1NVwiIFsobmdNb2RlbCldPVwiYmx1ZUlucHV0XCIgKGlucHV0KT1cIm9uUmdiSW5wdXQoYmx1ZUlucHV0LCAnYicpXCIgLz5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bGFiZWwgY2xhc3M9XCJmd2UtaW5wdXQtdGV4dCBmd2UtYWxwaGEtaW5wdXQgZndlLW1sLWF1dG9cIiAqbmdJZj1cInVzZUFscGhhXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjEwMFwiIFsobmdNb2RlbCldPVwiYWxwaGFJbnB1dFwiIChpbnB1dCk9XCJvbkFscGhhSW5wdXQoYWxwaGFJbnB1dClcIiAvPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZndlLXBlcmNlbnQtY2hhclwiPiU8L3NwYW4+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmd2UtbXQteHMgZndlLWNvbG9yLWdyaWRcIiAqbmdJZj1cInBhbGV0dGUgJiYgcGFsZXR0ZS5sZW5ndGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZndlLXJlbW92ZS1jb2xvci1idXR0b25cIiAoY2xpY2spPVwib25SZW1vdmVDb2xvcigpXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiZndlLW5vLWNvbG9yLXBhdHRlcm5cIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICAgIGlkPVwiY2FudmFzMVwiXG4gICAgICAgIHdpZHRoPVwiMThcIlxuICAgICAgICBoZWlnaHQ9XCIxOFwiXG4gICAgICA+XG4gICAgICAgIDxkZWZzPlxuICAgICAgICAgIDxwYXR0ZXJuIGlkPVwiYndzcXVhcmUycHhcIiB3aWR0aD1cIjRcIiBoZWlnaHQ9XCI0XCIgcGF0dGVyblVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjBcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZTVlOGViXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjJcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZTVlOGViXCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjJcIiBoZWlnaHQ9XCIyXCIgc3Ryb2tlPVwibm9uZVwiIGZpbGw9XCIjZmZmZmZmXCIgLz5cbiAgICAgICAgICA8L3BhdHRlcm4+XG4gICAgICAgIDwvZGVmcz5cbiAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHJ4PVwiMFwiIHJ5PVwiMFwiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ1cmwoI2J3c3F1YXJlMnB4KVwiIHN0cm9rZS13aWR0aD1cIjBcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgICA8aSBjbGFzcz1cImZ3ZS1pY29uIGZ3ZS1pY29uLW1lbnUtY2hlY2tcIiBbY2xhc3MuZndlLWNvbG9yLXRleHRdPVwiIWNvbG9yXCI+PC9pPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbG9ySXRlbSBvZiBwYWxldHRlXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZndlLWNvbG9yLWl0ZW1cIlxuICAgICAgICBbY2xhc3MuZndlLXdoaXRlLWl0ZW1dPVwiY29sb3JJdGVtLnRvVXBwZXJDYXNlKCkgPT09ICcjRkZGRkZGJ1wiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImNvbG9ySXRlbVwiXG4gICAgICAgIChjbGljayk9XCJjb2xvciA9IGNvbG9ySXRlbVwiXG4gICAgICA+XG4gICAgICAgIDxpIGNsYXNzPVwiZndlLWljb24gZndlLWljb24tbWVudS1jaGVja1wiICpuZ0lmPVwiY29sb3JJdGVtLnRvVXBwZXJDYXNlKCkgPT09IGNvbG9yXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -3931,7 +3931,7 @@ ColorPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
3931
3931
|
useExisting: forwardRef(() => ColorPickerComponent),
|
|
3932
3932
|
multi: true
|
|
3933
3933
|
}
|
|
3934
|
-
], usesOnChanges: true, ngImport: i0, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"], dependencies: [{ kind: "directive", type: i1$4.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$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
3934
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"], dependencies: [{ kind: "directive", type: i1$4.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$4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1$4.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i3$1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
3935
3935
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ColorPickerComponent, decorators: [{
|
|
3936
3936
|
type: Component,
|
|
3937
3937
|
args: [{ selector: 'fng-color-picker', providers: [
|
|
@@ -3940,7 +3940,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
|
|
|
3940
3940
|
useExisting: forwardRef(() => ColorPickerComponent),
|
|
3941
3941
|
multi: true
|
|
3942
3942
|
}
|
|
3943
|
-
], encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"] }]
|
|
3943
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"fwe-color-picker\" [class.fwe-alpha-active]=\"useAlpha\">\n <div class=\"fwe-d-flex\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-gradient-picker\">\n <div class=\"fwe-saturation-gradient\" [ngStyle]=\"{ 'background-image': getSaturationGradient() }\"></div>\n <div class=\"fwe-brightness-gradient\" (click)=\"onGradientClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-gradient-picker\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: saturationKnobOffset, y: valueKnobOffset }\"\n (cdkDragMoved)=\"onGradientDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n\n <div class=\"fwe-hue-picker\">\n <div class=\"fwe-picker-background\" (click)=\"onHueClick($event)\"></div>\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-hue-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: hueKnobOffset }\"\n (cdkDragMoved)=\"onHueDrag($event)\"\n [style.background]=\"'hsl(' + hue * 360 + ', 100%, 50%)'\"\n ></div>\n </div>\n\n <div class=\"fwe-alpha-picker\" *ngIf=\"useAlpha\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"8\"\n height=\"184\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"4\" ry=\"4\" width=\"8\" height=\"184\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <div\n class=\"fwe-picker-background\"\n (click)=\"onAlphaClick($event)\"\n [ngStyle]=\"{ 'background-image': 'linear-gradient( ' + color + ' , transparent)' }\"\n ></div>\n\n <div\n class=\"fwe-knob\"\n cdkDragBoundary=\".fwe-alpha-picker\"\n cdkDragLockAxis=\"y\"\n cdkDrag\n [cdkDragFreeDragPosition]=\"{ x: 3, y: alphaKnobOffset }\"\n (cdkDragMoved)=\"onAlphaDrag($event)\"\n [style.background]=\"color\"\n ></div>\n </div>\n </div>\n\n <div class=\"fwe-mt-s\" *ngIf=\"!paletteOnly\">\n <div class=\"fwe-type-select\">\n <div class=\"fwe-type-indicator\" (click)=\"isSelectOpen = !isSelectOpen\">\n <span class=\"fwe-input-type\">{{ inputType }}</span>\n <i class=\"fwe-icon fwe-icon-arrows-collapse\"></i>\n </div>\n <div class=\"fwe-popover\" *ngIf=\"isSelectOpen\">\n <div class=\"fwe-type-item\" (click)=\"onChangeType('HEX')\" [class.fwe-selected]=\"inputType === 'HEX'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> HEX\n </div>\n <div class=\"fwe-type-item\" (click)=\"onChangeType('RGB')\" [class.fwe-selected]=\"inputType === 'RGB'\">\n <i class=\"fwe-icon fwe-icon-menu-check\"></i> RGB\n </div>\n </div>\n </div>\n\n <div class=\"fwe-d-flex\">\n <ng-container *ngIf=\"inputType === 'HEX'\">\n <label class=\"fwe-input-text fwe-hex-input\">\n <input type=\"text\" [(ngModel)]=\"hexInputColor\" (blur)=\"onHexBlur()\" (input)=\"onHexInput()\" />\n </label>\n </ng-container>\n <ng-container *ngIf=\"inputType === 'RGB'\">\n <label class=\"fwe-input-text fwe-red-input\">\n <input type=\"number\" [(ngModel)]=\"redInput\" (input)=\"onRgbInput(redInput, 'r')\" />\n </label>\n <label class=\"fwe-input-text fwe-green-input\">\n <input type=\"number\" [(ngModel)]=\"greenInput\" (input)=\"onRgbInput(greenInput, 'g')\" />\n </label>\n <label class=\"fwe-input-text fwe-blue-input\">\n <input type=\"number\" min=\"0\" max=\"255\" [(ngModel)]=\"blueInput\" (input)=\"onRgbInput(blueInput, 'b')\" />\n </label>\n </ng-container>\n\n <label class=\"fwe-input-text fwe-alpha-input fwe-ml-auto\" *ngIf=\"useAlpha\">\n <span>\n <input type=\"number\" min=\"0\" max=\"100\" [(ngModel)]=\"alphaInput\" (input)=\"onAlphaInput(alphaInput)\" />\n <span class=\"fwe-percent-char\">%</span>\n </span>\n </label>\n </div>\n </div>\n\n <div class=\"fwe-mt-xs fwe-color-grid\" *ngIf=\"palette && palette.length\">\n <div class=\"fwe-remove-color-button\" (click)=\"onRemoveColor()\">\n <svg\n class=\"fwe-no-color-pattern\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n id=\"canvas1\"\n width=\"18\"\n height=\"18\"\n >\n <defs>\n <pattern id=\"bwsquare2px\" width=\"4\" height=\"4\" patternUnits=\"userSpaceOnUse\">\n <rect x=\"0\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n <rect x=\"2\" y=\"0\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"0\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#e5e8eb\" />\n <rect x=\"2\" y=\"2\" width=\"2\" height=\"2\" stroke=\"none\" fill=\"#ffffff\" />\n </pattern>\n </defs>\n <rect x=\"0\" y=\"0\" rx=\"0\" ry=\"0\" width=\"18\" height=\"18\" fill=\"url(#bwsquare2px)\" stroke-width=\"0\" />\n </svg>\n <i class=\"fwe-icon fwe-icon-menu-check\" [class.fwe-color-text]=\"!color\"></i>\n </div>\n <ng-container *ngFor=\"let colorItem of palette\">\n <div\n class=\"fwe-color-item\"\n [class.fwe-white-item]=\"colorItem.toUpperCase() === '#FFFFFF'\"\n [style.background]=\"colorItem\"\n (click)=\"color = colorItem\"\n >\n <i class=\"fwe-icon fwe-icon-menu-check\" *ngIf=\"colorItem.toUpperCase() === color\"></i>\n </div>\n </ng-container>\n </div>\n</div>\n", styles: ["fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local],fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]{border-bottom:1px solid var(--fwe-red)!important;box-shadow:none;outline:none}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:focus,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:focus{border-bottom:1px solid var(--fwe-red)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled{border-bottom:1px solid var(--fwe-control-disabled)!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=text]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=password]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=date]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=datetime-local]:disabled~.fwe-input-text-info,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-label,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-invalid,fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text input[type=number]:disabled~.fwe-input-text-info{color:var(--fwe-text-disabled)}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-info{display:none!important}fng-text-input:not(.ng-pristine).ng-invalid label.fwe-input-text .fwe-input-text-invalid{display:block!important}fng-text-input.ng-valid label.fwe-input-text input[type=text]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=password]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=date]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=time]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=datetime-local]:hover:not(:disabled),fng-text-input.ng-valid label.fwe-input-text input[type=number]:hover:not(:disabled){border-bottom:1px solid var(--fwe-hero)!important}fng-text-input label.fwe-input-text.fwe-no-pointer-events{pointer-events:none!important}.fwe-input-text-invalid.fng-projected:empty{display:none}.fwe-input-text-info.fng-projected:empty{display:none}\n", ".fwe-triangle.fwe-triangle-right,.fwe-triangle.fwe-triangle-left,.fwe-triangle.fwe-triangle-bottom,.fwe-triangle.fwe-triangle-top{width:17px;height:17px;position:absolute;overflow:hidden}.fwe-triangle.fwe-triangle-right:after,.fwe-triangle.fwe-triangle-left:after,.fwe-triangle.fwe-triangle-bottom:after,.fwe-triangle.fwe-triangle-top:after{content:\"\";position:absolute;width:12px;height:12px;background:var(--fwe-white);transform:rotate(45deg);box-shadow:0 1px 4px #3333}.fwe-popover.fwe-popover-menu,.fwe-popover{background-color:var(--fwe-white);box-shadow:0 1px 4px #3333;border-radius:4px}.fwe-popover{padding:8px;font-size:var(--fwe-font-size-md);line-height:1rem}.fwe-popover-container{position:relative;display:inline-block}.fwe-triangle.fwe-triangle-top{left:50%;top:-17px;transform:translate(-8px)}.fwe-triangle.fwe-triangle-top:after{top:11px;left:3px}.fwe-triangle.fwe-triangle-bottom{left:50%;top:100%;transform:translate(-8px)}.fwe-triangle.fwe-triangle-bottom:after{top:-6px;left:3px}.fwe-triangle.fwe-triangle-left{left:-17px;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-left:after{top:2px;left:11px}.fwe-triangle.fwe-triangle-right{left:100%;top:50%;transform:translateY(-8px)}.fwe-triangle.fwe-triangle-right:after{top:2px;left:-6px}.fwe-popover.fwe-popover-menu{font-size:var(--fwe-font-size-base);line-height:1.5rem;padding:16px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item{border-bottom:none;min-height:36px;padding:0}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button{width:100%;margin-left:inherit;padding:0 8px 0 0;text-align:left;height:32px;max-height:32px;display:inline-flex;justify-content:unset}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button:hover{color:var(--fwe-black)}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i{display:inline-flex;align-items:center;justify-content:center;flex-wrap:nowrap;height:24px;width:32px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button i:before{display:inline-flex}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button span{display:inline-flex;height:24px}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item button [class*=\" fwe-icon-\"]{margin-left:inherit}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:hover{color:var(--fwe-black);background-color:#3333331a}.fwe-popover.fwe-popover-menu .fwe-list-group .fwe-list-group-item:active{background-color:#3333}.fwe-popover .fwe-popover-legend{display:table;margin:16px;line-height:24px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content{display:table-row}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dt{display:table-cell;margin:0;padding-right:8px}.fwe-popover .fwe-popover-legend .fwe-popover-legend-content dd{display:table-cell;margin:0}.fwe-color-picker{width:216px}.fwe-color-picker.fwe-alpha-active{width:245px}.fwe-color-picker .fwe-gradient-picker{position:relative;width:198px;height:198px;margin:-7px}.fwe-color-picker .fwe-gradient-picker .fwe-brightness-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px;background-image:linear-gradient(transparent,black)}.fwe-color-picker .fwe-gradient-picker .fwe-saturation-gradient{position:absolute;top:7px;bottom:7px;right:7px;left:7px}.fwe-color-picker .fwe-vertical-picker,.fwe-color-picker .fwe-alpha-picker,.fwe-color-picker .fwe-hue-picker{position:relative;height:198px;width:14px;margin:-7px -3px -7px 18px}.fwe-color-picker .fwe-vertical-picker .fwe-picker-background,.fwe-color-picker .fwe-alpha-picker .fwe-picker-background,.fwe-color-picker .fwe-hue-picker .fwe-picker-background{margin:7px 3px;height:184px;width:8px;border-radius:4px}.fwe-color-picker .fwe-vertical-picker .fwe-knob,.fwe-color-picker .fwe-alpha-picker .fwe-knob,.fwe-color-picker .fwe-hue-picker .fwe-knob{left:-3px}.fwe-color-picker .fwe-hue-picker .fwe-picker-background{background-image:linear-gradient(#ff0000,#ffff00,#00ff00,#00ffff,#0000ff,#ff00ff,#ff0000)}.fwe-color-picker .fwe-alpha-picker .fwe-no-color-pattern{margin:7px 3px;position:absolute}.fwe-color-picker .fwe-alpha-picker .fwe-picker-background{position:absolute}.fwe-color-picker .fwe-type-select{position:relative;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator{flex-shrink:1;cursor:pointer;display:flex}.fwe-color-picker .fwe-type-select .fwe-type-indicator .fwe-input-type{font-size:var(--fwe-font-size-small);line-height:calc(var(--fwe-font-size-small) + 5px);font-weight:var(--fwe-font-weight-bold)}.fwe-color-picker .fwe-type-select .fwe-type-indicator:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-icon-arrows-collapse{margin-left:16px;line-height:16px}.fwe-color-picker .fwe-type-select .fwe-popover{position:absolute;z-index:1;top:24px;left:0px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item{cursor:pointer;display:flex;padding:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item:hover{color:var(--fwe-hero)}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item .fwe-icon-menu-check{opacity:0;margin-right:8px}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected{cursor:default}.fwe-color-picker .fwe-type-select .fwe-popover .fwe-type-item.fwe-selected .fwe-icon-menu-check{opacity:1}.fwe-color-picker input::-webkit-outer-spin-button,.fwe-color-picker input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.fwe-color-picker input[type=number]{-moz-appearance:textfield}.fwe-color-picker input{padding-right:0!important;text-align:center}.fwe-color-picker .fwe-hex-input{width:75px;margin-right:16px}.fwe-color-picker .fwe-red-input,.fwe-color-picker .fwe-green-input{width:32px;margin-right:8px}.fwe-color-picker .fwe-blue-input{width:32px}.fwe-color-picker .fwe-alpha-input span input{width:48px;padding-right:16px!important}.fwe-color-picker .fwe-alpha-input .fwe-percent-char{margin-left:-16px}.fwe-color-picker .fwe-color-grid{display:flex;flex-wrap:wrap;margin-right:-8px;margin-bottom:-8px}.fwe-color-picker .fwe-color-grid .fwe-color-item{align-items:center;display:flex;justify-content:center;color:#fff;height:24px;width:24px;border-radius:4px;margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-color-item.fwe-white-item{border:1px solid var(--fwe-control-border);color:#000}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button{align-items:center;display:flex;justify-content:center;height:24px;width:24px;border-radius:4px;border:1px solid var(--fwe-control-border);color:var(--fwe-control);margin-right:8px;margin-bottom:8px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button .fwe-no-color-pattern{margin:2px}.fwe-color-picker .fwe-color-grid .fwe-remove-color-button i{color:transparent;position:absolute}.fwe-color-picker .fwe-knob{position:absolute;z-index:1;height:14px;width:14px;border-radius:50%;border:2px solid white;box-shadow:0 0 4px #00000026}\n"] }]
|
|
3944
3944
|
}], propDecorators: { useAlpha: [{
|
|
3945
3945
|
type: Input
|
|
3946
3946
|
}], alpha: [{
|