@cloudscape-design/components 3.0.26 → 3.0.29

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 (230) hide show
  1. package/alert/internal.d.ts.map +1 -1
  2. package/alert/internal.js +3 -4
  3. package/alert/internal.js.map +1 -1
  4. package/app-layout/index.js +1 -1
  5. package/app-layout/index.js.map +1 -1
  6. package/breadcrumb-group/internal.d.ts.map +1 -1
  7. package/breadcrumb-group/internal.js +4 -4
  8. package/breadcrumb-group/internal.js.map +1 -1
  9. package/button-dropdown/interfaces.d.ts +1 -1
  10. package/button-dropdown/interfaces.d.ts.map +1 -1
  11. package/button-dropdown/interfaces.js.map +1 -1
  12. package/button-dropdown/internal.js +1 -1
  13. package/button-dropdown/internal.js.map +1 -1
  14. package/cards/index.js +1 -1
  15. package/cards/index.js.map +1 -1
  16. package/code-editor/index.d.ts.map +1 -1
  17. package/code-editor/index.js +2 -3
  18. package/code-editor/index.js.map +1 -1
  19. package/container/internal.js +1 -1
  20. package/container/internal.js.map +1 -1
  21. package/container/use-sticky-header.js +1 -1
  22. package/container/use-sticky-header.js.map +1 -1
  23. package/date-picker/calendar/index.d.ts.map +1 -1
  24. package/date-picker/calendar/index.js +2 -1
  25. package/date-picker/calendar/index.js.map +1 -1
  26. package/date-picker/calendar/utils/memoized-date.d.ts +2 -0
  27. package/date-picker/calendar/utils/memoized-date.d.ts.map +1 -0
  28. package/date-picker/calendar/utils/memoized-date.js +13 -0
  29. package/date-picker/calendar/utils/memoized-date.js.map +1 -0
  30. package/date-picker/embedded.js +1 -1
  31. package/date-picker/embedded.js.map +1 -1
  32. package/date-picker/index.d.ts.map +1 -1
  33. package/date-picker/index.js +3 -4
  34. package/date-picker/index.js.map +1 -1
  35. package/date-picker/use-date-picker.d.ts.map +1 -1
  36. package/date-picker/use-date-picker.js +1 -1
  37. package/date-picker/use-date-picker.js.map +1 -1
  38. package/date-range-picker/calendar/grids/day/index.js +1 -1
  39. package/date-range-picker/calendar/grids/day/index.js.map +1 -1
  40. package/date-range-picker/calendar/index.d.ts.map +1 -1
  41. package/date-range-picker/calendar/index.js +9 -11
  42. package/date-range-picker/calendar/index.js.map +1 -1
  43. package/date-range-picker/index.d.ts.map +1 -1
  44. package/date-range-picker/index.js +4 -4
  45. package/date-range-picker/index.js.map +1 -1
  46. package/date-range-picker/time-offset.d.ts +0 -7
  47. package/date-range-picker/time-offset.d.ts.map +1 -1
  48. package/date-range-picker/time-offset.js +4 -60
  49. package/date-range-picker/time-offset.js.map +1 -1
  50. package/flashbar/index.js +1 -1
  51. package/flashbar/index.js.map +1 -1
  52. package/form-field/internal.d.ts.map +1 -1
  53. package/form-field/internal.js +3 -6
  54. package/form-field/internal.js.map +1 -1
  55. package/header/internal.d.ts.map +1 -1
  56. package/header/internal.js +3 -6
  57. package/header/internal.js.map +1 -1
  58. package/icon/icons.js +1 -1
  59. package/icon/interfaces.d.ts +1 -1
  60. package/icon/interfaces.d.ts.map +1 -1
  61. package/icon/interfaces.js.map +1 -1
  62. package/icon/internal.js +1 -1
  63. package/icon/internal.js.map +1 -1
  64. package/input/styles.css.js +13 -13
  65. package/input/styles.scoped.css +35 -37
  66. package/input/styles.selectors.js +13 -13
  67. package/internal/components/checkbox-icon/index.d.ts.map +1 -1
  68. package/internal/components/checkbox-icon/index.js +3 -4
  69. package/internal/components/checkbox-icon/index.js.map +1 -1
  70. package/internal/components/content-layout/index.d.ts.map +1 -1
  71. package/internal/components/content-layout/index.js +3 -4
  72. package/internal/components/content-layout/index.js.map +1 -1
  73. package/internal/components/date-input/index.d.ts +1 -1
  74. package/internal/components/date-input/index.d.ts.map +1 -1
  75. package/internal/components/date-input/index.js +6 -4
  76. package/internal/components/date-input/index.js.map +1 -1
  77. package/internal/components/dropdown/index.js +1 -1
  78. package/internal/components/dropdown/index.js.map +1 -1
  79. package/internal/components/masked-input/utils/mask-format.d.ts.map +1 -1
  80. package/internal/components/masked-input/utils/mask-format.js +2 -1
  81. package/internal/components/masked-input/utils/mask-format.js.map +1 -1
  82. package/internal/components/masked-input/utils/strings.d.ts +0 -1
  83. package/internal/components/masked-input/utils/strings.d.ts.map +1 -1
  84. package/internal/components/masked-input/utils/strings.js +0 -6
  85. package/internal/components/masked-input/utils/strings.js.map +1 -1
  86. package/internal/environment.js +1 -1
  87. package/internal/hooks/use-mutation-observer/index.d.ts +5 -0
  88. package/internal/hooks/use-mutation-observer/index.d.ts.map +1 -1
  89. package/internal/hooks/use-mutation-observer/index.js +5 -0
  90. package/internal/hooks/use-mutation-observer/index.js.map +1 -1
  91. package/internal/hooks/use-portal-mode-classes/index.js +1 -1
  92. package/internal/hooks/use-portal-mode-classes/index.js.map +1 -1
  93. package/internal/hooks/use-singleton-handler/index.d.ts +2 -1
  94. package/internal/hooks/use-singleton-handler/index.d.ts.map +1 -1
  95. package/internal/hooks/use-singleton-handler/index.js.map +1 -1
  96. package/internal/hooks/use-visual-mode/index.d.ts +1 -1
  97. package/internal/hooks/use-visual-mode/index.d.ts.map +1 -1
  98. package/internal/hooks/use-visual-mode/index.js +16 -11
  99. package/internal/hooks/use-visual-mode/index.js.map +1 -1
  100. package/internal/utils/date-time/display-format.d.ts +9 -0
  101. package/internal/utils/date-time/display-format.d.ts.map +1 -0
  102. package/internal/utils/date-time/display-format.js +15 -0
  103. package/internal/utils/date-time/display-format.js.map +1 -0
  104. package/internal/utils/date-time/format-date.d.ts +7 -0
  105. package/internal/utils/date-time/format-date.d.ts.map +1 -0
  106. package/internal/utils/date-time/format-date.js +15 -0
  107. package/internal/utils/date-time/format-date.js.map +1 -0
  108. package/internal/utils/date-time/format-time.d.ts +5 -0
  109. package/internal/utils/date-time/format-time.d.ts.map +1 -0
  110. package/internal/utils/date-time/format-time.js +13 -0
  111. package/internal/utils/date-time/format-time.js.map +1 -0
  112. package/internal/utils/date-time/format-timezone-offset.d.ts +2 -0
  113. package/internal/utils/date-time/format-timezone-offset.d.ts.map +1 -0
  114. package/internal/utils/date-time/format-timezone-offset.js +11 -0
  115. package/internal/utils/date-time/format-timezone-offset.js.map +1 -0
  116. package/internal/utils/date-time/get-browser-timezone-offset.d.ts +7 -0
  117. package/internal/utils/date-time/get-browser-timezone-offset.d.ts.map +1 -0
  118. package/internal/utils/date-time/get-browser-timezone-offset.js +11 -0
  119. package/internal/utils/date-time/get-browser-timezone-offset.js.map +1 -0
  120. package/internal/utils/date-time/index.d.ts +11 -0
  121. package/internal/utils/date-time/index.d.ts.map +1 -0
  122. package/internal/utils/date-time/index.js +13 -0
  123. package/internal/utils/date-time/index.js.map +1 -0
  124. package/internal/utils/date-time/is-iso-date-only.d.ts +5 -0
  125. package/internal/utils/date-time/is-iso-date-only.d.ts.map +1 -0
  126. package/internal/utils/date-time/is-iso-date-only.js +10 -0
  127. package/internal/utils/date-time/is-iso-date-only.js.map +1 -0
  128. package/internal/utils/date-time/join-date-time.d.ts +2 -0
  129. package/internal/utils/date-time/join-date-time.d.ts.map +1 -0
  130. package/internal/utils/date-time/join-date-time.js +6 -0
  131. package/internal/utils/date-time/join-date-time.js.map +1 -0
  132. package/internal/utils/date-time/parse-date.d.ts +8 -0
  133. package/internal/utils/date-time/parse-date.d.ts.map +1 -0
  134. package/internal/utils/date-time/parse-date.js +16 -0
  135. package/internal/utils/date-time/parse-date.js.map +1 -0
  136. package/internal/utils/date-time/parse-timezone-offset.d.ts +5 -0
  137. package/internal/utils/date-time/parse-timezone-offset.d.ts.map +1 -0
  138. package/internal/utils/date-time/parse-timezone-offset.js +20 -0
  139. package/internal/utils/date-time/parse-timezone-offset.js.map +1 -0
  140. package/internal/utils/date-time/shift-timezone-offset.d.ts +12 -0
  141. package/internal/utils/date-time/shift-timezone-offset.d.ts.map +1 -0
  142. package/internal/utils/date-time/shift-timezone-offset.js +27 -0
  143. package/internal/utils/date-time/shift-timezone-offset.js.map +1 -0
  144. package/internal/utils/strings/index.d.ts +3 -0
  145. package/internal/utils/strings/index.d.ts.map +1 -0
  146. package/internal/utils/strings/index.js +5 -0
  147. package/internal/utils/strings/index.js.map +1 -0
  148. package/internal/utils/strings/join-strings.d.ts +5 -0
  149. package/internal/utils/strings/join-strings.d.ts.map +1 -0
  150. package/internal/utils/{strings.js → strings/join-strings.js} +7 -6
  151. package/internal/utils/strings/join-strings.js.map +1 -0
  152. package/internal/utils/strings/pad-left-zeros.d.ts +5 -0
  153. package/internal/utils/strings/pad-left-zeros.d.ts.map +1 -0
  154. package/internal/utils/strings/pad-left-zeros.js +12 -0
  155. package/internal/utils/strings/pad-left-zeros.js.map +1 -0
  156. package/link/internal.js +3 -3
  157. package/link/internal.js.map +1 -1
  158. package/link/styles.css.js +19 -18
  159. package/link/styles.scoped.css +73 -69
  160. package/link/styles.selectors.js +19 -18
  161. package/mixed-line-bar-chart/bar-series.d.ts.map +1 -1
  162. package/mixed-line-bar-chart/bar-series.js +3 -4
  163. package/mixed-line-bar-chart/bar-series.js.map +1 -1
  164. package/mixed-line-bar-chart/chart-container.js +1 -1
  165. package/mixed-line-bar-chart/chart-container.js.map +1 -1
  166. package/mixed-line-bar-chart/interfaces.d.ts +5 -4
  167. package/mixed-line-bar-chart/interfaces.d.ts.map +1 -1
  168. package/mixed-line-bar-chart/interfaces.js.map +1 -1
  169. package/modal/internal.js +1 -1
  170. package/modal/internal.js.map +1 -1
  171. package/package.json +1 -1
  172. package/pie-chart/pie-chart.d.ts.map +1 -1
  173. package/pie-chart/pie-chart.js +2 -2
  174. package/pie-chart/pie-chart.js.map +1 -1
  175. package/pie-chart/segments.d.ts +1 -2
  176. package/pie-chart/segments.d.ts.map +1 -1
  177. package/pie-chart/segments.js +2 -2
  178. package/pie-chart/segments.js.map +1 -1
  179. package/popover/container.js +1 -1
  180. package/popover/container.js.map +1 -1
  181. package/popover/styles.css.js +48 -48
  182. package/popover/styles.scoped.css +65 -60
  183. package/popover/styles.selectors.js +48 -48
  184. package/property-filter/index.d.ts.map +1 -1
  185. package/property-filter/index.js +10 -2
  186. package/property-filter/index.js.map +1 -1
  187. package/radio-group/radio-button.d.ts.map +1 -1
  188. package/radio-group/radio-button.js +3 -4
  189. package/radio-group/radio-button.js.map +1 -1
  190. package/s3-resource-selector/s3-modal/index.d.ts.map +1 -1
  191. package/s3-resource-selector/s3-modal/index.js +2 -3
  192. package/s3-resource-selector/s3-modal/index.js.map +1 -1
  193. package/split-panel/index.d.ts.map +1 -1
  194. package/split-panel/index.js +2 -2
  195. package/split-panel/index.js.map +1 -1
  196. package/table/internal.js +1 -1
  197. package/table/internal.js.map +1 -1
  198. package/table/sticky-scrollbar.js +1 -1
  199. package/table/sticky-scrollbar.js.map +1 -1
  200. package/table/styles.css.js +32 -32
  201. package/table/styles.scoped.css +40 -43
  202. package/table/styles.selectors.js +32 -32
  203. package/tabs/styles.css.js +21 -21
  204. package/tabs/styles.scoped.css +40 -43
  205. package/tabs/styles.selectors.js +21 -21
  206. package/tabs/tab-header-bar.js +1 -1
  207. package/tabs/tab-header-bar.js.map +1 -1
  208. package/textarea/styles.css.js +4 -4
  209. package/textarea/styles.scoped.css +13 -14
  210. package/textarea/styles.selectors.js +4 -4
  211. package/tutorial-panel/components/tutorial-detail-view/index.d.ts.map +1 -1
  212. package/tutorial-panel/components/tutorial-detail-view/index.js +3 -4
  213. package/tutorial-panel/components/tutorial-detail-view/index.js.map +1 -1
  214. package/tutorial-panel/components/tutorial-list/index.d.ts.map +1 -1
  215. package/tutorial-panel/components/tutorial-list/index.js +5 -7
  216. package/tutorial-panel/components/tutorial-list/index.js.map +1 -1
  217. package/wizard/index.d.ts.map +1 -1
  218. package/wizard/index.js +2 -3
  219. package/wizard/index.js.map +1 -1
  220. package/date-picker/calendar/utils/date.d.ts +0 -10
  221. package/date-picker/calendar/utils/date.d.ts.map +0 -1
  222. package/date-picker/calendar/utils/date.js +0 -50
  223. package/date-picker/calendar/utils/date.js.map +0 -1
  224. package/internal/components/date-input/utils/date.d.ts +0 -5
  225. package/internal/components/date-input/utils/date.d.ts.map +0 -1
  226. package/internal/components/date-input/utils/date.js +0 -11
  227. package/internal/components/date-input/utils/date.js.map +0 -1
  228. package/internal/utils/strings.d.ts +0 -2
  229. package/internal/utils/strings.d.ts.map +0 -1
  230. package/internal/utils/strings.js.map +0 -1
