@progress/kendo-react-inputs 7.4.0 → 7.5.0-develop.10

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.
@@ -14,21 +14,21 @@ import { useLocalization as Q } from "@progress/kendo-react-intl";
14
14
  import { RANGE_ACTION as n, rangeReducer as U } from "./range-raducer.mjs";
15
15
  import { packageMetadata as Z } from "../package-metadata.mjs";
16
16
  const ee = (r, l, e) => {
17
- const [s, i] = a.useState(r), d = a.useCallback(
18
- (u) => {
19
- const x = U(l.state || s, { ...u, ...l });
20
- e && e(x, u.event), i(x);
17
+ const [s, i] = a.useState(r), u = a.useCallback(
18
+ (m) => {
19
+ const x = U(l.state || s, { ...m, ...l });
20
+ e && e(x, m.event), i(x);
21
21
  },
22
22
  [l, e]
23
23
  );
24
- return [s, d];
24
+ return [s, u];
25
25
  }, te = W(), T = a.forwardRef((r, l) => {
26
26
  Y(Z);
27
- const e = _(te, r), s = a.useRef(null), i = a.useRef(null), d = a.useRef(null), u = a.useRef(null), x = a.useRef(null), V = a.useCallback(
27
+ const e = _(te, r), s = a.useRef(null), i = a.useRef(null), u = a.useRef(null), m = a.useRef(null), x = a.useRef(null), V = a.useCallback(
28
28
  () => {
29
- u.current && u.current.focus();
29
+ m.current && m.current.focus();
30
30
  },
31
- [u]
31
+ [m]
32
32
  );
33
33
  a.useImperativeHandle(s, () => ({
34
34
  element: i.current,
@@ -44,13 +44,13 @@ const ee = (r, l, e) => {
44
44
  ), K = a.useMemo(
45
45
  () => e.step !== void 0 ? e.step : $.step,
46
46
  [e.step, $.step]
47
- ), p = j(i, e.dir), A = (t, m) => {
47
+ ), p = j(i, e.dir), A = (t, o) => {
48
48
  e.onChange && s.current && e.onChange.call(void 0, {
49
49
  value: t,
50
50
  target: s.current,
51
- syntheticEvent: m
51
+ syntheticEvent: o
52
52
  });
53
- }, [E, S] = a.useState(""), [b, c] = ee(
53
+ }, [E, S] = a.useState(""), [g, c] = ee(
54
54
  e.defaultValue || $.defaultValue,
55
55
  {
56
56
  min: f,
@@ -59,26 +59,26 @@ const ee = (r, l, e) => {
59
59
  state: e.value
60
60
  },
61
61
  A
62
- ), o = a.useMemo(
63
- () => e.value || b,
64
- [e.value, b]
62
+ ), d = a.useMemo(
63
+ () => e.value || g,
64
+ [e.value, g]
65
65
  ), H = a.useRef(null), w = a.useRef(null), y = a.useMemo(
66
- () => (o.start - f) / (k - f) * 100,
67
- [o.start, f, k]
68
- ), g = a.useMemo(
69
- () => (o.end - f) / (k - f) * 100,
70
- [o.end, f, k]
66
+ () => (d.start - f) / (k - f) * 100,
67
+ [d.start, f, k]
68
+ ), b = a.useMemo(
69
+ () => (d.end - f) / (k - f) * 100,
70
+ [d.end, f, k]
71
71
  ), L = a.useMemo(
72
72
  () => e.vertical ? { paddingTop: 0, height: "100%" } : {},
73
73
  [e.vertical]
74
74
  ), N = a.useMemo(
75
75
  () => e.vertical ? { marginTop: "0.5rem", marginBottom: "0.5rem" } : { marginLeft: "0.5rem", marginRight: "0.5rem" },
76
76
  [e.vertical]
77
- ), M = Q(), I = a.useCallback(
77
+ ), M = Q(), C = a.useCallback(
78
78
  (t) => {
79
79
  if (!w.current)
80
80
  return;
81
- const m = w.current.getBoundingClientRect(), h = e.vertical ? m.bottom - t.clientY : p === "rtl" ? m.right - t.clientX : t.clientX - m.left, C = e.vertical ? m.height : m.width, X = h / C;
81
+ const o = w.current.getBoundingClientRect(), h = e.vertical ? o.bottom - t.clientY : p === "rtl" ? o.right - t.clientX : t.clientX - o.left, I = e.vertical ? o.height : o.width, X = h / I;
82
82
  return f + X * (k - f);
83
83
  },
84
84
  [
@@ -87,16 +87,16 @@ const ee = (r, l, e) => {
87
87
  p,
88
88
  f,
89
89
  k,
90
- b.start,
91
- b.end,
90
+ g.start,
91
+ g.end,
92
92
  e.value && e.value.start,
93
93
  e.value && e.value.end
94
94
  ]
95
95
  ), q = a.useCallback(
96
- (t) => t <= o.start ? "start" : t >= o.end ? "end" : 2 * t < o.end + o.start ? "start" : "end",
96
+ (t) => t <= d.start ? "start" : t >= d.end ? "end" : 2 * t < d.end + d.start ? "start" : "end",
97
97
  [
98
- b.start,
99
- b.end,
98
+ g.start,
99
+ g.end,
100
100
  e.value && e.value.start,
101
101
  e.value && e.value.end
102
102
  ]
@@ -150,19 +150,19 @@ const ee = (r, l, e) => {
150
150
  [c, p]
151
151
  ), O = a.useCallback(
152
152
  (t) => {
153
- const m = I(t), h = q(m);
154
- S(h), h === "end" ? x.current.focus() : u.current.focus();
155
- const C = h === "end" ? n.end : n.start;
156
- c({ type: C, payload: m, event: t });
153
+ const o = C(t), h = q(o);
154
+ S(h), h === "end" ? x.current.focus() : m.current.focus();
155
+ const I = h === "end" ? n.end : n.start;
156
+ c({ type: I, payload: o, event: t });
157
157
  },
158
158
  [e.vertical, f, k, c]
159
159
  );
160
160
  return F(w, { onPress: O, onDrag: (t) => {
161
- const m = I(t), h = E === "end" ? n.end : n.start;
162
- c({ type: h, payload: m, event: t });
161
+ const o = C(t), h = E === "end" ? n.end : n.start;
162
+ c({ type: h, payload: o, event: t });
163
163
  }, onRelease: (t) => {
164
- const m = I(t), h = E === "end" ? n.end : n.start;
165
- c({ type: h, payload: m, event: t }), S("");
164
+ const o = C(t), h = E === "end" ? n.end : n.start;
165
+ c({ type: h, payload: o, event: t }), S("");
166
166
  } }), /* @__PURE__ */ a.createElement(
167
167
  "div",
168
168
  {
@@ -199,11 +199,13 @@ const ee = (r, l, e) => {
199
199
  className: "k-reset k-slider-items",
200
200
  style: { ...L }
201
201
  },
202
- a.Children.map(e.children, (t) => t && a.cloneElement(
202
+ a.Children.map(e.children, (t, o) => t && a.cloneElement(
203
203
  t,
204
204
  {
205
205
  position: 100 * (t.props.position - e.min) / (e.max - e.min),
206
- vertical: e.vertical
206
+ vertical: e.vertical,
207
+ firstTick: o === 0,
208
+ lastTick: o === a.Children.count(e.children) - 1
207
209
  },
208
210
  t.props.children
209
211
  ))
@@ -215,31 +217,31 @@ const ee = (r, l, e) => {
215
217
  className: "k-slider-track",
216
218
  style: e.vertical ? { bottom: 0, height: "100%" } : { [p === "rtl" ? "right" : "left"]: 0, width: "100%" }
217
219
  },
218
- y !== null && g !== null && /* @__PURE__ */ a.createElement(
220
+ y !== null && b !== null && /* @__PURE__ */ a.createElement(
219
221
  "div",
220
222
  {
221
223
  "data-selection": !0,
222
- ref: d,
223
- title: `${o.start} - ${o.end}`,
224
+ ref: u,
225
+ title: `${d.start} - ${d.end}`,
224
226
  className: "k-slider-selection",
225
- style: e.vertical ? { height: g - y + "%", bottom: y + "%" } : {
227
+ style: e.vertical ? { height: b - y + "%", bottom: y + "%" } : {
226
228
  [p === "rtl" ? "right" : "left"]: y + "%",
227
- width: g - y + "%"
229
+ width: b - y + "%"
228
230
  }
229
231
  }
230
232
  ),
231
233
  /* @__PURE__ */ a.createElement(
232
234
  "span",
233
235
  {
234
- ref: u,
236
+ ref: m,
235
237
  role: "slider",
236
238
  tabIndex: z(e.startTabIndex, e.disabled, void 0),
237
239
  "aria-valuemin": f,
238
- "aria-valuemax": Math.max(k, o.end),
239
- "aria-valuenow": o.start,
240
+ "aria-valuemax": Math.max(k, d.end),
241
+ "aria-valuenow": d.start,
240
242
  "aria-disabled": e.disabled ? "true" : void 0,
241
- "aria-valuetext": `${o.start} - ${o.end}`,
242
- className: "k-draghandle",
243
+ "aria-valuetext": `${d.start} - ${d.end}`,
244
+ className: "k-draghandle k-draghandle-start",
243
245
  title: M.toLanguageString(R, P[R]),
244
246
  style: e.vertical ? { bottom: "calc(" + y + "%)", zIndex: 1 } : p === "rtl" ? { right: "calc(" + y + "% - 13px)", zIndex: 1 } : { left: "calc(" + y + "%)", zIndex: 1 },
245
247
  onKeyDown: B
@@ -251,14 +253,14 @@ const ee = (r, l, e) => {
251
253
  ref: x,
252
254
  role: "slider",
253
255
  tabIndex: z(e.endTabIndex, e.disabled, void 0),
254
- "aria-valuemin": Math.min(f, o.start),
256
+ "aria-valuemin": Math.min(f, d.start),
255
257
  "aria-valuemax": k,
256
- "aria-valuenow": o.end,
258
+ "aria-valuenow": d.end,
257
259
  "aria-disabled": e.disabled ? "true" : void 0,
258
- "aria-valuetext": `${o.start} - ${o.end}`,
259
- className: "k-draghandle",
260
+ "aria-valuetext": `${d.start} - ${d.end}`,
261
+ className: "k-draghandle k-draghandle-end",
260
262
  title: M.toLanguageString(R, P[R]),
261
- style: e.vertical ? { bottom: "calc(" + g + "%)", zIndex: 1 } : p === "rtl" ? { right: "calc(" + g + "% - 13px)", zIndex: 1 } : { left: "calc(" + g + "%)", zIndex: 1 },
263
+ style: e.vertical ? { bottom: "calc(" + b + "%)", zIndex: 1 } : p === "rtl" ? { right: "calc(" + b + "% - 13px)", zIndex: 1 } : { left: "calc(" + b + "%)", zIndex: 1 },
262
264
  onKeyDown: G
263
265
  }
264
266
  )
@@ -268,8 +270,8 @@ const ee = (r, l, e) => {
268
270
  }), ae = {
269
271
  value: (r, l, e) => {
270
272
  if (r.value) {
271
- const s = r.value.start, i = r.value.end, d = r.min, u = r.max;
272
- if (s > i || s > u || s < d || i > u || i < d || i < s)
273
+ const s = r.value.start, i = r.value.end, u = r.min, m = r.max;
274
+ if (s > i || s > m || s < u || i > m || i < u || i < s)
273
275
  return new Error(
274
276
  `Invalid prop + ${l} supplied to ${e}.
275
277
  The { start, end } value must be between the min & max value and { start, end } must be start < end.
@@ -280,8 +282,8 @@ const ee = (r, l, e) => {
280
282
  },
281
283
  defaultValue: (r, l, e) => {
282
284
  if (r.defaultValue) {
283
- const s = r.defaultValue.start, i = r.defaultValue.end, d = r.min, u = r.max;
284
- if (s > i || s > u || s < d || i > u || i < d || i < s)
285
+ const s = r.defaultValue.start, i = r.defaultValue.end, u = r.min, m = r.max;
286
+ if (s > i || s > m || s < u || i > m || i < u || i < s)
285
287
  return new Error(
286
288
  `Invalid prop + ${l} supplied to ${e}.
287
289
  The { start, end } value must be between the min & max value and { start, end } must be start < end.
@@ -293,24 +295,24 @@ const ee = (r, l, e) => {
293
295
  onChange: D.func,
294
296
  step: D.number,
295
297
  min: (r, l, e) => {
296
- const s = r[l], i = r.min, d = r.max;
298
+ const s = r[l], i = r.min, u = r.max;
297
299
  return i === void 0 ? new Error(
298
300
  `Invalid prop + ${l} supplied to ${e}.
299
301
  ${l} value can not be undefined.
300
302
  `
301
- ) : s && i >= d ? new Error(
303
+ ) : s && i >= u ? new Error(
302
304
  `Invalid prop + ${l} supplied to ${e}.
303
305
  ${l} value can not be equal to or bigger than the max value.
304
306
  `
305
307
  ) : null;
306
308
  },
307
309
  max: (r, l, e) => {
308
- const s = r[l], i = r.min, d = r.max;
309
- return d === void 0 ? new Error(
310
+ const s = r[l], i = r.min, u = r.max;
311
+ return u === void 0 ? new Error(
310
312
  `Invalid prop + ${l} supplied to ${e}.
311
313
  ${l} value can not be undefined.
312
314
  `
313
- ) : s && d <= i ? new Error(
315
+ ) : s && u <= i ? new Error(
314
316
  `Invalid prop + ${l} supplied to ${e}.
315
317
  ${l} value can not be equal to or smaller than the min value.
316
318
  `
@@ -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 client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ve=require("@progress/kendo-inputs-common"),R=require("@progress/kendo-react-buttons"),s=require("@progress/kendo-react-common"),ye=require("@progress/kendo-react-dialogs"),Ce=require("@progress/kendo-react-intl"),a=require("prop-types"),he=require("react"),d=require("../messages/index.js"),Se=require("../package-metadata.js"),ze=require("./utils/index.js"),q=require("@progress/kendo-svg-icons");function Oe(i){const f=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const e in i)if(e!=="default"){const p=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(f,e,p.get?p:{enumerable:!0,get:()=>i[e]})}}return f.default=i,Object.freeze(f)}const n=Oe(he),Ee=250,xe=84,Z=3,ee=2,Me="#000000",Ie="#ffffff",Y=i=>i!==void 0,te=s.createPropsContext(),b=n.forwardRef((i,f)=>{s.validatePackage(Se.packageMetadata);const e=s.usePropsContext(te,i),p=Ce.useLocalization(),c=n.useRef(null),v=n.useRef(null),T=n.useRef(null),B=n.useRef(null),_=n.useRef(null),[r,ne]=n.useState(),[y,j]=n.useState(!1),[O,N]=n.useState(!1),[C,F]=n.useState(),[oe,ae]=n.useState(),G=Y(e.value)?e.value:C,[re,se]=n.useState(!1),k=Y(e.open),g=k?e.open:re,ie=!(e.maximized||O||!e.maximizable||e.disabled),le=e.maximized&&!O,ce=!(!(e.value||C)||O||e.readOnly||e.disabled),A=p.toLanguageString(d.signatureMaximize,d.messages[d.signatureMaximize]),V=p.toLanguageString(d.signatureMinimize,d.messages[d.signatureMinimize]),U=p.toLanguageString(d.signatureClear,d.messages[d.signatureClear]),E=e.popupScale||Z,x=e.exportScale||ee,M=t=>{F(t),e.onChange&&e.onChange({value:t})},ue=t=>{r==null||r.loadImage(t.value),M(t.value)};n.useEffect(()=>{e.value!==C&&(F(e.value),r==null||r.loadImage(e.value))},[e.value]);const de=()=>{r==null||r.clear(),M()},h=n.useCallback(t=>{k||se(t)},[k]),me=t=>{var o,l;X(t),(l=((o=_.current)==null?void 0:o.element)||v.current)==null||l.focus()},I=n.useCallback(()=>{let t=Me;return!e.color&&typeof document!="undefined"&&c.current&&(t=getComputedStyle(c.current).color),e.color||t},[e.color]),w=n.useCallback(()=>{let t=Ie;return!e.backgroundColor&&typeof document!="undefined"&&c.current&&(t=getComputedStyle(c.current).backgroundColor),e.backgroundColor||t},[e.backgroundColor]),W=()=>({scale:e.maximized?e.popupScale:1,color:I(),backgroundColor:w(),strokeWidth:e.strokeWidth,smooth:e.smooth,readonly:e.readOnly}),H=async t=>{const{width:o,height:l}=t;return await(r==null?void 0:r.exportImage({width:o*x,height:l*x}))};n.useEffect(()=>{const t=v.current,o=new ve.SignaturePad(t,W());return G&&o.loadImage(G),ne(o),()=>o.destroy()},[]),n.useEffect(()=>{r==null||r.setOptions({onChange:async()=>M(await H(J())),onDraw:()=>N(!0),onDrawEnd:()=>N(!1)})},[r]),s.useIsomorphicLayoutEffect(()=>r==null?void 0:r.setOptions(W()),[e.readOnly,e.color,e.backgroundColor,e.strokeWidth,e.smooth]),n.useEffect(()=>{var l,m;const t=(m=(l=T.current)==null?void 0:l.element)==null?void 0:m.querySelector(".k-overlay");if(!t)return;const o=()=>h(!1);return t.addEventListener("click",o),()=>t.removeEventListener("click",o)},[g]),n.useEffect(()=>{if(!g||typeof document=="undefined")return;const t=o=>{o.keyCode===s.Keys.esc&&h(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[g]),n.useEffect(()=>{var t,o;e.maximized&&((o=(t=B.current)==null?void 0:t.element)==null||o.focus())},[]);const P=n.useCallback(()=>{var t;return(t=v.current)==null?void 0:t.focus()},[]),S=n.useCallback(()=>e.value,[e.value]),K=n.useCallback(()=>e.name,[e.name]),z=n.useCallback(()=>e.required,[e.required]),L=n.useCallback(()=>{const t=e.validationMessage!==void 0,l=!S(),m=e.valid!==void 0?e.valid:!z()||!l;return{customError:t,valid:m,valueMissing:l}},[e.validationMessage,e.valid,S,z]),D=n.useCallback(()=>e.validityStyles,[e.validityStyles]),$=n.useCallback(()=>e,[e]),u=n.useCallback(()=>{const t={element:c.current,focus:P};return Object.defineProperty(t,"name",{get:K}),Object.defineProperty(t,"value",{get:S}),Object.defineProperty(t,"validity",{get:L}),Object.defineProperty(t,"validityStyles",{get:D}),Object.defineProperty(t,"required",{get:z}),Object.defineProperty(t,"props",{get:$}),Object.defineProperty(t,"color",{get:I}),Object.defineProperty(t,"backgroundColor",{get:w}),t},[K,S,L,D,z,P,$,I,w]);n.useImperativeHandle(f,u);const pe=n.useCallback(t=>{y||e.maximized||(j(!0),s.dispatchEvent(e.onFocus,t,u(),{}))},[y,e.onFocus,u]),ge=n.useCallback(t=>{ze.hasParent(t.relatedTarget,c.current)||(j(!1),s.dispatchEvent(e.onBlur,t,u(),{}))},[y,e.onBlur,u]),fe=n.useCallback(async t=>{ae(await H(Q())),h(!0),s.dispatchEvent(e.onOpen,t,u(),{})},[g,k,e.onOpen,e.value,C,u]),X=n.useCallback(t=>{h(!1),s.dispatchEvent(e.onClose,t,u(),{})},[g,k,e.onClose,u]),ke=()=>{de(),P()},J=()=>{var l,m;const t=e.width||((l=c.current)==null?void 0:l.offsetWidth)||Ee,o=e.height||((m=c.current)==null?void 0:m.offsetHeight)||xe;return{width:t,height:o}},Q=()=>{const{width:t,height:o}=J();return{width:t*E,height:o*E}},be=!D()||L().valid;return n.createElement("div",{ref:c,dir:e.dir,style:{width:e.width,height:e.height,...e.style},className:s.classNames("k-input","k-signature",{"k-signature-maximized":e.maximized,[`k-signature-${s.kendoThemeMaps.sizeMap[e.size]||e.size}`]:e.size,[`k-input-${e.fillMode}`]:e.fillMode,[`k-rounded-${s.kendoThemeMaps.roundedMap[e.rounded]||e.rounded}`]:e.rounded,"k-invalid":!be,"k-required":e.required,"k-disabled":e.disabled,"k-focus":y},e.className),onFocus:pe,onBlur:ge},n.createElement("div",{className:"k-signature-canvas",ref:v,tabIndex:s.getTabIndex(e.tabIndex,e.disabled),role:"img",id:e.id,"aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledBy,"aria-describedby":e.ariaDescribedBy,"aria-disabled":e.disabled?"true":void 0}),n.createElement("div",{className:"k-signature-actions k-signature-actions-top"},ie&&n.createElement(R.Button,{type:"button",className:"k-signature-action k-signature-maximize",ref:_,icon:"hyperlink-open",svgIcon:q.hyperlinkOpenIcon,fillMode:"flat",size:e.size,onClick:fe,"aria-label":A,title:A}),le&&n.createElement(R.Button,{type:"button",className:"k-signature-action k-signature-minimize k-rotate-180",ref:B,icon:"hyperlink-open",svgIcon:q.hyperlinkOpenIcon,fillMode:"flat",size:e.size,onClick:X,"aria-label":V,title:V})),!e.hideLine&&n.createElement("div",{className:"k-signature-line",style:{zIndex:2,pointerEvents:"none"}}),n.createElement("div",{className:"k-signature-actions k-signature-actions-bottom"},ce&&n.createElement(R.Button,{type:"button",className:"k-signature-action k-signature-clear",icon:"x",svgIcon:q.xIcon,fillMode:"flat",size:e.size,onClick:ke,"aria-label":U,title:U})),g&&n.createElement(ye.Dialog,{ref:T},n.createElement(b,{...e,...Q(),value:oe,maximized:!0,exportScale:1/E*x,open:!1,onChange:ue,onClose:me})))});b.propTypes={value:a.string,width:a.number,height:a.number,tabIndex:a.number,dir:a.string,ariaDescribedBy:a.string,ariaLabelledBy:a.string,ariaLabel:a.string,readOnly:a.bool,disabled:a.bool,validationMessage:a.string,required:a.bool,onChange:a.func,onFocus:a.func,onBlur:a.func,onOpen:a.func,onClose:a.func,size:a.oneOf([null,"small","medium","large"]),rounded:a.oneOf([null,"small","medium","large"]),fillMode:a.oneOf([null,"solid","flat","outline"])};b.displayName="KendoSignature";b.defaultProps={strokeWidth:1,smooth:!1,popupScale:Z,exportScale:ee,maximizable:!0,disabled:!1,required:!1,validityStyles:!0,onChange:i=>s.noop,onFocus:i=>s.noop,onBlur:i=>s.noop,onOpen:i=>s.noop,onClose:i=>s.noop,size:"medium",rounded:"medium",fillMode:"solid"};exports.Signature=b;exports.SignaturePropsContext=te;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const ve=require("@progress/kendo-inputs-common"),R=require("@progress/kendo-react-buttons"),r=require("@progress/kendo-react-common"),ye=require("@progress/kendo-react-dialogs"),Ce=require("@progress/kendo-react-intl"),a=require("prop-types"),he=require("react"),d=require("../messages/index.js"),Se=require("../package-metadata.js"),ze=require("./utils/index.js"),q=require("@progress/kendo-svg-icons");function Oe(i){const p=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const e in i)if(e!=="default"){const f=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(p,e,f.get?f:{enumerable:!0,get:()=>i[e]})}}return p.default=i,Object.freeze(p)}const n=Oe(he),Ee=250,xe=84,Z=3,ee=2,Me="#000000",Ie="#ffffff",Y=i=>i!==void 0,te=r.createPropsContext(),b=n.forwardRef((i,p)=>{r.validatePackage(Se.packageMetadata);const e=r.usePropsContext(te,i),f=Ce.useLocalization(),c=n.useRef(null),v=n.useRef(null),T=n.useRef(null),B=n.useRef(null),_=n.useRef(null),[s,ne]=n.useState(),[y,N]=n.useState(!1),[O,j]=n.useState(!1),[C,F]=n.useState(),[oe,ae]=n.useState(),G=Y(e.value)?e.value:C,[re,se]=n.useState(!1),k=Y(e.open),g=k?e.open:re,ie=e.maximized||O||!e.maximizable||e.disabled,le=!(e.maximized&&!O),ce=!(!(e.value||C)||O||e.readOnly||e.disabled),A=f.toLanguageString(d.signatureMaximize,d.messages[d.signatureMaximize]),V=f.toLanguageString(d.signatureMinimize,d.messages[d.signatureMinimize]),U=f.toLanguageString(d.signatureClear,d.messages[d.signatureClear]),E=e.popupScale||Z,x=e.exportScale||ee,M=t=>{F(t),e.onChange&&e.onChange({value:t})},ue=t=>{s==null||s.loadImage(t.value),M(t.value)};n.useEffect(()=>{e.value!==C&&(F(e.value),s==null||s.loadImage(e.value))},[e.value]);const de=()=>{s==null||s.clear(),M()},h=n.useCallback(t=>{k||se(t)},[k]),me=t=>{var o,l;X(t),(l=((o=_.current)==null?void 0:o.element)||v.current)==null||l.focus()},I=n.useCallback(()=>{let t=Me;return!e.color&&typeof document!="undefined"&&c.current&&(t=getComputedStyle(c.current).color),e.color||t},[e.color]),w=n.useCallback(()=>{let t=Ie;return!e.backgroundColor&&typeof document!="undefined"&&c.current&&(t=getComputedStyle(c.current).backgroundColor),e.backgroundColor||t},[e.backgroundColor]),W=()=>({scale:e.maximized?e.popupScale:1,color:I(),backgroundColor:w(),strokeWidth:e.strokeWidth,smooth:e.smooth,readonly:e.readOnly}),H=async t=>{const{width:o,height:l}=t;return await(s==null?void 0:s.exportImage({width:o*x,height:l*x}))};n.useEffect(()=>{const t=v.current,o=new ve.SignaturePad(t,W());return G&&o.loadImage(G),ne(o),()=>o.destroy()},[]),n.useEffect(()=>{s==null||s.setOptions({onChange:async()=>M(await H(J())),onDraw:()=>j(!0),onDrawEnd:()=>j(!1)})},[s]),r.useIsomorphicLayoutEffect(()=>s==null?void 0:s.setOptions(W()),[e.readOnly,e.color,e.backgroundColor,e.strokeWidth,e.smooth]),n.useEffect(()=>{var l,m;const t=(m=(l=T.current)==null?void 0:l.element)==null?void 0:m.querySelector(".k-overlay");if(!t)return;const o=()=>h(!1);return t.addEventListener("click",o),()=>t.removeEventListener("click",o)},[g]),n.useEffect(()=>{if(!g||typeof document=="undefined")return;const t=o=>{o.keyCode===r.Keys.esc&&h(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[g]),n.useEffect(()=>{var t,o;e.maximized&&((o=(t=B.current)==null?void 0:t.element)==null||o.focus())},[]);const P=n.useCallback(()=>{var t;return(t=v.current)==null?void 0:t.focus()},[]),S=n.useCallback(()=>e.value,[e.value]),$=n.useCallback(()=>e.name,[e.name]),z=n.useCallback(()=>e.required,[e.required]),L=n.useCallback(()=>{const t=e.validationMessage!==void 0,l=!S(),m=e.valid!==void 0?e.valid:!z()||!l;return{customError:t,valid:m,valueMissing:l}},[e.validationMessage,e.valid,S,z]),D=n.useCallback(()=>e.validityStyles,[e.validityStyles]),K=n.useCallback(()=>e,[e]),u=n.useCallback(()=>{const t={element:c.current,focus:P};return Object.defineProperty(t,"name",{get:$}),Object.defineProperty(t,"value",{get:S}),Object.defineProperty(t,"validity",{get:L}),Object.defineProperty(t,"validityStyles",{get:D}),Object.defineProperty(t,"required",{get:z}),Object.defineProperty(t,"props",{get:K}),Object.defineProperty(t,"color",{get:I}),Object.defineProperty(t,"backgroundColor",{get:w}),t},[$,S,L,D,z,P,K,I,w]);n.useImperativeHandle(p,u);const fe=n.useCallback(t=>{y||e.maximized||(N(!0),r.dispatchEvent(e.onFocus,t,u(),{}))},[y,e.onFocus,u]),ge=n.useCallback(t=>{ze.hasParent(t.relatedTarget,c.current)||(N(!1),r.dispatchEvent(e.onBlur,t,u(),{}))},[y,e.onBlur,u]),pe=n.useCallback(async t=>{ae(await H(Q())),h(!0),r.dispatchEvent(e.onOpen,t,u(),{})},[g,k,e.onOpen,e.value,C,u]),X=n.useCallback(t=>{h(!1),r.dispatchEvent(e.onClose,t,u(),{})},[g,k,e.onClose,u]),ke=()=>{de(),P()},J=()=>{var l,m;const t=e.width||((l=c.current)==null?void 0:l.offsetWidth)||Ee,o=e.height||((m=c.current)==null?void 0:m.offsetHeight)||xe;return{width:t,height:o}},Q=()=>{const{width:t,height:o}=J();return{width:t*E,height:o*E}},be=!D()||L().valid;return n.createElement("div",{ref:c,dir:e.dir,style:{width:e.width,height:e.height,...e.style},className:r.classNames("k-input","k-signature",{"k-signature-maximized":e.maximized,[`k-signature-${r.kendoThemeMaps.sizeMap[e.size]||e.size}`]:e.size,[`k-signature-${e.fillMode}`]:e.fillMode,[`k-input-${e.fillMode}`]:e.fillMode,[`k-rounded-${r.kendoThemeMaps.roundedMap[e.rounded]||e.rounded}`]:e.rounded,"k-invalid":!be,"k-required":e.required,"k-disabled":e.disabled,"k-focus":y},e.className),onFocus:fe,onBlur:ge},n.createElement("div",{className:"k-signature-canvas",ref:v,tabIndex:r.getTabIndex(e.tabIndex,e.disabled),role:"img",id:e.id,"aria-label":e.ariaLabel,"aria-labelledby":e.ariaLabelledBy,"aria-describedby":e.ariaDescribedBy,"aria-disabled":e.disabled?"true":void 0}),n.createElement("div",{className:"k-signature-actions k-signature-actions-top"},n.createElement(R.Button,{type:"button",className:r.classNames("k-signature-action","k-signature-maximize",{"k-hidden":e.disabled||ie}),ref:_,icon:"hyperlink-open",svgIcon:q.hyperlinkOpenIcon,fillMode:"flat",size:e.size,onClick:pe,"aria-label":A,title:A}),n.createElement(R.Button,{type:"button",className:r.classNames("k-signature-action","k-signature-minimize","k-rotate-180",{"k-hidden":e.disabled||le}),ref:B,icon:"hyperlink-open",svgIcon:q.hyperlinkOpenIcon,fillMode:"flat",size:e.size,onClick:X,"aria-label":V,title:V})),!e.hideLine&&n.createElement("div",{className:"k-signature-line",style:{zIndex:2,pointerEvents:"none"}}),n.createElement("div",{className:"k-signature-actions k-signature-actions-bottom"},ce&&n.createElement(R.Button,{type:"button",className:"k-signature-action k-signature-clear",icon:"x",svgIcon:q.xIcon,fillMode:"flat",size:e.size,onClick:ke,"aria-label":U,title:U})),g&&n.createElement(ye.Dialog,{ref:T},n.createElement(b,{...e,...Q(),value:oe,maximized:!0,exportScale:1/E*x,open:!1,onChange:ue,onClose:me})))});b.propTypes={value:a.string,width:a.number,height:a.number,tabIndex:a.number,dir:a.string,ariaDescribedBy:a.string,ariaLabelledBy:a.string,ariaLabel:a.string,readOnly:a.bool,disabled:a.bool,validationMessage:a.string,required:a.bool,onChange:a.func,onFocus:a.func,onBlur:a.func,onOpen:a.func,onClose:a.func,size:a.oneOf([null,"small","medium","large"]),rounded:a.oneOf([null,"small","medium","large"]),fillMode:a.oneOf([null,"solid","flat","outline"])};b.displayName="KendoSignature";b.defaultProps={strokeWidth:1,smooth:!1,popupScale:Z,exportScale:ee,maximizable:!0,disabled:!1,required:!1,validityStyles:!0,onChange:i=>r.noop,onFocus:i=>r.noop,onBlur:i=>r.noop,onOpen:i=>r.noop,onClose:i=>r.noop,size:"medium",rounded:"medium",fillMode:"solid"};exports.Signature=b;exports.SignaturePropsContext=te;