@redneckz/wildless-cms-uni-blocks 0.14.1026 → 0.14.1028

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 (187) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +353 -244
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/RatesTable/RatesTable.d.ts +6 -0
  5. package/bundle/components/RatesTable/RatesTableContent.d.ts +12 -0
  6. package/bundle/components/RatesTable/RatesTableItem.d.ts +9 -0
  7. package/bundle/components/RatesTable/renderDataPickForm.d.ts +1 -0
  8. package/bundle/components/RatesTable/renderDate.d.ts +6 -0
  9. package/bundle/components/RatesTable/renderLink.d.ts +1 -0
  10. package/bundle/hooks/useRates.d.ts +4 -0
  11. package/bundle/model/LinkProps.d.ts +2 -0
  12. package/bundle/ui-kit/LinkButton/LinkButtonContent.d.ts +11 -0
  13. package/bundle/ui-kit/Rate/Rate.d.ts +12 -0
  14. package/dist/components/Blocks.js +2 -0
  15. package/dist/components/Blocks.js.map +1 -1
  16. package/dist/components/Blocks.mobile.js +2 -0
  17. package/dist/components/Blocks.mobile.js.map +1 -1
  18. package/dist/components/RatesTable/RatesTable.d.ts +6 -0
  19. package/dist/components/RatesTable/RatesTable.js +17 -0
  20. package/dist/components/RatesTable/RatesTable.js.map +1 -0
  21. package/dist/components/RatesTable/RatesTableContent.d.ts +12 -0
  22. package/dist/components/RatesTable/RatesTableContent.js +2 -0
  23. package/dist/components/RatesTable/RatesTableContent.js.map +1 -0
  24. package/dist/components/RatesTable/RatesTableItem.d.ts +9 -0
  25. package/dist/components/RatesTable/RatesTableItem.js +16 -0
  26. package/dist/components/RatesTable/RatesTableItem.js.map +1 -0
  27. package/dist/components/RatesTable/renderDataPickForm.d.ts +1 -0
  28. package/dist/components/RatesTable/renderDataPickForm.js +8 -0
  29. package/dist/components/RatesTable/renderDataPickForm.js.map +1 -0
  30. package/dist/components/RatesTable/renderDate.d.ts +6 -0
  31. package/dist/components/RatesTable/renderDate.js +24 -0
  32. package/dist/components/RatesTable/renderDate.js.map +1 -0
  33. package/dist/components/RatesTable/renderLink.d.ts +1 -0
  34. package/dist/components/RatesTable/renderLink.js +8 -0
  35. package/dist/components/RatesTable/renderLink.js.map +1 -0
  36. package/dist/hooks/useRates.d.ts +4 -0
  37. package/dist/hooks/useRates.js +42 -0
  38. package/dist/hooks/useRates.js.map +1 -0
  39. package/dist/model/LinkProps.d.ts +2 -0
  40. package/dist/ui-kit/LinkButton/LinkButton.js +36 -2
  41. package/dist/ui-kit/LinkButton/LinkButton.js.map +1 -1
  42. package/dist/ui-kit/LinkButton/LinkButtonContent.d.ts +11 -0
  43. package/dist/ui-kit/Rate/Rate.d.ts +12 -0
  44. package/dist/ui-kit/Rate/Rate.js +11 -0
  45. package/dist/ui-kit/Rate/Rate.js.map +1 -0
  46. package/lib/common.css +1 -1
  47. package/lib/components/Blocks.js +2 -0
  48. package/lib/components/Blocks.js.map +1 -1
  49. package/lib/components/Blocks.mobile.js +2 -0
  50. package/lib/components/Blocks.mobile.js.map +1 -1
  51. package/lib/components/ButtonsBlock/ButtonsBlock.fixture.d.ts +1 -0
  52. package/lib/components/RatesTable/RatesTable.d.ts +6 -0
  53. package/lib/components/RatesTable/RatesTable.fixture.d.ts +6 -0
  54. package/lib/components/RatesTable/RatesTable.fixture.mobile.d.ts +6 -0
  55. package/lib/components/RatesTable/RatesTable.js +15 -0
  56. package/lib/components/RatesTable/RatesTable.js.map +1 -0
  57. package/lib/components/RatesTable/RatesTableContent.d.ts +12 -0
  58. package/lib/components/RatesTable/RatesTableContent.js +2 -0
  59. package/lib/components/RatesTable/RatesTableContent.js.map +1 -0
  60. package/lib/components/RatesTable/RatesTableItem.d.ts +9 -0
  61. package/lib/components/RatesTable/RatesTableItem.js +14 -0
  62. package/lib/components/RatesTable/RatesTableItem.js.map +1 -0
  63. package/lib/components/RatesTable/renderDataPickForm.d.ts +1 -0
  64. package/lib/components/RatesTable/renderDataPickForm.js +5 -0
  65. package/lib/components/RatesTable/renderDataPickForm.js.map +1 -0
  66. package/lib/components/RatesTable/renderDate.d.ts +6 -0
  67. package/lib/components/RatesTable/renderDate.js +21 -0
  68. package/lib/components/RatesTable/renderDate.js.map +1 -0
  69. package/lib/components/RatesTable/renderLink.d.ts +1 -0
  70. package/lib/components/RatesTable/renderLink.js +5 -0
  71. package/lib/components/RatesTable/renderLink.js.map +1 -0
  72. package/lib/hooks/useRates.d.ts +4 -0
  73. package/lib/hooks/useRates.js +39 -0
  74. package/lib/hooks/useRates.js.map +1 -0
  75. package/lib/model/LinkProps.d.ts +2 -0
  76. package/lib/ui-kit/LinkButton/LinkButton.js +36 -2
  77. package/lib/ui-kit/LinkButton/LinkButton.js.map +1 -1
  78. package/lib/ui-kit/LinkButton/LinkButtonContent.d.ts +11 -0
  79. package/lib/ui-kit/Rate/Rate.d.ts +12 -0
  80. package/lib/ui-kit/Rate/Rate.js +9 -0
  81. package/lib/ui-kit/Rate/Rate.js.map +1 -0
  82. package/mobile/bundle/bundle.umd.js +318 -209
  83. package/mobile/bundle/bundle.umd.min.js +1 -1
  84. package/mobile/bundle/components/RatesTable/RatesTable.d.ts +6 -0
  85. package/mobile/bundle/components/RatesTable/RatesTableContent.d.ts +12 -0
  86. package/mobile/bundle/components/RatesTable/RatesTableItem.d.ts +9 -0
  87. package/mobile/bundle/components/RatesTable/renderDataPickForm.d.ts +1 -0
  88. package/mobile/bundle/components/RatesTable/renderDate.d.ts +6 -0
  89. package/mobile/bundle/components/RatesTable/renderLink.d.ts +1 -0
  90. package/mobile/bundle/hooks/useRates.d.ts +4 -0
  91. package/mobile/bundle/model/LinkProps.d.ts +2 -0
  92. package/mobile/bundle/ui-kit/LinkButton/LinkButtonContent.d.ts +11 -0
  93. package/mobile/bundle/ui-kit/Rate/Rate.d.ts +12 -0
  94. package/mobile/dist/components/Blocks.js +2 -0
  95. package/mobile/dist/components/Blocks.js.map +1 -1
  96. package/mobile/dist/components/RatesTable/RatesTable.d.ts +6 -0
  97. package/mobile/dist/components/RatesTable/RatesTable.js +17 -0
  98. package/mobile/dist/components/RatesTable/RatesTable.js.map +1 -0
  99. package/mobile/dist/components/RatesTable/RatesTableContent.d.ts +12 -0
  100. package/mobile/dist/components/RatesTable/RatesTableContent.js +2 -0
  101. package/mobile/dist/components/RatesTable/RatesTableContent.js.map +1 -0
  102. package/mobile/dist/components/RatesTable/RatesTableItem.d.ts +9 -0
  103. package/mobile/dist/components/RatesTable/RatesTableItem.js +16 -0
  104. package/mobile/dist/components/RatesTable/RatesTableItem.js.map +1 -0
  105. package/mobile/dist/components/RatesTable/renderDataPickForm.d.ts +1 -0
  106. package/mobile/dist/components/RatesTable/renderDataPickForm.js +8 -0
  107. package/mobile/dist/components/RatesTable/renderDataPickForm.js.map +1 -0
  108. package/mobile/dist/components/RatesTable/renderDate.d.ts +6 -0
  109. package/mobile/dist/components/RatesTable/renderDate.js +24 -0
  110. package/mobile/dist/components/RatesTable/renderDate.js.map +1 -0
  111. package/mobile/dist/components/RatesTable/renderLink.d.ts +1 -0
  112. package/mobile/dist/components/RatesTable/renderLink.js +8 -0
  113. package/mobile/dist/components/RatesTable/renderLink.js.map +1 -0
  114. package/mobile/dist/hooks/useRates.d.ts +4 -0
  115. package/mobile/dist/hooks/useRates.js +42 -0
  116. package/mobile/dist/hooks/useRates.js.map +1 -0
  117. package/mobile/dist/model/LinkProps.d.ts +2 -0
  118. package/mobile/dist/ui-kit/LinkButton/LinkButton.js +36 -2
  119. package/mobile/dist/ui-kit/LinkButton/LinkButton.js.map +1 -1
  120. package/mobile/dist/ui-kit/LinkButton/LinkButtonContent.d.ts +11 -0
  121. package/mobile/dist/ui-kit/Rate/Rate.d.ts +12 -0
  122. package/mobile/dist/ui-kit/Rate/Rate.js +11 -0
  123. package/mobile/dist/ui-kit/Rate/Rate.js.map +1 -0
  124. package/mobile/lib/common.css +1 -1
  125. package/mobile/lib/components/Blocks.js +2 -0
  126. package/mobile/lib/components/Blocks.js.map +1 -1
  127. package/mobile/lib/components/RatesTable/RatesTable.d.ts +6 -0
  128. package/mobile/lib/components/RatesTable/RatesTable.js +15 -0
  129. package/mobile/lib/components/RatesTable/RatesTable.js.map +1 -0
  130. package/mobile/lib/components/RatesTable/RatesTableContent.d.ts +12 -0
  131. package/mobile/lib/components/RatesTable/RatesTableContent.js +2 -0
  132. package/mobile/lib/components/RatesTable/RatesTableContent.js.map +1 -0
  133. package/mobile/lib/components/RatesTable/RatesTableItem.d.ts +9 -0
  134. package/mobile/lib/components/RatesTable/RatesTableItem.js +14 -0
  135. package/mobile/lib/components/RatesTable/RatesTableItem.js.map +1 -0
  136. package/mobile/lib/components/RatesTable/renderDataPickForm.d.ts +1 -0
  137. package/mobile/lib/components/RatesTable/renderDataPickForm.js +5 -0
  138. package/mobile/lib/components/RatesTable/renderDataPickForm.js.map +1 -0
  139. package/mobile/lib/components/RatesTable/renderDate.d.ts +6 -0
  140. package/mobile/lib/components/RatesTable/renderDate.js +21 -0
  141. package/mobile/lib/components/RatesTable/renderDate.js.map +1 -0
  142. package/mobile/lib/components/RatesTable/renderLink.d.ts +1 -0
  143. package/mobile/lib/components/RatesTable/renderLink.js +5 -0
  144. package/mobile/lib/components/RatesTable/renderLink.js.map +1 -0
  145. package/mobile/lib/hooks/useRates.d.ts +4 -0
  146. package/mobile/lib/hooks/useRates.js +39 -0
  147. package/mobile/lib/hooks/useRates.js.map +1 -0
  148. package/mobile/lib/model/LinkProps.d.ts +2 -0
  149. package/mobile/lib/ui-kit/LinkButton/LinkButton.js +36 -2
  150. package/mobile/lib/ui-kit/LinkButton/LinkButton.js.map +1 -1
  151. package/mobile/lib/ui-kit/LinkButton/LinkButtonContent.d.ts +11 -0
  152. package/mobile/lib/ui-kit/Rate/Rate.d.ts +12 -0
  153. package/mobile/lib/ui-kit/Rate/Rate.js +9 -0
  154. package/mobile/lib/ui-kit/Rate/Rate.js.map +1 -0
  155. package/mobile/src/components/Blocks.ts +2 -0
  156. package/mobile/src/components/RatesTable/RatesTable.example.json +7 -0
  157. package/mobile/src/components/RatesTable/RatesTable.tsx +38 -0
  158. package/mobile/src/components/RatesTable/RatesTable.ui.json +7 -0
  159. package/mobile/src/components/RatesTable/RatesTableContent.ts +13 -0
  160. package/mobile/src/components/RatesTable/RatesTableItem.tsx +39 -0
  161. package/mobile/src/components/RatesTable/renderDataPickForm.tsx +9 -0
  162. package/mobile/src/components/RatesTable/renderDate.tsx +42 -0
  163. package/mobile/src/components/RatesTable/renderLink.tsx +8 -0
  164. package/mobile/src/hooks/useRates.ts +65 -0
  165. package/mobile/src/model/LinkProps.ts +2 -0
  166. package/mobile/src/ui-kit/LinkButton/LinkButton.tsx +54 -2
  167. package/mobile/src/ui-kit/LinkButton/LinkButtonContent.ts +12 -0
  168. package/mobile/src/ui-kit/Rate/Rate.tsx +27 -0
  169. package/package.json +1 -1
  170. package/src/components/Blocks.mobile.ts +2 -0
  171. package/src/components/Blocks.ts +2 -0
  172. package/src/components/ButtonsBlock/ButtonsBlock.fixture.tsx +21 -0
  173. package/src/components/RatesTable/RatesTable.example.json +7 -0
  174. package/src/components/RatesTable/RatesTable.fixture.mobile.tsx +26 -0
  175. package/src/components/RatesTable/RatesTable.fixture.tsx +26 -0
  176. package/src/components/RatesTable/RatesTable.tsx +38 -0
  177. package/src/components/RatesTable/RatesTable.ui.json +7 -0
  178. package/src/components/RatesTable/RatesTableContent.ts +13 -0
  179. package/src/components/RatesTable/RatesTableItem.tsx +39 -0
  180. package/src/components/RatesTable/renderDataPickForm.tsx +9 -0
  181. package/src/components/RatesTable/renderDate.tsx +42 -0
  182. package/src/components/RatesTable/renderLink.tsx +8 -0
  183. package/src/hooks/useRates.ts +65 -0
  184. package/src/model/LinkProps.ts +2 -0
  185. package/src/ui-kit/LinkButton/LinkButton.tsx +54 -2
  186. package/src/ui-kit/LinkButton/LinkButtonContent.ts +12 -0
  187. package/src/ui-kit/Rate/Rate.tsx +27 -0
