@progress/kendo-react-gauges 7.2.4-develop.3 → 7.3.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/ArcCenter.js +8 -0
  2. package/ArcCenter.mjs +60 -0
  3. package/ArcGauge.js +8 -0
  4. package/ArcGauge.mjs +77 -0
  5. package/BaseGauge.js +8 -0
  6. package/BaseGauge.mjs +171 -0
  7. package/CircularGauge.js +8 -0
  8. package/CircularGauge.mjs +18 -0
  9. package/GaugeContext.js +8 -0
  10. package/GaugeContext.mjs +14 -0
  11. package/LinearGauge.js +8 -0
  12. package/LinearGauge.mjs +72 -0
  13. package/RadialGauge.js +8 -0
  14. package/RadialGauge.mjs +72 -0
  15. package/dist/cdn/js/kendo-react-gauges.js +8 -9
  16. package/index.d.mts +672 -5
  17. package/index.d.ts +672 -15
  18. package/index.js +8 -9
  19. package/index.mjs +15 -500
  20. package/package-metadata.js +8 -0
  21. package/package-metadata.mjs +19 -0
  22. package/package.json +3 -3
  23. package/store/reducer.js +8 -0
  24. package/store/reducer.mjs +58 -0
  25. package/store/store.js +8 -0
  26. package/store/store.mjs +20 -0
  27. package/theming/theme-service.js +12 -0
  28. package/theming/theme-service.mjs +49 -0
  29. package/utils/common.js +8 -0
  30. package/utils/common.mjs +29 -0
  31. package/ArcCenter.d.ts +0 -40
  32. package/ArcGauge.d.ts +0 -37
  33. package/ArcGaugeProps.d.ts +0 -43
  34. package/BaseGauge.d.ts +0 -93
  35. package/BaseGaugeProps.d.ts +0 -55
  36. package/CircularGauge.d.ts +0 -10
  37. package/CircularGaugeProps.d.ts +0 -21
  38. package/GaugeContext.d.ts +0 -16
  39. package/LinearGauge.d.ts +0 -36
  40. package/LinearGaugeProps.d.ts +0 -19
  41. package/RadialGauge.d.ts +0 -36
  42. package/RadialGaugeProps.d.ts +0 -19
  43. package/common/gauges.d.ts +0 -9
  44. package/package-metadata.d.ts +0 -9
  45. package/store/reducer.d.ts +0 -18
  46. package/store/store.d.ts +0 -30
  47. package/theming/theme-service.d.ts +0 -10
  48. package/types/arc-scale.interface.d.ts +0 -32
  49. package/types/border.interface.d.ts +0 -22
  50. package/types/cap.interface.d.ts +0 -17
  51. package/types/circular-scale.interface.d.ts +0 -14
  52. package/types/color-range.interface.d.ts +0 -25
  53. package/types/dash-type.interface.d.ts +0 -8
  54. package/types/gauge-area.interface.d.ts +0 -31
  55. package/types/labels.interface.d.ts +0 -51
  56. package/types/line-cap.d.ts +0 -8
  57. package/types/line.interface.d.ts +0 -26
  58. package/types/linear-pointer-shape.d.ts +0 -8
  59. package/types/linear-pointer.interface.d.ts +0 -40
  60. package/types/linear-scale.interface.d.ts +0 -30
  61. package/types/margin.interface.d.ts +0 -25
  62. package/types/padding.interface.d.ts +0 -25
  63. package/types/radial-label-position.d.ts +0 -8
  64. package/types/radial-labels.interface.d.ts +0 -12
  65. package/types/radial-pointer.interface.d.ts +0 -26
  66. package/types/radial-scale.interface.d.ts +0 -32
  67. package/types/range.interface.d.ts +0 -25
  68. package/types/scale.interface.d.ts +0 -51
  69. package/types/ticks.interface.d.ts +0 -25
  70. package/types.d.ts +0 -25
  71. package/utils/common.d.ts +0 -5
