intelicoreact 1.8.8 → 1.8.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.
Files changed (128) hide show
  1. package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.jsx +18 -1
  2. package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.jsx +121 -1
  3. package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.jsx +507 -1
  4. package/dist/Atomic/FormElements/MultiSelect/MultiSelect.jsx +46 -1
  5. package/dist/Atomic/FormElements/NumericInput/NumericInput.jsx +337 -1
  6. package/dist/Atomic/FormElements/RadioGroup/RadioGroup.jsx +66 -1
  7. package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.jsx +78 -1
  8. package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.jsx +54 -1
  9. package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.jsx +183 -1
  10. package/dist/Atomic/FormElements/RangeList/RangeList.jsx +181 -1
  11. package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.jsx +41 -1
  12. package/dist/Atomic/FormElements/RangeSlider/RangeSlider.jsx +449 -1
  13. package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.jsx +865 -1
  14. package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.jsx +37 -1
  15. package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.jsx +48 -1
  16. package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.jsx +62 -1
  17. package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.jsx +175 -1
  18. package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.jsx +65 -1
  19. package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.jsx +118 -1
  20. package/dist/Atomic/FormElements/Text/Text.jsx +126 -1
  21. package/dist/Atomic/FormElements/Textarea/Textarea.jsx +61 -1
  22. package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.jsx +181 -1
  23. package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.jsx +60 -1
  24. package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.jsx +83 -1
  25. package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.jsx +80 -1
  26. package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.jsx +103 -1
  27. package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.jsx +115 -1
  28. package/dist/Atomic/Layout/Header/Header.jsx +86 -1
  29. package/dist/Atomic/Layout/MainMenu/MainMenu.jsx +164 -1
  30. package/dist/Atomic/UI/AccordionTable/AccordionTable.jsx +250 -1
  31. package/dist/Atomic/UI/AccordionText/AccordionText.jsx +68 -1
  32. package/dist/Atomic/UI/Arrow/Arrow.jsx +134 -1
  33. package/dist/Atomic/UI/Box/Box.jsx +53 -1
  34. package/dist/Atomic/UI/Chart/Chart.jsx +178 -1
  35. package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.jsx +78 -1
  36. package/dist/Atomic/UI/Chart/partial/optionsConstructor.jsx +334 -1
  37. package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.jsx +111 -1
  38. package/dist/Atomic/UI/DateTime/DateTime.jsx +57 -1
  39. package/dist/Atomic/UI/DebugContainer/DebugContainer.jsx +44 -1
  40. package/dist/Atomic/UI/DebugContainer/useDebugContainer.jsx +15 -1
  41. package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.jsx +223 -1
  42. package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.jsx +75 -1
  43. package/dist/Atomic/UI/MonoAccordion/MonoAccordion.jsx +86 -1
  44. package/dist/Atomic/UI/PieChart/PieChart.jsx +41 -1
  45. package/dist/Atomic/UI/Table/Partials/TdCell.jsx +87 -1
  46. package/dist/Atomic/UI/Table/Partials/TdHeader.jsx +36 -1
  47. package/dist/Atomic/UI/Table/Partials/TdRow.jsx +103 -1
  48. package/dist/Atomic/UI/Table/Partials/TdTitle.jsx +55 -1
  49. package/dist/Atomic/UI/Table/Table.jsx +63 -1
  50. package/dist/Atomic/UI/Table/TdTypes/TdActions.jsx +80 -1
  51. package/dist/Atomic/UI/Table/TdTypes/TdPriority.jsx +26 -1
  52. package/dist/Atomic/UI/Table/TdTypes/TdRange.jsx +13 -1
  53. package/dist/Atomic/UI/Table/TdTypes/TdWeight.jsx +56 -1
  54. package/dist/Atomic/UI/TagList/TagList.jsx +256 -1
  55. package/dist/Atomic/UI/WizardStepper/constructor.jsx +86 -1
  56. package/dist/Classes/RESTAPI/partials/CredentialsProcessing.jsx +254 -1
  57. package/dist/Functions/customEventListener.jsx +96 -1
  58. package/dist/Functions/operations.jsx +138 -1
  59. package/dist/Functions/useFormTools/functions/RenderFields.jsx +108 -1
  60. package/dist/Functions/useFormTools/index.jsx +777 -1
  61. package/dist/Functions/usePasswordChecker.jsx +128 -1
  62. package/dist/Functions/utils.jsx +492 -1
  63. package/dist/Molecular/CustomIcons/components/AffiliateNetworks.jsx +22 -1
  64. package/dist/Molecular/CustomIcons/components/AlertCircle.jsx +24 -1
  65. package/dist/Molecular/CustomIcons/components/AppStore.jsx +30 -1
  66. package/dist/Molecular/CustomIcons/components/Arrow.jsx +33 -1
  67. package/dist/Molecular/CustomIcons/components/ArrowDown.jsx +18 -1
  68. package/dist/Molecular/CustomIcons/components/ArrowLeft.jsx +23 -1
  69. package/dist/Molecular/CustomIcons/components/ArrowRight.jsx +23 -1
  70. package/dist/Molecular/CustomIcons/components/ArrowUp.jsx +18 -1
  71. package/dist/Molecular/CustomIcons/components/Bell.jsx +16 -1
  72. package/dist/Molecular/CustomIcons/components/Button.jsx +13 -1
  73. package/dist/Molecular/CustomIcons/components/Campaigns.jsx +17 -1
  74. package/dist/Molecular/CustomIcons/components/Check.jsx +15 -1
  75. package/dist/Molecular/CustomIcons/components/Check2.jsx +13 -1
  76. package/dist/Molecular/CustomIcons/components/ChevronDown.jsx +13 -1
  77. package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.jsx +12 -1
  78. package/dist/Molecular/CustomIcons/components/ChevronLeft.jsx +12 -1
  79. package/dist/Molecular/CustomIcons/components/ChevronRight.jsx +12 -1
  80. package/dist/Molecular/CustomIcons/components/ChevronUp.jsx +12 -1
  81. package/dist/Molecular/CustomIcons/components/ChevronUpDown.jsx +28 -1
  82. package/dist/Molecular/CustomIcons/components/Close.jsx +15 -1
  83. package/dist/Molecular/CustomIcons/components/ColumnsOrder.jsx +18 -1
  84. package/dist/Molecular/CustomIcons/components/Delete.jsx +17 -1
  85. package/dist/Molecular/CustomIcons/components/Edit.jsx +16 -1
  86. package/dist/Molecular/CustomIcons/components/Email.jsx +32 -1
  87. package/dist/Molecular/CustomIcons/components/FinturfLogo.jsx +19 -1
  88. package/dist/Molecular/CustomIcons/components/FinturfLogo2.jsx +36 -1
  89. package/dist/Molecular/CustomIcons/components/Flows.jsx +16 -1
  90. package/dist/Molecular/CustomIcons/components/Gift.jsx +26 -1
  91. package/dist/Molecular/CustomIcons/components/GoogleAuth.jsx +30 -1
  92. package/dist/Molecular/CustomIcons/components/GooglePlay.jsx +30 -1
  93. package/dist/Molecular/CustomIcons/components/HelpCircle.jsx +20 -1
  94. package/dist/Molecular/CustomIcons/components/HelpCircle2.jsx +21 -1
  95. package/dist/Molecular/CustomIcons/components/HelpCircleFilled.jsx +20 -1
  96. package/dist/Molecular/CustomIcons/components/Home.jsx +17 -1
  97. package/dist/Molecular/CustomIcons/components/Home2.jsx +23 -1
  98. package/dist/Molecular/CustomIcons/components/Key.jsx +24 -1
  99. package/dist/Molecular/CustomIcons/components/Landers.jsx +21 -1
  100. package/dist/Molecular/CustomIcons/components/Lock.jsx +16 -1
  101. package/dist/Molecular/CustomIcons/components/Mail.jsx +27 -1
  102. package/dist/Molecular/CustomIcons/components/Mastercard.jsx +74 -1
  103. package/dist/Molecular/CustomIcons/components/Minus.jsx +26 -1
  104. package/dist/Molecular/CustomIcons/components/Offers.jsx +17 -1
  105. package/dist/Molecular/CustomIcons/components/Pause.jsx +29 -1
  106. package/dist/Molecular/CustomIcons/components/PayPal.jsx +42 -1
  107. package/dist/Molecular/CustomIcons/components/PayPalLightLarge.jsx +29 -1
  108. package/dist/Molecular/CustomIcons/components/Phone.jsx +31 -1
  109. package/dist/Molecular/CustomIcons/components/Play.jsx +26 -1
  110. package/dist/Molecular/CustomIcons/components/Plus.jsx +26 -1
  111. package/dist/Molecular/CustomIcons/components/Profile.jsx +17 -1
  112. package/dist/Molecular/CustomIcons/components/QRCode.jsx +30 -1
  113. package/dist/Molecular/CustomIcons/components/Rectangle.jsx +13 -1
  114. package/dist/Molecular/CustomIcons/components/Revert.jsx +14 -1
  115. package/dist/Molecular/CustomIcons/components/Star.jsx +15 -1
  116. package/dist/Molecular/CustomIcons/components/Star2.jsx +17 -1
  117. package/dist/Molecular/CustomIcons/components/TrafficSources.jsx +15 -1
  118. package/dist/Molecular/CustomIcons/components/Trash.jsx +16 -1
  119. package/dist/Molecular/CustomIcons/components/TrashRed.jsx +16 -1
  120. package/dist/Molecular/CustomIcons/components/Triggers.jsx +16 -1
  121. package/dist/Molecular/CustomIcons/components/User.jsx +26 -1
  122. package/dist/Molecular/CustomIcons/components/Visa.jsx +32 -1
  123. package/dist/Molecular/CustomIcons/components/X.jsx +13 -1
  124. package/dist/Molecular/FormElement/FormElement.jsx +52 -1
  125. package/dist/Molecular/FormWithDependOn/FormWithDependOn.jsx +161 -1
  126. package/dist/Molecular/InputAddress/InputAddress.jsx +641 -1
  127. package/dist/Molecular/InputPassword/InputPassword.jsx +50 -1
  128. package/package.json +1 -1