@@ -0,0 +1,6 @@
1
+ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
+ import { type RatesTableContent } from './RatesTableContent';
3
+ interface RatesTableProps extends RatesTableContent, UniBlockProps {
4
+ }
5
+ export declare const RatesTable: import("@redneckz/uni-jsx").UNIComponent<RatesTableProps, any, any>;
6
+ export {};
@@ -0,0 +1,12 @@
1
+ import { type HrefProps } from '../../model/LinkProps';
2
+ /**
3
+ * @title Таблица курсов
4
+ */
5
+ export interface RatesTableContent extends HrefProps {
6
+ /** @title Информационное сообщение */
7
+ infoMessage?: string;
8
+ /** @title Заголовок */
9
+ title?: string;
10
+ /** @hidden */
11
+ isArchive?: boolean;
12
+ }
@@ -0,0 +1,9 @@
1
+ import { type RateItem } from '../../ui-kit/Rate/Rate';
2
+ import { type RatesTableContent } from './RatesTableContent';
3
+ interface RatesTableItemProps extends RatesTableContent {
4
+ maxDate?: string;
5
+ isRatesValid?: boolean;
6
+ list: RateItem[];
7
+ }
8
+ export declare const RatesTableItem: import("@redneckz/uni-jsx").UNIComponent<RatesTableItemProps, any, any>;
9
+ export {};
@@ -0,0 +1 @@
1
+ export declare const renderDataPickForm: () => any;
@@ -0,0 +1,6 @@
1
+ declare type RenderDateProps = {
2
+ dateString: string;
3
+ isArchive?: boolean;
4
+ };
5
+ export declare const renderDate: ({ dateString, isArchive }: RenderDateProps) => any;
6
+ export {};
@@ -0,0 +1 @@
1
+ export declare const renderLink: (href: string) => any;
@@ -0,0 +1,4 @@
1
+ import { type RateItem } from '../ui-kit/Rate/Rate';
2
+ declare type RateItemList = RateItem[];
3
+ export declare function useRates(isArchive: boolean): RateItemList[];
4
+ export {};
@@ -14,6 +14,8 @@ export declare type Target = '' | '_self' | '_blank' | '_parent' | '_top';
14
14
  export declare type HrefProps = {
15
15
  /** @title URL (href) */
16
16
  href?: string;
17
+ /** @title Дополнительные ссылки для A/B-тестирования */
18
+ additionalHrefs?: string[];
17
19
  };