package/ArcCenter.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),d=require("@progress/kendo-charts"),g=require("./GaugeContext.js");function h(n){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(t,e,r.get?r:{enumerable:!0,get:()=>n[e]})}}return t.default=n,Object.freeze(t)}const c=h(u),l=class l extends c.Component{constructor(t,e){super(t,e),this.state={arcCenterStyles:null,arcCenterValue:{value:0,color:""}},this._element=null,this.gaugeObserver=new d.InstanceObserver(this,{render:"onRender"}),e.observersStore.dispatch({type:"add",payload:this.gaugeObserver})}render(){const{render:t}=this.props,{arcCenterStyles:e,arcCenterValue:r}=this.state,o=e||{zIndex:-1};let s=null;return t&&(s=c.createElement("div",{className:"k-arcgauge-label",ref:i=>this._element=i,style:o},t(r.value,r.color))),s}onRender(t){if(!this._element)return;const e=t.sender.gaugeInstance,r=this._element.offsetWidth,o=this._element.offsetHeight,s=e.centerLabelPosition(r,o);this.setState({arcCenterStyles:{left:s.left,top:s.top},arcCenterValue:{value:e.value(),color:e.currentColor()}})}};l.contextType=g.GaugeContext;let a=l;exports.ArcCenter=a;
package/ArcCenter.mjs ADDED
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as a from "react";
10
+ import { InstanceObserver as c } from "@progress/kendo-charts";
11
+ import { GaugeContext as u } from "./GaugeContext.mjs";
12
+ const o = class o extends a.Component {
13
+ constructor(t, e) {
14
+ super(t, e), this.state = {
15
+ arcCenterStyles: null,
16
+ arcCenterValue: {
17
+ value: 0,
18
+ color: ""
19
+ }
20
+ }, this._element = null, this.gaugeObserver = new c(this, {
21
+ render: "onRender"
22
+ }), e.observersStore.dispatch({
23
+ type: "add",
24
+ payload: this.gaugeObserver
25
+ });
26
+ }
27
+ render() {
28
+ const { render: t } = this.props, { arcCenterStyles: e, arcCenterValue: s } = this.state, n = e || { zIndex: -1 };
29
+ let r = null;
30
+ return t && (r = /* @__PURE__ */ a.createElement(
31
+ "div",
32
+ {
33
+ className: "k-arcgauge-label",
34
+ ref: (i) => this._element = i,
35
+ style: n
36
+ },
37
+ t(s.value, s.color)
38
+ )), r;
39
+ }
40
+ onRender(t) {
41
+ if (!this._element)
42
+ return;
43
+ const e = t.sender.gaugeInstance, s = this._element.offsetWidth, n = this._element.offsetHeight, r = e.centerLabelPosition(s, n);
44
+ this.setState({
45
+ arcCenterStyles: {
46
+ left: r.left,
47
+ top: r.top
48
+ },
49
+ arcCenterValue: {
50
+ value: e.value(),
51
+ color: e.currentColor()
52
+ }
53
+ });
54
+ }
55
+ };
56
+ o.contextType = u;
57
+ let l = o;
58
+ export {
59
+ l as ArcCenter
60
+ };
package/ArcGauge.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),g=require("./BaseGauge.js"),l=require("@progress/kendo-charts"),h=require("./ArcCenter.js"),i=require("@progress/kendo-drawing"),m=require("@progress/kendo-react-common");function p(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const c=p(o);class d extends c.Component{constructor(){super(...arguments),this._baseGauge=null,this.gaugeType=l.ArcGauge,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{value:t,color:n,colors:s,opacity:a,scale:u}=this.props;return Object.assign({},e,{value:t,color:n,colors:s,opacity:a,scale:u})}}get gaugeInstance(){return this._baseGauge?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge?this._baseGauge.surface:null}get element(){return this._baseGauge?this._baseGauge.element:null}render(){const{children:e,arcCenterRender:t,centerRender:n,className:s,...a}=this.props;return c.createElement(g.BaseGauge,{...a,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:u=>this._baseGauge=u,gaugeConstructor:this.gaugeType,getTarget:this.getTarget,className:m.classNames("k-gauge k-arcgauge",s)},e,c.createElement(h.ArcCenter,{render:n||t}))}exportVisual(e){return this.gaugeInstance!==null&&this.element?i.drawDOM(this.element,e):Promise.resolve(new i.Group)}}exports.ArcGauge=d;
package/ArcGauge.mjs ADDED
@@ -0,0 +1,77 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as u from "react";
10
+ import { BaseGauge as i } from "./BaseGauge.mjs";
11
+ import { ArcGauge as g } from "@progress/kendo-charts";
12
+ import { ArcCenter as o } from "./ArcCenter.mjs";
13
+ import { drawDOM as c, Group as l } from "@progress/kendo-drawing";
14
+ import { classNames as m } from "@progress/kendo-react-common";
15
+ class _ extends u.Component {
16
+ constructor() {
17
+ super(...arguments), this._baseGauge = null, this.gaugeType = g, this.getTarget = () => this, this.deriveOptionsFromParent = (e) => {
18
+ const { value: r, color: t, colors: s, opacity: a, scale: n } = this.props;
19
+ return Object.assign({}, e, {
20
+ value: r,
21
+ color: t,
22
+ colors: s,
23
+ opacity: a,
24
+ scale: n
25
+ });
26
+ };
27
+ }
28
+ /**
29
+ * @hidden
30
+ */
31
+ get gaugeInstance() {
32
+ return this._baseGauge ? this._baseGauge.gaugeInstance : null;
33
+ }
34
+ /**
35
+ * The Drawing `Surface` of the Gauge.
36
+ */
37
+ get surface() {
38
+ return this._baseGauge ? this._baseGauge.surface : null;
39
+ }
40
+ /**
41
+ * The DOM element of the Gauge.
42
+ */
43
+ get element() {
44
+ return this._baseGauge ? this._baseGauge.element : null;
45
+ }
46
+ /**
47
+ * @hidden
48
+ */
49
+ render() {
50
+ const { children: e, arcCenterRender: r, centerRender: t, className: s, ...a } = this.props;
51
+ return /* @__PURE__ */ u.createElement(
52
+ i,
53
+ {
54
+ ...a,
55
+ deriveOptionsFromParent: this.deriveOptionsFromParent,
56
+ ref: (n) => this._baseGauge = n,
57
+ gaugeConstructor: this.gaugeType,
58
+ getTarget: this.getTarget,
59
+ className: m("k-gauge k-arcgauge", s)
60
+ },
61
+ e,
62
+ /* @__PURE__ */ u.createElement(o, { render: t || r })
63
+ );
64
+ }
65
+ /**
66
+ * Exports a Gauge component as a Drawing `Scene`.
67
+ *
68
+ * @param {any} options - The parameters for the export operation.
69
+ * @returns {Promise<Group>} - A promise that returns the root `Group` of the scene.
70
+ */
71
+ exportVisual(e) {
72
+ return this.gaugeInstance !== null && this.element ? c(this.element, e) : Promise.resolve(new l());
73
+ }
74
+ }
75
+ export {
76
+ _ as ArcGauge
77
+ };
package/BaseGauge.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),p=require("prop-types"),l=require("@progress/kendo-react-intl"),A=require("./theming/theme-service.js"),m=require("./store/store.js"),v=require("./store/reducer.js"),D=require("./utils/common.js"),f=require("@progress/kendo-react-common"),P=require("./GaugeContext.js"),R=require("./package-metadata.js");function q(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const g=q(w),a=class a extends g.Component{constructor(e){super(e),this.gaugeInstance=null,this.surface=null,this._element=null,this.themeStore={},this.themeUnsubscriber=Function.prototype,this.observersStore={},this.onWindowResize=()=>{this.gaugeInstance!==null&&(this.gaugeInstance.resize(),this.trigger("render",{sender:this}))},f.validatePackage(R.packageMetadata),this.themeStore=m.default(v.themeReducer),this.observersStore=m.default(v.observersReducer),this.contextValue={observersStore:this.observersStore}}get element(){return this._element}componentDidMount(){var t;const e=((t=this._element)==null?void 0:t.ownerDocument)||document;A.loadTheme(this.themeStore,this.instantiateCoreGauge.bind(this),e),this.themeUnsubscriber=this.themeStore.subscribe(this.refresh.bind(this)),window.addEventListener("resize",this.onWindowResize),this.trigger("render",{sender:this})}componentDidUpdate(e){const{dir:t,children:r,deriveOptionsFromParent:s,getTarget:h,gaugeConstructor:x,className:T,renderAs:S,...c}=this.props,{dir:j,children:F,deriveOptionsFromParent:V,getTarget:_,gaugeConstructor:k,className:z,renderAs:b,...O}=e;if(this.gaugeInstance!==null){const u=l.provideIntlService(this),I=this.gaugeInstance.contextService,y=u.locale!==I._intlService.locale,d=D.isOptionsChanged(O,c),i=c;y&&(this.gaugeInstance.contextService._intlService=u,this.gaugeInstance.contextService.format._intlService=u,d||this.gaugeInstance.noTransitionsRedraw()),d||(S||"svg")!==(b||"svg")?this.refresh():Object.keys(c).indexOf("pointer")>-1?Array.isArray(i.pointer)?this.refreshAllValues(i.pointer.map(C=>C.value)):this.refreshValue((i.pointer||{}).value):this.refreshValue(i.value),e.dir!==t&&this.gaugeInstance.setDirection(this.getDirection(t)),this.trigger("render",{sender:this})}}componentWillUnmount(){this.themeUnsubscriber();const e=this.gaugeInstance&&this.gaugeInstance.surfaceElement;e&&e.parentNode&&e.parentNode.removeChild(e),this.gaugeInstance!==null&&(this.gaugeInstance.destroy(),this.gaugeInstance=null),window.removeEventListener("resize",this.onWindowResize)}render(){const{style:e={},className:t,children:r}=this.props,s=Object.assign({},e,{position:"relative"});return g.createElement(P.GaugeContext.Provider,{value:this.contextValue},g.createElement("div",{style:s,ref:h=>this._element=h,className:t},r))}instantiateCoreGauge(){const{dir:e,gaugeConstructor:t}=this.props,r=this.getGaugeOptions();this.gaugeInstance=new t(this.element,r,this.themeStore.getState(),{rtl:this.getDirection(e),intlService:l.provideIntlService(this),sender:this})}refresh(){if(this.gaugeInstance!==null){const e=this.themeStore.getState(),t=this.getGaugeOptions();this.gaugeInstance.setOptions(t,e)}}refreshValue(e){this.gaugeInstance.value(e)}refreshAllValues(e){this.gaugeInstance.allValues(e)}getDirection(e){return(e!==void 0?e:f.canUseDOM&&window.getComputedStyle(this.element).direction||"ltr")==="rtl"}getGaugeOptions(){const{renderAs:e,transitions:t,deriveOptionsFromParent:r}=this.props;let s=Object.assign({renderAs:e,transitions:t});return r&&(s=r(s)),s}trigger(e,t){const r=this.observersStore.getState();for(let s=0;s<r.length;s++)r[s].trigger(e,t)}};a.propTypes={dir:p.string,renderAs:p.oneOf(["svg","canvas"])},a.defaultProps={renderAs:"svg"};let o=a;l.registerForIntl(o);exports.BaseGauge=o;
package/BaseGauge.mjs ADDED
@@ -0,0 +1,171 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as c from "react";
10
+ import u from "prop-types";
11
+ import { provideIntlService as d, registerForIntl as b } from "@progress/kendo-react-intl";
12
+ import { loadTheme as C } from "./theming/theme-service.mjs";
13
+ import m from "./store/store.mjs";
14
+ import { themeReducer as w, observersReducer as y } from "./store/reducer.mjs";
15
+ import { isOptionsChanged as A } from "./utils/common.mjs";
16
+ import { validatePackage as x, canUseDOM as D } from "@progress/kendo-react-common";
17
+ import { GaugeContext as P } from "./GaugeContext.mjs";
18
+ import { packageMetadata as F } from "./package-metadata.mjs";
19
+ const n = class n extends c.Component {
20
+ constructor(e) {
21
+ super(e), this.gaugeInstance = null, this.surface = null, this._element = null, this.themeStore = {}, this.themeUnsubscriber = Function.prototype, this.observersStore = {}, this.onWindowResize = () => {
22
+ this.gaugeInstance !== null && (this.gaugeInstance.resize(), this.trigger("render", { sender: this }));
23
+ }, x(F), this.themeStore = m(w), this.observersStore = m(y), this.contextValue = {
24
+ observersStore: this.observersStore
25
+ };
26
+ }
27
+ /**
28
+ * @hidden
29
+ */
30
+ get element() {
31
+ return this._element;
32
+ }
33
+ /**
34
+ * @hidden
35
+ */
36
+ componentDidMount() {
37
+ var t;
38
+ const e = ((t = this._element) == null ? void 0 : t.ownerDocument) || document;
39
+ C(this.themeStore, this.instantiateCoreGauge.bind(this), e), this.themeUnsubscriber = this.themeStore.subscribe(this.refresh.bind(this)), window.addEventListener("resize", this.onWindowResize), this.trigger("render", { sender: this });
40
+ }
41
+ /**
42
+ * @hidden
43
+ */
44
+ componentDidUpdate(e) {
45
+ const {
46
+ dir: t,
47
+ children: r,
48
+ deriveOptionsFromParent: s,
49
+ getTarget: g,
50
+ gaugeConstructor: R,
51
+ className: V,
52
+ renderAs: p,
53
+ ...o
54
+ } = this.props, {
55
+ dir: T,
56
+ children: z,
57
+ deriveOptionsFromParent: E,
58
+ getTarget: N,
59
+ gaugeConstructor: U,
60
+ className: W,
61
+ renderAs: v,
62
+ ...f
63
+ } = e;
64
+ if (this.gaugeInstance !== null) {
65
+ const a = d(this), S = this.gaugeInstance.contextService, I = a.locale !== S._intlService.locale, l = A(f, o), i = o;
66
+ I && (this.gaugeInstance.contextService._intlService = a, this.gaugeInstance.contextService.format._intlService = a, l || this.gaugeInstance.noTransitionsRedraw()), l || (p || "svg") !== (v || "svg") ? this.refresh() : Object.keys(o).indexOf("pointer") > -1 ? Array.isArray(i.pointer) ? this.refreshAllValues(i.pointer.map((O) => O.value)) : this.refreshValue((i.pointer || {}).value) : this.refreshValue(i.value), e.dir !== t && this.gaugeInstance.setDirection(this.getDirection(t)), this.trigger("render", { sender: this });
67
+ }
68
+ }
69
+ /**
70
+ * @hidden
71
+ */
72
+ componentWillUnmount() {
73
+ this.themeUnsubscriber();
74
+ const e = this.gaugeInstance && this.gaugeInstance.surfaceElement;
75
+ e && e.parentNode && e.parentNode.removeChild(e), this.gaugeInstance !== null && (this.gaugeInstance.destroy(), this.gaugeInstance = null), window.removeEventListener("resize", this.onWindowResize);
76
+ }
77
+ /**
78
+ * @hidden
79
+ */
80
+ render() {
81
+ const { style: e = {}, className: t, children: r } = this.props, s = Object.assign({}, e, { position: "relative" });
82
+ return /* @__PURE__ */ c.createElement(P.Provider, { value: this.contextValue }, /* @__PURE__ */ c.createElement(
83
+ "div",
84
+ {
85
+ style: s,
86
+ ref: (g) => this._element = g,
87
+ className: t
88
+ },
89
+ r
90
+ ));
91
+ }
92
+ /**
93
+ * @hidden
94
+ */
95
+ instantiateCoreGauge() {
96
+ const { dir: e, gaugeConstructor: t } = this.props, r = this.getGaugeOptions();
97
+ this.gaugeInstance = new t(
98
+ this.element,
99
+ r,
100
+ this.themeStore.getState(),
101
+ {
102
+ rtl: this.getDirection(e),
103
+ intlService: d(this),
104
+ sender: this
105
+ }
106
+ );
107
+ }
108
+ /**
109
+ * @hidden
110
+ */
111
+ refresh() {
112
+ if (this.gaugeInstance !== null) {
113
+ const e = this.themeStore.getState(), t = this.getGaugeOptions();
114
+ this.gaugeInstance.setOptions(t, e);
115
+ }
116
+ }
117
+ /**
118
+ * @hidden
119
+ */
120
+ refreshValue(e) {
121
+ this.gaugeInstance.value(e);
122
+ }
123
+ /**
124
+ * @hidden
125
+ */
126
+ refreshAllValues(e) {
127
+ this.gaugeInstance.allValues(e);
128
+ }
129
+ /**
130
+ * @hidden
131
+ */
132
+ getDirection(e) {
133
+ return (e !== void 0 ? e : D && window.getComputedStyle(this.element).direction || "ltr") === "rtl";
134
+ }
135
+ /**
136
+ * @hidden
137
+ */
138
+ getGaugeOptions() {
139
+ const {
140
+ renderAs: e,
141
+ transitions: t,
142
+ deriveOptionsFromParent: r
143
+ } = this.props;
144
+ let s = Object.assign(
145
+ {
146
+ renderAs: e,
147
+ transitions: t
148
+ }
149
+ );
150
+ return r && (s = r(s)), s;
151
+ }
152
+ /**
153
+ * @hidden
154
+ */
155
+ trigger(e, t) {
156
+ const r = this.observersStore.getState();
157
+ for (let s = 0; s < r.length; s++)
158
+ r[s].trigger(e, t);
159
+ }
160
+ };
161
+ n.propTypes = {
162
+ dir: u.string,
163
+ renderAs: u.oneOf(["svg", "canvas"])
164
+ }, n.defaultProps = {
165
+ renderAs: "svg"
166
+ };
167
+ let h = n;
168
+ b(h);
169
+ export {
170
+ h as BaseGauge
171
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./ArcGauge.js"),r=require("@progress/kendo-charts");class u extends e.ArcGauge{constructor(){super(...arguments),this.gaugeType=r.CircularGauge}}exports.CircularGauge=u;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import { ArcGauge as r } from "./ArcGauge.mjs";
10
+ import { CircularGauge as e } from "@progress/kendo-charts";
11
+ class t extends r {
12
+ constructor() {
13
+ super(...arguments), this.gaugeType = e;
14
+ }
15
+ }
16
+ export {
17
+ t as CircularGauge
18
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react");function c(e){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,o.get?o:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const u=c(a),r=u.createContext(null);r.displayName="GaugeContext";exports.GaugeContext=r;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as e from "react";
10
+ const t = e.createContext(null);
11
+ t.displayName = "GaugeContext";
12
+ export {
13
+ t as GaugeContext
14
+ };
package/LinearGauge.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),i=require("./BaseGauge.js"),o=require("@progress/kendo-charts"),g=require("@progress/kendo-drawing"),c=require("@progress/kendo-react-common");function l(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,n.get?n:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const s=l(u);class p extends s.Component{constructor(){super(...arguments),this._baseGauge=null,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{pointer:t,scale:n}=this.props;return Object.assign({},e,{pointer:t,scale:n})}}get gaugeInstance(){return this._baseGauge!==null?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge!==null?this._baseGauge.surface:null}get element(){return this._baseGauge!==null?this._baseGauge.element:null}render(){const{children:e,className:t,...n}=this.props;return s.createElement(i.BaseGauge,{...n,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:a=>this._baseGauge=a,gaugeConstructor:o.LinearGauge,getTarget:this.getTarget,className:c.classNames("k-gauge",t)},e)}exportVisual(e){return this.gaugeInstance!==null?Promise.resolve(this.gaugeInstance.exportVisual(e)):Promise.resolve(new g.Group)}}exports.LinearGauge=p;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as s from "react";
10
+ import { BaseGauge as n } from "./BaseGauge.mjs";
11
+ import { LinearGauge as u } from "@progress/kendo-charts";
12
+ import { Group as i } from "@progress/kendo-drawing";
13
+ import { classNames as g } from "@progress/kendo-react-common";
14
+ class h extends s.Component {
15
+ constructor() {
16
+ super(...arguments), this._baseGauge = null, this.getTarget = () => this, this.deriveOptionsFromParent = (e) => {
17
+ const { pointer: r, scale: t } = this.props;
18
+ return Object.assign({}, e, {
19
+ pointer: r,
20
+ scale: t
21
+ });
22
+ };
23
+ }
24
+ /**
25
+ * @hidden
26
+ */
27
+ get gaugeInstance() {
28
+ return this._baseGauge !== null ? this._baseGauge.gaugeInstance : null;
29
+ }
30
+ /**
31
+ * The Drawing `Surface` of the Gauge.
32
+ */
33
+ get surface() {
34
+ return this._baseGauge !== null ? this._baseGauge.surface : null;
35
+ }
36
+ /**
37
+ * The DOM element of the Gauge.
38
+ */
39
+ get element() {
40
+ return this._baseGauge !== null ? this._baseGauge.element : null;
41
+ }
42
+ /**
43
+ * @hidden
44
+ */
45
+ render() {
46
+ const { children: e, className: r, ...t } = this.props;
47
+ return /* @__PURE__ */ s.createElement(
48
+ n,
49
+ {
50
+ ...t,
51
+ deriveOptionsFromParent: this.deriveOptionsFromParent,
52
+ ref: (a) => this._baseGauge = a,
53
+ gaugeConstructor: u,
54
+ getTarget: this.getTarget,
55
+ className: g("k-gauge", r)
56
+ },
57
+ e
58
+ );
59
+ }
60
+ /**
61
+ * Exports a Gauge component as a Drawing `Scene`.
62
+ *
63
+ * @param {any} options - The parameters for the export operation.
64
+ * @returns {Promise<Group>} - A promise that returns the root `Group` of the scene.
65
+ */
66
+ exportVisual(e) {
67
+ return this.gaugeInstance !== null ? Promise.resolve(this.gaugeInstance.exportVisual(e)) : Promise.resolve(new i());
68
+ }
69
+ }
70
+ export {
71
+ h as LinearGauge
72
+ };
package/RadialGauge.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react"),i=require("./BaseGauge.js"),o=require("@progress/kendo-charts"),g=require("@progress/kendo-drawing"),l=require("@progress/kendo-react-common");function c(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const a=c(u);class p extends a.Component{constructor(){super(...arguments),this._baseGauge=null,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{pointer:t,scale:s}=this.props;return Object.assign({},e,{pointer:t,scale:s})}}get gaugeInstance(){return this._baseGauge!==null?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge!==null?this._baseGauge.surface:null}get element(){return this._baseGauge!==null?this._baseGauge.element:null}render(){const{children:e,className:t,...s}=this.props;return a.createElement(i.BaseGauge,{...s,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:n=>this._baseGauge=n,gaugeConstructor:o.RadialGauge,getTarget:this.getTarget,className:l.classNames("k-gauge",t)},e)}exportVisual(e){return this.gaugeInstance!==null?Promise.resolve(this.gaugeInstance.exportVisual(e)):Promise.resolve(new g.Group)}}exports.RadialGauge=p;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import * as s from "react";
10
+ import { BaseGauge as n } from "./BaseGauge.mjs";
11
+ import { RadialGauge as u } from "@progress/kendo-charts";
12
+ import { Group as i } from "@progress/kendo-drawing";
13
+ import { classNames as g } from "@progress/kendo-react-common";
14
+ class h extends s.Component {
15
+ constructor() {
16
+ super(...arguments), this._baseGauge = null, this.getTarget = () => this, this.deriveOptionsFromParent = (e) => {
17
+ const { pointer: t, scale: r } = this.props;
18
+ return Object.assign({}, e, {
19
+ pointer: t,
20
+ scale: r
21
+ });
22
+ };
23
+ }
24
+ /**
25
+ * @hidden
26
+ */
27
+ get gaugeInstance() {
28
+ return this._baseGauge !== null ? this._baseGauge.gaugeInstance : null;
29
+ }
30
+ /**
31
+ * The Drawing `Surface` of the Gauge.
32
+ */
33
+ get surface() {
34
+ return this._baseGauge !== null ? this._baseGauge.surface : null;
35
+ }
36
+ /**
37
+ * The DOM element of the Gauge.
38
+ */
39
+ get element() {
40
+ return this._baseGauge !== null ? this._baseGauge.element : null;
41
+ }
42
+ /**
43
+ * @hidden
44
+ */
45
+ render() {
46
+ const { children: e, className: t, ...r } = this.props;
47
+ return /* @__PURE__ */ s.createElement(
48
+ n,
49
+ {
50
+ ...r,
51
+ deriveOptionsFromParent: this.deriveOptionsFromParent,
52
+ ref: (a) => this._baseGauge = a,
53
+ gaugeConstructor: u,
54
+ getTarget: this.getTarget,
55
+ className: g("k-gauge", t)
56
+ },
57
+ e
58
+ );
59
+ }
60
+ /**
61
+ * Exports a Gauge component as a Drawing `Scene`.
62
+ *
63
+ * @param {any} options - The parameters for the export operation.
64
+ * @returns {Promise<Group>} - A promise that returns the root `Group` of the scene.
65
+ */
66
+ exportVisual(e) {
67
+ return this.gaugeInstance !== null ? Promise.resolve(this.gaugeInstance.exportVisual(e)) : Promise.resolve(new i());
68
+ }
69
+ }
70
+ export {
71
+ h as RadialGauge
72
+ };
@@ -1,9 +1,8 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the package root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- (function(i,p){typeof exports=="object"&&typeof module!="undefined"?p(exports,require("react"),require("prop-types"),require("@progress/kendo-react-intl"),require("@progress/kendo-charts"),require("@progress/kendo-react-common"),require("@progress/kendo-drawing")):typeof define=="function"&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-intl","@progress/kendo-charts","@progress/kendo-react-common","@progress/kendo-drawing"],p):(i=typeof globalThis!="undefined"?globalThis:i||self,p(i.KendoReactGauges={},i.React,i.PropTypes,i.KendoReactIntl,i.KendoCharts,i.KendoReactCommon,i.KendoDrawing))})(this,function(i,p,G,v,c,g,m){"use strict";"use client";function P(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const l=P(p),x=`
6
- <div class="k-var--gauge-pointer"></div>
7
- <div class="k-var--gauge-track"></div>
8
- <div class="k-var--normal-text-color"></div>
9
- `;class N{constructor(e){this.store=e}setStyle(e,t){this.store.dispatch({type:"set",payload:{field:e,value:t}})}setColors(){this.mapColor("pointer.color","gauge-pointer"),this.mapColor("scale.rangePlaceholderColor","gauge-track"),this.mapColor("scale.labels.color","normal-text-color"),this.mapColor("scale.minorTicks.color","normal-text-color"),this.mapColor("scale.majorTicks.color","normal-text-color"),this.mapColor("scale.line.color","normal-text-color")}mapColor(e,t){this.setStyle(e,this.queryStyle(t).backgroundColor)}queryStyle(e){const t=this.element;return window.getComputedStyle(t.querySelector(`.k-var--${e}`))}}const j=(s,e,t)=>{const r=new N(s);if(typeof t=="undefined"){s.dispatch({type:"push",payload:c.chartBaseTheme()});return}const n=r.element=t.createElement("div");n.style.display="none",n.innerHTML=x,t.body.appendChild(n);try{s.dispatch({type:"push",payload:c.chartBaseTheme()}),r.setColors()}finally{t.body.removeChild(r.element),delete r.element,e()}},E=1e3/60,C=s=>{let e,t,r=[];const n=()=>e,a=u=>{e=s(e,u),g.canUseDOM&&(window.clearTimeout(t),t=window.setTimeout(()=>r.forEach(d=>d()),E))},o=u=>(r.push(u),()=>r=r.filter(d=>d!==u));return a({}),{getState:n,dispatch:a,subscribe:o}},V=(s,e)=>{if(e.type)switch(e.type){case"set":return F.themeItem(s,e);case"push":return Object.assign(s,e.payload);default:return s}else return{}},A=(s,e)=>{if(e.type)switch(e.type){case"add":return[...s,e.payload];case"remove":return s.filter(t=>t!==e.payload);default:return s}else return[]},F={configurationItem(s,e){return Object.assign(s,{[e.gaugeKey]:e.payload})},collectionConfigurationItem(s,e){let t=!1;const[r,n]=e.gaugeCollectionIdxKey.split("_"),a=s[r].map((o,u)=>parseInt(n,10)===u?(t=!0,e.payload):o);return t===!1&&a.splice(parseInt(n,10),0,e.payload),Object.assign(s,{[r]:a})},themeItem(s,e){let t={},r=Object.assign(t,s);const{field:n,value:a}=e.payload,o=n.split(".");let u=o.shift();for(;o.length>0;)t=t[u]=t[u]||{},u=o.shift();return t[u]=a,r}},I=s=>typeof s=="object",S=(s,e)=>{if(Object.keys(s).length!==Object.keys(e).length)return!0;for(let t in s)if(t!=="value"&&s.hasOwnProperty(t)){const r=s[t],n=e[t];if(I(r)&&I(n)?S(r,n):r!==n)return!0}return!1},k=(s,e)=>{if(!s||!e||(s=[].concat(s),e=[].concat(e),s.length!==e.length))return!0;for(let t=0;t<s.length;t++)if(S(s[t],e[t]))return!0;return!1},y=l.createContext(null);y.displayName="GaugeContext";const D={name:"@progress/kendo-react-gauges",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"};class h extends l.Component{constructor(e){super(e),this.gaugeInstance=null,this.surface=null,this._element=null,this.themeStore={},this.themeUnsubscriber=Function.prototype,this.observersStore={},this.onWindowResize=()=>{this.gaugeInstance!==null&&(this.gaugeInstance.resize(),this.trigger("render",{sender:this}))},g.validatePackage(D),this.themeStore=C(V),this.observersStore=C(A),this.contextValue={observersStore:this.observersStore}}get element(){return this._element}componentDidMount(){var t;const e=((t=this._element)==null?void 0:t.ownerDocument)||document;j(this.themeStore,this.instantiateCoreGauge.bind(this),e),this.themeUnsubscriber=this.themeStore.subscribe(this.refresh.bind(this)),window.addEventListener("resize",this.onWindowResize),this.trigger("render",{sender:this})}componentDidUpdate(e){const{dir:t,children:r,deriveOptionsFromParent:n,getTarget:a,gaugeConstructor:o,className:u,renderAs:d,...b}=this.props,{dir:H,children:$,deriveOptionsFromParent:J,getTarget:Q,gaugeConstructor:X,className:Y,renderAs:U,...q}=e;if(this.gaugeInstance!==null){const O=v.provideIntlService(this),L=this.gaugeInstance.contextService,z=O.locale!==L._intlService.locale,w=k(q,b),f=b;z&&(this.gaugeInstance.contextService._intlService=O,this.gaugeInstance.contextService.format._intlService=O,w||this.gaugeInstance.noTransitionsRedraw()),w||(d||"svg")!==(U||"svg")?this.refresh():Object.keys(b).indexOf("pointer")>-1?Array.isArray(f.pointer)?this.refreshAllValues(f.pointer.map(W=>W.value)):this.refreshValue((f.pointer||{}).value):this.refreshValue(f.value),e.dir!==t&&this.gaugeInstance.setDirection(this.getDirection(t)),this.trigger("render",{sender:this})}}componentWillUnmount(){this.themeUnsubscriber();const e=this.gaugeInstance&&this.gaugeInstance.surfaceElement;e&&e.parentNode&&e.parentNode.removeChild(e),this.gaugeInstance!==null&&(this.gaugeInstance.destroy(),this.gaugeInstance=null),window.removeEventListener("resize",this.onWindowResize)}render(){const{style:e={},className:t,children:r}=this.props,n=Object.assign({},e,{position:"relative"});return l.createElement(y.Provider,{value:this.contextValue},l.createElement("div",{style:n,ref:a=>this._element=a,className:t},r))}instantiateCoreGauge(){const{dir:e,gaugeConstructor:t}=this.props,r=this.getGaugeOptions();this.gaugeInstance=new t(this.element,r,this.themeStore.getState(),{rtl:this.getDirection(e),intlService:v.provideIntlService(this),sender:this})}refresh(){if(this.gaugeInstance!==null){const e=this.themeStore.getState(),t=this.getGaugeOptions();this.gaugeInstance.setOptions(t,e)}}refreshValue(e){this.gaugeInstance.value(e)}refreshAllValues(e){this.gaugeInstance.allValues(e)}getDirection(e){return(e!==void 0?e:(()=>g.canUseDOM&&window.getComputedStyle(this.element).direction)()||"ltr")==="rtl"}getGaugeOptions(){const{renderAs:e,transitions:t,deriveOptionsFromParent:r}=this.props;let n=Object.assign({renderAs:e,transitions:t});return r&&(n=r(n)),n}trigger(e,t){const r=this.observersStore.getState();for(let n=0;n<r.length;n++)r[n].trigger(e,t)}}h.propTypes={dir:G.string,renderAs:G.oneOf(["svg","canvas"])},h.defaultProps={renderAs:"svg"},v.registerForIntl(h);class _ extends l.Component{constructor(e,t){super(e,t),this.state={arcCenterStyles:null,arcCenterValue:{value:0,color:""}},this._element=null,this.gaugeObserver=new c.InstanceObserver(this,{render:"onRender"}),t.observersStore.dispatch({type:"add",payload:this.gaugeObserver})}render(){const{render:e}=this.props,{arcCenterStyles:t,arcCenterValue:r}=this.state,n=t||{zIndex:-1};let a=null;return e&&(a=l.createElement("div",{className:"k-arcgauge-label",ref:o=>this._element=o,style:n},e(r.value,r.color))),a}onRender(e){if(!this._element)return;const t=e.sender.gaugeInstance,r=this._element.offsetWidth,n=this._element.offsetHeight,a=t.centerLabelPosition(r,n);this.setState({arcCenterStyles:{left:a.left,top:a.top},arcCenterValue:{value:t.value(),color:t.currentColor()}})}}_.contextType=y;class T extends l.Component{constructor(){super(...arguments),this._baseGauge=null,this.gaugeType=c.ArcGauge,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{value:t,color:r,colors:n,opacity:a,scale:o}=this.props;return Object.assign({},e,{value:t,color:r,colors:n,opacity:a,scale:o})}}get gaugeInstance(){return this._baseGauge?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge?this._baseGauge.surface:null}get element(){return this._baseGauge?this._baseGauge.element:null}render(){const{children:e,arcCenterRender:t,centerRender:r,className:n,...a}=this.props;return l.createElement(h,{...a,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:o=>this._baseGauge=o,gaugeConstructor:this.gaugeType,getTarget:this.getTarget,className:g.classNames("k-gauge k-arcgauge",n)},e,l.createElement(_,{render:r||t}))}exportVisual(e){return this.gaugeInstance!==null&&this.element?m.drawDOM(this.element,e):Promise.resolve(new m.Group)}}class R extends T{constructor(){super(...arguments),this.gaugeType=c.CircularGauge}}class K extends l.Component{constructor(){super(...arguments),this._baseGauge=null,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{pointer:t,scale:r}=this.props;return Object.assign({},e,{pointer:t,scale:r})}}get gaugeInstance(){return this._baseGauge!==null?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge!==null?this._baseGauge.surface:null}get element(){return this._baseGauge!==null?this._baseGauge.element:null}render(){const{children:e,className:t,...r}=this.props;return l.createElement(h,{...r,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:n=>this._baseGauge=n,gaugeConstructor:c.LinearGauge,getTarget:this.getTarget,className:g.classNames("k-gauge",t)},e)}exportVisual(e){return this.gaugeInstance!==null?Promise.resolve(this.gaugeInstance.exportVisual(e)):Promise.resolve(new m.Group)}}class M extends l.Component{constructor(){super(...arguments),this._baseGauge=null,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{pointer:t,scale:r}=this.props;return Object.assign({},e,{pointer:t,scale:r})}}get gaugeInstance(){return this._baseGauge!==null?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge!==null?this._baseGauge.surface:null}get element(){return this._baseGauge!==null?this._baseGauge.element:null}render(){const{children:e,className:t,...r}=this.props;return l.createElement(h,{...r,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:n=>this._baseGauge=n,gaugeConstructor:c.RadialGauge,getTarget:this.getTarget,className:g.classNames("k-gauge",t)},e)}exportVisual(e){return this.gaugeInstance!==null?Promise.resolve(this.gaugeInstance.exportVisual(e)):Promise.resolve(new m.Group)}}i.ArcGauge=T,i.CircularGauge=R,i.LinearGauge=K,i.RadialGauge=M,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-react-intl"),require("@progress/kendo-charts"),require("@progress/kendo-react-common"),require("@progress/kendo-drawing")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-intl","@progress/kendo-charts","@progress/kendo-react-common","@progress/kendo-drawing"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactGauges={},e.React,e.PropTypes,e.KendoReactIntl,e.KendoCharts,e.KendoReactCommon,e.KendoDrawing)}(this,(function(e,t,r,s,n,a,i){"use strict";function o(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var s=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var l=o(t);let c=class{constructor(e){this.store=e}setStyle(e,t){this.store.dispatch({type:"set",payload:{field:e,value:t}})}setColors(){this.mapColor("pointer.color","gauge-pointer"),this.mapColor("scale.rangePlaceholderColor","gauge-track"),this.mapColor("scale.labels.color","normal-text-color"),this.mapColor("scale.minorTicks.color","normal-text-color"),this.mapColor("scale.majorTicks.color","normal-text-color"),this.mapColor("scale.line.color","normal-text-color")}mapColor(e,t){this.setStyle(e,this.queryStyle(t).backgroundColor)}queryStyle(e){const t=this.element;return window.getComputedStyle(t.querySelector(`.k-var--${e}`))}};const u=e=>{let t,r,s=[];const n=n=>{t=e(t,n),a.canUseDOM&&(window.clearTimeout(r),r=window.setTimeout((()=>s.forEach((e=>e()))),16.666666666666668))};return n({}),{getState:()=>t,dispatch:n,subscribe:e=>(s.push(e),()=>s=s.filter((t=>t!==e)))}},g=(e,t)=>{if(!t.type)return{};switch(t.type){case"set":return p.themeItem(e,t);case"push":return Object.assign(e,t.payload);default:return e}},h=(e,t)=>{if(!t.type)return[];switch(t.type){case"add":return[...e,t.payload];case"remove":return e.filter((e=>e!==t.payload));default:return e}},p={configurationItem:(e,t)=>Object.assign(e,{[t.gaugeKey]:t.payload}),collectionConfigurationItem(e,t){let r=!1;const[s,n]=t.gaugeCollectionIdxKey.split("_"),a=e[s].map(((e,s)=>parseInt(n,10)===s?(r=!0,t.payload):e));return!1===r&&a.splice(parseInt(n,10),0,t.payload),Object.assign(e,{[s]:a})},themeItem(e,t){let r={},s=Object.assign(r,e);const{field:n,value:a}=t.payload,i=n.split(".");let o=i.shift();for(;i.length>0;)r=r[o]=r[o]||{},o=i.shift();return r[o]=a,s}},d=e=>"object"==typeof e,m=(e,t)=>{if(Object.keys(e).length!==Object.keys(t).length)return!0;for(let r in e)if("value"!==r&&e.hasOwnProperty(r)){const s=e[r],n=t[r];if(d(s)&&d(n)?m(s,n):s!==n)return!0}return!1},v=l.createContext(null);v.displayName="GaugeContext";const f={name:"@progress/kendo-react-gauges",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},b=class extends l.Component{constructor(e){super(e),this.gaugeInstance=null,this.surface=null,this._element=null,this.themeStore={},this.themeUnsubscriber=Function.prototype,this.observersStore={},this.onWindowResize=()=>{null!==this.gaugeInstance&&(this.gaugeInstance.resize(),this.trigger("render",{sender:this}))},a.validatePackage(f),this.themeStore=u(g),this.observersStore=u(h),this.contextValue={observersStore:this.observersStore}}get element(){return this._element}componentDidMount(){var e;const t=(null==(e=this._element)?void 0:e.ownerDocument)||document;((e,t,r)=>{const s=new c(e);if(void 0===r)return void e.dispatch({type:"push",payload:n.chartBaseTheme()});const a=s.element=r.createElement("div");a.style.display="none",a.innerHTML='\n <div class="k-var--gauge-pointer"></div>\n <div class="k-var--gauge-track"></div>\n <div class="k-var--normal-text-color"></div>\n',r.body.appendChild(a);try{e.dispatch({type:"push",payload:n.chartBaseTheme()}),s.setColors()}finally{r.body.removeChild(s.element),delete s.element,t()}})(this.themeStore,this.instantiateCoreGauge.bind(this),t),this.themeUnsubscriber=this.themeStore.subscribe(this.refresh.bind(this)),window.addEventListener("resize",this.onWindowResize),this.trigger("render",{sender:this})}componentDidUpdate(e){const{dir:t,children:r,deriveOptionsFromParent:n,getTarget:a,gaugeConstructor:i,className:o,renderAs:l,...c}=this.props,{dir:u,children:g,deriveOptionsFromParent:h,getTarget:p,gaugeConstructor:d,className:v,renderAs:f,...b}=e;if(null!==this.gaugeInstance){const r=s.provideIntlService(this),n=this.gaugeInstance.contextService,a=r.locale!==n._intlService.locale,i=((e,t)=>{if(!e||!t||(e=[].concat(e),t=[].concat(t),e.length!==t.length))return!0;for(let r=0;r<e.length;r++)if(m(e[r],t[r]))return!0;return!1})(b,c),o=c;a&&(this.gaugeInstance.contextService._intlService=r,this.gaugeInstance.contextService.format._intlService=r,i||this.gaugeInstance.noTransitionsRedraw()),i||(l||"svg")!==(f||"svg")?this.refresh():Object.keys(c).indexOf("pointer")>-1?Array.isArray(o.pointer)?this.refreshAllValues(o.pointer.map((e=>e.value))):this.refreshValue((o.pointer||{}).value):this.refreshValue(o.value),e.dir!==t&&this.gaugeInstance.setDirection(this.getDirection(t)),this.trigger("render",{sender:this})}}componentWillUnmount(){this.themeUnsubscriber();const e=this.gaugeInstance&&this.gaugeInstance.surfaceElement;e&&e.parentNode&&e.parentNode.removeChild(e),null!==this.gaugeInstance&&(this.gaugeInstance.destroy(),this.gaugeInstance=null),window.removeEventListener("resize",this.onWindowResize)}render(){const{style:e={},className:t,children:r}=this.props,s=Object.assign({},e,{position:"relative"});return l.createElement(v.Provider,{value:this.contextValue},l.createElement("div",{style:s,ref:e=>this._element=e,className:t},r))}instantiateCoreGauge(){const{dir:e,gaugeConstructor:t}=this.props,r=this.getGaugeOptions();this.gaugeInstance=new t(this.element,r,this.themeStore.getState(),{rtl:this.getDirection(e),intlService:s.provideIntlService(this),sender:this})}refresh(){if(null!==this.gaugeInstance){const e=this.themeStore.getState(),t=this.getGaugeOptions();this.gaugeInstance.setOptions(t,e)}}refreshValue(e){this.gaugeInstance.value(e)}refreshAllValues(e){this.gaugeInstance.allValues(e)}getDirection(e){return"rtl"===(void 0!==e?e:a.canUseDOM&&window.getComputedStyle(this.element).direction||"ltr")}getGaugeOptions(){const{renderAs:e,transitions:t,deriveOptionsFromParent:r}=this.props;let s=Object.assign({renderAs:e,transitions:t});return r&&(s=r(s)),s}trigger(e,t){const r=this.observersStore.getState();for(let s=0;s<r.length;s++)r[s].trigger(e,t)}};b.propTypes={dir:r.string,renderAs:r.oneOf(["svg","canvas"])},b.defaultProps={renderAs:"svg"};let y=b;s.registerForIntl(y);const C=class extends l.Component{constructor(e,t){super(e,t),this.state={arcCenterStyles:null,arcCenterValue:{value:0,color:""}},this._element=null,this.gaugeObserver=new n.InstanceObserver(this,{render:"onRender"}),t.observersStore.dispatch({type:"add",payload:this.gaugeObserver})}render(){const{render:e}=this.props,{arcCenterStyles:t,arcCenterValue:r}=this.state,s=t||{zIndex:-1};let n=null;return e&&(n=l.createElement("div",{className:"k-arcgauge-label",ref:e=>this._element=e,style:s},e(r.value,r.color))),n}onRender(e){if(!this._element)return;const t=e.sender.gaugeInstance,r=this._element.offsetWidth,s=this._element.offsetHeight,n=t.centerLabelPosition(r,s);this.setState({arcCenterStyles:{left:n.left,top:n.top},arcCenterValue:{value:t.value(),color:t.currentColor()}})}};C.contextType=v;let I=C;class O extends l.Component{constructor(){super(...arguments),this._baseGauge=null,this.gaugeType=n.ArcGauge,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{value:t,color:r,colors:s,opacity:n,scale:a}=this.props;return Object.assign({},e,{value:t,color:r,colors:s,opacity:n,scale:a})}}get gaugeInstance(){return this._baseGauge?this._baseGauge.gaugeInstance:null}get surface(){return this._baseGauge?this._baseGauge.surface:null}get element(){return this._baseGauge?this._baseGauge.element:null}render(){const{children:e,arcCenterRender:t,centerRender:r,className:s,...n}=this.props;return l.createElement(y,{...n,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:e=>this._baseGauge=e,gaugeConstructor:this.gaugeType,getTarget:this.getTarget,className:a.classNames("k-gauge k-arcgauge",s)},e,l.createElement(I,{render:r||t}))}exportVisual(e){return null!==this.gaugeInstance&&this.element?i.drawDOM(this.element,e):Promise.resolve(new i.Group)}}let G=class extends l.Component{constructor(){super(...arguments),this._baseGauge=null,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{pointer:t,scale:r}=this.props;return Object.assign({},e,{pointer:t,scale:r})}}get gaugeInstance(){return null!==this._baseGauge?this._baseGauge.gaugeInstance:null}get surface(){return null!==this._baseGauge?this._baseGauge.surface:null}get element(){return null!==this._baseGauge?this._baseGauge.element:null}render(){const{children:e,className:t,...r}=this.props;return l.createElement(y,{...r,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:e=>this._baseGauge=e,gaugeConstructor:n.LinearGauge,getTarget:this.getTarget,className:a.classNames("k-gauge",t)},e)}exportVisual(e){return null!==this.gaugeInstance?Promise.resolve(this.gaugeInstance.exportVisual(e)):Promise.resolve(new i.Group)}};class _ extends l.Component{constructor(){super(...arguments),this._baseGauge=null,this.getTarget=()=>this,this.deriveOptionsFromParent=e=>{const{pointer:t,scale:r}=this.props;return Object.assign({},e,{pointer:t,scale:r})}}get gaugeInstance(){return null!==this._baseGauge?this._baseGauge.gaugeInstance:null}get surface(){return null!==this._baseGauge?this._baseGauge.surface:null}get element(){return null!==this._baseGauge?this._baseGauge.element:null}render(){const{children:e,className:t,...r}=this.props;return l.createElement(y,{...r,deriveOptionsFromParent:this.deriveOptionsFromParent,ref:e=>this._baseGauge=e,gaugeConstructor:n.RadialGauge,getTarget:this.getTarget,className:a.classNames("k-gauge",t)},e)}exportVisual(e){return null!==this.gaugeInstance?Promise.resolve(this.gaugeInstance.exportVisual(e)):Promise.resolve(new i.Group)}}e.ArcGauge=O,e.CircularGauge=class extends O{constructor(){super(...arguments),this.gaugeType=n.CircularGauge}},e.LinearGauge=G,e.RadialGauge=_}));