@@ -1 +1,223 @@
1
- function t(t,n){(null==n||n>t.length)&&(n=t.length);for(var r=0,e=Array(n);r<n;r++)e[r]=t[r];return e}function n(t){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{},e=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(e=e.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),e.forEach(function(n){var e;e=r[n],n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e})}return t}function r(t,n){return n=null!=n?n:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):(function(t,n){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);r.push.apply(r,e)}return r})(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))}),t}function e(n,r){return function(t){if(Array.isArray(t))return t}(n)||function(t,n){var r,e,a=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=a){var o=[],i=!0,l=!1;try{for(a=a.call(t);!(i=(r=a.next()).done)&&(o.push(r.value),!n||o.length!==n);i=!0);}catch(t){l=!0,e=t}finally{try{i||null==a.return||a.return()}finally{if(l)throw e}}return o}}(n,r)||function(n,r){if(n){if("string"==typeof n)return t(n,r);var e=Object.prototype.toString.call(n).slice(8,-1);if("Object"===e&&n.constructor&&(e=n.constructor.name),"Map"===e||"Set"===e)return Array.from(e);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return t(n,r)}}(n,r)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}import{jsx as a,jsxs as o}from"react/jsx-runtime";import{createElement as i}from"react";import l from"classnames";import{useLayoutEffect as u,useMemo as c,useState as s}from"react";import{formatToPriceWithUSD as b}from"../../../Functions/fieldValueFormatters";import{clone as f}from"../../../Functions/utils";import p from"../../FormElements/InputDateRange/InputDateRange";import d from"../Chart/Chart";import{getLabels as m,getMockValue as y,getSafelyDateRange as h,getTab as g}from"./partial/utils";import"./partial/AnyOuterClass.scss";export default function(t){var v=t||{},O=v.inputDateRangeProps,j=v.chartProps,w=O||{},C=w.value,P=w.onChange,k=(j||{}).initialChartType,L=c(function(){return h(C)},[C]),S=e(s(k||"Bar"),2),T=S[0],B=S[1],M=e(s("tab1"),2),D=M[0],x=M[1],A=e(s("Bar"===T?"finturfLoadingModeBar":"finturfLoadingModeLine"),2),N=A[0],E=A[1],F=e(s(null),2),I=F[0],_=F[1],R=e(s(null),2),V=R[0],J=R[1],U=e(s(null),2),$=U[0],q=U[1],z=e(s(null),2),G=z[0],H=z[1],K=e(s(null),2),Q=K[0],W=K[1],X=function(){var t=m(L);return{labels:t,datasets:[{data:t.map(function(t){return y()})}]}},Y=function(t){switch(t){case"tab1":return I?f(I):null;case"tab2":return V?f(V):null;case"tab3":return $?f($):null;case"tab4":return G?f(G):null;default:return null}},Z=c(function(){return Y(D)?["finturfChartBar","finturfChartLine"]:["finturfLoadingModeBar","finturfLoadingModeLine"]},[!!Y(D)]),tt=function(t,n){switch(n){case"tab1":_(t);break;case"tab2":J(t);break;case"tab3":q(t);break;case"tab4":H(t)}return t};return u(function(){_(null),J(null),q(null),H(null),Promise.all([g("tab1",L,tt),g("tab2",L,tt),g("tab3",L,tt),g("tab4",L,tt)])},[L]),u(function(){E(Y(D)?"Bar"===T?"finturfChartBar":"finturfChartLine":"Bar"===T?"finturfLoadingModeBar":"finturfLoadingModeLine"),W(Y(D)?Y(D):X())},[!!Y(D),D,T]),o("div",{className:"example-wrapper",children:[a(p,r(n({},O),{value:C,onChange:P})),o("div",{className:"buttons-block",children:[a("button",{className:l("tab-button",{"tab-button_active":"tab1"===D}),onClick:function(){return x("tab1")},children:"Tab 1"}),a("button",{className:l("tab-button",{"tab-button_active":"tab2"===D}),onClick:function(){return x("tab2")},children:"Tab 2"}),a("button",{className:l("tab-button",{"tab-button_active":"tab3"===D}),onClick:function(){return x("tab3")},children:"Tab 3"}),a("button",{className:l("tab-button",{"tab-button_active":"tab4"===D}),onClick:function(){return x("tab4")},children:"Tab 4"})]}),i(d,r(n({},j),{key:JSON.stringify(Q),data:Q,setModelExternalValue:function(t){B(t.includes("Line")?"Line":"Bar"),E(t)},initialModel:N,modelsForSwitch:Z,description:{label:function(t){switch(t){case"tab1":return"Tab 1";case"tab2":return"Tab 2";case"tab3":return"Tab 3";case"tab4":return"Tab 4";default:return null}}(D)},addToDatasets:{id:D},modifyOptions:function(t){var e,a,o,i,l,u;return r(n({},t),{options:r(n({},null==t?void 0:t.options),{plugins:r(n({},null==t||null==(e=t.options)?void 0:e.plugins),{tooltip:r(n({},null==t||null==(o=t.options)||null==(a=o.plugins)?void 0:a.tooltip),{callbacks:r(n({},null==t||null==(u=t.options)||null==(l=u.plugins)||null==(i=l.tooltip)?void 0:i.callbacks),{label:function(t){return"tab3"===t.dataset.id||"tab4"===t.dataset.id?b(t.raw||"0"):t.raw||"0"}})})})})})}}))]})}
1
+ import cn from 'classnames';
2
+
3
+ import { useLayoutEffect, useMemo, useState } from 'react';
4
+
5
+ import { formatToPriceWithUSD } from '../../../Functions/fieldValueFormatters';
6
+ import { clone } from '../../../Functions/utils';
7
+ import InputDateRange from '../../FormElements/InputDateRange/InputDateRange';
8
+ import Chart from '../Chart/Chart';
9
+
10
+ import {
11
+ getLabels,
12
+ getMockValue,
13
+ getSafelyDateRange,
14
+ getTab,
15
+ } from './partial/utils';
16
+
17
+ import './partial/AnyOuterClass.scss';
18
+
19
+ function ExampleChartIntegration(props) {
20
+ const { inputDateRangeProps, chartProps } = props || {};
21
+ const { value: outerDateRange, onChange: changeDateRange }
22
+ = inputDateRangeProps || {};
23
+ const { initialChartType } = chartProps || {};
24
+ const dateRange = useMemo(
25
+ () => getSafelyDateRange(outerDateRange),
26
+ [outerDateRange],
27
+ );
28
+
29
+ const [chartType, setChartType] = useState(initialChartType || 'Bar');
30
+ const [tab, setTab] = useState('tab1');
31
+ const [initialModel, setInitialModel] = useState(
32
+ chartType === 'Bar' ? 'finturfLoadingModeBar' : 'finturfLoadingModeLine',
33
+ );
34
+
35
+ const [tab1, setTab1] = useState(null);
36
+ const [tab2, setTab2] = useState(null);
37
+ const [tab3, setTab3] = useState(null);
38
+ const [tab4, setTab4] = useState(null);
39
+
40
+ const [dataForRender, setDataForRender] = useState(null);
41
+
42
+ const getMockData = () => {
43
+ const labels = getLabels(dateRange);
44
+ const mock = () => labels.map(label => getMockValue());
45
+ return {
46
+ labels,
47
+ datasets: [
48
+ {
49
+ data: mock(),
50
+ },
51
+ ],
52
+ };
53
+ };
54
+
55
+ const getTabData = (tabId) => {
56
+ switch (tabId) {
57
+ case 'tab1':
58
+ return !tab1 ? null : clone(tab1);
59
+ case 'tab2':
60
+ return !tab2 ? null : clone(tab2);
61
+ case 'tab3':
62
+ return !tab3 ? null : clone(tab3);
63
+ case 'tab4':
64
+ return !tab4 ? null : clone(tab4);
65
+ default:
66
+ return null;
67
+ }
68
+ };
69
+
70
+ const getDescription = (tabId) => {
71
+ switch (tabId) {
72
+ case 'tab1':
73
+ return 'Tab 1';
74
+ case 'tab2':
75
+ return 'Tab 2';
76
+ case 'tab3':
77
+ return 'Tab 3';
78
+ case 'tab4':
79
+ return 'Tab 4';
80
+ default:
81
+ return null;
82
+ }
83
+ };
84
+
85
+ const selectData = () => (getTabData(tab) ? getTabData(tab) : getMockData());
86
+
87
+ const modelsForSwitch = useMemo(
88
+ () =>
89
+ getTabData(tab)
90
+ ? ['finturfChartBar', 'finturfChartLine']
91
+ : ['finturfLoadingModeBar', 'finturfLoadingModeLine'],
92
+ [Boolean(getTabData(tab))],
93
+ );
94
+
95
+ const handleChangeChartType = (model) => {
96
+ setChartType(model.includes('Line') ? 'Line' : 'Bar');
97
+ setInitialModel(model);
98
+ };
99
+
100
+ const getModel = () => {
101
+ if (!getTabData(tab)) {
102
+ return chartType === 'Bar'
103
+ ? 'finturfLoadingModeBar'
104
+ : 'finturfLoadingModeLine';
105
+ }
106
+ else {
107
+ return chartType === 'Bar' ? 'finturfChartBar' : 'finturfChartLine';
108
+ }
109
+ };
110
+
111
+ const processResponse = (res, tabId) => {
112
+ switch (tabId) {
113
+ case 'tab1':
114
+ setTab1(res);
115
+ break;
116
+ case 'tab2':
117
+ setTab2(res);
118
+ break;
119
+ case 'tab3':
120
+ setTab3(res);
121
+ break;
122
+ case 'tab4':
123
+ setTab4(res);
124
+ break;
125
+ default:
126
+ break;
127
+ }
128
+ return res;
129
+ };
130
+
131
+ useLayoutEffect(() => {
132
+ setTab1(null);
133
+ setTab2(null);
134
+ setTab3(null);
135
+ setTab4(null);
136
+
137
+ // эмуляция запросов
138
+ // вся логика происходит в самих входящих промисах
139
+ // Promise.all добавлен для расширения на случай надобности описания эффектов по завершении всех запросов
140
+ Promise.all([
141
+ getTab('tab1', dateRange, processResponse),
142
+ getTab('tab2', dateRange, processResponse),
143
+ getTab('tab3', dateRange, processResponse),
144
+ getTab('tab4', dateRange, processResponse),
145
+ ]);
146
+ }, [dateRange]);
147
+
148
+ useLayoutEffect(() => {
149
+ setInitialModel(getModel());
150
+ setDataForRender(selectData());
151
+ }, [Boolean(getTabData(tab)), tab, chartType]);
152
+
153
+ return (
154
+ <div className="example-wrapper">
155
+ <InputDateRange
156
+ {...inputDateRangeProps}
157
+ value={outerDateRange}
158
+ onChange={changeDateRange}
159
+ />
160
+
161
+ <div className="buttons-block">
162
+ <button
163
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab1' })}
164
+ onClick={() => setTab('tab1')}
165
+ >
166
+ Tab 1
167
+ </button>
168
+ <button
169
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab2' })}
170
+ onClick={() => setTab('tab2')}
171
+ >
172
+ Tab 2
173
+ </button>
174
+ <button
175
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab3' })}
176
+ onClick={() => setTab('tab3')}
177
+ >
178
+ Tab 3
179
+ </button>
180
+ <button
181
+ className={cn('tab-button', { 'tab-button_active': tab === 'tab4' })}
182
+ onClick={() => setTab('tab4')}
183
+ >
184
+ Tab 4
185
+ </button>
186
+ </div>
187
+
188
+ <Chart
189
+ {...chartProps}
190
+ key={JSON.stringify(dataForRender)}
191
+ data={dataForRender}
192
+ setModelExternalValue={handleChangeChartType}
193
+ initialModel={initialModel}
194
+ modelsForSwitch={modelsForSwitch}
195
+ description={{ label: getDescription(tab) }}
196
+ addToDatasets={{ id: tab }}
197
+ modifyOptions={options => ({
198
+ ...options,
199
+ options: {
200
+ ...options?.options,
201
+ plugins: {
202
+ ...options?.options?.plugins,
203
+ tooltip: {
204
+ ...options?.options?.plugins?.tooltip,
205
+ callbacks: {
206
+ ...options?.options?.plugins?.tooltip?.callbacks,
207
+ label: (context) => {
208
+ return context.dataset.id === 'tab3'
209
+ || context.dataset.id === 'tab4'
210
+ ? formatToPriceWithUSD(context.raw || '0')
211
+ : context.raw || '0';
212
+ },
213
+ },
214
+ },
215
+ },
216
+ },
217
+ })}
218
+ />
219
+ </div>
220
+ );
221
+ }
222
+
223
+ export default ExampleChartIntegration;
@@ -1 +1,75 @@
1
- function e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){var o;o=n[t],t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o})}return e}function t(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n.push.apply(n,o)}return n})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}import{jsx as n}from"react/jsx-runtime";import{fireEvent as o,render as r,screen as c}from"@testing-library/react";import i from"./MonoAccordion";describe("monoAccordion",function(){var d={titleJSX:n("div",{children:"Accordion Title"}),icon:n("span",{children:"▼"}),isOpen:!1,onClick:jest.fn(),testId:"test-accordion"};it("renders correctly with default props",function(){r(n(i,t(e({},d),{children:n("div",{children:"Accordion Content"})}))),expect(c.getByTestId("test-accordion")).toBeInTheDocument(),expect(c.getByText("Accordion Title")).toBeInTheDocument()}),it("handles click events correctly",function(){r(n(i,t(e({},d),{children:n("div",{children:"Accordion Content"})}))),o.click(c.getByRole("button")),expect(d.onClick).toHaveBeenCalled()}),it("applies correct classes when open",function(){r(n(i,t(e({},d),{isOpen:!0,children:n("div",{children:"Accordion Content"})}))),expect(c.getByTestId("test-accordion")).toHaveClass("mono-accordion--is-open")}),it("applies disabled state correctly",function(){r(n(i,t(e({},d),{disabled:!0,children:n("div",{children:"Accordion Content"})}))),expect(c.getByRole("button")).toBeDisabled(),expect(c.getByTestId("test-accordion")).toHaveClass("mono-accordion--disabled")}),it("handles aria attributes correctly",function(){var o=r(n(i,t(e({},d),{children:n("div",{children:"Accordion Content"})}))).rerender;expect(c.getByRole("button")).toHaveAttribute("aria-expanded","false"),o(n(i,t(e({},d),{isOpen:!0,children:n("div",{children:"Accordion Content"})}))),expect(c.getByRole("button")).toHaveAttribute("aria-expanded","true")})});
1
+ import { fireEvent, render, screen } from '@testing-library/react';
2
+
3
+ import MonoAccordion from './MonoAccordion';
4
+
5
+ describe('monoAccordion', () => {
6
+ const defaultProps = {
7
+ titleJSX: <div>Accordion Title</div>,
8
+ icon: <span>▼</span>,
9
+ isOpen: false,
10
+ onClick: jest.fn(),
11
+ testId: 'test-accordion',
12
+ };
13
+
14
+ it('renders correctly with default props', () => {
15
+ render(
16
+ <MonoAccordion {...defaultProps}>
17
+ <div>Accordion Content</div>
18
+ </MonoAccordion>,
19
+ );
20
+
21
+ expect(screen.getByTestId('test-accordion')).toBeInTheDocument();
22
+ expect(screen.getByText('Accordion Title')).toBeInTheDocument();
23
+ });
24
+
25
+ it('handles click events correctly', () => {
26
+ render(
27
+ <MonoAccordion {...defaultProps}>
28
+ <div>Accordion Content</div>
29
+ </MonoAccordion>,
30
+ );
31
+
32
+ fireEvent.click(screen.getByRole('button'));
33
+ expect(defaultProps.onClick).toHaveBeenCalled();
34
+ });
35
+
36
+ it('applies correct classes when open', () => {
37
+ render(
38
+ <MonoAccordion {...defaultProps} isOpen={true}>
39
+ <div>Accordion Content</div>
40
+ </MonoAccordion>,
41
+ );
42
+
43
+ expect(screen.getByTestId('test-accordion')).toHaveClass('mono-accordion--is-open');
44
+ });
45
+
46
+ it('applies disabled state correctly', () => {
47
+ render(
48
+ <MonoAccordion {...defaultProps} disabled={true}>
49
+ <div>Accordion Content</div>
50
+ </MonoAccordion>,
51
+ );
52
+
53
+ const button = screen.getByRole('button');
54
+ expect(button).toBeDisabled();
55
+ expect(screen.getByTestId('test-accordion')).toHaveClass('mono-accordion--disabled');
56
+ });
57
+
58
+ it('handles aria attributes correctly', () => {
59
+ const { rerender } = render(
60
+ <MonoAccordion {...defaultProps}>
61
+ <div>Accordion Content</div>
62
+ </MonoAccordion>,
63
+ );
64
+
65
+ expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'false');
66
+
67
+ rerender(
68
+ <MonoAccordion {...defaultProps} isOpen={true}>
69
+ <div>Accordion Content</div>
70
+ </MonoAccordion>,
71
+ );
72
+
73
+ expect(screen.getByRole('button')).toHaveAttribute('aria-expanded', 'true');
74
+ });
75
+ });
@@ -1 +1,86 @@
1
- function t(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=Array(r);e<r;e++)n[e]=t[e];return n}function r(t,r,e){return r in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e,t}import{jsx as e,jsxs as n}from"react/jsx-runtime";import o from"classnames";import{useEffect as c,useRef as i,useState as a}from"react";import"./MonoAccordion.scss";var l="mono-accordion";export default function(u){var s,f,d,p,m=u.titleJSX,y=u.icon,b=u.children,v=u.isOpen,h=u.onClick,O=u.className,g=u.disabled,j=u.testId,P=u.datasetProp,w=(s=a(),function(t){if(Array.isArray(t))return t}(s)||function(t,r){var e,n,o=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=o){var c=[],i=!0,a=!1;try{for(o=o.call(t);!(i=(e=o.next()).done)&&(c.push(e.value),c.length!==r);i=!0);}catch(t){a=!0,n=t}finally{try{i||null==o.return||o.return()}finally{if(a)throw n}}return c}}(s,2)||function(r,e){if(r){if("string"==typeof r)return t(r,2);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return t(r,e)}}(s,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),_=w[0],S=w[1],A=i(),N=i(),x=function(t){void 0!==t?S(function(r){return"".concat(t,"px")}):S(function(t){var r,e,n;return"".concat(null==(e=Array.from(null==(n=N.current)?void 0:n.childNodes))||null==(r=e.reduce)?void 0:r.call(e,function(t,r){return t+r.offsetHeight},0),"px")})};return c(function(){v?x():x(0)},[v,b]),n("div",(f=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){r(t,e,n[e])})}return t}({},void 0===P?{}:P),d=d={"data-testid":void 0===j?"mono-accordion":j,className:o(l,O,(r(p={},"".concat(l,"_is-open"),v),r(p,"".concat(l,"_disabled"),g),p)),children:[n("div",{className:"".concat(l,"__head"),onClick:function(t){if(Array.from(A.current.childNodes).some(function(r){return r.contains(t.target)}))return t;h(t),null==t||t.preventDefault(),null==t||t.stopPropagation()},children:[e("div",{ref:A,className:"".concat(l,"__tile-container"),children:m}),e("span",{className:"".concat(l,"__icon-container"),children:y})]}),e("div",{ref:N,style:{maxHeight:_},className:o("".concat(l,"__container")),children:e("div",{className:"".concat(l,"__content-wrapper"),children:b})})]},Object.getOwnPropertyDescriptors?Object.defineProperties(f,Object.getOwnPropertyDescriptors(d)):(function(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e})(Object(d)).forEach(function(t){Object.defineProperty(f,t,Object.getOwnPropertyDescriptor(d,t))}),f))}
1
+ import cn from 'classnames';
2
+
3
+ import { useEffect, useRef, useState } from 'react';
4
+
5
+ import './MonoAccordion.scss';
6
+
7
+ const RC = 'mono-accordion';
8
+
9
+ function MonoAccordion({
10
+ titleJSX,
11
+ icon,
12
+ children,
13
+ isOpen,
14
+ onClick,
15
+ className,
16
+ disabled,
17
+ testId = 'mono-accordion',
18
+ datasetProp = {},
19
+ }) {
20
+ const [maxHeight, setMaxHeight] = useState();
21
+ const titleRef = useRef();
22
+ const containerRef = useRef();
23
+
24
+ const setHeight = (value) => {
25
+ if (value !== undefined) {
26
+ setMaxHeight(state => `${value}px`);
27
+ }
28
+ else {
29
+ setMaxHeight(
30
+ state =>
31
+ `${Array.from(containerRef.current?.childNodes)?.reduce?.((acc, el) => acc + el.offsetHeight, 0)}px`,
32
+ );
33
+ }
34
+ };
35
+
36
+ const handleClick = (e) => {
37
+ if (
38
+ !Array.from(titleRef.current.childNodes).some(el =>
39
+ el.contains(e.target),
40
+ )
41
+ ) {
42
+ onClick(e);
43
+ e?.preventDefault();
44
+ e?.stopPropagation();
45
+ }
46
+ else {
47
+ return e;
48
+ }
49
+ };
50
+
51
+ useEffect(() => {
52
+ if (!isOpen) setHeight(0);
53
+ else setHeight();
54
+ }, [isOpen, children]);
55
+
56
+ return (
57
+ <div
58
+ {...datasetProp}
59
+ data-testid={testId}
60
+ className={cn(RC, className, {
61
+ [`${RC}_is-open`]: isOpen,
62
+ [`${RC}_disabled`]: disabled,
63
+ })}
64
+ >
65
+ <div
66
+ className={`${RC}__head`}
67
+ onClick={handleClick}
68
+ >
69
+ <div ref={titleRef} className={`${RC}__tile-container`}>
70
+ {titleJSX}
71
+ </div>
72
+ <span className={`${RC}__icon-container`}>{icon}</span>
73
+ </div>
74
+
75
+ <div
76
+ ref={containerRef}
77
+ style={{ maxHeight }}
78
+ className={cn(`${RC}__container`)}
79
+ >
80
+ <div className={`${RC}__content-wrapper`}>{children}</div>
81
+ </div>
82
+ </div>
83
+ );
84
+ }
85
+
86
+ export default MonoAccordion;
@@ -1 +1,41 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import{ArcElement as a,Chart as r,Tooltip as s}from"chart.js";import{Pie as i}from"react-chartjs-2";import"./PieChart.scss";r.register(a,s);export default function(a){var r=a.data,s=a.cutout,l=a.resultLabel,c=a.resultValue,d=a.withLegend;return t("div",{className:"pie-chart-box",style:{maxWidth:"320px"},children:[e(i,{data:r,options:{cutout:void 0===s?"80%":s,plugins:{legend:{display:void 0!==d&&d}}}}),!!l&&t("div",{className:"pie-chart__result",children:[t("div",{className:"pie-chart__result-value",children:[void 0===c?0:c,e("span",{className:"pie-chart__result-percent",children:"%"})," "]}),e("div",{className:"pie-chart__result-label",children:l})]})]})}
1
+ import { ArcElement, Chart as ChartJS, Tooltip } from 'chart.js';
2
+ import { Pie } from 'react-chartjs-2';
3
+
4
+ import './PieChart.scss';
5
+
6
+ ChartJS.register(ArcElement, Tooltip);
7
+
8
+ function PieChart({
9
+ data,
10
+ cutout = '80%',
11
+ resultLabel,
12
+ resultValue = 0,
13
+ withLegend = false,
14
+ }) {
15
+ const options = {
16
+ cutout,
17
+ plugins: {
18
+ legend: {
19
+ display: withLegend,
20
+ },
21
+ },
22
+ };
23
+
24
+ return (
25
+ <div className="pie-chart-box" style={{ maxWidth: `320px` }}>
26
+ <Pie data={data} options={options} />
27
+ {Boolean(resultLabel) && (
28
+ <div className="pie-chart__result">
29
+ <div className="pie-chart__result-value">
30
+ {resultValue}
31
+ <span className="pie-chart__result-percent">%</span>
32
+ {' '}
33
+ </div>
34
+ <div className="pie-chart__result-label">{resultLabel}</div>
35
+ </div>
36
+ )}
37
+ </div>
38
+ );
39
+ }
40
+
41
+ export default PieChart;
@@ -1 +1,87 @@
1
- function e(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}import{jsx as r}from"react/jsx-runtime";import{useState as t}from"react";import n from"../../Accordion/AccordionItem";import o from"../../AdvancedTag/AdvancedTags";import a from"../../Status/Status";import i from"../../Tag/Tag";import c from"../Table";import{TdActions as l}from"../TdTypes/TdActions";import s from"../TdTypes/TdPriority";import u from"../TdTypes/TdWeight";import"../Table.scss";export default function(f){var m,p=f.type,y=f.item,b=f.rowIndex,d=f.onChange,g=f.cardLength,h=f.changePriority,O=f.getAdviceWeight,v=f.onActionClick,w=f.rowItem,j=f.isDeleted,T=(m=t(y.isOpen),function(e){if(Array.isArray(e))return e}(m)||function(e,r){var t,n,o=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,c=!1;try{for(o=o.call(e);!(i=(t=o.next()).done)&&(a.push(t.value),a.length!==r);i=!0);}catch(e){c=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(c)throw n}}return a}}(m,2)||function(r,t){if(r){if("string"==typeof r)return e(r,2);var n=Object.prototype.toString.call(r).slice(8,-1);if("Object"===n&&r.constructor&&(n=r.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return e(r,t)}}(m,2)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),A=T[0],P=T[1],S="weight"===y.type&&O(j?0:y.value);switch(p){case"accordion":return r(n,{className:y.itemClassName,item:y,isOpen:A,onClick:function(e){return P(e)},children:r(c,{rows:y.rows,className:"accordion--table"})});case"actions":return r(l,{rowItem:w,actions:y,onChange:d,onActionClick:v});case"advancedTags":return r(o,{items:y});case"link":return r("a",{href:y.link,children:y.label});case"priority":return r(s,{rowIndex:b,cardLength:g,onClick:h});case"status":return r(a,{className:y.className,label:y.label,status:y.status});case"tags":return y.map(function(e,t){return r(i,{label:e.label},t)});case"weight":return r(u,{value:y.value,percent:S,onChange:function(e){var r,t;return d((r=function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){var n;n=t[r],r in e?Object.defineProperty(e,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[r]=n})}return e}({},y),t=t={value:e},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):(function(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(e){Object.defineProperty(r,e,Object.getOwnPropertyDescriptor(t,e))}),r))}});default:return r("span",{className:y.className,children:y.value})}}
1
+ import { useState } from 'react';
2
+
3
+ import AccordionItem from '../../Accordion/AccordionItem';
4
+ import AdvancedTags from '../../AdvancedTag/AdvancedTags';
5
+ import Status from '../../Status/Status';
6
+ import Tag from '../../Tag/Tag';
7
+ import Table from '../Table';
8
+ import { TdActions } from '../TdTypes/TdActions';
9
+ import TdPriority from '../TdTypes/TdPriority';
10
+ import TdWeight from '../TdTypes/TdWeight';
11
+
12
+ import '../Table.scss';
13
+
14
+ function TdCell({
15
+ type,
16
+ item,
17
+ rowIndex,
18
+ onChange,
19
+ cardLength,
20
+ changePriority,
21
+ getAdviceWeight,
22
+ onActionClick,
23
+ rowItem,
24
+ isDeleted,
25
+ }) {
26
+ const [isAccordionOpen, setIsAccordionOpen] = useState(item.isOpen);
27
+
28
+ const percent
29
+ = item.type === 'weight' && getAdviceWeight(isDeleted ? 0 : item.value);
30
+
31
+ switch (type) {
32
+ case 'accordion':
33
+ return (
34
+ <AccordionItem
35
+ className={item.itemClassName}
36
+ item={item}
37
+ isOpen={isAccordionOpen}
38
+ onClick={e => setIsAccordionOpen(e)}
39
+ >
40
+ <Table rows={item.rows} className="accordion--table" />
41
+ </AccordionItem>
42
+ );
43
+ case 'actions':
44
+ return (
45
+ <TdActions
46
+ rowItem={rowItem}
47
+ actions={item}
48
+ onChange={onChange}
49
+ onActionClick={onActionClick}
50
+ />
51
+ );
52
+ case 'advancedTags':
53
+ return <AdvancedTags items={item} />;
54
+ case 'link':
55
+ return <a href={item.link}>{item.label}</a>;
56
+ case 'priority':
57
+ return (
58
+ <TdPriority
59
+ rowIndex={rowIndex}
60
+ cardLength={cardLength}
61
+ onClick={changePriority}
62
+ />
63
+ );
64
+ case 'status':
65
+ return (
66
+ <Status
67
+ className={item.className}
68
+ label={item.label}
69
+ status={item.status}
70
+ />
71
+ );
72
+ case 'tags':
73
+ return item.map((tag, index) => <Tag key={index} label={tag.label} />);
74
+ case 'weight':
75
+ return (
76
+ <TdWeight
77
+ value={item.value}
78
+ percent={percent}
79
+ onChange={value => onChange({ ...item, value })}
80
+ />
81
+ );
82
+ default:
83
+ return <span className={item.className}>{item.value}</span>;
84
+ }
85
+ }
86
+
87
+ export default TdCell;
@@ -1 +1,36 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import a from"classnames";import s from"../../../../Langs";import"../Table.scss";export default function(l){var i=l.item,d=l.testId,r=void 0===d?"td-header":d,c=s[globalThis.lng];return"double"===i.type?e("th",{"data-testid":r,children:t("div",{className:"j46",children:[e("div",{className:"",children:c.labels[i.left]||i.left}),e("div",{className:"",children:c.labels[i.right]||i.right})]})}):e("th",{"data-testid":r,className:a(i.className),children:t("div",{className:a({df:i.button}),children:[e("div",{className:"mr5",children:c.labels[i.label]||i.label}),i.button&&e("div",{className:"cards-table__btn",children:c.buttons[i.button]||i.button})]})})}
1
+ import cn from 'classnames';
2
+
3
+ import Langs from '../../../../Langs';
4
+
5
+ import '../Table.scss';
6
+
7
+ function TdHeader({ item, testId = 'td-header' }) {
8
+ const txt = Langs[globalThis.lng];
9
+
10
+ switch (item.type) {
11
+ case 'double':
12
+ return (
13
+ <th data-testid={testId}>
14
+ <div className="j46">
15
+ <div className="">{txt.labels[item.left] || item.left}</div>
16
+ <div className="">{txt.labels[item.right] || item.right}</div>
17
+ </div>
18
+ </th>
19
+ );
20
+ default:
21
+ return (
22
+ <th data-testid={testId} className={cn(item.className)}>
23
+ <div className={cn({ df: item.button })}>
24
+ <div className="mr5">{txt.labels[item.label] || item.label}</div>
25
+ {item.button && (
26
+ <div className="cards-table__btn">
27
+ {txt.buttons[item.button] || item.button}
28
+ </div>
29
+ )}
30
+ </div>
31
+ </th>
32
+ );
33
+ }
34
+ }
35
+
36
+ export default TdHeader;