18
20
  export declare type LinkCommonProps = HrefProps & {
19
21
  /** @default "" */
@@ -20,4 +20,15 @@ export interface LinkButtonContent extends ButtonCommonContent {
20
20
  iconRight?: Picture;
21
21
  /** @title Верхний текст */
22
22
  aboveText?: string;
23
+ /** @title Уникальный идентификатор кнопки */
24
+ id?: string;
23
25
  }
26
+ declare type LinkStoreItem = {
27
+ id: string;
28
+ lastLink: string;
29
+ nextDueAt: number;
30
+ };
31
+ export declare type LinkStoreSlice = {
32
+ links: LinkStoreItem[] | null;
33
+ };
34
+ export {};
@@ -0,0 +1,12 @@
1
+ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
+ export declare type RateItem = {
3
+ currencyPair?: string;
4
+ buyRate?: number;
5
+ sellRate?: number;
6
+ lastUpdatedAt?: string;
7
+ };
8
+ interface RateProps extends RateItem, UniBlockProps {
9
+ }
10
+ export declare const RATES_COLUMN_STYLE = "grid grid-cols-3 gap-s";
11
+ export declare const Rate: import("../../UniBlock/UniBlock").UniBlockComponent<RateProps>;
12
+ export {};
@@ -36,6 +36,7 @@ const LinkDocs_1 = require("./LinkDocs/LinkDocs");
36
36
  const MobileAppTile_1 = require("./MobileAppTile/MobileAppTile");
37
37
  const OfficesAtmsMap_1 = require("./OfficesAtmsMap/OfficesAtmsMap");
38
38
  const ProductBlock_1 = require("./ProductBlock/ProductBlock");
39
+ const RatesTable_1 = require("./RatesTable/RatesTable");
39
40
  const RichTextBlock_1 = require("./RichTextBlock/RichTextBlock");
40
41
  const RkoTariffCardsTable_1 = require("./RkoTariffCardsTable/RkoTariffCardsTable");
41
42
  const RollupItem_1 = require("./RollupItem/RollupItem");
@@ -91,5 +92,6 @@ exports.Blocks = {
91
92
  CashbackCalculator: CashbackCalculator_1.CashbackCalculator,
92
93
  CalculatorRko: CalculatorRko_1.CalculatorRko,
93
94
  RkoTariffCardsTable: RkoTariffCardsTable_1.RkoTariffCardsTable,
95
+ RatesTable: RatesTable_1.RatesTable,
94
96
  };
95
97
  //# sourceMappingURL=Blocks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blocks.js","sourceRoot":"","sources":["../../src/components/Blocks.ts"],"names":[],"mappings":";;AAEA,4CAAyC;AACzC,uEAAoE;AACpE,mFAAgF;AAChF,yFAAsF;AACtF,iEAA8D;AAC9D,gFAA6E;AAC7E,8DAA2D;AAC3D,uEAAoE;AACpE,qGAAkG;AAClG,0EAAuE;AACvE,6EAA0E;AAC1E,yFAAsF;AACtF,iEAA8D;AAC9D,8DAA2D;AAC3D,kDAA+C;AAC/C,mFAAgF;AAChF,wGAAqG;AACrG,mFAAgF;AAChF,gFAA6E;AAC7E,oEAAiE;AACjE,wDAAqD;AACrD,qDAAkD;AAClD,6EAA0E;AAC1E,wDAAqD;AACrD,0EAAuE;AACvE,4CAAyC;AACzC,iEAA8D;AAC9D,8DAA2D;AAC3D,4CAAyC;AACzC,kDAA+C;AAC/C,0EAAuE;AACvE,kDAA+C;AAC/C,kDAA+C;AAC/C,iEAA8D;AAC9D,oEAAiE;AACjE,8DAA2D;AAC3D,iEAA8D;AAC9D,mFAAgF;AAChF,wDAAqD;AACrD,wDAAqD;AACrD,0EAAuE;AACvE,wDAAqD;AACrD,8DAA2D;AAC3D,qDAAkD;AAClD,oEAAiE;AAEpD,QAAA,MAAM,GAAmB;IACpC,MAAM,EAAN,eAAM;IACN,eAAe,EAAf,iCAAe;IACf,qBAAqB,EAArB,6CAAqB;IACrB,aAAa,EAAb,6BAAa;IACb,kBAAkB,EAAlB,uCAAkB;IAClB,YAAY,EAAZ,2BAAY;IACZ,eAAe,EAAf,iCAAe;IACf,yBAAyB,EAAzB,qDAAyB;IACzB,gBAAgB,EAAhB,mCAAgB;IAChB,iBAAiB,EAAjB,qCAAiB;IACjB,qBAAqB,EAArB,6CAAqB;IACrB,YAAY,EAAZ,2BAAY;IACZ,QAAQ,EAAR,mBAAQ;IACR,mBAAmB,EAAnB,yCAAmB;IACnB,0BAA0B,EAA1B,uDAA0B;IAC1B,mBAAmB,EAAnB,yCAAmB;IACnB,iBAAiB,EAAjB,qCAAiB;IACjB,UAAU,EAAV,uBAAU;IACV,gBAAgB,EAAhB,mCAAgB;IAChB,MAAM,EAAN,eAAM;IACN,aAAa,EAAb,6BAAa;IACb,YAAY,EAAZ,2BAAY;IACZ,MAAM,EAAN,eAAM;IACN,QAAQ,EAAR,mBAAQ;IACR,gBAAgB,EAAhB,mCAAgB;IAChB,QAAQ,EAAR,mBAAQ;IACR,QAAQ,EAAR,mBAAQ;IACR,aAAa,EAAb,6BAAa;IACb,cAAc,EAAd,+BAAc;IACd,YAAY,EAAZ,2BAAY;IACZ,aAAa,EAAb,6BAAa;IACb,UAAU,EAAV,uBAAU;IACV,UAAU,EAAV,uBAAU;IACV,gBAAgB,EAAhB,mCAAgB;IAChB,UAAU,EAAV,uBAAU;IACV,YAAY,EAAZ,2BAAY;IACZ,SAAS,EAAT,qBAAS;IACT,cAAc,EAAd,+BAAc;IACd,mBAAmB,EAAnB,yCAAmB;IACnB,cAAc,EAAd,+BAAc;IACd,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,qBAAS;IACT,kBAAkB,EAAlB,uCAAkB;IAClB,aAAa,EAAb,6BAAa;IACb,mBAAmB,EAAnB,yCAAmB;CACpB,CAAC"}
1
+ {"version":3,"file":"Blocks.js","sourceRoot":"","sources":["../../src/components/Blocks.ts"],"names":[],"mappings":";;AAEA,4CAAyC;AACzC,uEAAoE;AACpE,mFAAgF;AAChF,yFAAsF;AACtF,iEAA8D;AAC9D,gFAA6E;AAC7E,8DAA2D;AAC3D,uEAAoE;AACpE,qGAAkG;AAClG,0EAAuE;AACvE,6EAA0E;AAC1E,yFAAsF;AACtF,iEAA8D;AAC9D,8DAA2D;AAC3D,kDAA+C;AAC/C,mFAAgF;AAChF,wGAAqG;AACrG,mFAAgF;AAChF,gFAA6E;AAC7E,oEAAiE;AACjE,wDAAqD;AACrD,qDAAkD;AAClD,6EAA0E;AAC1E,wDAAqD;AACrD,0EAAuE;AACvE,4CAAyC;AACzC,iEAA8D;AAC9D,8DAA2D;AAC3D,4CAAyC;AACzC,kDAA+C;AAC/C,0EAAuE;AACvE,kDAA+C;AAC/C,kDAA+C;AAC/C,iEAA8D;AAC9D,oEAAiE;AACjE,8DAA2D;AAC3D,wDAAqD;AACrD,iEAA8D;AAC9D,mFAAgF;AAChF,wDAAqD;AACrD,wDAAqD;AACrD,0EAAuE;AACvE,wDAAqD;AACrD,8DAA2D;AAC3D,qDAAkD;AAClD,oEAAiE;AAEpD,QAAA,MAAM,GAAmB;IACpC,MAAM,EAAN,eAAM;IACN,eAAe,EAAf,iCAAe;IACf,qBAAqB,EAArB,6CAAqB;IACrB,aAAa,EAAb,6BAAa;IACb,kBAAkB,EAAlB,uCAAkB;IAClB,YAAY,EAAZ,2BAAY;IACZ,eAAe,EAAf,iCAAe;IACf,yBAAyB,EAAzB,qDAAyB;IACzB,gBAAgB,EAAhB,mCAAgB;IAChB,iBAAiB,EAAjB,qCAAiB;IACjB,qBAAqB,EAArB,6CAAqB;IACrB,YAAY,EAAZ,2BAAY;IACZ,QAAQ,EAAR,mBAAQ;IACR,mBAAmB,EAAnB,yCAAmB;IACnB,0BAA0B,EAA1B,uDAA0B;IAC1B,mBAAmB,EAAnB,yCAAmB;IACnB,iBAAiB,EAAjB,qCAAiB;IACjB,UAAU,EAAV,uBAAU;IACV,gBAAgB,EAAhB,mCAAgB;IAChB,MAAM,EAAN,eAAM;IACN,aAAa,EAAb,6BAAa;IACb,YAAY,EAAZ,2BAAY;IACZ,MAAM,EAAN,eAAM;IACN,QAAQ,EAAR,mBAAQ;IACR,gBAAgB,EAAhB,mCAAgB;IAChB,QAAQ,EAAR,mBAAQ;IACR,QAAQ,EAAR,mBAAQ;IACR,aAAa,EAAb,6BAAa;IACb,cAAc,EAAd,+BAAc;IACd,YAAY,EAAZ,2BAAY;IACZ,aAAa,EAAb,6BAAa;IACb,UAAU,EAAV,uBAAU;IACV,UAAU,EAAV,uBAAU;IACV,gBAAgB,EAAhB,mCAAgB;IAChB,UAAU,EAAV,uBAAU;IACV,YAAY,EAAZ,2BAAY;IACZ,SAAS,EAAT,qBAAS;IACT,cAAc,EAAd,+BAAc;IACd,mBAAmB,EAAnB,yCAAmB;IACnB,cAAc,EAAd,+BAAc;IACd,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,qBAAS;IACT,kBAAkB,EAAlB,uCAAkB;IAClB,aAAa,EAAb,6BAAa;IACb,mBAAmB,EAAnB,yCAAmB;IACnB,UAAU,EAAV,uBAAU;CACX,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
+ import { type RatesTableContent } from './RatesTableContent';
3
+ interface RatesTableProps extends RatesTableContent, UniBlockProps {
4
+ }
5
+ export declare const RatesTable: import("@redneckz/uni-jsx").UNIComponent<RatesTableProps, any, any>;
6
+ export {};
@@ -0,0 +1,17 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.RatesTable = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ const useRates_1 = require("../../hooks/useRates");
6
+ const BlockWrapper_1 = require("../../ui-kit/BlockWrapper");
7
+ const Heading_1 = require("../../ui-kit/Heading/Heading");
8
+ const style_1 = require("../../utils/style");
9
+ const RatesTableItem_1 = require("./RatesTableItem");
10
+ const renderDataPickForm_1 = require("./renderDataPickForm");
11
+ const renderLink_1 = require("./renderLink");
12
+ exports.RatesTable = (0, uni_jsx_1.JSX)(({ href, className = '', infoMessage, title, isArchive = false, ...rest }) => {
13
+ const ratesList = (0, useRates_1.useRates)(isArchive);
14
+ const isRatesValid = ratesList[0].length > 0;
15
+ return ((0, jsx_runtime_1.jsxs)(BlockWrapper_1.BlockWrapper, { className: (0, style_1.style)('p-6xl space-y-xl', className), defaultPadding: "p-0", ...rest, children: [(0, jsx_runtime_1.jsx)(Heading_1.Heading, { className: "mb-xl", children: title }), isArchive ? (0, renderDataPickForm_1.renderDataPickForm)() : null, ratesList.map((list, i) => ((0, jsx_runtime_1.jsx)(RatesTableItem_1.RatesTableItem, { list: list, isRatesValid: isRatesValid, isArchive: isArchive, infoMessage: infoMessage }, String(i)))), href ? (0, renderLink_1.renderLink)(href) : null] }));
16
+ });
17
+ //# sourceMappingURL=RatesTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatesTable.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTable.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,mDAAgD;AAChD,4DAAyD;AACzD,0DAAuD;AAEvD,6CAA0C;AAE1C,qDAAkD;AAClD,6DAA0D;AAC1D,6CAA0C;AAI7B,QAAA,UAAU,GAAG,IAAA,aAAG,EAC3B,CAAC,EAAE,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC3E,MAAM,SAAS,GAAG,IAAA,mBAAQ,EAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE7C,OAAO,CACL,wBAAC,2BAAY,IAAC,SAAS,EAAE,IAAA,aAAK,EAAC,kBAAkB,EAAE,SAAS,CAAC,EAAE,cAAc,EAAC,KAAK,KAAK,IAAI,aAC1F,uBAAC,iBAAO,IAAC,SAAS,EAAC,OAAO,YAAE,KAAK,GAAW,EAC3C,SAAS,CAAC,CAAC,CAAC,IAAA,uCAAkB,GAAE,CAAC,CAAC,CAAC,IAAI,EACvC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,uBAAC,+BAAc,IACb,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EAEpB,WAAW,EAAE,WAAW,IADnB,MAAM,CAAC,CAAC,CAAC,CAEd,CACH,CAAC,EAED,IAAI,CAAC,CAAC,CAAC,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAClB,CAChB,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type HrefProps } from '../../model/LinkProps';
2
+ /**
3
+ * @title Таблица курсов
4
+ */
5
+ export interface RatesTableContent extends HrefProps {
6
+ /** @title Информационное сообщение */
7
+ infoMessage?: string;
8
+ /** @title Заголовок */
9
+ title?: string;
10
+ /** @hidden */
11
+ isArchive?: boolean;
12
+ }
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ //# sourceMappingURL=RatesTableContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatesTableContent.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTableContent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import { type RateItem } from '../../ui-kit/Rate/Rate';
2
+ import { type RatesTableContent } from './RatesTableContent';
3
+ interface RatesTableItemProps extends RatesTableContent {
4
+ maxDate?: string;
5
+ isRatesValid?: boolean;
6
+ list: RateItem[];
7
+ }
8
+ export declare const RatesTableItem: import("@redneckz/uni-jsx").UNIComponent<RatesTableItemProps, any, any>;
9
+ export {};
@@ -0,0 +1,16 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.RatesTableItem = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ const Paragraph_1 = require("../../ui-kit/Paragraph/Paragraph");
6
+ const Rate_1 = require("../../ui-kit/Rate/Rate");
7
+ const Text_1 = require("../../ui-kit/Text/Text");
8
+ const style_1 = require("../../utils/style");
9
+ const renderDate_1 = require("./renderDate");
10
+ exports.RatesTableItem = (0, uni_jsx_1.JSX)(({ isArchive = false, isRatesValid, list = [], infoMessage }) => {
11
+ const maxDate = isRatesValid
12
+ ? list.map((item) => item.lastUpdatedAt).reduce((a, b) => (String(a) > String(b) ? a : b))
13
+ : '';
14
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-xl mb-3xl", children: [maxDate && (0, renderDate_1.renderDate)({ dateString: maxDate, isArchive }), (0, jsx_runtime_1.jsxs)("div", { className: (0, style_1.style)(Rate_1.RATES_COLUMN_STYLE), children: [(0, jsx_runtime_1.jsx)(Text_1.Text, { font: "font-medium", children: "\u0412\u0430\u043B\u044E\u0442\u0430" }), (0, jsx_runtime_1.jsx)(Text_1.Text, { font: "font-medium", children: "\u041F\u043E\u043A\u0443\u043F\u043A\u0430" }), (0, jsx_runtime_1.jsx)(Text_1.Text, { font: "font-medium", children: "\u041F\u0440\u043E\u0434\u0430\u0436\u0430" })] }), list.length > 0 ? (list.map((rate, i) => (0, jsx_runtime_1.jsx)(Rate_1.Rate, { ...rate }, String(i)))) : ((0, jsx_runtime_1.jsx)(Paragraph_1.Paragraph, { children: "\u041E\u0448\u0438\u0431\u043A\u0430 \u043F\u043E\u043B\u0443\u0447\u0435\u043D\u0438\u044F \u0434\u0430\u043D\u043D\u044B\u0445" })), (0, jsx_runtime_1.jsx)(Paragraph_1.Paragraph, { color: "text-secondary-text", children: infoMessage })] }));
15
+ });
16
+ //# sourceMappingURL=RatesTableItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RatesTableItem.js","sourceRoot":"","sources":["../../../src/components/RatesTable/RatesTableItem.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,gEAA6D;AAC7D,iDAAiF;AACjF,iDAA8C;AAC9C,6CAA0C;AAE1C,6CAA0C;AAQ7B,QAAA,cAAc,GAAG,IAAA,aAAG,EAC/B,CAAC,EAAE,SAAS,GAAG,KAAK,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC9D,MAAM,OAAO,GAAG,YAAY;QAC1B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO,CACL,iCAAK,SAAS,EAAC,mBAAmB,aAC/B,OAAO,IAAI,IAAA,uBAAU,EAAC,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAC1D,iCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,yBAAkB,CAAC,aACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,qDAAc,EACtC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,EACvC,uBAAC,WAAI,IAAC,IAAI,EAAC,aAAa,2DAAe,IACnC,EACL,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAC,WAAI,OAAqB,IAAI,IAAnB,MAAM,CAAC,CAAC,CAAC,CAAc,CAAC,CAC1D,CAAC,CAAC,CAAC,CACF,uBAAC,qBAAS,mJAAoC,CAC/C,EAED,uBAAC,qBAAS,IAAC,KAAK,EAAC,qBAAqB,YAAE,WAAW,GAAa,IAC5D,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const renderDataPickForm: () => any;
@@ -0,0 +1,8 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.renderDataPickForm = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const SubmitButton_1 = require("../../ui-kit/Button/SubmitButton");
5
+ const DatePicker_1 = require("../../ui-kit/DatePicker/DatePicker");
6
+ const renderDataPickForm = () => ((0, jsx_runtime_1.jsxs)("div", { className: "flex justify-start items-end space-x-xl", children: [(0, jsx_runtime_1.jsx)(DatePicker_1.DatePicker, { label: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0434\u0435\u043D\u044C", maxDate: new Date() }), (0, jsx_runtime_1.jsx)(SubmitButton_1.SubmitButton, { className: "h-fit", children: "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C" })] }));
7
+ exports.renderDataPickForm = renderDataPickForm;
8
+ //# sourceMappingURL=renderDataPickForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderDataPickForm.js","sourceRoot":"","sources":["../../../src/components/RatesTable/renderDataPickForm.tsx"],"names":[],"mappings":";;;AAAA,mEAAgE;AAChE,mEAAgE;AAEzD,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,CACtC,iCAAK,SAAS,EAAC,yCAAyC,aACtD,uBAAC,uBAAU,IAAC,KAAK,EAAC,2EAAe,EAAC,OAAO,EAAE,IAAI,IAAI,EAAE,GAAI,EACzD,uBAAC,2BAAY,IAAC,SAAS,EAAC,OAAO,iEAAwB,IACnD,CACP,CAAC;AALW,QAAA,kBAAkB,sBAK7B"}
@@ -0,0 +1,6 @@
1
+ declare type RenderDateProps = {
2
+ dateString: string;
3
+ isArchive?: boolean;
4
+ };
5
+ export declare const renderDate: ({ dateString, isArchive }: RenderDateProps) => any;
6
+ export {};
@@ -0,0 +1,24 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.renderDate = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const Paragraph_1 = require("../../ui-kit/Paragraph/Paragraph");
5
+ const Text_1 = require("../../ui-kit/Text/Text");
6
+ const TIMEZONE = 'МСК';
7
+ const renderDate = ({ dateString, isArchive = false }) => {
8
+ const date = new Date(String(dateString));
9
+ const formatTime = date.toLocaleTimeString('ru-RU', {
10
+ timeZone: 'Europe/Moscow',
11
+ hour: '2-digit',
12
+ minute: '2-digit',
13
+ hour12: false,
14
+ });
15
+ const formatDate = date.toLocaleDateString('ru-RU', {
16
+ timeZone: 'Europe/Moscow',
17
+ day: 'numeric',
18
+ month: 'long',
19
+ year: 'numeric',
20
+ });
21
+ return isArchive ? ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(Paragraph_1.Paragraph, { color: "text-secondary-text", font: "font-medium", children: formatDate }), (0, jsx_runtime_1.jsxs)(Paragraph_1.Paragraph, { color: "text-secondary-text", children: [formatTime, " (", TIMEZONE, ")"] })] })) : ((0, jsx_runtime_1.jsxs)(Text_1.Text, { color: "text-secondary-text", children: ["\u041A\u0443\u0440\u0441\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B \u043D\u0430 ", formatTime, " (", TIMEZONE, "), ", formatDate] }));
22
+ };
23
+ exports.renderDate = renderDate;
24
+ //# sourceMappingURL=renderDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderDate.js","sourceRoot":"","sources":["../../../src/components/RatesTable/renderDate.tsx"],"names":[],"mappings":";;;AAAA,gEAA6D;AAC7D,iDAA8C;AAO9C,MAAM,QAAQ,GAAG,KAAK,CAAC;AAEhB,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,GAAG,KAAK,EAAmB,EAAE,EAAE;IAC/E,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QAClD,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QAClD,QAAQ,EAAE,eAAe;QACzB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,4CACE,uBAAC,qBAAS,IAAC,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAC,aAAa,YACtD,UAAU,GACD,EACZ,wBAAC,qBAAS,IAAC,KAAK,EAAC,qBAAqB,aACnC,UAAU,QAAI,QAAQ,SACb,IACR,CACP,CAAC,CAAC,CAAC,CACF,wBAAC,WAAI,IAAC,KAAK,EAAC,qBAAqB,4IACP,UAAU,QAAI,QAAQ,SAAK,UAAU,IACxD,CACR,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,UAAU,cA+BrB"}
@@ -0,0 +1 @@
1
+ export declare const renderLink: (href: string) => any;
@@ -0,0 +1,8 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.renderLink = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const Link_1 = require("../../ui-kit/Link/Link");
5
+ const Paragraph_1 = require("../../ui-kit/Paragraph/Paragraph");
6
+ const renderLink = (href) => ((0, jsx_runtime_1.jsxs)(Paragraph_1.Paragraph, { children: ["\u041F\u043E\u043B\u043D\u044B\u0439 \u0430\u0440\u0445\u0438\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C ", (0, jsx_runtime_1.jsx)(Link_1.Link, { href: href, children: "\u0437\u0434\u0435\u0441\u044C" })] }));
7
+ exports.renderLink = renderLink;
8
+ //# sourceMappingURL=renderLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderLink.js","sourceRoot":"","sources":["../../../src/components/RatesTable/renderLink.tsx"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,gEAA6D;AAEtD,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAC1C,wBAAC,qBAAS,sMAC0B,uBAAC,WAAI,IAAC,IAAI,EAAE,IAAI,+CAAc,IACtD,CACb,CAAC;AAJW,QAAA,UAAU,cAIrB"}
@@ -0,0 +1,4 @@
1
+ import { type RateItem } from '../ui-kit/Rate/Rate';
2
+ declare type RateItemList = RateItem[];
3
+ export declare function useRates(isArchive: boolean): RateItemList[];
4
+ export {};
@@ -0,0 +1,42 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.useRates = void 0;
3
+ const useAsyncData_1 = require("@redneckz/uni-jsx/lib/hooks/useAsyncData");
4
+ const useLocalStore_1 = require("@redneckz/uni-jsx/lib/Store/useLocalStore");
5
+ const apiBaseUrl_1 = require("../api/apiBaseUrl");
6
+ const fetchJSON_1 = require("../utils/fetchJSON");
7
+ const RATES_URL = `${apiBaseUrl_1.API_BASE_URI}/rates`;
8
+ const ARCHIVE_RATES_URL = `${apiBaseUrl_1.API_BASE_URI}/historyrates`;
9
+ const EMPTY_RATES = [
10
+ [
11
+ {
12
+ currencyPair: 'Валютная пара',
13
+ buyRate: 0,
14
+ sellRate: 0,
15
+ },
16
+ ],
17
+ ];
18
+ function useRates(isArchive) {
19
+ const url = isArchive ? ARCHIVE_RATES_URL : RATES_URL;
20
+ const rateKey = isArchive ? 'archiveRates' : 'rates';
21
+ const ratesStore = (0, useLocalStore_1.useLocalStore)();
22
+ // проверяем, надо ли обновлять значения ставок
23
+ const shouldUpdate = getShouldUpdate(isArchive, ratesStore);
24
+ // костыль, не отправлять запрос на бэк, если уже был запрос менее 15 мин назад
25
+ const { data } = (0, useAsyncData_1.useAsyncData)(shouldUpdate ? url : '', fetchJSON_1.fetchJSONUnsafe);
26
+ // если есть data и значение надо обновить, то обновляем локалсторадж
27
+ if (shouldUpdate && data) {
28
+ const nextUpdate = getTimeAfter15Minutes();
29
+ ratesStore[rateKey] = { rate: data, nextUpdate };
30
+ }
31
+ // берем данные из локалсторадж
32
+ const rates = ratesStore[rateKey]?.rate;
33
+ // возвращаем данные из локалсторадж или заглушку
34
+ return Array.isArray(rates) ? rates : EMPTY_RATES;
35
+ }
36
+ exports.useRates = useRates;
37
+ // Отсчитываем 15 минут с текущего момента
38
+ const getTimeAfter15Minutes = () => Date.now() + 15 * 60 * 1000;
39
+ const getShouldUpdate = (isArchive, ratesStore) => isArchive
40
+ ? !ratesStore?.archiveRates || ratesStore?.archiveRates.nextUpdate <= Date.now()
41
+ : !ratesStore?.rates || ratesStore?.rates.nextUpdate <= Date.now();
42
+ //# sourceMappingURL=useRates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRates.js","sourceRoot":"","sources":["../../src/hooks/useRates.ts"],"names":[],"mappings":";;AAAA,2EAAwE;AACxE,6EAA0E;AAC1E,kDAAiD;AAEjD,kDAA+E;AAc/E,MAAM,SAAS,GAAG,GAAG,yBAAY,QAAQ,CAAC;AAC1C,MAAM,iBAAiB,GAAG,GAAG,yBAAY,eAAe,CAAC;AACzD,MAAM,WAAW,GAAmB;IAClC;QACE;YACE,YAAY,EAAE,eAAe;YAC7B,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,CAAC;SACZ;KACF;CACF,CAAC;AAEF,SAAgB,QAAQ,CAAC,SAAkB;IACzC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC;IAErD,MAAM,UAAU,GAAG,IAAA,6BAAa,GAAmB,CAAC;IAEpD,+CAA+C;IAC/C,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,EAAE,UAA6B,CAAC,CAAC;IAE/E,+EAA+E;IAC/E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,2BAAY,EAC3B,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EACvB,2BAAsD,CACvD,CAAC;IAEF,qEAAqE;IACrE,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAClD;IAED,+BAA+B;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IAExC,iDAAiD;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;AACpD,CAAC;AA1BD,4BA0BC;AAED,0CAA0C;AAC1C,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,SAAkB,EAAE,UAAkC,EAAE,EAAE,CACjF,SAAS;IACP,CAAC,CAAC,CAAC,UAAU,EAAE,YAAY,IAAI,UAAU,EAAE,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE;IAChF,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,IAAI,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC"}
@@ -14,6 +14,8 @@ export declare type Target = '' | '_self' | '_blank' | '_parent' | '_top';
14
14
  export declare type HrefProps = {
15
15
  /** @title URL (href) */
16
16
  href?: string;
17
+ /** @title Дополнительные ссылки для A/B-тестирования */
18
+ additionalHrefs?: string[];
17
19
  };
18
20
  export declare type LinkCommonProps = HrefProps & {
19
21
  /** @default "" */
@@ -2,6 +2,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
2
2
  exports.LinkButton = void 0;
3
3
  const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
4
  const uni_jsx_1 = require("@redneckz/uni-jsx");
5
+ const useLocalStore_1 = require("@redneckz/uni-jsx/lib/Store/useLocalStore");
5
6
  const useLink_1 = require("../../hooks/useLink");
6
7
  const dataAttributes_1 = require("../../utils/dataAttributes");
7
8
  const ButtonInner_1 = require("./ButtonInner");
@@ -9,13 +10,46 @@ const getDisabledButtonClasses_1 = require("./getDisabledButtonClasses");
9
10
  const getRegularButtonClasses_1 = require("./getRegularButtonClasses");
10
11
  const useFormSubmit_1 = require("./useFormSubmit");
11
12
  /** @deprecated */
12
- exports.LinkButton = (0, uni_jsx_1.JSX)(({ disabled, children, method = 'LINK', href, ...rest }) => {
13
+ exports.LinkButton = (0, uni_jsx_1.JSX)(({ disabled, children, method = 'LINK', href, id, additionalHrefs, ...rest }) => {
13
14
  const handleFormSubmit = (0, useFormSubmit_1.useFormSubmit)({ method, href });
15
+ const linksStore = (0, useLocalStore_1.useLocalStore)();
16
+ saveLinksToStore({ linksStore, href, id, additionalHrefs });
17
+ const adjustedHref = additionalHrefs
18
+ ? (linksStore.links || []).find((store) => store.id === id)?.lastLink
19
+ : href;
14
20
  const link = (0, useLink_1.useLink)();
15
- const adjustedProps = link({ onClick: handleFormSubmit, href, ...rest });
21
+ const adjustedProps = link({ onClick: handleFormSubmit, href: adjustedHref, ...rest });
16
22
  const buttonInner = children ?? (0, jsx_runtime_1.jsx)(ButtonInner_1.ButtonInner, { ...adjustedProps });
17
23
  return disabled ? ((0, jsx_runtime_1.jsx)(DisabledButton, { ...adjustedProps, children: buttonInner })) : ((0, jsx_runtime_1.jsx)(RegularButton, { ...adjustedProps, children: buttonInner }));
18
24
  });
19
25
  const RegularButton = (0, uni_jsx_1.JSX)(({ className = '', href, rel, target, ariaLabel, version, rounded, onClick, type, data, children, text, }) => ((0, jsx_runtime_1.jsx)("a", { className: (0, getRegularButtonClasses_1.getRegularButtonClasses)({ className, version, rounded }), href: href, rel: rel, target: target, "aria-label": ariaLabel || `Ссылка на ${text}`, role: href ? 'link' : 'button', onClick: onClick, type: type, ...(0, dataAttributes_1.getAspectsAttributes)(data), children: children })));
20
26
  const DisabledButton = (0, uni_jsx_1.JSX)(({ className, ariaLabel, version, rounded, children }) => ((0, jsx_runtime_1.jsx)("button", { type: "button", "aria-disabled": "true", "aria-label": ariaLabel, tabIndex: -1, className: (0, getDisabledButtonClasses_1.getDisabledButtonClasses)({ className, rounded, version }), children: children })));
27
+ const getRandomHref = (href = '', additionalHrefs = []) => {
28
+ const hrefs = [href, ...additionalHrefs];
29
+ return hrefs[Math.floor(Math.random() * hrefs.length)];
30
+ };
31
+ // Отсчитываем 7 длей с текущей даты
32
+ const getTimeAfter7days = () => Date.now() + 7 * 24 * 60 * 60 * 1000;
33
+ // Сохраняем или заменяем рандомную ссылку в localStorage
34
+ const saveLinksToStore = ({ linksStore, id, href, additionalHrefs }) => {
35
+ const buttonLinkStore = (linksStore.links || []).find((store) => store.id === id);
36
+ // Если хранилища вообще нет
37
+ if (!linksStore.links) {
38
+ linksStore.links = [];
39
+ }
40
+ if ((!buttonLinkStore || buttonLinkStore.nextDueAt <= Date.now()) && additionalHrefs) {
41
+ // Получаем рандомную ссылку
42
+ const randomHref = getRandomHref(href, additionalHrefs);
43
+ // При наличии ссылки для этой кнопки в хранилище удаляем этот элемент из массива ссылок
44
+ const updatedLinks = linksStore.links?.filter((item) => item.id !== id);
45
+ // Добавляем новый элемент
46
+ updatedLinks.push({
47
+ id: id ?? '',
48
+ lastLink: randomHref,
49
+ nextDueAt: getTimeAfter7days(),
50
+ });
51
+ // Добавляем это все в хранилище
52
+ linksStore.links = updatedLinks;
53
+ }
54
+ };
21
55
  //# sourceMappingURL=LinkButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkButton.js","sourceRoot":"","sources":["../../../src/ui-kit/LinkButton/LinkButton.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AACxC,iDAA8C;AAC9C,+DAAkE;AAClE,+CAA4C;AAC5C,yEAAsE;AACtE,uEAAoE;AAEpE,mDAAgD;AAEhD,kBAAkB;AACL,QAAA,UAAU,GAAG,IAAA,aAAG,EAC3B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IACzD,MAAM,gBAAgB,GAAG,IAAA,6BAAa,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,IAAA,iBAAO,GAAE,CAAC;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IACzE,MAAM,WAAW,GAAG,QAAQ,IAAI,uBAAC,yBAAW,OAAK,aAAa,GAAI,CAAC;IAEnE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAChB,uBAAC,cAAc,OAAK,aAAa,YAAG,WAAW,GAAkB,CAClE,CAAC,CAAC,CAAC,CACF,uBAAC,aAAa,OAAK,aAAa,YAAG,WAAW,GAAiB,CAChE,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,aAAa,GAAG,IAAA,aAAG,EACvB,CAAC,EACC,SAAS,GAAG,EAAE,EACd,IAAI,EACJ,GAAG,EACH,MAAM,EACN,SAAS,EACT,OAAO,EACP,OAAO,EACP,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,IAAI,GACL,EAAE,EAAE,CAAC,CACJ,8BACE,SAAS,EAAE,IAAA,iDAAuB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACnE,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,gBACF,SAAS,IAAI,aAAa,IAAI,EAAE,EAC5C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC9B,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,KAEN,IAAA,qCAAoB,EAAC,IAAI,CAAC,YAE7B,QAAQ,GACP,CACL,CACF,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,aAAG,EACxB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CACxD,mCACE,IAAI,EAAC,QAAQ,mBACC,MAAM,gBACR,SAAS,EACrB,QAAQ,EAAE,CAAC,CAAC,EACZ,SAAS,EAAE,IAAA,mDAAwB,EAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,YAEnE,QAAQ,GACF,CACV,CACF,CAAC"}
1
+ {"version":3,"file":"LinkButton.js","sourceRoot":"","sources":["../../../src/ui-kit/LinkButton/LinkButton.tsx"],"names":[],"mappings":"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"}
@@ -20,4 +20,15 @@ export interface LinkButtonContent extends ButtonCommonContent {
20
20
  iconRight?: Picture;
21
21
  /** @title Верхний текст */
22
22
  aboveText?: string;
23
+ /** @title Уникальный идентификатор кнопки */
24
+ id?: string;
23
25
  }
26
+ declare type LinkStoreItem = {
27
+ id: string;
28
+ lastLink: string;
29
+ nextDueAt: number;
30
+ };
31
+ export declare type LinkStoreSlice = {
32
+ links: LinkStoreItem[] | null;
33
+ };
34
+ export {};
@@ -0,0 +1,12 @@
1
+ import { type UniBlockProps } from '../../UniBlock/UniBlockProps';
2
+ export declare type RateItem = {
3
+ currencyPair?: string;
4
+ buyRate?: number;
5
+ sellRate?: number;
6
+ lastUpdatedAt?: string;
7
+ };
8
+ interface RateProps extends RateItem, UniBlockProps {
9
+ }
10
+ export declare const RATES_COLUMN_STYLE = "grid grid-cols-3 gap-s";
11
+ export declare const Rate: import("../../UniBlock/UniBlock").UniBlockComponent<RateProps>;
12
+ export {};
@@ -0,0 +1,11 @@
1
+ Object.defineProperty(exports, "__esModule", { value: true });
2
+ exports.Rate = exports.RATES_COLUMN_STYLE = void 0;
3
+ const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
+ const TariffsTableRowContainer_1 = require("../../components/TariffsTable/TariffsTableRowContainer");
5
+ const UniBlock_1 = require("../../UniBlock/UniBlock");
6
+ const style_1 = require("../../utils/style");
7
+ exports.RATES_COLUMN_STYLE = `grid grid-cols-3 gap-s`;
8
+ exports.Rate = (0, UniBlock_1.UniBlock)(({ currencyPair = '', buyRate = 0, sellRate = 0 }) => ((0, jsx_runtime_1.jsxs)("div", { className: (0, style_1.style)('mb-s', exports.RATES_COLUMN_STYLE, TariffsTableRowContainer_1.DIVIDER_STYLE), children: [(0, jsx_runtime_1.jsx)("div", { children: formatCurrencyPair(currencyPair) }), (0, jsx_runtime_1.jsx)("div", { children: formatRate(buyRate) }), (0, jsx_runtime_1.jsx)("div", { children: formatRate(sellRate) })] })));
9
+ const formatCurrencyPair = (currency) => currency.replace('_TOD', '');
10
+ const formatRate = (rate) => rate.toFixed(4);
11
+ //# sourceMappingURL=Rate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rate.js","sourceRoot":"","sources":["../../../src/ui-kit/Rate/Rate.tsx"],"names":[],"mappings":";;;AAAA,qGAAuF;AACvF,sDAAmD;AAEnD,6CAA0C;AAW7B,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAE9C,QAAA,IAAI,GAAG,IAAA,mBAAQ,EAAY,CAAC,EAAE,YAAY,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAC5F,iCAAK,SAAS,EAAE,IAAA,aAAK,EAAC,MAAM,EAAE,0BAAkB,EAAE,wCAAa,CAAC,aAC9D,0CAAM,kBAAkB,CAAC,YAAY,CAAC,GAAO,EAC7C,0CAAM,UAAU,CAAC,OAAO,CAAC,GAAO,EAChC,0CAAM,UAAU,CAAC,QAAQ,CAAC,GAAO,IAC7B,CACP,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAE9E,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}