@@ -21,18 +21,23 @@ export function useDensityMode(elementRef) {
21
21
  });
22
22
  return value;
23
23
  }
24
- export function useVisualRefresh(elementRef) {
25
- var _a = useState(Boolean(ALWAYS_VISUAL_REFRESH)), value = _a[0], setValue = _a[1];
26
- useMutationObserver(elementRef, function (node) {
27
- var _a, _b;
28
- var supportsCSSVariables = (_b = (_a = window.CSS) === null || _a === void 0 ? void 0 : _a.supports) === null || _b === void 0 ? void 0 : _b.call(_a, 'color', 'var(--test-var)');
29
- if (!supportsCSSVariables || ALWAYS_VISUAL_REFRESH) {
30
- return;
24
+ // We expect VR is to be set only once and before the application is rendered.
25
+ var visualRefreshState = undefined;
26
+ export function useVisualRefresh() {
27
+ var _a, _b;
28
+ if (visualRefreshState === undefined) {
29
+ var supportsCSSVariables = typeof window !== 'undefined' && ((_b = (_a = window.CSS) === null || _a === void 0 ? void 0 : _a.supports) === null || _b === void 0 ? void 0 : _b.call(_a, 'color', 'var(--test-var)'));
30
+ if (ALWAYS_VISUAL_REFRESH) {
31
+ visualRefreshState = true;
31
32
  }
32
- var visualRefreshParent = findUpUntil(node, function (node) { return node.classList.contains('awsui-visual-refresh'); });
33
- setValue(!!visualRefreshParent);
34
- });
35
- return value;
33
+ else if (!supportsCSSVariables) {
34
+ visualRefreshState = false;
35
+ }
36
+ else {
37
+ visualRefreshState = !!document.querySelector('.awsui-visual-refresh');
38
+ }
39
+ }
40
+ return visualRefreshState;
36
41
  }
37
42
  export function useReducedMotion(elementRef) {
38
43
  var _a = useState(false), value = _a[0], setValue = _a[1];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-visual-mode/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,UAAU,cAAc,CAAC,UAAwC;IAC/D,IAAA,KAAoB,QAAQ,CAAmB,OAAO,CAAC,EAAtD,KAAK,QAAA,EAAE,QAAQ,QAAuC,CAAC;IAC9D,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;QAClC,IAAM,cAAc,GAAG,WAAW,CAChC,IAAI,EACJ,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAhG,CAAgG,CACzG,CAAC;QACF,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAwC;IAC/D,IAAA,KAAoB,QAAQ,CAA4B,aAAa,CAAC,EAArE,KAAK,QAAA,EAAE,QAAQ,QAAsD,CAAC;IAC7E,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;QAClC,IAAM,iBAAiB,GAAG,WAAW,CACnC,IAAI,EACJ,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAtG,CAAsG,CAC/G,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAwC;IACjE,IAAA,KAAoB,QAAQ,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,EAA3D,KAAK,QAAA,EAAE,QAAQ,QAA4C,CAAC;IACnE,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;;QAClC,IAAM,oBAAoB,GAAG,MAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,QAAQ,mDAAG,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAChF,IAAI,CAAC,oBAAoB,IAAI,qBAAqB,EAAE;YAClD,OAAO;SACR;QACD,IAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAA/C,CAA+C,CAAC,CAAC;QACvG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAwC;IACjE,IAAA,KAAoB,QAAQ,CAAC,KAAK,CAAC,EAAlC,KAAK,QAAA,EAAE,QAAQ,QAAmB,CAAC;IAC1C,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;QAClC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState } from 'react';\nimport { ALWAYS_VISUAL_REFRESH } from '../../environment';\nimport { isMotionDisabled } from '../../motion';\nimport { findUpUntil } from '../../utils/dom';\nimport { useMutationObserver } from '../use-mutation-observer';\n\nexport function useCurrentMode(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState<'light' | 'dark'>('light');\n useMutationObserver(elementRef, node => {\n const darkModeParent = findUpUntil(\n node,\n node => node.classList.contains('awsui-polaris-dark-mode') || node.classList.contains('awsui-dark-mode')\n );\n setValue(darkModeParent ? 'dark' : 'light');\n });\n return value;\n}\n\nexport function useDensityMode(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState<'comfortable' | 'compact'>('comfortable');\n useMutationObserver(elementRef, node => {\n const compactModeParent = findUpUntil(\n node,\n node => node.classList.contains('awsui-polaris-compact-mode') || node.classList.contains('awsui-compact-mode')\n );\n setValue(compactModeParent ? 'compact' : 'comfortable');\n });\n return value;\n}\n\nexport function useVisualRefresh(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState(Boolean(ALWAYS_VISUAL_REFRESH));\n useMutationObserver(elementRef, node => {\n const supportsCSSVariables = window.CSS?.supports?.('color', 'var(--test-var)');\n if (!supportsCSSVariables || ALWAYS_VISUAL_REFRESH) {\n return;\n }\n const visualRefreshParent = findUpUntil(node, node => node.classList.contains('awsui-visual-refresh'));\n setValue(!!visualRefreshParent);\n });\n return value;\n}\n\nexport function useReducedMotion(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState(false);\n useMutationObserver(elementRef, node => {\n setValue(isMotionDisabled(node));\n });\n return value;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-visual-mode/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,UAAU,cAAc,CAAC,UAAwC;IAC/D,IAAA,KAAoB,QAAQ,CAAmB,OAAO,CAAC,EAAtD,KAAK,QAAA,EAAE,QAAQ,QAAuC,CAAC;IAC9D,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;QAClC,IAAM,cAAc,GAAG,WAAW,CAChC,IAAI,EACJ,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAhG,CAAgG,CACzG,CAAC;QACF,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAwC;IAC/D,IAAA,KAAoB,QAAQ,CAA4B,aAAa,CAAC,EAArE,KAAK,QAAA,EAAE,QAAQ,QAAsD,CAAC;IAC7E,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;QAClC,IAAM,iBAAiB,GAAG,WAAW,CACnC,IAAI,EACJ,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAA4B,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAtG,CAAsG,CAC/G,CAAC;QACF,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,IAAI,kBAAkB,GAAwB,SAAS,CAAC;AAExD,MAAM,UAAU,gBAAgB;;IAC9B,IAAI,kBAAkB,KAAK,SAAS,EAAE;QACpC,IAAM,oBAAoB,GAAG,OAAO,MAAM,KAAK,WAAW,KAAI,MAAA,MAAA,MAAM,CAAC,GAAG,0CAAE,QAAQ,mDAAG,OAAO,EAAE,iBAAiB,CAAC,CAAA,CAAC;QAEjH,IAAI,qBAAqB,EAAE;YACzB,kBAAkB,GAAG,IAAI,CAAC;SAC3B;aAAM,IAAI,CAAC,oBAAoB,EAAE;YAChC,kBAAkB,GAAG,KAAK,CAAC;SAC5B;aAAM;YACL,kBAAkB,GAAG,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;SACxE;KACF;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAwC;IACjE,IAAA,KAAoB,QAAQ,CAAC,KAAK,CAAC,EAAlC,KAAK,QAAA,EAAE,QAAQ,QAAmB,CAAC;IAC1C,mBAAmB,CAAC,UAAU,EAAE,UAAA,IAAI;QAClC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useState } from 'react';\nimport { ALWAYS_VISUAL_REFRESH } from '../../environment';\nimport { isMotionDisabled } from '../../motion';\nimport { findUpUntil } from '../../utils/dom';\nimport { useMutationObserver } from '../use-mutation-observer';\n\nexport function useCurrentMode(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState<'light' | 'dark'>('light');\n useMutationObserver(elementRef, node => {\n const darkModeParent = findUpUntil(\n node,\n node => node.classList.contains('awsui-polaris-dark-mode') || node.classList.contains('awsui-dark-mode')\n );\n setValue(darkModeParent ? 'dark' : 'light');\n });\n return value;\n}\n\nexport function useDensityMode(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState<'comfortable' | 'compact'>('comfortable');\n useMutationObserver(elementRef, node => {\n const compactModeParent = findUpUntil(\n node,\n node => node.classList.contains('awsui-polaris-compact-mode') || node.classList.contains('awsui-compact-mode')\n );\n setValue(compactModeParent ? 'compact' : 'comfortable');\n });\n return value;\n}\n\n// We expect VR is to be set only once and before the application is rendered.\nlet visualRefreshState: undefined | boolean = undefined;\n\nexport function useVisualRefresh() {\n if (visualRefreshState === undefined) {\n const supportsCSSVariables = typeof window !== 'undefined' && window.CSS?.supports?.('color', 'var(--test-var)');\n\n if (ALWAYS_VISUAL_REFRESH) {\n visualRefreshState = true;\n } else if (!supportsCSSVariables) {\n visualRefreshState = false;\n } else {\n visualRefreshState = !!document.querySelector('.awsui-visual-refresh');\n }\n }\n return visualRefreshState;\n}\n\nexport function useReducedMotion(elementRef: React.RefObject<HTMLElement>) {\n const [value, setValue] = useState(false);\n useMutationObserver(elementRef, node => {\n setValue(isMotionDisabled(node));\n });\n return value;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Converts ISO date to display format, e.g. 2020-01-01 -> 2020/01/01.
3
+ */
4
+ export declare function isoToDisplay(value: string): string;
5
+ /**
6
+ * Converts display date to ISO format, e.g. 2020/01/01 -> 2020-01-01.
7
+ */
8
+ export declare function displayToIso(value: string): string;
9
+ //# sourceMappingURL=display-format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-format.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/display-format.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAEzC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,UAEzC"}
@@ -0,0 +1,15 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Converts ISO date to display format, e.g. 2020-01-01 -> 2020/01/01.
5
+ */
6
+ export function isoToDisplay(value) {
7
+ return value.replace(/-/g, '/');
8
+ }
9
+ /**
10
+ * Converts display date to ISO format, e.g. 2020/01/01 -> 2020-01-01.
11
+ */
12
+ export function displayToIso(value) {
13
+ return value.replace(/\//g, '-');
14
+ }
15
+ //# sourceMappingURL=display-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-format.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/display-format.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Converts ISO date to display format, e.g. 2020-01-01 -> 2020/01/01.\n */\nexport function isoToDisplay(value: string) {\n return value.replace(/-/g, '/');\n}\n\n/**\n * Converts display date to ISO format, e.g. 2020/01/01 -> 2020-01-01.\n */\nexport function displayToIso(value: string) {\n return value.replace(/\\//g, '-');\n}\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Transforms Date's object date part to a string.
3
+ *
4
+ * We cannot use Date.toISOString because it produces GMT time where the date can be different than local.
5
+ */
6
+ export declare function formatDate(value: Date): string;
7
+ //# sourceMappingURL=format-date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-date.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-date.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAK9C"}
@@ -0,0 +1,15 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { padLeftZeros } from '../strings';
4
+ /**
5
+ * Transforms Date's object date part to a string.
6
+ *
7
+ * We cannot use Date.toISOString because it produces GMT time where the date can be different than local.
8
+ */
9
+ export function formatDate(value) {
10
+ var year = value.getFullYear();
11
+ var month = padLeftZeros("".concat(value.getMonth() + 1), 2);
12
+ var date = padLeftZeros("".concat(value.getDate()), 2);
13
+ return "".concat(year, "-").concat(month, "-").concat(date);
14
+ }
15
+ //# sourceMappingURL=format-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-date.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-date.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAW;IACpC,IAAM,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACjC,IAAM,KAAK,GAAG,YAAY,CAAC,UAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAE,EAAE,CAAC,CAAC,CAAC;IACzD,IAAM,IAAI,GAAG,YAAY,CAAC,UAAG,KAAK,CAAC,OAAO,EAAE,CAAE,EAAE,CAAC,CAAC,CAAC;IACnD,OAAO,UAAG,IAAI,cAAI,KAAK,cAAI,IAAI,CAAE,CAAC;AACpC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { padLeftZeros } from '../strings';\n\n/**\n * Transforms Date's object date part to a string.\n *\n * We cannot use Date.toISOString because it produces GMT time where the date can be different than local.\n */\nexport function formatDate(value: Date): string {\n const year = value.getFullYear();\n const month = padLeftZeros(`${value.getMonth() + 1}`, 2);\n const date = padLeftZeros(`${value.getDate()}`, 2);\n return `${year}-${month}-${date}`;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Transforms Date's object time part to a string.
3
+ */
4
+ export declare const formatTime: (value: Date) => string;
5
+ //# sourceMappingURL=format-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-time.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-time.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,UAAU,UAAW,IAAI,KAAG,MAKxC,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { padLeftZeros } from '../strings';
4
+ /**
5
+ * Transforms Date's object time part to a string.
6
+ */
7
+ export var formatTime = function (value) {
8
+ var hours = padLeftZeros("".concat(value.getHours()), 2);
9
+ var minutes = padLeftZeros("".concat(value.getMinutes()), 2);
10
+ var seconds = padLeftZeros("".concat(value.getSeconds()), 2);
11
+ return "".concat(hours, ":").concat(minutes, ":").concat(seconds);
12
+ };
13
+ //# sourceMappingURL=format-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-time.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-time.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,KAAW;IACpC,IAAM,KAAK,GAAG,YAAY,CAAC,UAAG,KAAK,CAAC,QAAQ,EAAE,CAAE,EAAE,CAAC,CAAC,CAAC;IACrD,IAAM,OAAO,GAAG,YAAY,CAAC,UAAG,KAAK,CAAC,UAAU,EAAE,CAAE,EAAE,CAAC,CAAC,CAAC;IACzD,IAAM,OAAO,GAAG,YAAY,CAAC,UAAG,KAAK,CAAC,UAAU,EAAE,CAAE,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,UAAG,KAAK,cAAI,OAAO,cAAI,OAAO,CAAE,CAAC;AAC1C,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { padLeftZeros } from '../strings';\n\n/**\n * Transforms Date's object time part to a string.\n */\nexport const formatTime = (value: Date): string => {\n const hours = padLeftZeros(`${value.getHours()}`, 2);\n const minutes = padLeftZeros(`${value.getMinutes()}`, 2);\n const seconds = padLeftZeros(`${value.getSeconds()}`, 2);\n return `${hours}:${minutes}:${seconds}`;\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function formatTimezoneOffset(offsetInMinutes: number): string;
2
+ //# sourceMappingURL=format-timezone-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-timezone-offset.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-timezone-offset.ts"],"names":[],"mappings":"AAKA,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,UAQ3D"}
@@ -0,0 +1,11 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { padLeftZeros } from '../strings';
4
+ export function formatTimezoneOffset(offsetInMinutes) {
5
+ var hoursOffset = padLeftZeros(Math.floor(Math.abs(offsetInMinutes) / 60).toFixed(0), 2);
6
+ var minuteOffset = padLeftZeros(Math.abs(offsetInMinutes % 60).toFixed(0), 2);
7
+ var sign = offsetInMinutes < 0 ? '-' : '+';
8
+ var formattedOffset = "".concat(sign).concat(hoursOffset, ":").concat(minuteOffset);
9
+ return formattedOffset;
10
+ }
11
+ //# sourceMappingURL=format-timezone-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-timezone-offset.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/format-timezone-offset.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAAC,eAAuB;IAC1D,IAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3F,IAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhF,IAAM,IAAI,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,IAAM,eAAe,GAAG,UAAG,IAAI,SAAG,WAAW,cAAI,YAAY,CAAE,CAAC;IAEhE,OAAO,eAAe,CAAC;AACzB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { padLeftZeros } from '../strings';\n\nexport function formatTimezoneOffset(offsetInMinutes: number) {\n const hoursOffset = padLeftZeros(Math.floor(Math.abs(offsetInMinutes) / 60).toFixed(0), 2);\n const minuteOffset = padLeftZeros(Math.abs(offsetInMinutes % 60).toFixed(0), 2);\n\n const sign = offsetInMinutes < 0 ? '-' : '+';\n const formattedOffset = `${sign}${hoursOffset}:${minuteOffset}`;\n\n return formattedOffset;\n}\n"]}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns the time offset of the browser.
3
+ *
4
+ * I.e. determines the `x` in `current offset = UTC + x`
5
+ */
6
+ export declare function getBrowserTimezoneOffset(): number;
7
+ //# sourceMappingURL=get-browser-timezone-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-browser-timezone-offset.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/get-browser-timezone-offset.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,wBAAwB,WAEvC"}
@@ -0,0 +1,11 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Returns the time offset of the browser.
5
+ *
6
+ * I.e. determines the `x` in `current offset = UTC + x`
7
+ */
8
+ export function getBrowserTimezoneOffset() {
9
+ return 0 - new Date().getTimezoneOffset();
10
+ }
11
+ //# sourceMappingURL=get-browser-timezone-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-browser-timezone-offset.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/get-browser-timezone-offset.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;AAC5C,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Returns the time offset of the browser.\n *\n * I.e. determines the `x` in `current offset = UTC + x`\n */\nexport function getBrowserTimezoneOffset() {\n return 0 - new Date().getTimezoneOffset();\n}\n"]}
@@ -0,0 +1,11 @@
1
+ export { isoToDisplay, displayToIso } from './display-format';
2
+ export { formatDate } from './format-date';
3
+ export { formatTime } from './format-time';
4
+ export { formatTimezoneOffset } from './format-timezone-offset';
5
+ export { getBrowserTimezoneOffset } from './get-browser-timezone-offset';
6
+ export { isIsoDateOnly } from './is-iso-date-only';
7
+ export { joinDateTime } from './join-date-time';
8
+ export { parseDate } from './parse-date';
9
+ export { parseTimezoneOffset } from './parse-timezone-offset';
10
+ export { shiftTimezoneOffset } from './shift-timezone-offset';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,13 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export { isoToDisplay, displayToIso } from './display-format';
4
+ export { formatDate } from './format-date';
5
+ export { formatTime } from './format-time';
6
+ export { formatTimezoneOffset } from './format-timezone-offset';
7
+ export { getBrowserTimezoneOffset } from './get-browser-timezone-offset';
8
+ export { isIsoDateOnly } from './is-iso-date-only';
9
+ export { joinDateTime } from './join-date-time';
10
+ export { parseDate } from './parse-date';
11
+ export { parseTimezoneOffset } from './parse-timezone-offset';
12
+ export { shiftTimezoneOffset } from './shift-timezone-offset';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { isoToDisplay, displayToIso } from './display-format';\nexport { formatDate } from './format-date';\nexport { formatTime } from './format-time';\nexport { formatTimezoneOffset } from './format-timezone-offset';\nexport { getBrowserTimezoneOffset } from './get-browser-timezone-offset';\nexport { isIsoDateOnly } from './is-iso-date-only';\nexport { joinDateTime } from './join-date-time';\nexport { parseDate } from './parse-date';\nexport { parseTimezoneOffset } from './parse-timezone-offset';\nexport { shiftTimezoneOffset } from './shift-timezone-offset';\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Checks if ISO date-string is date-only.
3
+ */
4
+ export declare function isIsoDateOnly(dateString: string): boolean;
5
+ //# sourceMappingURL=is-iso-date-only.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-iso-date-only.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/is-iso-date-only.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,WAE/C"}
@@ -0,0 +1,10 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ var dateRegex = /^\d{4}-\d{2}-\d{2}$/;
4
+ /**
5
+ * Checks if ISO date-string is date-only.
6
+ */
7
+ export function isIsoDateOnly(dateString) {
8
+ return dateRegex.test(dateString);
9
+ }
10
+ //# sourceMappingURL=is-iso-date-only.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-iso-date-only.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/is-iso-date-only.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,IAAM,SAAS,GAAG,qBAAqB,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,OAAO,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACpC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nconst dateRegex = /^\\d{4}-\\d{2}-\\d{2}$/;\n\n/**\n * Checks if ISO date-string is date-only.\n */\nexport function isIsoDateOnly(dateString: string) {\n return dateRegex.test(dateString);\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function joinDateTime(dateString: string, timeString: string): string;
2
+ //# sourceMappingURL=join-date-time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-date-time.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/join-date-time.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAElE"}
@@ -0,0 +1,6 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export function joinDateTime(dateString, timeString) {
4
+ return "".concat(dateString, "T").concat(timeString);
5
+ }
6
+ //# sourceMappingURL=join-date-time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-date-time.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/join-date-time.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,UAAkB;IACjE,OAAO,UAAG,UAAU,cAAI,UAAU,CAAE,CAAC;AACvC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function joinDateTime(dateString: string, timeString: string) {\n return `${dateString}T${timeString}`;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Parses date string and returns Date object or null.
3
+ *
4
+ * We cannot use new Date(string) constructor, because it produces GMT time that may have different date than the local.
5
+ */
6
+ export declare function parseDate(value: string): Date;
7
+ export declare function parseDate(value: string, strict: boolean): Date | null;
8
+ //# sourceMappingURL=parse-date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-date.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/parse-date.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;AAC/C,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC"}
@@ -0,0 +1,16 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export function parseDate(value, strict) {
4
+ if (strict === void 0) { strict = false; }
5
+ var _a = value.split('-'), yearString = _a[0], monthString = _a[1], dayString = _a[2];
6
+ var year = Number(yearString);
7
+ var month = Number(monthString);
8
+ var day = Number(dayString);
9
+ if (strict) {
10
+ if (isNaN(year) || isNaN(month) || isNaN(day)) {
11
+ return null;
12
+ }
13
+ }
14
+ return new Date(year, (month || 1) - 1, day || 1);
15
+ }
16
+ //# sourceMappingURL=parse-date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-date.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/parse-date.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAStC,MAAM,UAAU,SAAS,CAAC,KAAa,EAAE,MAAc;IAAd,uBAAA,EAAA,cAAc;IAC/C,IAAA,KAAuC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAtD,UAAU,QAAA,EAAE,WAAW,QAAA,EAAE,SAAS,QAAoB,CAAC;IAE9D,IAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IAChC,IAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;IAClC,IAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAE9B,IAAI,MAAM,EAAE;QACV,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;YAC7C,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Parses date string and returns Date object or null.\n *\n * We cannot use new Date(string) constructor, because it produces GMT time that may have different date than the local.\n */\nexport function parseDate(value: string): Date;\nexport function parseDate(value: string, strict: boolean): Date | null;\nexport function parseDate(value: string, strict = false): Date | null {\n const [yearString, monthString, dayString] = value.split('-');\n\n const year = Number(yearString);\n const month = Number(monthString);\n const day = Number(dayString);\n\n if (strict) {\n if (isNaN(year) || isNaN(month) || isNaN(day)) {\n return null;\n }\n }\n\n return new Date(year, (month || 1) - 1, day || 1);\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Extracts timezone offset from ISO8601 date string.
3
+ */
4
+ export declare function parseTimezoneOffset(date: string): number;
5
+ //# sourceMappingURL=parse-timezone-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-timezone-offset.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/parse-timezone-offset.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAexD"}
@@ -0,0 +1,20 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { getBrowserTimezoneOffset } from './get-browser-timezone-offset';
4
+ /**
5
+ * Extracts timezone offset from ISO8601 date string.
6
+ */
7
+ export function parseTimezoneOffset(date) {
8
+ var _a = date.split('T'), time = _a[1];
9
+ var _b = time.split(/(-|\+)/), signCharacter = _b[1], offsetPart = _b[2];
10
+ if (signCharacter && offsetPart) {
11
+ var _c = offsetPart.split(':'), offsetHours = _c[0], offsetMinutes = _c[1];
12
+ return Number(signCharacter + '1') * (Number(offsetHours) * 60 + Number(offsetMinutes));
13
+ }
14
+ var utcTimezoneIndicator = date.indexOf('Z');
15
+ if (utcTimezoneIndicator !== -1) {
16
+ return 0;
17
+ }
18
+ return getBrowserTimezoneOffset();
19
+ }
20
+ //# sourceMappingURL=parse-timezone-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-timezone-offset.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/parse-timezone-offset.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IACxC,IAAA,KAAW,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAvB,IAAI,QAAmB,CAAC;IAC3B,IAAA,KAAgC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAjD,aAAa,QAAA,EAAE,UAAU,QAAwB,CAAC;IAE3D,IAAI,aAAa,IAAI,UAAU,EAAE;QACzB,IAAA,KAA+B,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAAnD,WAAW,QAAA,EAAE,aAAa,QAAyB,CAAC;QAC3D,OAAO,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;KACzF;IAED,IAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,oBAAoB,KAAK,CAAC,CAAC,EAAE;QAC/B,OAAO,CAAC,CAAC;KACV;IAED,OAAO,wBAAwB,EAAE,CAAC;AACpC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { getBrowserTimezoneOffset } from './get-browser-timezone-offset';\n\n/**\n * Extracts timezone offset from ISO8601 date string.\n */\nexport function parseTimezoneOffset(date: string): number {\n const [, time] = date.split('T');\n const [, signCharacter, offsetPart] = time.split(/(-|\\+)/);\n\n if (signCharacter && offsetPart) {\n const [offsetHours, offsetMinutes] = offsetPart.split(':');\n return Number(signCharacter + '1') * (Number(offsetHours) * 60 + Number(offsetMinutes));\n }\n\n const utcTimezoneIndicator = date.indexOf('Z');\n if (utcTimezoneIndicator !== -1) {\n return 0;\n }\n\n return getBrowserTimezoneOffset();\n}\n"]}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Re-formats an ISO8601 date string so that it is expressed using the
3
+ * target timezone offset. The returned date string still represents the
4
+ * same instant in time, but contains no visible offset.
5
+ *
6
+ * Example:
7
+ * ```
8
+ * shiftTimezoneOffset("2020-01-01T09:00:00+03:00", 2 * 60) === "2020-01-01T08:00:00"
9
+ * ```
10
+ */
11
+ export declare function shiftTimezoneOffset(dateString: string, targetTimezoneOffset: number): string;
12
+ //# sourceMappingURL=shift-timezone-offset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shift-timezone-offset.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/shift-timezone-offset.ts"],"names":[],"mappings":"AASA;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,UAUnF"}
@@ -0,0 +1,27 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { addMinutes } from 'date-fns';
4
+ import { joinDateTime } from '.';
5
+ import { formatDate } from './format-date';
6
+ import { formatTime } from './format-time';
7
+ import { parseTimezoneOffset } from './parse-timezone-offset';
8
+ /**
9
+ * Re-formats an ISO8601 date string so that it is expressed using the
10
+ * target timezone offset. The returned date string still represents the
11
+ * same instant in time, but contains no visible offset.
12
+ *
13
+ * Example:
14
+ * ```
15
+ * shiftTimezoneOffset("2020-01-01T09:00:00+03:00", 2 * 60) === "2020-01-01T08:00:00"
16
+ * ```
17
+ */
18
+ export function shiftTimezoneOffset(dateString, targetTimezoneOffset) {
19
+ var _a = dateString.split('T'), datePart = _a[0], timeAndOffsetPart = _a[1];
20
+ var timePart = timeAndOffsetPart.split(/-|\+|Z/)[0];
21
+ var valueWithoutOffset = joinDateTime(datePart, timePart);
22
+ var originalTimezoneOffset = parseTimezoneOffset(dateString);
23
+ var date = new Date(valueWithoutOffset);
24
+ var adjustedDate = addMinutes(date, targetTimezoneOffset - originalTimezoneOffset);
25
+ return joinDateTime(formatDate(adjustedDate), formatTime(adjustedDate));
26
+ }
27
+ //# sourceMappingURL=shift-timezone-offset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shift-timezone-offset.js","sourceRoot":"","sources":["../../../../../src/internal/utils/date-time/shift-timezone-offset.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAkB,EAAE,oBAA4B;IAC5E,IAAA,KAAgC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,EAApD,QAAQ,QAAA,EAAE,iBAAiB,QAAyB,CAAC;IACrD,IAAA,QAAQ,GAAI,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,GAArC,CAAsC;IACrD,IAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5D,IAAM,sBAAsB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE/D,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1C,IAAM,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE,oBAAoB,GAAG,sBAAsB,CAAC,CAAC;IAErF,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1E,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { addMinutes } from 'date-fns';\nimport { joinDateTime } from '.';\nimport { formatDate } from './format-date';\nimport { formatTime } from './format-time';\nimport { parseTimezoneOffset } from './parse-timezone-offset';\n\n/**\n * Re-formats an ISO8601 date string so that it is expressed using the\n * target timezone offset. The returned date string still represents the\n * same instant in time, but contains no visible offset.\n *\n * Example:\n * ```\n * shiftTimezoneOffset(\"2020-01-01T09:00:00+03:00\", 2 * 60) === \"2020-01-01T08:00:00\"\n * ```\n */\nexport function shiftTimezoneOffset(dateString: string, targetTimezoneOffset: number) {\n const [datePart, timeAndOffsetPart] = dateString.split('T');\n const [timePart] = timeAndOffsetPart.split(/-|\\+|Z/);\n const valueWithoutOffset = joinDateTime(datePart, timePart);\n const originalTimezoneOffset = parseTimezoneOffset(dateString);\n\n const date = new Date(valueWithoutOffset);\n const adjustedDate = addMinutes(date, targetTimezoneOffset - originalTimezoneOffset);\n\n return joinDateTime(formatDate(adjustedDate), formatTime(adjustedDate));\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export { joinStrings } from './join-strings';
2
+ export { padLeftZeros } from './pad-left-zeros';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export { joinStrings } from './join-strings';
4
+ export { padLeftZeros } from './pad-left-zeros';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { joinStrings } from './join-strings';\nexport { padLeftZeros } from './pad-left-zeros';\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.
3
+ */
4
+ export declare function joinStrings(...strings: Array<string | undefined>): string | undefined;
5
+ //# sourceMappingURL=join-strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-strings.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/join-strings.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,SAAS,CAErF"}
@@ -1,12 +1,13 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- // Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.
4
- export var joinStrings = function () {
3
+ /**
4
+ * Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.
5
+ */
6
+ export function joinStrings() {
5
7
  var strings = [];
6
8
  for (var _i = 0; _i < arguments.length; _i++) {
7
9
  strings[_i] = arguments[_i];
8
10
  }
9
- var result = strings.filter(function (val) { return val; }).join(' ');
10
- return result || undefined;
11
- };
12
- //# sourceMappingURL=strings.js.map
11
+ return strings.filter(Boolean).join(' ') || undefined;
12
+ }
13
+ //# sourceMappingURL=join-strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"join-strings.js","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/join-strings.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;GAEG;AACH,MAAM,UAAU,WAAW;IAAC,iBAAqC;SAArC,UAAqC,EAArC,qBAAqC,EAArC,IAAqC;QAArC,4BAAqC;;IAC/D,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACxD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Joins strings with a whitespace, discarding empty strings. Useful to combine multiple aria-labels.\n */\nexport function joinStrings(...strings: Array<string | undefined>): string | undefined {\n return strings.filter(Boolean).join(' ') || undefined;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Prefixes given text with zeros until it reaches the target length.
3
+ */
4
+ export declare function padLeftZeros(text: string, length: number): string;
5
+ //# sourceMappingURL=pad-left-zeros.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pad-left-zeros.d.ts","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/pad-left-zeros.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKjE"}
@@ -0,0 +1,12 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * Prefixes given text with zeros until it reaches the target length.
5
+ */
6
+ export function padLeftZeros(text, length) {
7
+ while (text.length < length) {
8
+ text = "0".concat(text);
9
+ }
10
+ return text;
11
+ }
12
+ //# sourceMappingURL=pad-left-zeros.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pad-left-zeros.js","sourceRoot":"","sources":["../../../../../src/internal/utils/strings/pad-left-zeros.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,MAAc;IACvD,OAAO,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE;QAC3B,IAAI,GAAG,WAAI,IAAI,CAAE,CAAC;KACnB;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n/**\n * Prefixes given text with zeros until it reaches the target length.\n */\nexport function padLeftZeros(text: string, length: number): string {\n while (text.length < length) {\n text = `0${text}`;\n }\n return text;\n}\n"]}
package/link/internal.js CHANGED
@@ -41,7 +41,7 @@ var InternalLink = React.forwardRef(function (_a, ref) {
41
41
  }
42
42
  };
43
43
  var linkRef = useRef(null);
44
- var isVisualRefresh = useVisualRefresh(linkRef);
44
+ var isVisualRefresh = useVisualRefresh();
45
45
  useForwardFocus(ref, linkRef);
46
46
  // Visual refresh should only add styles to buttons that don't already have unique styles (e.g. primary/secondary variants)
47
47
  var applyButtonStyles = isButton && isVisualRefresh && !hasSpecialStyle;
@@ -51,8 +51,8 @@ var InternalLink = React.forwardRef(function (_a, ref) {
51
51
  ref: useMergeRefs(linkRef, __internalRootRef), className: clsx(styles.link, baseProps.className, applyButtonStyles ? styles.button : null, styles[getVariantStyle(variant)], styles[getFontSizeStyle(variant, fontSize)], styles[getColorStyle(variant, color)]), 'aria-label': ariaLabel });
52
52
  var content = (React.createElement(React.Fragment, null,
53
53
  children,
54
- external && (React.createElement(React.Fragment, null,
55
- ' ',
54
+ external && (React.createElement("span", { className: styles['icon-wrapper'] },
55
+ "\u00A0",
56
56
  React.createElement("span", { className: styles.icon, "aria-label": externalIconAriaLabel, role: externalIconAriaLabel ? 'img' : undefined },
57
57
  React.createElement(InternalIcon, { name: "external", size: "inherit" }))))));
58
58
  if (isButton) {
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/link/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef } from 'react';\nimport clsx from 'clsx';\nimport InternalIcon from '../icon/internal';\nimport styles from './styles.css.js';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireCancelableEvent, isPlainLeftClick } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { KeyCode } from '../internal/keycode';\nimport { LinkProps } from './interfaces';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\n\ntype InternalLinkProps = InternalBaseComponentProps &\n Omit<LinkProps, 'variant'> & {\n variant?: LinkProps['variant'] | 'top-navigation' | 'link' | 'recovery';\n };\n\nconst InternalLink = React.forwardRef(\n (\n {\n variant = 'secondary',\n fontSize = 'body-m',\n color = 'normal',\n external = false,\n target,\n href,\n rel,\n ariaLabel,\n externalIconAriaLabel,\n onFollow,\n children,\n __internalRootRef = null,\n ...props\n }: InternalLinkProps,\n ref: React.Ref<LinkProps.Ref>\n ) => {\n checkSafeUrl('Link', href);\n const isButton = !href;\n const specialStyles = ['top-navigation', 'link', 'recovery'];\n const hasSpecialStyle = specialStyles.indexOf(variant) > -1;\n\n const focusVisible = useFocusVisible();\n const baseProps = getBaseProps(props);\n const anchorTarget = target ?? (external ? '_blank' : undefined);\n const anchorRel = rel ?? (anchorTarget === '_blank' ? 'noopener noreferrer' : undefined);\n\n const fireFollowEvent = (event: React.SyntheticEvent) => {\n fireCancelableEvent(onFollow, { href, external, target: anchorTarget }, event);\n };\n\n const handleLinkClick = (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollowEvent(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent) => {\n fireFollowEvent(event);\n };\n\n const handleButtonKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n fireFollowEvent(event);\n }\n };\n\n const linkRef = useRef<HTMLElement>(null);\n const isVisualRefresh = useVisualRefresh(linkRef);\n useForwardFocus(ref, linkRef);\n\n // Visual refresh should only add styles to buttons that don't already have unique styles (e.g. primary/secondary variants)\n const applyButtonStyles = isButton && isVisualRefresh && !hasSpecialStyle;\n\n const sharedProps = {\n ...focusVisible,\n ...baseProps,\n // https://github.com/microsoft/TypeScript/issues/36659\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: useMergeRefs(linkRef as any, __internalRootRef),\n className: clsx(\n styles.link,\n baseProps.className,\n applyButtonStyles ? styles.button : null,\n styles[getVariantStyle(variant)],\n styles[getFontSizeStyle(variant, fontSize)],\n styles[getColorStyle(variant, color)]\n ),\n 'aria-label': ariaLabel,\n };\n\n const content = (\n <>\n {children}\n {external && (\n <>\n {' '}\n <span\n className={styles.icon}\n aria-label={externalIconAriaLabel}\n role={externalIconAriaLabel ? 'img' : undefined}\n >\n <InternalIcon name=\"external\" size=\"inherit\" />\n </span>\n </>\n )}\n </>\n );\n\n if (isButton) {\n return (\n <a {...sharedProps} role=\"button\" tabIndex={0} onKeyDown={handleButtonKeyDown} onClick={handleButtonClick}>\n {content}\n </a>\n );\n }\n\n return (\n // we dynamically set proper rel in the code above\n // eslint-disable-next-line react/jsx-no-target-blank\n <a {...sharedProps} target={anchorTarget} rel={anchorRel} href={href} onClick={handleLinkClick}>\n {content}\n </a>\n );\n }\n);\n\nfunction getVariantStyle(variant: Exclude<InternalLinkProps['variant'], undefined>) {\n return `variant-${variant.replace(/^awsui-/, '')}`;\n}\n\nfunction getFontSizeStyle(variant: InternalLinkProps['variant'], fontSize: InternalLinkProps['fontSize']) {\n switch (variant) {\n case 'info':\n return 'font-size-body-s';\n case 'awsui-value-large':\n return 'font-size-display-l';\n default:\n return `font-size-${fontSize}`;\n }\n}\n\nfunction getColorStyle(variant: InternalLinkProps['variant'], color: InternalLinkProps['color']) {\n return `color-${variant === 'info' ? 'normal' : color}`;\n}\n\nexport default InternalLink;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/link/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useRef } from 'react';\nimport clsx from 'clsx';\nimport InternalIcon from '../icon/internal';\nimport styles from './styles.css.js';\nimport useFocusVisible from '../internal/hooks/focus-visible';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireCancelableEvent, isPlainLeftClick } from '../internal/events';\nimport useForwardFocus from '../internal/hooks/forward-focus';\nimport { KeyCode } from '../internal/keycode';\nimport { LinkProps } from './interfaces';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMergeRefs } from '../internal/hooks/use-merge-refs';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { checkSafeUrl } from '../internal/utils/check-safe-url';\n\ntype InternalLinkProps = InternalBaseComponentProps &\n Omit<LinkProps, 'variant'> & {\n variant?: LinkProps['variant'] | 'top-navigation' | 'link' | 'recovery';\n };\n\nconst InternalLink = React.forwardRef(\n (\n {\n variant = 'secondary',\n fontSize = 'body-m',\n color = 'normal',\n external = false,\n target,\n href,\n rel,\n ariaLabel,\n externalIconAriaLabel,\n onFollow,\n children,\n __internalRootRef = null,\n ...props\n }: InternalLinkProps,\n ref: React.Ref<LinkProps.Ref>\n ) => {\n checkSafeUrl('Link', href);\n const isButton = !href;\n const specialStyles = ['top-navigation', 'link', 'recovery'];\n const hasSpecialStyle = specialStyles.indexOf(variant) > -1;\n\n const focusVisible = useFocusVisible();\n const baseProps = getBaseProps(props);\n const anchorTarget = target ?? (external ? '_blank' : undefined);\n const anchorRel = rel ?? (anchorTarget === '_blank' ? 'noopener noreferrer' : undefined);\n\n const fireFollowEvent = (event: React.SyntheticEvent) => {\n fireCancelableEvent(onFollow, { href, external, target: anchorTarget }, event);\n };\n\n const handleLinkClick = (event: React.MouseEvent) => {\n if (isPlainLeftClick(event)) {\n fireFollowEvent(event);\n }\n };\n\n const handleButtonClick = (event: React.MouseEvent) => {\n fireFollowEvent(event);\n };\n\n const handleButtonKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCode.space || event.keyCode === KeyCode.enter) {\n event.preventDefault();\n fireFollowEvent(event);\n }\n };\n\n const linkRef = useRef<HTMLElement>(null);\n const isVisualRefresh = useVisualRefresh();\n useForwardFocus(ref, linkRef);\n\n // Visual refresh should only add styles to buttons that don't already have unique styles (e.g. primary/secondary variants)\n const applyButtonStyles = isButton && isVisualRefresh && !hasSpecialStyle;\n\n const sharedProps = {\n ...focusVisible,\n ...baseProps,\n // https://github.com/microsoft/TypeScript/issues/36659\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: useMergeRefs(linkRef as any, __internalRootRef),\n className: clsx(\n styles.link,\n baseProps.className,\n applyButtonStyles ? styles.button : null,\n styles[getVariantStyle(variant)],\n styles[getFontSizeStyle(variant, fontSize)],\n styles[getColorStyle(variant, color)]\n ),\n 'aria-label': ariaLabel,\n };\n\n const content = (\n <>\n {children}\n {external && (\n <span className={styles['icon-wrapper']}>\n &nbsp;\n <span\n className={styles.icon}\n aria-label={externalIconAriaLabel}\n role={externalIconAriaLabel ? 'img' : undefined}\n >\n <InternalIcon name=\"external\" size=\"inherit\" />\n </span>\n </span>\n )}\n </>\n );\n\n if (isButton) {\n return (\n <a {...sharedProps} role=\"button\" tabIndex={0} onKeyDown={handleButtonKeyDown} onClick={handleButtonClick}>\n {content}\n </a>\n );\n }\n\n return (\n // we dynamically set proper rel in the code above\n // eslint-disable-next-line react/jsx-no-target-blank\n <a {...sharedProps} target={anchorTarget} rel={anchorRel} href={href} onClick={handleLinkClick}>\n {content}\n </a>\n );\n }\n);\n\nfunction getVariantStyle(variant: Exclude<InternalLinkProps['variant'], undefined>) {\n return `variant-${variant.replace(/^awsui-/, '')}`;\n}\n\nfunction getFontSizeStyle(variant: InternalLinkProps['variant'], fontSize: InternalLinkProps['fontSize']) {\n switch (variant) {\n case 'info':\n return 'font-size-body-s';\n case 'awsui-value-large':\n return 'font-size-display-l';\n default:\n return `font-size-${fontSize}`;\n }\n}\n\nfunction getColorStyle(variant: InternalLinkProps['variant'], color: InternalLinkProps['color']) {\n return `color-${variant === 'info' ? 'normal' : color}`;\n}\n\nexport default InternalLink;\n"]}