@progress/kendo-vue-inputs 6.1.0-develop.4 → 6.1.0-develop.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/colors/ColorGradient.js +2 -2
- package/colors/ColorGradient.mjs +104 -89
- package/colors/ColorInput.js +1 -1
- package/colors/ColorInput.mjs +68 -61
- package/colors/ColorPalette.js +1 -1
- package/colors/ColorPalette.mjs +68 -59
- package/colors/ColorPicker.js +1 -1
- package/colors/ColorPicker.mjs +113 -57
- package/colors/FlatColorPicker.js +1 -1
- package/colors/FlatColorPicker.mjs +82 -60
- package/colors/HexInput.js +1 -1
- package/colors/HexInput.mjs +13 -11
- package/colors/common/ColorsAdaptiveMode.js +8 -0
- package/colors/common/ColorsAdaptiveMode.mjs +91 -0
- package/colors/utils/color-cache.js +1 -1
- package/colors/utils/color-cache.mjs +2 -7
- package/dist/cdn/js/kendo-vue-inputs.js +1 -1
- package/index.d.mts +116 -7
- package/index.d.ts +116 -7
- package/messages/main.js +2 -2
- package/messages/main.mjs +26 -24
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +9 -9
package/colors/ColorGradient.js
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),i=require("@progress/kendo-vue-common"),
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),i=require("@progress/kendo-vue-common"),V=require("../package-metadata.js"),u=require("./utils/misc.js"),r=require("./utils/color-parser.js"),B=require("./utils/color-cache.js"),$=require("./ColorInput.js"),G=require("./ColorContrastLabels.js"),L=require("./ColorContrastSvg.js"),F=require("@progress/kendo-vue-intl"),l=require("../messages/main.js"),v=require("../slider/Slider.js"),I="rgba",m="rgba(255, 255, 255, 1)",T=n.defineComponent({name:"KendoColorGradient",model:{event:"changemodel"},emits:{change:null,focus:null,blur:null,changemodel:null,"update:modelValue":null,"update:modelRgbaValue":null,keydown:null},inject:{kendoLocalizationService:{default:null}},props:{modelValue:String,modelRgbaValue:String,defaultValue:String,value:String,opacity:{type:Boolean,default:!0},backgroundColor:String,disabled:Boolean,id:String,ariaLabelledBy:String,ariaDescribedBy:String,tabIndex:Number,innerTabIndex:{type:Number,default:void 0},size:String,class:String,adaptive:Boolean},created(){i.validatePackage(V.packageMetadata),this.guid=i.guid()},computed:{valueSet(){return this.value||this.modelValue||this.modelRgbaValue},computedValue(){let e=this.valueSet||this.currentValue||this.defaultValue||r.parseColor(m,I);return u.isPresent(r.parseColor(e,"hex",this.opacity))||(e=m),e},hsva(){return this.valueSet?r.getHSV(this.computedValue):this.currentHsva||r.getHSV(this.computedValue)},rgba(){return this.valueSet?r.getRGBA(this.computedValue):this.currentRgba},hex(){return this.valueSet?r.parseColor(this.computedValue,"hex",this.opacity):this.currentHex},computedBgColor(){return this.currentBgColor||r.getColorFromHue(this.hsva.h)},computedTabIndex(){return this.innerTabIndex!==void 0?this.innerTabIndex:this.focused?0:-1}},data(){return{currentValue:void 0,currentBgColor:void 0,isFirstRender:!0,currentHsva:void 0,currentRgba:void 0,currentHex:void 0,focused:!1}},mounted(){this.alphaSlider=this.alphaSliderRef,this.setAlphaSliderBackground(this.computedBgColor),this.$el&&(this.draggable=this.$refs.draggable,this.gradientWrapper=this.draggable&&this.draggable.element),this.isFirstRender&&(this.isFirstRender=!1)},destroyed(){B.removeCachedColor(this.guid)},updated(){this.setAlphaSliderBackground(this.computedBgColor)},render(){const{size:e,disabled:t,class:s,opacity:a,id:o,tabIndex:h,ariaDescribedBy:g,ariaLabelledBy:C,adaptive:c}=this.$props,f=i.classNames("k-colorgradient",{"k-disabled":t,[`k-colorgradient-${i.kendoThemeMaps.sizeMap[e]||e}`]:e},s),b=F.provideLocalizationService(this),k=b.toLanguageString(l.colorGradientHueSliderLabel,l.messages[l.colorGradientHueSliderLabel]),S=b.toLanguageString(l.colorGradientAlphaSliderLabel,l.messages[l.colorGradientAlphaSliderLabel]),y=b.toLanguageString(l.colorGradientDragHandle,l.messages[l.colorGradientDragHandle]),x=function(){let d={};if(!this.isFirstRender){const p=this.getGradientRectMetrics(),R=(1-this.hsva.v)*p.height,H=this.hsva.s*p.width;d.top=`${R}px`,d.left=`${H}px`}return n.createVNode("div",{class:"k-hsv-draghandle k-draghandle",role:"slider","aria-orientation":void 0,"aria-label":y+`${this.value||"none"}`,"aria-valuenow":Math.round(this.hsva.s*100),"aria-valuetext":`
|
|
9
9
|
saturation: ${Math.round(this.hsva.s*100)}%,
|
|
10
|
-
value: ${Math.round(this.hsva.v*100)}%`,tabindex:this.computedTabIndex,onKeydown:this.dragKeyDown,style:d,ref:i.setRef(this,"draghandle")},null)};return n.createVNode("div",{id:
|
|
10
|
+
value: ${Math.round(this.hsva.v*100)}%`,tabindex:this.computedTabIndex,onKeydown:this.dragKeyDown,style:d,ref:i.setRef(this,"draghandle")},null)};return n.createVNode("div",{id:o,class:f,role:h!==-1?"textbox":void 0,"aria-disabled":t,tabindex:i.getTabIndex(h,t),"aria-labelledby":C,"aria-describedby":g,onFocus:this.onFocus,onBlur:this.onBlur,onKeydown:this.onKeyDownHandler},[n.createVNode("div",{class:`k-colorgradient-canvas ${c?"k-vstack":"k-hstack"}`},[n.createVNode("div",{class:"k-hsv-rectangle",style:{background:this.computedBgColor}},[n.createVNode(i.Draggable,{onDrag:this.onDrag,onRelease:this.onRelease,ref:"draggable"},{default:()=>[n.createVNode("div",{class:"k-hsv-gradient",style:{touchAction:"none"},tabindex:-1,onClick:this.onGradientWrapperClick},[x.call(this)])]}),this.backgroundColor&&!this.isFirstRender&&n.createVNode(L.ColorContrastSvg,{metrics:this.gradientWrapper?this.getGradientRectMetrics():void 0,hsva:this.hsva,backgroundColor:this.backgroundColor},null)]),n.createVNode("div",{class:`k-hsv-controls ${c?"k-vstack":"k-hstack"}`},[n.createVNode(v.Slider,{tabIndex:this.computedTabIndex,value:this.hsva.h,buttons:!1,vertical:!c,min:0,max:360,step:5,onChange:this.onHueSliderChange,class:"k-hue-slider k-colorgradient-slider",disabled:t,ariaLabel:k},null),a&&n.createVNode(v.Slider,{tabIndex:this.computedTabIndex,value:u.isPresent(this.hsva.a)?this.hsva.a*100:100,buttons:!1,vertical:!c,min:0,max:100,step:1,onChange:this.onAlphaSliderChange,class:"k-alpha-slider k-colorgradient-slider",disabled:t,ariaLabel:S,ref:d=>{this.alphaSliderRef=d}},null)])]),n.createVNode($.ColorInput,{tabIndex:this.computedTabIndex,rgba:this.rgba,onRgbachange:this.onRgbaChange,hex:this.hex,onHexchange:this.onHexChange,opacity:a,disabled:t,ref:"colorInput",size:e},null),this.backgroundColor&&n.createVNode(G.ColorContrastLabels,{bgColor:r.getRGBA(this.backgroundColor),rgba:this.rgba},null)])},methods:{onKeyDownHandler(e){const t=this.$el;this.innerTabIndex===void 0&&(this.focused=i.focusContainer(e,t)),this.$emit("keydown",e)},onHexChange(e,t,s){const a=r.getRGBA(t),o=r.getHSV(t);this.currentHsva=o,this.currentBgColor=r.getColorFromHue(o.h),this.currentRgba=a,this.currentHex=e,this.dispatchChangeEvent(t,s.event,e,t)},onRgbaChange(e,t){const s=r.getColorFromRGBA(e),a=r.parseColor(s,"hex",this.opacity),o=r.getHSV(s);this.currentHsva=o,this.currentBgColor=r.getColorFromHue(o.h),this.currentRgba=e,this.currentHex=a,this.dispatchChangeEvent(s,t.event,a,s)},onAlphaSliderChange(e){this.handleHsvaChange(Object.assign({},this.hsva,{a:e.value/100}),e.event)},onHueSliderChange(e){this.handleHsvaChange(Object.assign({},this.hsva,{h:e.value}),e.event)},onDrag(e){this.gradientWrapper.classList.add("k-dragging"),this.changePosition(e)},onRelease(){this.gradientWrapper.classList.remove("k-dragging")},onGradientWrapperClick(e){this.firstFocusable=i.getRef(this,"draghandle"),this.firstFocusable&&this.firstFocusable.focus(),this.changePosition(e)},move(e,t,s){const a=this.hsva;a[t]+=s*(e.shiftKey?.01:.05),a[t]<0&&(a[t]=0),a[t]>1&&(a[t]=1),e.preventDefault(),this.handleHsvaChange(a,e)},dragKeyDown(e){switch(e.keyCode){case i.Keys.left:this.move(e,"s",-1);break;case i.Keys.right:this.move(e,"s",1);break;case i.Keys.up:this.move(e,"v",1);break;case i.Keys.down:this.move(e,"v",-1);break;case i.Keys.enter:break;case i.Keys.esc:break}},changePosition(e){const t=this.getGradientRectMetrics(),s=e.clientX-t.left,a=e.clientY-t.top,o=u.fitIntoBounds(s,0,t.width),h=u.fitIntoBounds(a,0,t.height),g=Object.assign({},this.hsva,{s:o/t.width,v:1-h/t.height});this.handleHsvaChange(g,e,e.event)},handleHsvaChange(e,t){const s=r.getColorFromHSV(e),a=r.parseColor(s,"hex",this.opacity),o=r.parseColor(s,"rgba");this.currentHsva=e,this.currentBgColor=r.getColorFromHue(e.h),this.currentRgba=r.getRGBA(s),this.currentHex=a,this.dispatchChangeEvent(s,t,a,o)},dispatchChangeEvent(e,t,s,a){this.currentValue=e,this.$emit("changemodel",s),this.$emit("update:modelRgbaValue",a),this.$emit("update:modelValue",s),this.$emit("change",{event:t,target:this,value:s,rgbaValue:a})},onFocus(e){this.$emit("focus",{event:e,target:this})},onBlur(e){this.$emit("blur",{event:e,target:this})},setAlphaSliderBackground(e){this.$props.opacity&&this.alphaSlider&&this.alphaSlider.sliderTrack&&(this.alphaSlider.sliderTrack.style.background=`linear-gradient(to ${this.$props.adaptive?"right":"top"}, transparent, ${e})`)},getGradientRectMetrics(){const e=this.gradientWrapper.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:e.width,height:e.height,x:e.x,y:e.y}},focus(){this.focused=!0,setTimeout(()=>{i.focusFirstFocusableChild(this.$el)},1)}}});exports.ColorGradient=T;
|
package/colors/ColorGradient.mjs
CHANGED
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
import { defineComponent as
|
|
9
|
-
import { validatePackage as
|
|
10
|
-
import { packageMetadata as
|
|
11
|
-
import { isPresent as
|
|
12
|
-
import { parseColor as
|
|
13
|
-
import { removeCachedColor as
|
|
14
|
-
import { ColorInput as
|
|
15
|
-
import { ColorContrastLabels as
|
|
16
|
-
import { ColorContrastSvg as
|
|
17
|
-
import { provideLocalizationService as
|
|
18
|
-
import { colorGradientHueSliderLabel as
|
|
19
|
-
import { Slider as
|
|
20
|
-
const
|
|
8
|
+
import { defineComponent as w, createVNode as s } from "vue";
|
|
9
|
+
import { validatePackage as D, guid as G, classNames as M, kendoThemeMaps as A, getTabIndex as K, Draggable as E, focusContainer as z, getRef as W, Keys as n, focusFirstFocusableChild as O, setRef as N } from "@progress/kendo-vue-common";
|
|
10
|
+
import { packageMetadata as P } from "../package-metadata.mjs";
|
|
11
|
+
import { isPresent as f, fitIntoBounds as C } from "./utils/misc.mjs";
|
|
12
|
+
import { parseColor as o, getHSV as c, getRGBA as u, getColorFromHue as g, getColorFromRGBA as j, getColorFromHSV as X } from "./utils/color-parser.mjs";
|
|
13
|
+
import { removeCachedColor as Y } from "./utils/color-cache.mjs";
|
|
14
|
+
import { ColorInput as _ } from "./ColorInput.mjs";
|
|
15
|
+
import { ColorContrastLabels as U } from "./ColorContrastLabels.mjs";
|
|
16
|
+
import { ColorContrastSvg as q } from "./ColorContrastSvg.mjs";
|
|
17
|
+
import { provideLocalizationService as J } from "@progress/kendo-vue-intl";
|
|
18
|
+
import { colorGradientHueSliderLabel as k, messages as m, colorGradientAlphaSliderLabel as S, colorGradientDragHandle as x } from "../messages/main.mjs";
|
|
19
|
+
import { Slider as R } from "../slider/Slider.mjs";
|
|
20
|
+
const Q = "rgba", y = "rgba(255, 255, 255, 1)", ce = /* @__PURE__ */ w({
|
|
21
21
|
name: "KendoColorGradient",
|
|
22
22
|
model: {
|
|
23
23
|
event: "changemodel"
|
|
@@ -54,30 +54,33 @@ const N = "rgba", x = "rgba(255, 255, 255, 1)", te = /* @__PURE__ */ R({
|
|
|
54
54
|
innerTabIndex: {
|
|
55
55
|
type: Number,
|
|
56
56
|
default: void 0
|
|
57
|
-
}
|
|
57
|
+
},
|
|
58
|
+
size: String,
|
|
59
|
+
class: String,
|
|
60
|
+
adaptive: Boolean
|
|
58
61
|
},
|
|
59
62
|
created() {
|
|
60
|
-
|
|
63
|
+
D(P), this.guid = G();
|
|
61
64
|
},
|
|
62
65
|
computed: {
|
|
63
66
|
valueSet() {
|
|
64
67
|
return this.value || this.modelValue || this.modelRgbaValue;
|
|
65
68
|
},
|
|
66
69
|
computedValue() {
|
|
67
|
-
let e = this.valueSet || this.currentValue || this.defaultValue ||
|
|
68
|
-
return
|
|
70
|
+
let e = this.valueSet || this.currentValue || this.defaultValue || o(y, Q);
|
|
71
|
+
return f(o(e, "hex", this.opacity)) || (e = y), e;
|
|
69
72
|
},
|
|
70
73
|
hsva() {
|
|
71
|
-
return this.valueSet ?
|
|
74
|
+
return this.valueSet ? c(this.computedValue) : this.currentHsva || c(this.computedValue);
|
|
72
75
|
},
|
|
73
76
|
rgba() {
|
|
74
|
-
return this.valueSet ?
|
|
77
|
+
return this.valueSet ? u(this.computedValue) : this.currentRgba;
|
|
75
78
|
},
|
|
76
79
|
hex() {
|
|
77
|
-
return this.valueSet ?
|
|
80
|
+
return this.valueSet ? o(this.computedValue, "hex", this.opacity) : this.currentHex;
|
|
78
81
|
},
|
|
79
82
|
computedBgColor() {
|
|
80
|
-
return this.currentBgColor ||
|
|
83
|
+
return this.currentBgColor || g(this.hsva.h);
|
|
81
84
|
},
|
|
82
85
|
computedTabIndex() {
|
|
83
86
|
return this.innerTabIndex !== void 0 ? this.innerTabIndex : this.focused ? 0 : -1;
|
|
@@ -95,57 +98,68 @@ const N = "rgba", x = "rgba(255, 255, 255, 1)", te = /* @__PURE__ */ R({
|
|
|
95
98
|
};
|
|
96
99
|
},
|
|
97
100
|
mounted() {
|
|
98
|
-
this.setAlphaSliderBackground(this.computedBgColor), this.$el && (this.draggable = this.$refs.draggable, this.gradientWrapper = this.draggable && this.draggable.element), this.
|
|
101
|
+
this.alphaSlider = this.alphaSliderRef, this.setAlphaSliderBackground(this.computedBgColor), this.$el && (this.draggable = this.$refs.draggable, this.gradientWrapper = this.draggable && this.draggable.element), this.isFirstRender && (this.isFirstRender = !1);
|
|
99
102
|
},
|
|
100
103
|
destroyed() {
|
|
101
|
-
|
|
104
|
+
Y(this.guid);
|
|
102
105
|
},
|
|
103
106
|
updated() {
|
|
104
107
|
this.setAlphaSliderBackground(this.computedBgColor);
|
|
105
108
|
},
|
|
106
109
|
render() {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
110
|
+
const {
|
|
111
|
+
size: e,
|
|
112
|
+
disabled: t,
|
|
113
|
+
class: i,
|
|
114
|
+
opacity: a,
|
|
115
|
+
id: r,
|
|
116
|
+
tabIndex: h,
|
|
117
|
+
ariaDescribedBy: p,
|
|
118
|
+
ariaLabelledBy: H,
|
|
119
|
+
adaptive: d
|
|
120
|
+
} = this.$props, B = M("k-colorgradient", {
|
|
121
|
+
"k-disabled": t,
|
|
122
|
+
[`k-colorgradient-${A.sizeMap[e] || e}`]: e
|
|
123
|
+
}, i), b = J(this), $ = b.toLanguageString(k, m[k]), V = b.toLanguageString(S, m[S]), L = b.toLanguageString(x, m[x]), F = function() {
|
|
124
|
+
let l = {};
|
|
111
125
|
if (!this.isFirstRender) {
|
|
112
|
-
const
|
|
113
|
-
|
|
126
|
+
const v = this.getGradientRectMetrics(), I = (1 - this.hsva.v) * v.height, T = this.hsva.s * v.width;
|
|
127
|
+
l.top = `${I}px`, l.left = `${T}px`;
|
|
114
128
|
}
|
|
115
129
|
return s("div", {
|
|
116
130
|
class: "k-hsv-draghandle k-draghandle",
|
|
117
131
|
role: "slider",
|
|
118
132
|
"aria-orientation": void 0,
|
|
119
|
-
"aria-label":
|
|
133
|
+
"aria-label": L + `${this.value || "none"}`,
|
|
120
134
|
"aria-valuenow": Math.round(this.hsva.s * 100),
|
|
121
135
|
"aria-valuetext": `
|
|
122
136
|
saturation: ${Math.round(this.hsva.s * 100)}%,
|
|
123
137
|
value: ${Math.round(this.hsva.v * 100)}%`,
|
|
124
138
|
tabindex: this.computedTabIndex,
|
|
125
139
|
onKeydown: this.dragKeyDown,
|
|
126
|
-
style:
|
|
127
|
-
ref:
|
|
140
|
+
style: l,
|
|
141
|
+
ref: N(this, "draghandle")
|
|
128
142
|
}, null);
|
|
129
143
|
};
|
|
130
144
|
return s("div", {
|
|
131
|
-
id:
|
|
132
|
-
class:
|
|
133
|
-
role:
|
|
134
|
-
"aria-disabled":
|
|
135
|
-
tabindex:
|
|
136
|
-
"aria-labelledby":
|
|
137
|
-
"aria-describedby":
|
|
145
|
+
id: r,
|
|
146
|
+
class: B,
|
|
147
|
+
role: h !== -1 ? "textbox" : void 0,
|
|
148
|
+
"aria-disabled": t,
|
|
149
|
+
tabindex: K(h, t),
|
|
150
|
+
"aria-labelledby": H,
|
|
151
|
+
"aria-describedby": p,
|
|
138
152
|
onFocus: this.onFocus,
|
|
139
153
|
onBlur: this.onBlur,
|
|
140
154
|
onKeydown: this.onKeyDownHandler
|
|
141
155
|
}, [s("div", {
|
|
142
|
-
class:
|
|
156
|
+
class: `k-colorgradient-canvas ${d ? "k-vstack" : "k-hstack"}`
|
|
143
157
|
}, [s("div", {
|
|
144
158
|
class: "k-hsv-rectangle",
|
|
145
159
|
style: {
|
|
146
160
|
background: this.computedBgColor
|
|
147
161
|
}
|
|
148
|
-
}, [s(
|
|
162
|
+
}, [s(E, {
|
|
149
163
|
onDrag: this.onDrag,
|
|
150
164
|
onRelease: this.onRelease,
|
|
151
165
|
ref: "draggable"
|
|
@@ -157,66 +171,67 @@ const N = "rgba", x = "rgba(255, 255, 255, 1)", te = /* @__PURE__ */ R({
|
|
|
157
171
|
},
|
|
158
172
|
tabindex: -1,
|
|
159
173
|
onClick: this.onGradientWrapperClick
|
|
160
|
-
}, [
|
|
161
|
-
}), this.backgroundColor && !this.isFirstRender && s(
|
|
174
|
+
}, [F.call(this)])]
|
|
175
|
+
}), this.backgroundColor && !this.isFirstRender && s(q, {
|
|
162
176
|
metrics: this.gradientWrapper ? this.getGradientRectMetrics() : void 0,
|
|
163
177
|
hsva: this.hsva,
|
|
164
178
|
backgroundColor: this.backgroundColor
|
|
165
179
|
}, null)]), s("div", {
|
|
166
|
-
class:
|
|
167
|
-
}, [s(
|
|
180
|
+
class: `k-hsv-controls ${d ? "k-vstack" : "k-hstack"}`
|
|
181
|
+
}, [s(R, {
|
|
168
182
|
tabIndex: this.computedTabIndex,
|
|
169
183
|
value: this.hsva.h,
|
|
170
184
|
buttons: !1,
|
|
171
|
-
vertical: !
|
|
185
|
+
vertical: !d,
|
|
172
186
|
min: 0,
|
|
173
187
|
max: 360,
|
|
174
188
|
step: 5,
|
|
175
189
|
onChange: this.onHueSliderChange,
|
|
176
190
|
class: "k-hue-slider k-colorgradient-slider",
|
|
177
|
-
disabled:
|
|
178
|
-
ariaLabel:
|
|
179
|
-
}, null),
|
|
191
|
+
disabled: t,
|
|
192
|
+
ariaLabel: $
|
|
193
|
+
}, null), a && s(R, {
|
|
180
194
|
tabIndex: this.computedTabIndex,
|
|
181
|
-
value:
|
|
195
|
+
value: f(this.hsva.a) ? this.hsva.a * 100 : 100,
|
|
182
196
|
buttons: !1,
|
|
183
|
-
vertical: !
|
|
197
|
+
vertical: !d,
|
|
184
198
|
min: 0,
|
|
185
199
|
max: 100,
|
|
186
200
|
step: 1,
|
|
187
201
|
onChange: this.onAlphaSliderChange,
|
|
188
202
|
class: "k-alpha-slider k-colorgradient-slider",
|
|
189
|
-
disabled:
|
|
190
|
-
ariaLabel:
|
|
191
|
-
ref: (
|
|
192
|
-
this.alphaSliderRef =
|
|
203
|
+
disabled: t,
|
|
204
|
+
ariaLabel: V,
|
|
205
|
+
ref: (l) => {
|
|
206
|
+
this.alphaSliderRef = l;
|
|
193
207
|
}
|
|
194
|
-
}, null)])]), s(
|
|
208
|
+
}, null)])]), s(_, {
|
|
195
209
|
tabIndex: this.computedTabIndex,
|
|
196
210
|
rgba: this.rgba,
|
|
197
211
|
onRgbachange: this.onRgbaChange,
|
|
198
212
|
hex: this.hex,
|
|
199
213
|
onHexchange: this.onHexChange,
|
|
200
|
-
opacity:
|
|
201
|
-
disabled:
|
|
202
|
-
ref: "colorInput"
|
|
203
|
-
|
|
204
|
-
|
|
214
|
+
opacity: a,
|
|
215
|
+
disabled: t,
|
|
216
|
+
ref: "colorInput",
|
|
217
|
+
size: e
|
|
218
|
+
}, null), this.backgroundColor && s(U, {
|
|
219
|
+
bgColor: u(this.backgroundColor),
|
|
205
220
|
rgba: this.rgba
|
|
206
221
|
}, null)]);
|
|
207
222
|
},
|
|
208
223
|
methods: {
|
|
209
224
|
onKeyDownHandler(e) {
|
|
210
225
|
const t = this.$el;
|
|
211
|
-
this.innerTabIndex === void 0 && (this.focused =
|
|
226
|
+
this.innerTabIndex === void 0 && (this.focused = z(e, t)), this.$emit("keydown", e);
|
|
212
227
|
},
|
|
213
|
-
onHexChange(e, t,
|
|
214
|
-
const
|
|
215
|
-
this.currentHsva = r, this.currentBgColor =
|
|
228
|
+
onHexChange(e, t, i) {
|
|
229
|
+
const a = u(t), r = c(t);
|
|
230
|
+
this.currentHsva = r, this.currentBgColor = g(r.h), this.currentRgba = a, this.currentHex = e, this.dispatchChangeEvent(t, i.event, e, t);
|
|
216
231
|
},
|
|
217
232
|
onRgbaChange(e, t) {
|
|
218
|
-
const
|
|
219
|
-
this.currentHsva = r, this.currentBgColor =
|
|
233
|
+
const i = j(e), a = o(i, "hex", this.opacity), r = c(i);
|
|
234
|
+
this.currentHsva = r, this.currentBgColor = g(r.h), this.currentRgba = e, this.currentHex = a, this.dispatchChangeEvent(i, t.event, a, i);
|
|
220
235
|
},
|
|
221
236
|
onAlphaSliderChange(e) {
|
|
222
237
|
this.handleHsvaChange(Object.assign({}, this.hsva, {
|
|
@@ -235,49 +250,49 @@ const N = "rgba", x = "rgba(255, 255, 255, 1)", te = /* @__PURE__ */ R({
|
|
|
235
250
|
this.gradientWrapper.classList.remove("k-dragging");
|
|
236
251
|
},
|
|
237
252
|
onGradientWrapperClick(e) {
|
|
238
|
-
this.firstFocusable =
|
|
253
|
+
this.firstFocusable = W(this, "draghandle"), this.firstFocusable && this.firstFocusable.focus(), this.changePosition(e);
|
|
239
254
|
},
|
|
240
|
-
move(e, t,
|
|
241
|
-
const
|
|
242
|
-
|
|
255
|
+
move(e, t, i) {
|
|
256
|
+
const a = this.hsva;
|
|
257
|
+
a[t] += i * (e.shiftKey ? 0.01 : 0.05), a[t] < 0 && (a[t] = 0), a[t] > 1 && (a[t] = 1), e.preventDefault(), this.handleHsvaChange(a, e);
|
|
243
258
|
},
|
|
244
259
|
dragKeyDown(e) {
|
|
245
260
|
switch (e.keyCode) {
|
|
246
|
-
case
|
|
261
|
+
case n.left:
|
|
247
262
|
this.move(e, "s", -1);
|
|
248
263
|
break;
|
|
249
|
-
case
|
|
264
|
+
case n.right:
|
|
250
265
|
this.move(e, "s", 1);
|
|
251
266
|
break;
|
|
252
|
-
case
|
|
267
|
+
case n.up:
|
|
253
268
|
this.move(e, "v", 1);
|
|
254
269
|
break;
|
|
255
|
-
case
|
|
270
|
+
case n.down:
|
|
256
271
|
this.move(e, "v", -1);
|
|
257
272
|
break;
|
|
258
|
-
case
|
|
273
|
+
case n.enter:
|
|
259
274
|
break;
|
|
260
|
-
case
|
|
275
|
+
case n.esc:
|
|
261
276
|
break;
|
|
262
277
|
}
|
|
263
278
|
},
|
|
264
279
|
changePosition(e) {
|
|
265
|
-
const t = this.getGradientRectMetrics(),
|
|
280
|
+
const t = this.getGradientRectMetrics(), i = e.clientX - t.left, a = e.clientY - t.top, r = C(i, 0, t.width), h = C(a, 0, t.height), p = Object.assign({}, this.hsva, {
|
|
266
281
|
s: r / t.width,
|
|
267
|
-
v: 1 -
|
|
282
|
+
v: 1 - h / t.height
|
|
268
283
|
});
|
|
269
|
-
this.handleHsvaChange(
|
|
284
|
+
this.handleHsvaChange(p, e, e.event);
|
|
270
285
|
},
|
|
271
286
|
handleHsvaChange(e, t) {
|
|
272
|
-
const
|
|
273
|
-
this.currentHsva = e, this.currentBgColor =
|
|
287
|
+
const i = X(e), a = o(i, "hex", this.opacity), r = o(i, "rgba");
|
|
288
|
+
this.currentHsva = e, this.currentBgColor = g(e.h), this.currentRgba = u(i), this.currentHex = a, this.dispatchChangeEvent(i, t, a, r);
|
|
274
289
|
},
|
|
275
|
-
dispatchChangeEvent(e, t,
|
|
276
|
-
this.currentValue = e, this.$emit("changemodel",
|
|
290
|
+
dispatchChangeEvent(e, t, i, a) {
|
|
291
|
+
this.currentValue = e, this.$emit("changemodel", i), this.$emit("update:modelRgbaValue", a), this.$emit("update:modelValue", i), this.$emit("change", {
|
|
277
292
|
event: t,
|
|
278
293
|
target: this,
|
|
279
|
-
value:
|
|
280
|
-
rgbaValue:
|
|
294
|
+
value: i,
|
|
295
|
+
rgbaValue: a
|
|
281
296
|
});
|
|
282
297
|
},
|
|
283
298
|
onFocus(e) {
|
|
@@ -293,7 +308,7 @@ const N = "rgba", x = "rgba(255, 255, 255, 1)", te = /* @__PURE__ */ R({
|
|
|
293
308
|
});
|
|
294
309
|
},
|
|
295
310
|
setAlphaSliderBackground(e) {
|
|
296
|
-
this.$props.opacity && this.alphaSlider && this.alphaSlider.sliderTrack && (this.alphaSlider.sliderTrack.style.background = `linear-gradient(to top, transparent, ${e})`);
|
|
311
|
+
this.$props.opacity && this.alphaSlider && this.alphaSlider.sliderTrack && (this.alphaSlider.sliderTrack.style.background = `linear-gradient(to ${this.$props.adaptive ? "right" : "top"}, transparent, ${e})`);
|
|
297
312
|
},
|
|
298
313
|
getGradientRectMetrics() {
|
|
299
314
|
const e = this.gradientWrapper.getBoundingClientRect();
|
|
@@ -310,11 +325,11 @@ const N = "rgba", x = "rgba(255, 255, 255, 1)", te = /* @__PURE__ */ R({
|
|
|
310
325
|
},
|
|
311
326
|
focus() {
|
|
312
327
|
this.focused = !0, setTimeout(() => {
|
|
313
|
-
|
|
328
|
+
O(this.$el);
|
|
314
329
|
}, 1);
|
|
315
330
|
}
|
|
316
331
|
}
|
|
317
332
|
});
|
|
318
333
|
export {
|
|
319
|
-
|
|
334
|
+
ce as ColorGradient
|
|
320
335
|
};
|
package/colors/ColorInput.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
6
|
*-------------------------------------------------------------------------------------------
|
|
7
7
|
*/
|
|
8
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),f=require("./HexInput.js"),L=require("@progress/kendo-vue-buttons"),i=require("@progress/kendo-vue-labels"),k=require("@progress/kendo-vue-intl"),a=require("../messages/main.js"),
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("vue"),f=require("./HexInput.js"),L=require("@progress/kendo-vue-buttons"),i=require("@progress/kendo-vue-labels"),k=require("@progress/kendo-vue-intl"),a=require("../messages/main.js"),h=require("@progress/kendo-vue-common"),I=require("@progress/kendo-svg-icons"),d=require("../numerictextbox/NumericTextBox.js");function r(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const o=["rgba","rgb","hex"],C=t.defineComponent({name:"KendoColorInput",emits:{hexchange:null,rgbachange:null},props:{tabIndex:Number,rgba:{type:Object,default:function(){return{}}},hex:String,opacity:Boolean,disabled:Boolean,size:String},inject:{kendoLocalizationService:{default:null}},created(){this.hexInputId=h.guid()},data(){return{inputMode:o[1]}},mounted(){this.lastFocusable=this.$refs.hexinput||this.$refs.numerica||this.$refs.numericb},updated(){this.lastFocusable=this.$refs.hexinput||this.$refs.numerica||this.$refs.numericb},render(){const e=k.provideLocalizationService(this),n=e.toLanguageString(a.colorGradientHex,a.messages[a.colorGradientHex]),s=e.toLanguageString(a.colorGradientInputColorButton,a.messages[a.colorGradientInputColorButton]),l=e.toLanguageString(a.colorGradientR,a.messages[a.colorGradientR]),c=e.toLanguageString(a.colorGradientG,a.messages[a.colorGradientG]),g=e.toLanguageString(a.colorGradientB,a.messages[a.colorGradientB]),u=e.toLanguageString(a.colorGradientA,a.messages[a.colorGradientA]),b=e.toLanguageString(a.colorGradientRLabel,a.messages[a.colorGradientRLabel]),p=e.toLanguageString(a.colorGradientGLabel,a.messages[a.colorGradientGLabel]),x=e.toLanguageString(a.colorGradientBLabel,a.messages[a.colorGradientBLabel]),m=e.toLanguageString(a.colorGradientALabel,a.messages[a.colorGradientALabel]);return t.createVNode("div",{class:"k-colorgradient-inputs k-hstack"},[t.createVNode("div",{class:"k-vstack"},[t.createVNode(L.Button,{ariaLabel:s,tabIndex:this.tabIndex,type:"button",fillMode:"flat",icon:"caret-alt-expand",svgIcon:I.caretAltExpandIcon,class:"k-colorgradient-toggle-mode k-icon-button",onClick:this.onToggleModeChange,onKeydown:this.onKeyDown,size:this.$props.size},null)]),this.inputMode==="hex"&&t.createVNode("div",{class:"k-vstack k-flex-1"},[t.createVNode("span",{class:"k-hex-value"},[t.createVNode(f.HexInput,{id:this.hexInputId,tabIndex:this.tabIndex,hex:this.$props.hex,onHexchange:this.onHexChange,disabled:this.$props.disabled,ref:"hexinput",size:this.$props.size},null)]),t.createVNode(i.Label,{class:"k-colorgradient-input-label",editorId:this.hexInputId},r(n)?n:{default:()=>[n]})]),(this.inputMode==="rgb"||this.inputMode==="rgba")&&[t.createVNode("div",{class:"k-vstack"},[t.createVNode(d.NumericTextBox,{inputType:"number",tabIndex:this.tabIndex,value:this.$props.rgba.r,min:0,max:255,spinners:!1,format:"n",ariaLabel:b,onChange:this.onRgbaRChange,disabled:this.$props.disabled,size:this.$props.size},null),t.createVNode(i.Label,{class:"k-colorgradient-input-label"},r(l)?l:{default:()=>[l]})]),t.createVNode("div",{class:"k-vstack"},[t.createVNode(d.NumericTextBox,{inputType:"number",tabIndex:this.tabIndex,value:this.$props.rgba.g,min:0,max:255,spinners:!1,format:"n",ariaLabel:p,onChange:this.onRgbaGChange,disabled:this.$props.disabled,size:this.$props.size},null),t.createVNode(i.Label,{class:"k-colorgradient-input-label"},r(c)?c:{default:()=>[c]})]),t.createVNode("div",{class:"k-vstack"},[t.createVNode(d.NumericTextBox,{inputType:"number",tabIndex:this.tabIndex,value:this.$props.rgba.b,min:0,max:255,spinners:!1,format:"n",ariaLabel:x,onChange:this.onRgbaBChange,disabled:this.$props.disabled,ref:"numericb",size:this.$props.size},null),t.createVNode(i.Label,{class:"k-colorgradient-input-label"},r(g)?g:{default:()=>[g]})])],this.inputMode==="rgba"&&t.createVNode("div",{class:"k-vstack"},[this.$props.opacity&&t.createVNode(d.NumericTextBox,{inputType:"number",tabIndex:this.tabIndex,value:this.$props.rgba.a,min:0,max:1,step:.01,spinners:!1,format:"n2",ariaLabel:m,onChange:this.onRgbaAChange,disabled:this.$props.disabled,ref:"numerica",size:this.$props.size},null),this.$props.opacity&&t.createVNode(i.Label,{class:"k-colorgradient-input-label"},r(u)?u:{default:()=>[u]})])])},methods:{onHexChange(e){this.$emit("hexchange",e.hex,e.value,e)},onRgbaRChange(e){this.dispatchRgbaChange({r:e.value},e)},onRgbaGChange(e){this.dispatchRgbaChange({g:e.value},e)},onRgbaBChange(e){this.dispatchRgbaChange({b:e.value},e)},onRgbaAChange(e){this.dispatchRgbaChange({a:e.value},e)},dispatchRgbaChange(e,n){let s={...this.$props.rgba};e.r!==void 0&&(s.r=e.r),e.g!==void 0&&(s.g=e.g),e.b!==void 0&&(s.b=e.b),e.a!==void 0&&(s.a=e.a),this.$emit("rgbachange",s,n)},onToggleModeChange(){const e=o.length-1===o.indexOf(this.inputMode)?0:o.indexOf(this.inputMode)+1;if(this.$props.opacity)this.inputMode=o[e];else{const n=o[e]==="rgba"?e+1:e;this.inputMode=o[n]}},onKeyDown(e){e.keyCode===h.Keys.enter&&e.stopPropagation()}}});exports.ColorInput=C;
|