@digigov/ui 2.0.0-a402a664 → 2.0.0-a594a958
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.
- package/app/Loader/Loader.stories.d.ts +45 -1
- package/app/Loader/__stories__/AccessibilityLoader.d.ts +3 -0
- package/app/Loader/__stories__/FullPageLoader.d.ts +1 -0
- package/app/Loader/__stories__/Secondary.d.ts +3 -0
- package/app/Loader/__stories__/Sizes.d.ts +3 -0
- package/app/Loader/index.native.d.ts +2 -2
- package/app/Loader/index.native.js.map +2 -2
- package/app/Loader/index.web/index.js +17 -1
- package/app/Loader/index.web.d.ts +19 -1
- package/app/Loader/index.web.js.map +3 -3
- package/app/Masthead/Masthead.stories.d.ts +28 -1
- package/app/Modal/Modal.stories.d.ts +20 -1
- package/app/Modal/index.web/index.js +2 -2
- package/app/Modal/index.web.js.map +2 -2
- package/app/hooks/useNotificationArea/index.js +76 -0
- package/app/hooks/useNotificationArea/package.json +6 -0
- package/app/hooks/useNotificationArea.d.ts +1 -0
- package/app/hooks/useNotificationArea.js.map +7 -0
- package/cjs/app/Loader/index.native.js.map +2 -2
- package/cjs/app/Loader/index.web/index.js +33 -2
- package/cjs/app/Loader/index.web.js.map +3 -3
- package/cjs/app/Modal/index.web/index.js +2 -2
- package/cjs/app/Modal/index.web.js.map +2 -2
- package/cjs/app/hooks/useNotificationArea/index.js +99 -0
- package/cjs/app/hooks/useNotificationArea.js.map +7 -0
- package/cjs/content/SafeHTML/index.js +22 -3
- package/cjs/content/SafeHTML/index.js.map +2 -2
- package/cjs/i18n/locales/el/index.js +47 -17
- package/cjs/i18n/locales/el.js.map +2 -2
- package/cjs/i18n/locales/en/index.js +36 -6
- package/cjs/i18n/locales/en.js.map +2 -2
- package/cjs/layouts/Hidden/index.js +19 -0
- package/cjs/layouts/Hidden/index.js.map +3 -3
- package/cjs/lazy.js +1 -0
- package/cjs/lazy.js.map +2 -2
- package/cjs/registry.js +10 -8
- package/cjs/registry.js.map +2 -2
- package/content/Accordion/Accordion.stories.d.ts +29 -16
- package/content/Accordion/__stories__/SummaryColorSecondary.d.ts +3 -0
- package/content/Accordion/__stories__/UsingArrowIcons.d.ts +3 -0
- package/content/Chip/Chip.stories.d.ts +2 -5
- package/content/SafeHTML/index.d.ts +3 -3
- package/content/SafeHTML/index.js +22 -3
- package/content/SafeHTML/index.js.map +2 -2
- package/content/SummaryList/SummaryList.stories.d.ts +6 -1
- package/content/SummaryList/__stories__/SummaryListExample.d.ts +2 -1
- package/content/SummaryList/__stories__/WithError.d.ts +3 -0
- package/content/Table/Table.stories.d.ts +18 -6
- package/content/Table/__stories__/UsingHighlights.d.ts +3 -0
- package/feedback/NotificationBanner/NotificationBanner.stories.d.ts +14 -13
- package/feedback/NotificationBanner/__stories__/Expanded.d.ts +3 -0
- package/feedback/PhaseBanner/PhaseBanner.stories.d.ts +1 -1
- package/i18n/locales/el/index.js +47 -17
- package/i18n/locales/el.d.ts +34 -4
- package/i18n/locales/el.js.map +2 -2
- package/i18n/locales/en/index.js +36 -6
- package/i18n/locales/en.d.ts +34 -4
- package/i18n/locales/en.js.map +2 -2
- package/index.js +1 -1
- package/layouts/Grid/Grid.stories.d.ts +82 -0
- package/layouts/Hidden/Hidden.stories.d.ts +115 -0
- package/layouts/Hidden/index.d.ts +2 -0
- package/layouts/Hidden/index.js +5 -0
- package/layouts/Hidden/index.js.map +2 -2
- package/layouts/Stack/Stack.stories.d.ts +76 -0
- package/lazy/index.js +1 -0
- package/navigation/BackToTopLink/BackToTopLink.stories.d.ts +2 -0
- package/navigation/Dropdown/Dropdown.stories.d.ts +75 -1
- package/navigation/SkipLink/SkipLink.stories.d.ts +2 -0
- package/package.json +5 -5
- package/registry/index.js +10 -8
- package/src/app/BannerContainer/__stories__/CookiesBanner.tsx +1 -21
- package/src/app/Header/doc.mdx +3 -3
- package/src/app/Loader/Loader.stories.jsx +54 -0
- package/src/app/Loader/__stories__/AccessibilityLoader.tsx +27 -0
- package/src/app/Loader/__stories__/FullPageLoader.tsx +9 -5
- package/src/app/Loader/__stories__/Secondary.tsx +11 -0
- package/src/app/Loader/__stories__/Sizes.tsx +18 -0
- package/src/app/Loader/doc.mdx +39 -0
- package/src/app/Loader/index.native.tsx +2 -2
- package/src/app/Loader/index.test.tsx +12 -0
- package/src/app/Loader/index.web.tsx +39 -1
- package/src/app/Masthead/Masthead.stories.jsx +66 -0
- package/src/app/Masthead/doc.mdx +3 -3
- package/src/app/Modal/Modal.stories.jsx +64 -0
- package/src/app/Modal/__stories__/AlertDialog.tsx +1 -1
- package/src/app/Modal/__stories__/Auto.tsx +1 -1
- package/src/app/Modal/__stories__/Default.tsx +1 -1
- package/src/app/Modal/__stories__/Dense.tsx +1 -1
- package/src/app/Modal/__stories__/WithHooks.tsx +1 -1
- package/src/app/Modal/__stories__/WithoutModalGaps.tsx +1 -1
- package/src/app/Modal/index.web.tsx +2 -2
- package/src/app/hooks/useNotificationArea.tsx +105 -0
- package/src/content/Accordion/Accordion.stories.jsx +13 -2
- package/src/content/Accordion/__stories__/Auto.tsx +0 -24
- package/src/content/Accordion/__stories__/Default.tsx +0 -21
- package/src/content/Accordion/__stories__/SummaryColorSecondary.tsx +89 -0
- package/src/content/Accordion/__stories__/UsingArrowIcons.tsx +98 -0
- package/src/content/Accordion/__stories__/WithHints.tsx +0 -24
- package/src/content/Accordion/__stories__/WithHook.tsx +0 -24
- package/src/content/Accordion/doc.mdx +1 -2
- package/src/content/Accordion/index.test.tsx +8 -0
- package/src/content/Card/doc.mdx +11 -11
- package/src/content/Chip/{Chip.stories.js → Chip.stories.jsx} +12 -3
- package/src/content/Chip/doc.mdx +4 -4
- package/src/content/List/doc.mdx +3 -3
- package/src/content/SafeHTML/index.tsx +36 -8
- package/src/content/SummaryList/SummaryList.stories.js +7 -1
- package/src/content/SummaryList/__stories__/SummaryListExample.tsx +9 -2
- package/src/content/SummaryList/__stories__/WithError.tsx +48 -0
- package/src/content/SummaryList/index.test.tsx +4 -0
- package/src/content/Table/Table.stories.jsx +19 -2
- package/src/content/Table/__stories__/UsingHighlights.tsx +82 -0
- package/src/content/Table/index.test.tsx +4 -0
- package/src/content/TaskList/doc.mdx +1 -1
- package/src/content/Timeline/doc.mdx +1 -1
- package/src/feedback/CopyToClipboard/doc.mdx +1 -1
- package/src/feedback/ErrorSummary/doc.mdx +1 -1
- package/src/feedback/NotificationBanner/NotificationBanner.stories.js +10 -9
- package/src/feedback/NotificationBanner/__stories__/Expanded.tsx +27 -0
- package/src/feedback/NotificationBanner/doc.mdx +15 -6
- package/src/feedback/NotificationBanner/index.test.tsx +4 -0
- package/src/feedback/PhaseBanner/PhaseBanner.stories.jsx +1 -1
- package/src/form/AutoComplete/doc.mdx +2 -2
- package/src/form/Button/doc.mdx +25 -14
- package/src/form/Checkbox/doc.mdx +1 -1
- package/src/form/RadioContainer/doc.mdx +4 -4
- package/src/i18n/locales/el.ts +70 -16
- package/src/i18n/locales/en.ts +44 -5
- package/src/layouts/Basic/doc.mdx +0 -2
- package/src/layouts/Grid/Grid.stories.jsx +143 -0
- package/src/layouts/Hidden/Hidden.stories.jsx +62 -0
- package/src/layouts/Hidden/index.tsx +3 -0
- package/src/layouts/Stack/Stack.stories.jsx +104 -0
- package/src/lazy.js +1 -0
- package/src/navigation/BackToTopLink/BackToTopLink.stories.js +4 -0
- package/src/navigation/BackToTopLink/doc.mdx +22 -0
- package/src/navigation/Breadcrumbs/doc.mdx +4 -0
- package/src/navigation/Dropdown/Dropdown.stories.jsx +118 -0
- package/src/navigation/Dropdown/doc.mdx +24 -2
- package/src/navigation/NavList/doc.mdx +1 -1
- package/src/navigation/Pagination/doc.mdx +5 -1
- package/src/navigation/SkipLink/SkipLink.stories.js +4 -0
- package/src/navigation/SkipLink/doc.mdx +19 -0
- package/src/registry.js +10 -8
- package/src/typography/CodeBlock/CodeBlock.stories.js +24 -0
- package/src/typography/Heading/Heading.stories.js +12 -0
- package/src/typography/HeadingCaption/HeadingCaption.stories.js +9 -0
- package/src/typography/Hint/Hint.stories.js +11 -0
- package/src/typography/Hint/__stories__/Default.tsx +1 -1
- package/src/typography/Hint/__stories__/FontSizes.tsx +4 -4
- package/src/typography/NormalText/NormalText.stories.js +10 -0
- package/src/typography/Paragraph/Paragraph.stories.js +23 -0
- package/stories-registry/index.js +48 -30
- package/typography/CodeBlock/CodeBlock.stories.d.ts +11 -0
- package/typography/Heading/Heading.stories.d.ts +10 -0
- package/typography/HeadingCaption/HeadingCaption.stories.d.ts +8 -0
- package/typography/Hint/Hint.stories.d.ts +9 -0
- package/typography/NormalText/NormalText.stories.d.ts +8 -0
- package/typography/Paragraph/Paragraph.stories.d.ts +37 -0
- package/src/app/Loader/Loader.stories.js +0 -8
- package/src/app/Masthead/Masthead.stories.js +0 -17
- package/src/app/Modal/Modal.stories.js +0 -18
- package/src/layouts/Grid/Grid.stories.js +0 -12
- package/src/layouts/Stack/Stack.stories.js +0 -15
- package/src/navigation/Dropdown/Dropdown.stories.js +0 -23
|
@@ -2,8 +2,52 @@ declare namespace _default {
|
|
|
2
2
|
export let title: string;
|
|
3
3
|
export { CircularProgress as component };
|
|
4
4
|
export let displayName: string;
|
|
5
|
+
export let tags: string[];
|
|
6
|
+
export { doc as markdown };
|
|
5
7
|
}
|
|
6
8
|
export default _default;
|
|
9
|
+
export namespace WithControls {
|
|
10
|
+
function render(args: any): React.JSX.Element;
|
|
11
|
+
namespace args {
|
|
12
|
+
let loadingText: string;
|
|
13
|
+
let loadingFinishedText: string;
|
|
14
|
+
let color: string;
|
|
15
|
+
let size: string;
|
|
16
|
+
}
|
|
17
|
+
namespace argsTypes {
|
|
18
|
+
export namespace loadingText_1 {
|
|
19
|
+
let control: string;
|
|
20
|
+
}
|
|
21
|
+
export { loadingText_1 as loadingText };
|
|
22
|
+
export namespace loadingFinishedText_1 {
|
|
23
|
+
let control_1: string;
|
|
24
|
+
export { control_1 as control };
|
|
25
|
+
}
|
|
26
|
+
export { loadingFinishedText_1 as loadingFinishedText };
|
|
27
|
+
export namespace color_1 {
|
|
28
|
+
export namespace control_2 {
|
|
29
|
+
let type: string;
|
|
30
|
+
}
|
|
31
|
+
export { control_2 as control };
|
|
32
|
+
export let options: string[];
|
|
33
|
+
}
|
|
34
|
+
export { color_1 as color };
|
|
35
|
+
export namespace size_1 {
|
|
36
|
+
export namespace control_3 {
|
|
37
|
+
let type_1: string;
|
|
38
|
+
export { type_1 as type };
|
|
39
|
+
}
|
|
40
|
+
export { control_3 as control };
|
|
41
|
+
let options_1: string[];
|
|
42
|
+
export { options_1 as options };
|
|
43
|
+
}
|
|
44
|
+
export { size_1 as size };
|
|
45
|
+
}
|
|
46
|
+
}
|
|
7
47
|
export { Default } from "@digigov/ui/app/Loader/__stories__/Default";
|
|
48
|
+
export { Secondary } from "@digigov/ui/app/Loader/__stories__/Secondary";
|
|
49
|
+
export { Sizes } from "@digigov/ui/app/Loader/__stories__/Sizes";
|
|
8
50
|
export { FullPageLoader } from "@digigov/ui/app/Loader/__stories__/FullPageLoader";
|
|
9
|
-
|
|
51
|
+
export { AccessibilityLoader } from "@digigov/ui/app/Loader/__stories__/AccessibilityLoader";
|
|
52
|
+
import { CircularProgress } from '@digigov/ui/app/Loader';
|
|
53
|
+
import React from 'react';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export declare const CircularProgress: React.FC<
|
|
2
|
+
import { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';
|
|
3
|
+
export declare const CircularProgress: React.FC<CircularProgressBaseProps>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/app/Loader/index.native.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport {
|
|
5
|
-
"mappings": "AAAA,OAAO,SAAS,QAAQ,iBAAiB;AACzC,SAAS,UAAU,cAAc;AACjC,OAAO,OAAO,cAAc;AAGrB,MAAM,
|
|
4
|
+
"sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';\n\nexport const CircularProgress: React.FC<CircularProgressBaseProps> = ({\n size = 'md',\n color = 'primary',\n}) => {\n const sizes = {\n sm: 20,\n md: 40,\n lg: 50,\n };\n const strokeWidth = sizes[size] / 4;\n const radius = (sizes[size] - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const rotateAnim = useRef(new Animated.Value(0)).current;\n const dashAnim = useRef(new Animated.Value(circumference)).current;\n\n const progressColor = color === 'primary' ? '#003375' : '#fff';\n const backgroundColor = '#01b0f0';\n const duration = 4000;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(rotateAnim, {\n toValue: 1,\n duration: 10000,\n easing: Easing.linear,\n useNativeDriver: true,\n })\n ).start();\n }, [rotateAnim]);\n\n useEffect(() => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(dashAnim, {\n toValue: 0,\n duration: duration * 0.4,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n Animated.timing(dashAnim, {\n toValue: circumference,\n duration: duration * 0.6,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n ])\n ).start();\n }, [dashAnim, duration, circumference]);\n\n const rotateInterpolate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <Animated.View\n style={[\n {\n width: sizes[size],\n height: sizes[size],\n transform: [{ rotate: rotateInterpolate }],\n },\n ]}\n >\n <Svg\n width={sizes[size]}\n height={sizes[size]}\n viewBox={`0 0 ${sizes[size]} ${sizes[size]}`}\n >\n <Circle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={backgroundColor}\n strokeWidth={strokeWidth}\n fill=\"none\"\n />\n <AnimatedCircle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={progressColor}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference}`}\n strokeDashoffset={dashAnim}\n fill=\"none\"\n />\n </Svg>\n </Animated.View>\n );\n};\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,SAAS,QAAQ,iBAAiB;AACzC,SAAS,UAAU,cAAc;AACjC,OAAO,OAAO,cAAc;AAGrB,MAAM,mBAAwD,CAAC;AAAA,EACpE,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AACJ,QAAM,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,cAAc,MAAM,IAAI,IAAI;AAClC,QAAM,UAAU,MAAM,IAAI,IAAI,eAAe;AAC7C,QAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,QAAM,aAAa,OAAO,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE;AACjD,QAAM,WAAW,OAAO,IAAI,SAAS,MAAM,aAAa,CAAC,EAAE;AAE3D,QAAM,gBAAgB,UAAU,YAAY,YAAY;AACxD,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAEjB,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS,OAAO,YAAY;AAAA,QAC1B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,OAAO;AAAA,QACf,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,CAAC;AAEf,YAAU,MAAM;AACd,aAAS;AAAA,MACP,SAAS,SAAS;AAAA,QAChB,SAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,OAAO,MAAM,OAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,QACD,SAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,OAAO,MAAM,OAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AAEtC,QAAM,oBAAoB,WAAW,YAAY;AAAA,IAC/C,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,aAAa,CAAC,QAAQ,QAAQ;AAAA,EAChC,CAAC;AAED,SACE;AAAA,IAAC,SAAS;AAAA,IAAT;AAAA,MACC,OAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,IAAI;AAAA,UACjB,QAAQ,MAAM,IAAI;AAAA,UAClB,WAAW,CAAC,EAAE,QAAQ,kBAAkB,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA;AAAA,IAEA;AAAA,MAAC;AAAA;AAAA,QACC,OAAO,MAAM,IAAI;AAAA,QACjB,QAAQ,MAAM,IAAI;AAAA,QAClB,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,MAE1C;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,iBAAiB,GAAG,aAAa;AAAA,UACjC,kBAAkB;AAAA,UAClB,MAAK;AAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,MAAM,iBAAiB,SAAS,wBAAwB,MAAM;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
import React from "react";
|
|
2
|
+
export * from "@digigov/react-core/CircularProgressBase";
|
|
3
|
+
import CircularProgressBase from "@digigov/react-core/CircularProgressBase";
|
|
4
|
+
import { useNotificationArea } from "@digigov/ui/app/hooks/useNotificationArea";
|
|
5
|
+
const CircularProgress = React.forwardRef(function CircularProgress2({
|
|
6
|
+
loadingText = "\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...",
|
|
7
|
+
loadingFinishedText = "\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.",
|
|
8
|
+
...props
|
|
9
|
+
}, ref) {
|
|
10
|
+
useNotificationArea(loadingText, loadingFinishedText);
|
|
11
|
+
return /* @__PURE__ */ React.createElement(CircularProgressBase, { ref, ...props });
|
|
12
|
+
});
|
|
13
|
+
var index_web_default = CircularProgress;
|
|
14
|
+
export {
|
|
15
|
+
CircularProgress,
|
|
16
|
+
index_web_default as default
|
|
17
|
+
};
|
|
2
18
|
//# sourceMappingURL=index.web.js.map
|
|
@@ -1 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export * from '@digigov/react-core/CircularProgressBase';
|
|
3
|
+
import { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';
|
|
4
|
+
export interface CircularProgressProps extends CircularProgressBaseProps {
|
|
5
|
+
/**
|
|
6
|
+
* loadingText prop is optional
|
|
7
|
+
* Text for screen readers when loading starts
|
|
8
|
+
* @default "Γίνεται φόρτωση..."
|
|
9
|
+
*/
|
|
10
|
+
loadingText?: string;
|
|
11
|
+
/**
|
|
12
|
+
* loadingFinishedText prop is optional
|
|
13
|
+
* Text for screen readers when loading finishes
|
|
14
|
+
* @default "Η φόρτωση ολοκληρώθηκε."
|
|
15
|
+
*/
|
|
16
|
+
loadingFinishedText?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare const CircularProgress: React.ForwardRefExoticComponent<Omit<CircularProgressProps, "ref"> & React.RefAttributes<SVGElement>>;
|
|
19
|
+
export default CircularProgress;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/app/Loader/index.web.tsx"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "AAAA,cAAc;",
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nexport * from '@digigov/react-core/CircularProgressBase';\nimport CircularProgressBase, {\n CircularProgressBaseProps,\n} from '@digigov/react-core/CircularProgressBase';\nimport { useNotificationArea } from '@digigov/ui/app/hooks/useNotificationArea';\n\nexport interface CircularProgressProps extends CircularProgressBaseProps {\n /**\n * loadingText prop is optional\n * Text for screen readers when loading starts\n * @default \"\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...\"\n */\n loadingText?: string;\n /**\n * loadingFinishedText prop is optional\n * Text for screen readers when loading finishes\n * @default \"\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.\"\n */\n loadingFinishedText?: string;\n}\n\nexport const CircularProgress = React.forwardRef<\n SVGElement,\n CircularProgressProps\n>(function CircularProgress(\n {\n loadingText = '\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...',\n loadingFinishedText = '\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.',\n ...props\n },\n ref\n) {\n useNotificationArea(loadingText, loadingFinishedText);\n\n return <CircularProgressBase ref={ref} {...props} />;\n});\n\nexport default CircularProgress;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,WAAW;AAClB,cAAc;AACd,OAAO,0BAEA;AACP,SAAS,2BAA2B;AAiB7B,MAAM,mBAAmB,MAAM,WAGpC,SAASA,kBACT;AAAA,EACE,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,GAAG;AACL,GACA,KACA;AACA,sBAAoB,aAAa,mBAAmB;AAEpD,SAAO,oCAAC,wBAAqB,KAAW,GAAG,OAAO;AACpD,CAAC;AAED,IAAO,oBAAQ;",
|
|
6
|
+
"names": ["CircularProgress"]
|
|
7
7
|
}
|
|
@@ -9,8 +9,35 @@ declare namespace _default {
|
|
|
9
9
|
export let displayName: string;
|
|
10
10
|
}
|
|
11
11
|
export default _default;
|
|
12
|
+
export namespace WithControls {
|
|
13
|
+
function render(args: any): React.JSX.Element;
|
|
14
|
+
namespace args {
|
|
15
|
+
let color: string;
|
|
16
|
+
let showHint: boolean;
|
|
17
|
+
}
|
|
18
|
+
namespace argTypes {
|
|
19
|
+
export namespace color_1 {
|
|
20
|
+
namespace control {
|
|
21
|
+
let type: string;
|
|
22
|
+
}
|
|
23
|
+
let options: string[];
|
|
24
|
+
}
|
|
25
|
+
export { color_1 as color };
|
|
26
|
+
export namespace showHint_1 {
|
|
27
|
+
let control_1: string;
|
|
28
|
+
export { control_1 as control };
|
|
29
|
+
}
|
|
30
|
+
export { showHint_1 as showHint };
|
|
31
|
+
}
|
|
32
|
+
namespace parameters {
|
|
33
|
+
namespace controls {
|
|
34
|
+
let exclude: string[];
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
12
38
|
export { Default } from "@digigov/ui/app/Masthead/__stories__/Default";
|
|
13
39
|
export { Secondary } from "@digigov/ui/app/Masthead/__stories__/Secondary";
|
|
14
40
|
export { WithLogo } from "@digigov/ui/app/Masthead/__stories__/WithLogo";
|
|
15
41
|
export { WithElements } from "@digigov/ui/app/Masthead/__stories__/WithElements";
|
|
16
|
-
import Masthead from '@digigov/ui/app/Masthead';
|
|
42
|
+
import { Masthead } from '@digigov/ui/app/Masthead';
|
|
43
|
+
import React from 'react';
|
|
@@ -8,10 +8,29 @@ declare namespace _default {
|
|
|
8
8
|
export let displayName: string;
|
|
9
9
|
}
|
|
10
10
|
export default _default;
|
|
11
|
+
export namespace WithControls {
|
|
12
|
+
function render(args: any): React.JSX.Element;
|
|
13
|
+
namespace args {
|
|
14
|
+
let dense: boolean;
|
|
15
|
+
let gaps: boolean;
|
|
16
|
+
}
|
|
17
|
+
namespace argsTypes {
|
|
18
|
+
export namespace dense_1 {
|
|
19
|
+
let control: string;
|
|
20
|
+
}
|
|
21
|
+
export { dense_1 as dense };
|
|
22
|
+
export namespace gaps_1 {
|
|
23
|
+
let control_1: string;
|
|
24
|
+
export { control_1 as control };
|
|
25
|
+
}
|
|
26
|
+
export { gaps_1 as gaps };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
11
29
|
export { Default } from "@digigov/ui/app/Modal/__stories__/Default";
|
|
12
30
|
export { AlertDialog } from "@digigov/ui/app/Modal/__stories__/AlertDialog";
|
|
13
31
|
export { Dense } from "@digigov/ui/app/Modal/__stories__/Dense";
|
|
14
32
|
export { WithHooks } from "@digigov/ui/app/Modal/__stories__/WithHooks";
|
|
15
33
|
export { Auto } from "@digigov/ui/app/Modal/__stories__/Auto";
|
|
16
34
|
export { WithoutModalGaps } from "@digigov/ui/app/Modal/__stories__/WithoutModalGaps";
|
|
17
|
-
import Modal from '@digigov/ui/app/Modal';
|
|
35
|
+
import { Modal } from '@digigov/ui/app/Modal';
|
|
36
|
+
import React from 'react';
|
|
@@ -36,9 +36,9 @@ const ModalBase = React.forwardRef(
|
|
|
36
36
|
"aria-modal": "true",
|
|
37
37
|
...props
|
|
38
38
|
},
|
|
39
|
-
/* @__PURE__ */ React.createElement("span", { tabIndex: -1, ref: firstModalElement
|
|
39
|
+
/* @__PURE__ */ React.createElement("span", { tabIndex: -1, ref: firstModalElement }),
|
|
40
40
|
open && children,
|
|
41
|
-
/* @__PURE__ */ React.createElement("span", { tabIndex: 0, ref: lastModalElement
|
|
41
|
+
/* @__PURE__ */ React.createElement("span", { tabIndex: 0, ref: lastModalElement })
|
|
42
42
|
);
|
|
43
43
|
}
|
|
44
44
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/app/Modal/index.web.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback, useEffect, useRef } from 'react';\nimport ModalContainer, {\n ModalContainerProps,\n} from '@digigov/react-core/ModalContainer';\nimport useKeypress from '@digigov/ui/utils/hooks/useKeypress';\n\nexport interface ModalProps extends ModalContainerProps {\n onEscape?: () => void;\n}\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n function Modal({ ...props }, ref) {\n if (props.open) {\n return <ModalBase {...props} ref={ref} />;\n } else {\n return null;\n }\n }\n);\n\nexport const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(\n function ModalBase({ open, children, onEscape, ...props }, ref) {\n const firstModalElement = useRef<HTMLSpanElement>(null);\n const lastModalElement = useRef<HTMLSpanElement>(null);\n const handleFocus = useCallback(() => {\n firstModalElement.current?.focus();\n }, []);\n useKeypress('Escape', onEscape);\n useEffect(() => {\n const lastModalElementInstance = lastModalElement.current;\n handleFocus();\n lastModalElementInstance?.addEventListener('focus', handleFocus);\n return () => {\n lastModalElementInstance?.removeEventListener('focus', handleFocus);\n };\n }, []);\n return (\n <ModalContainer\n open={open}\n role=\"dialog\"\n ref={ref}\n aria-hidden=\"false\"\n aria-modal=\"true\"\n {...props}\n >\n <span tabIndex={-1} ref={firstModalElement}
|
|
5
|
-
"mappings": "AAAA,OAAO,SAAS,aAAa,WAAW,cAAc;AACtD,OAAO,oBAEA;AACP,OAAO,iBAAiB;AAMjB,MAAM,QAAQ,MAAM;AAAA,EACzB,SAASA,OAAM,EAAE,GAAG,MAAM,GAAG,KAAK;AAChC,QAAI,MAAM,MAAM;AACd,aAAO,oCAAC,aAAW,GAAG,OAAO,KAAU;AAAA,IACzC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,YAAY,MAAM;AAAA,EAC7B,SAASC,WAAU,EAAE,MAAM,UAAU,UAAU,GAAG,MAAM,GAAG,KAAK;AAC9D,UAAM,oBAAoB,OAAwB,IAAI;AACtD,UAAM,mBAAmB,OAAwB,IAAI;AACrD,UAAM,cAAc,YAAY,MAAM;AACpC,wBAAkB,SAAS,MAAM;AAAA,IACnC,GAAG,CAAC,CAAC;AACL,gBAAY,UAAU,QAAQ;AAC9B,cAAU,MAAM;AACd,YAAM,2BAA2B,iBAAiB;AAClD,kBAAY;AACZ,gCAA0B,iBAAiB,SAAS,WAAW;AAC/D,aAAO,MAAM;AACX,kCAA0B,oBAAoB,SAAS,WAAW;AAAA,MACpE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,eAAY;AAAA,QACZ,cAAW;AAAA,QACV,GAAG;AAAA;AAAA,MAEJ,oCAAC,UAAK,UAAU,IAAI,KAAK,mBAAmB
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useEffect, useRef } from 'react';\nimport ModalContainer, {\n ModalContainerProps,\n} from '@digigov/react-core/ModalContainer';\nimport useKeypress from '@digigov/ui/utils/hooks/useKeypress';\n\nexport interface ModalProps extends ModalContainerProps {\n onEscape?: () => void;\n}\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n function Modal({ ...props }, ref) {\n if (props.open) {\n return <ModalBase {...props} ref={ref} />;\n } else {\n return null;\n }\n }\n);\n\nexport const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(\n function ModalBase({ open, children, onEscape, ...props }, ref) {\n const firstModalElement = useRef<HTMLSpanElement>(null);\n const lastModalElement = useRef<HTMLSpanElement>(null);\n const handleFocus = useCallback(() => {\n firstModalElement.current?.focus();\n }, []);\n useKeypress('Escape', onEscape);\n useEffect(() => {\n const lastModalElementInstance = lastModalElement.current;\n handleFocus();\n lastModalElementInstance?.addEventListener('focus', handleFocus);\n return () => {\n lastModalElementInstance?.removeEventListener('focus', handleFocus);\n };\n }, []);\n return (\n <ModalContainer\n open={open}\n role=\"dialog\"\n ref={ref}\n aria-hidden=\"false\"\n aria-modal=\"true\"\n {...props}\n >\n <span tabIndex={-1} ref={firstModalElement} />\n {open && children}\n <span tabIndex={0} ref={lastModalElement} />\n </ModalContainer>\n );\n }\n);\n\nexport default Modal;\n"],
|
|
5
|
+
"mappings": "AAAA,OAAO,SAAS,aAAa,WAAW,cAAc;AACtD,OAAO,oBAEA;AACP,OAAO,iBAAiB;AAMjB,MAAM,QAAQ,MAAM;AAAA,EACzB,SAASA,OAAM,EAAE,GAAG,MAAM,GAAG,KAAK;AAChC,QAAI,MAAM,MAAM;AACd,aAAO,oCAAC,aAAW,GAAG,OAAO,KAAU;AAAA,IACzC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,YAAY,MAAM;AAAA,EAC7B,SAASC,WAAU,EAAE,MAAM,UAAU,UAAU,GAAG,MAAM,GAAG,KAAK;AAC9D,UAAM,oBAAoB,OAAwB,IAAI;AACtD,UAAM,mBAAmB,OAAwB,IAAI;AACrD,UAAM,cAAc,YAAY,MAAM;AACpC,wBAAkB,SAAS,MAAM;AAAA,IACnC,GAAG,CAAC,CAAC;AACL,gBAAY,UAAU,QAAQ;AAC9B,cAAU,MAAM;AACd,YAAM,2BAA2B,iBAAiB;AAClD,kBAAY;AACZ,gCAA0B,iBAAiB,SAAS,WAAW;AAC/D,aAAO,MAAM;AACX,kCAA0B,oBAAoB,SAAS,WAAW;AAAA,MACpE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,eAAY;AAAA,QACZ,cAAW;AAAA,QACV,GAAG;AAAA;AAAA,MAEJ,oCAAC,UAAK,UAAU,IAAI,KAAK,mBAAmB;AAAA,MAC3C,QAAQ;AAAA,MACT,oCAAC,UAAK,UAAU,GAAG,KAAK,kBAAkB;AAAA,IAC5C;AAAA,EAEJ;AACF;AAEA,IAAO,oBAAQ;",
|
|
6
6
|
"names": ["Modal", "ModalBase"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
2
|
+
const notificationAreaId = "loader-notification-area";
|
|
3
|
+
const activeSpinnersAttr = "data-active-spinners";
|
|
4
|
+
function generateUniqueId() {
|
|
5
|
+
return `spinner-${Math.random().toString(36).substring(2, 9)}`;
|
|
6
|
+
}
|
|
7
|
+
const getOrCreateNotificationArea = () => {
|
|
8
|
+
let element = document.getElementById(notificationAreaId);
|
|
9
|
+
if (!element) {
|
|
10
|
+
element = document.createElement("div");
|
|
11
|
+
element.id = notificationAreaId;
|
|
12
|
+
element.setAttribute("role", "status");
|
|
13
|
+
element.setAttribute("aria-live", "polite");
|
|
14
|
+
element.className = "ds-visually-hidden";
|
|
15
|
+
document.body.appendChild(element);
|
|
16
|
+
}
|
|
17
|
+
return element;
|
|
18
|
+
};
|
|
19
|
+
const useNotificationArea = (loadingText = "\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...", finishedText = "\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.") => {
|
|
20
|
+
const spinnerId = useRef(generateUniqueId());
|
|
21
|
+
const notificationRef = useRef(null);
|
|
22
|
+
const getActiveIds = useCallback(() => {
|
|
23
|
+
const current = notificationRef.current;
|
|
24
|
+
const value = current?.getAttribute(activeSpinnersAttr) || "";
|
|
25
|
+
return value.split(",").filter(Boolean);
|
|
26
|
+
}, [notificationRef]);
|
|
27
|
+
const setActiveSpinnerId = useCallback(() => {
|
|
28
|
+
const current = notificationRef.current;
|
|
29
|
+
if (current) {
|
|
30
|
+
const ids = new Set(getActiveIds());
|
|
31
|
+
ids.add(spinnerId.current);
|
|
32
|
+
current.setAttribute(activeSpinnersAttr, Array.from(ids).join(","));
|
|
33
|
+
}
|
|
34
|
+
}, [notificationRef, getActiveIds, spinnerId]);
|
|
35
|
+
const unsetActiveSpinnerId = useCallback(() => {
|
|
36
|
+
const current = notificationRef.current;
|
|
37
|
+
if (current) {
|
|
38
|
+
const ids = getActiveIds().filter((id) => id !== spinnerId.current);
|
|
39
|
+
current.setAttribute(activeSpinnersAttr, ids.join(","));
|
|
40
|
+
}
|
|
41
|
+
}, [notificationRef, getActiveIds, spinnerId]);
|
|
42
|
+
const setTextContent = (text) => {
|
|
43
|
+
if (notificationRef.current) {
|
|
44
|
+
notificationRef.current.textContent = text;
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (typeof document === "undefined") return;
|
|
49
|
+
notificationRef.current = getOrCreateNotificationArea();
|
|
50
|
+
setActiveSpinnerId();
|
|
51
|
+
setTextContent(loadingText);
|
|
52
|
+
return () => {
|
|
53
|
+
unsetActiveSpinnerId();
|
|
54
|
+
if (getActiveIds().length === 0) {
|
|
55
|
+
setTextContent(finishedText);
|
|
56
|
+
setTimeout(() => {
|
|
57
|
+
const el = notificationRef.current;
|
|
58
|
+
if (el && getActiveIds().length === 0) {
|
|
59
|
+
el.removeAttribute(activeSpinnersAttr);
|
|
60
|
+
el.textContent = "";
|
|
61
|
+
}
|
|
62
|
+
}, 1e3);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
}, [
|
|
66
|
+
loadingText,
|
|
67
|
+
finishedText,
|
|
68
|
+
setActiveSpinnerId,
|
|
69
|
+
unsetActiveSpinnerId,
|
|
70
|
+
getActiveIds
|
|
71
|
+
]);
|
|
72
|
+
};
|
|
73
|
+
export {
|
|
74
|
+
useNotificationArea
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=useNotificationArea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useNotificationArea: (loadingText?: string, finishedText?: string) => void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/app/hooks/useNotificationArea.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useCallback, useEffect, useRef } from 'react';\n\n// Unique ID for the aria-live notification area element.\nconst notificationAreaId = 'loader-notification-area';\n// Custom attribute to track active spinners\nconst activeSpinnersAttr = 'data-active-spinners';\n\n// Generates a random unique ID for each spinner instance.\nfunction generateUniqueId() {\n return `spinner-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n// Finds or creates the notification area element in the DOM.\nconst getOrCreateNotificationArea = (): HTMLElement => {\n let element = document.getElementById(notificationAreaId);\n\n // Create and append it to the DOM.\n if (!element) {\n element = document.createElement('div');\n element.id = notificationAreaId;\n element.setAttribute('role', 'status');\n element.setAttribute('aria-live', 'polite');\n element.className = 'ds-visually-hidden';\n document.body.appendChild(element);\n }\n\n return element;\n};\n\nexport const useNotificationArea = (\n loadingText = '\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...',\n finishedText = '\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.'\n) => {\n // Unique ID for this spinner.\n const spinnerId = useRef(generateUniqueId());\n // Reference to the notification area DOM element.\n const notificationRef = useRef<HTMLElement | null>(null);\n\n // Returns an array of active spinner IDs.\n const getActiveIds = useCallback(() => {\n const current = notificationRef.current;\n const value = current?.getAttribute(activeSpinnersAttr) || '';\n return value.split(',').filter(Boolean);\n }, [notificationRef]);\n\n // Adds this spinner's ID to the active list.\n const setActiveSpinnerId = useCallback(() => {\n const current = notificationRef.current;\n if (current) {\n const ids = new Set(getActiveIds());\n ids.add(spinnerId.current);\n current.setAttribute(activeSpinnersAttr, Array.from(ids).join(','));\n }\n }, [notificationRef, getActiveIds, spinnerId]);\n\n // Removes this spinner's ID from the active list.\n const unsetActiveSpinnerId = useCallback(() => {\n const current = notificationRef.current;\n if (current) {\n const ids = getActiveIds().filter((id) => id !== spinnerId.current);\n current.setAttribute(activeSpinnersAttr, ids.join(','));\n }\n }, [notificationRef, getActiveIds, spinnerId]);\n\n // Updates the text content of the aria-live region.\n const setTextContent = (text: string) => {\n if (notificationRef.current) {\n notificationRef.current.textContent = text;\n }\n };\n\n useEffect(() => {\n if (typeof document === 'undefined') return;\n\n // Set up notification area and mark this spinner as active.\n notificationRef.current = getOrCreateNotificationArea();\n setActiveSpinnerId();\n setTextContent(loadingText);\n\n // Cleanup when component unmounts.\n return () => {\n unsetActiveSpinnerId();\n\n // If no active spinners remain, announce \"finished\" and clear the text.\n if (getActiveIds().length === 0) {\n setTextContent(finishedText);\n\n // Give screen readers a chance to announce \"finished\" before clearing.\n setTimeout(() => {\n const el = notificationRef.current;\n if (el && getActiveIds().length === 0) {\n el.removeAttribute(activeSpinnersAttr);\n el.textContent = '';\n }\n }, 1000);\n }\n };\n }, [\n loadingText,\n finishedText,\n setActiveSpinnerId,\n unsetActiveSpinnerId,\n getActiveIds,\n ]);\n};\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,aAAa,WAAW,cAAc;AAG/C,MAAM,qBAAqB;AAE3B,MAAM,qBAAqB;AAG3B,SAAS,mBAAmB;AAC1B,SAAO,WAAW,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AAC9D;AAGA,MAAM,8BAA8B,MAAmB;AACrD,MAAI,UAAU,SAAS,eAAe,kBAAkB;AAGxD,MAAI,CAAC,SAAS;AACZ,cAAU,SAAS,cAAc,KAAK;AACtC,YAAQ,KAAK;AACb,YAAQ,aAAa,QAAQ,QAAQ;AACrC,YAAQ,aAAa,aAAa,QAAQ;AAC1C,YAAQ,YAAY;AACpB,aAAS,KAAK,YAAY,OAAO;AAAA,EACnC;AAEA,SAAO;AACT;AAEO,MAAM,sBAAsB,CACjC,cAAc,4FACd,eAAe,kIACZ;AAEH,QAAM,YAAY,OAAO,iBAAiB,CAAC;AAE3C,QAAM,kBAAkB,OAA2B,IAAI;AAGvD,QAAM,eAAe,YAAY,MAAM;AACrC,UAAM,UAAU,gBAAgB;AAChC,UAAM,QAAQ,SAAS,aAAa,kBAAkB,KAAK;AAC3D,WAAO,MAAM,MAAM,GAAG,EAAE,OAAO,OAAO;AAAA,EACxC,GAAG,CAAC,eAAe,CAAC;AAGpB,QAAM,qBAAqB,YAAY,MAAM;AAC3C,UAAM,UAAU,gBAAgB;AAChC,QAAI,SAAS;AACX,YAAM,MAAM,IAAI,IAAI,aAAa,CAAC;AAClC,UAAI,IAAI,UAAU,OAAO;AACzB,cAAQ,aAAa,oBAAoB,MAAM,KAAK,GAAG,EAAE,KAAK,GAAG,CAAC;AAAA,IACpE;AAAA,EACF,GAAG,CAAC,iBAAiB,cAAc,SAAS,CAAC;AAG7C,QAAM,uBAAuB,YAAY,MAAM;AAC7C,UAAM,UAAU,gBAAgB;AAChC,QAAI,SAAS;AACX,YAAM,MAAM,aAAa,EAAE,OAAO,CAAC,OAAO,OAAO,UAAU,OAAO;AAClE,cAAQ,aAAa,oBAAoB,IAAI,KAAK,GAAG,CAAC;AAAA,IACxD;AAAA,EACF,GAAG,CAAC,iBAAiB,cAAc,SAAS,CAAC;AAG7C,QAAM,iBAAiB,CAAC,SAAiB;AACvC,QAAI,gBAAgB,SAAS;AAC3B,sBAAgB,QAAQ,cAAc;AAAA,IACxC;AAAA,EACF;AAEA,YAAU,MAAM;AACd,QAAI,OAAO,aAAa,YAAa;AAGrC,oBAAgB,UAAU,4BAA4B;AACtD,uBAAmB;AACnB,mBAAe,WAAW;AAG1B,WAAO,MAAM;AACX,2BAAqB;AAGrB,UAAI,aAAa,EAAE,WAAW,GAAG;AAC/B,uBAAe,YAAY;AAG3B,mBAAW,MAAM;AACf,gBAAM,KAAK,gBAAgB;AAC3B,cAAI,MAAM,aAAa,EAAE,WAAW,GAAG;AACrC,eAAG,gBAAgB,kBAAkB;AACrC,eAAG,cAAc;AAAA,UACnB;AAAA,QACF,GAAG,GAAI;AAAA,MACT;AAAA,IACF;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/app/Loader/index.native.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AACzC,0BAAiC;AACjC,8BAA4B;AAGrB,MAAM,
|
|
4
|
+
"sourcesContent": ["import React, { useRef, useEffect } from 'react';\nimport { Animated, Easing } from 'react-native';\nimport Svg, { Circle } from 'react-native-svg';\nimport { CircularProgressBaseProps } from '@digigov/react-core/CircularProgressBase';\n\nexport const CircularProgress: React.FC<CircularProgressBaseProps> = ({\n size = 'md',\n color = 'primary',\n}) => {\n const sizes = {\n sm: 20,\n md: 40,\n lg: 50,\n };\n const strokeWidth = sizes[size] / 4;\n const radius = (sizes[size] - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const rotateAnim = useRef(new Animated.Value(0)).current;\n const dashAnim = useRef(new Animated.Value(circumference)).current;\n\n const progressColor = color === 'primary' ? '#003375' : '#fff';\n const backgroundColor = '#01b0f0';\n const duration = 4000;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(rotateAnim, {\n toValue: 1,\n duration: 10000,\n easing: Easing.linear,\n useNativeDriver: true,\n })\n ).start();\n }, [rotateAnim]);\n\n useEffect(() => {\n Animated.loop(\n Animated.sequence([\n Animated.timing(dashAnim, {\n toValue: 0,\n duration: duration * 0.4,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n Animated.timing(dashAnim, {\n toValue: circumference,\n duration: duration * 0.6,\n easing: Easing.inOut(Easing.ease),\n useNativeDriver: true,\n }),\n ])\n ).start();\n }, [dashAnim, duration, circumference]);\n\n const rotateInterpolate = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: ['0deg', '360deg'],\n });\n\n return (\n <Animated.View\n style={[\n {\n width: sizes[size],\n height: sizes[size],\n transform: [{ rotate: rotateInterpolate }],\n },\n ]}\n >\n <Svg\n width={sizes[size]}\n height={sizes[size]}\n viewBox={`0 0 ${sizes[size]} ${sizes[size]}`}\n >\n <Circle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={backgroundColor}\n strokeWidth={strokeWidth}\n fill=\"none\"\n />\n <AnimatedCircle\n cx={sizes[size] / 2}\n cy={sizes[size] / 2}\n r={radius}\n stroke={progressColor}\n strokeWidth={strokeWidth}\n strokeDasharray={`${circumference}`}\n strokeDashoffset={dashAnim}\n fill=\"none\"\n />\n </Svg>\n </Animated.View>\n );\n};\n\nconst AnimatedCircle = Animated.createAnimatedComponent(Circle);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyC;AACzC,0BAAiC;AACjC,8BAA4B;AAGrB,MAAM,mBAAwD,CAAC;AAAA,EACpE,OAAO;AAAA,EACP,QAAQ;AACV,MAAM;AACJ,QAAM,QAAQ;AAAA,IACZ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACN;AACA,QAAM,cAAc,MAAM,IAAI,IAAI;AAClC,QAAM,UAAU,MAAM,IAAI,IAAI,eAAe;AAC7C,QAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,QAAM,iBAAa,qBAAO,IAAI,6BAAS,MAAM,CAAC,CAAC,EAAE;AACjD,QAAM,eAAW,qBAAO,IAAI,6BAAS,MAAM,aAAa,CAAC,EAAE;AAE3D,QAAM,gBAAgB,UAAU,YAAY,YAAY;AACxD,QAAM,kBAAkB;AACxB,QAAM,WAAW;AAEjB,8BAAU,MAAM;AACd,iCAAS;AAAA,MACP,6BAAS,OAAO,YAAY;AAAA,QAC1B,SAAS;AAAA,QACT,UAAU;AAAA,QACV,QAAQ,2BAAO;AAAA,QACf,iBAAiB;AAAA,MACnB,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,CAAC;AAEf,8BAAU,MAAM;AACd,iCAAS;AAAA,MACP,6BAAS,SAAS;AAAA,QAChB,6BAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,2BAAO,MAAM,2BAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,QACD,6BAAS,OAAO,UAAU;AAAA,UACxB,SAAS;AAAA,UACT,UAAU,WAAW;AAAA,UACrB,QAAQ,2BAAO,MAAM,2BAAO,IAAI;AAAA,UAChC,iBAAiB;AAAA,QACnB,CAAC;AAAA,MACH,CAAC;AAAA,IACH,EAAE,MAAM;AAAA,EACV,GAAG,CAAC,UAAU,UAAU,aAAa,CAAC;AAEtC,QAAM,oBAAoB,WAAW,YAAY;AAAA,IAC/C,YAAY,CAAC,GAAG,CAAC;AAAA,IACjB,aAAa,CAAC,QAAQ,QAAQ;AAAA,EAChC,CAAC;AAED,SACE,6BAAAA,QAAA;AAAA,IAAC,6BAAS;AAAA,IAAT;AAAA,MACC,OAAO;AAAA,QACL;AAAA,UACE,OAAO,MAAM,IAAI;AAAA,UACjB,QAAQ,MAAM,IAAI;AAAA,UAClB,WAAW,CAAC,EAAE,QAAQ,kBAAkB,CAAC;AAAA,QAC3C;AAAA,MACF;AAAA;AAAA,IAEA,6BAAAA,QAAA;AAAA,MAAC,wBAAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM,IAAI;AAAA,QACjB,QAAQ,MAAM,IAAI;AAAA,QAClB,SAAS,OAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC;AAAA;AAAA,MAE1C,6BAAAD,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,MAAK;AAAA;AAAA,MACP;AAAA,MACA,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,IAAI,MAAM,IAAI,IAAI;AAAA,UAClB,GAAG;AAAA,UACH,QAAQ;AAAA,UACR;AAAA,UACA,iBAAiB,GAAG,aAAa;AAAA,UACjC,kBAAkB;AAAA,UAClB,MAAK;AAAA;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAEJ;AAEA,MAAM,iBAAiB,6BAAS,wBAAwB,8BAAM;",
|
|
6
6
|
"names": ["React", "Svg"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
1
2
|
var __defProp = Object.defineProperty;
|
|
2
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
5
11
|
var __copyProps = (to, from, except, desc) => {
|
|
6
12
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
13
|
for (let key of __getOwnPropNames(from))
|
|
@@ -11,12 +17,37 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
11
17
|
return to;
|
|
12
18
|
};
|
|
13
19
|
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
14
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
15
29
|
var index_web_exports = {};
|
|
30
|
+
__export(index_web_exports, {
|
|
31
|
+
CircularProgress: () => CircularProgress,
|
|
32
|
+
default: () => index_web_default
|
|
33
|
+
});
|
|
16
34
|
module.exports = __toCommonJS(index_web_exports);
|
|
17
|
-
|
|
35
|
+
var import_react = __toESM(require("react"));
|
|
36
|
+
__reExport(index_web_exports, require("@digigov/react-core/CircularProgressBase"), module.exports);
|
|
37
|
+
var import_CircularProgressBase = __toESM(require("@digigov/react-core/CircularProgressBase"));
|
|
38
|
+
var import_useNotificationArea = require("@digigov/ui/app/hooks/useNotificationArea");
|
|
39
|
+
const CircularProgress = import_react.default.forwardRef(function CircularProgress2({
|
|
40
|
+
loadingText = "\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...",
|
|
41
|
+
loadingFinishedText = "\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.",
|
|
42
|
+
...props
|
|
43
|
+
}, ref) {
|
|
44
|
+
(0, import_useNotificationArea.useNotificationArea)(loadingText, loadingFinishedText);
|
|
45
|
+
return /* @__PURE__ */ import_react.default.createElement(import_CircularProgressBase.default, { ref, ...props });
|
|
46
|
+
});
|
|
47
|
+
var index_web_default = CircularProgress;
|
|
18
48
|
// Annotate the CommonJS export names for ESM import in node:
|
|
19
49
|
0 && (module.exports = {
|
|
20
|
-
|
|
50
|
+
CircularProgress,
|
|
51
|
+
...require("@digigov/react-core/CircularProgressBase")
|
|
21
52
|
});
|
|
22
53
|
//# sourceMappingURL=index.web.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/app/Loader/index.web.tsx"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": []
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nexport * from '@digigov/react-core/CircularProgressBase';\nimport CircularProgressBase, {\n CircularProgressBaseProps,\n} from '@digigov/react-core/CircularProgressBase';\nimport { useNotificationArea } from '@digigov/ui/app/hooks/useNotificationArea';\n\nexport interface CircularProgressProps extends CircularProgressBaseProps {\n /**\n * loadingText prop is optional\n * Text for screen readers when loading starts\n * @default \"\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...\"\n */\n loadingText?: string;\n /**\n * loadingFinishedText prop is optional\n * Text for screen readers when loading finishes\n * @default \"\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.\"\n */\n loadingFinishedText?: string;\n}\n\nexport const CircularProgress = React.forwardRef<\n SVGElement,\n CircularProgressProps\n>(function CircularProgress(\n {\n loadingText = '\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...',\n loadingFinishedText = '\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.',\n ...props\n },\n ref\n) {\n useNotificationArea(loadingText, loadingFinishedText);\n\n return <CircularProgressBase ref={ref} {...props} />;\n});\n\nexport default CircularProgress;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,8BAAc,qDADd;AAEA,kCAEO;AACP,iCAAoC;AAiB7B,MAAM,mBAAmB,aAAAA,QAAM,WAGpC,SAASC,kBACT;AAAA,EACE,cAAc;AAAA,EACd,sBAAsB;AAAA,EACtB,GAAG;AACL,GACA,KACA;AACA,sDAAoB,aAAa,mBAAmB;AAEpD,SAAO,6BAAAD,QAAA,cAAC,4BAAAE,SAAA,EAAqB,KAAW,GAAG,OAAO;AACpD,CAAC;AAED,IAAO,oBAAQ;",
|
|
6
|
+
"names": ["React", "CircularProgress", "CircularProgressBase"]
|
|
7
7
|
}
|
|
@@ -70,9 +70,9 @@ const ModalBase = import_react.default.forwardRef(
|
|
|
70
70
|
"aria-modal": "true",
|
|
71
71
|
...props
|
|
72
72
|
},
|
|
73
|
-
/* @__PURE__ */ import_react.default.createElement("span", { tabIndex: -1, ref: firstModalElement
|
|
73
|
+
/* @__PURE__ */ import_react.default.createElement("span", { tabIndex: -1, ref: firstModalElement }),
|
|
74
74
|
open && children,
|
|
75
|
-
/* @__PURE__ */ import_react.default.createElement("span", { tabIndex: 0, ref: lastModalElement
|
|
75
|
+
/* @__PURE__ */ import_react.default.createElement("span", { tabIndex: 0, ref: lastModalElement })
|
|
76
76
|
);
|
|
77
77
|
}
|
|
78
78
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/app/Modal/index.web.tsx"],
|
|
4
|
-
"sourcesContent": ["import React, { useCallback, useEffect, useRef } from 'react';\nimport ModalContainer, {\n ModalContainerProps,\n} from '@digigov/react-core/ModalContainer';\nimport useKeypress from '@digigov/ui/utils/hooks/useKeypress';\n\nexport interface ModalProps extends ModalContainerProps {\n onEscape?: () => void;\n}\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n function Modal({ ...props }, ref) {\n if (props.open) {\n return <ModalBase {...props} ref={ref} />;\n } else {\n return null;\n }\n }\n);\n\nexport const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(\n function ModalBase({ open, children, onEscape, ...props }, ref) {\n const firstModalElement = useRef<HTMLSpanElement>(null);\n const lastModalElement = useRef<HTMLSpanElement>(null);\n const handleFocus = useCallback(() => {\n firstModalElement.current?.focus();\n }, []);\n useKeypress('Escape', onEscape);\n useEffect(() => {\n const lastModalElementInstance = lastModalElement.current;\n handleFocus();\n lastModalElementInstance?.addEventListener('focus', handleFocus);\n return () => {\n lastModalElementInstance?.removeEventListener('focus', handleFocus);\n };\n }, []);\n return (\n <ModalContainer\n open={open}\n role=\"dialog\"\n ref={ref}\n aria-hidden=\"false\"\n aria-modal=\"true\"\n {...props}\n >\n <span tabIndex={-1} ref={firstModalElement}
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsD;AACtD,4BAEO;AACP,yBAAwB;AAMjB,MAAM,QAAQ,aAAAA,QAAM;AAAA,EACzB,SAASC,OAAM,EAAE,GAAG,MAAM,GAAG,KAAK;AAChC,QAAI,MAAM,MAAM;AACd,aAAO,6BAAAD,QAAA,cAAC,aAAW,GAAG,OAAO,KAAU;AAAA,IACzC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,YAAY,aAAAA,QAAM;AAAA,EAC7B,SAASE,WAAU,EAAE,MAAM,UAAU,UAAU,GAAG,MAAM,GAAG,KAAK;AAC9D,UAAM,wBAAoB,qBAAwB,IAAI;AACtD,UAAM,uBAAmB,qBAAwB,IAAI;AACrD,UAAM,kBAAc,0BAAY,MAAM;AACpC,wBAAkB,SAAS,MAAM;AAAA,IACnC,GAAG,CAAC,CAAC;AACL,2BAAAC,SAAY,UAAU,QAAQ;AAC9B,gCAAU,MAAM;AACd,YAAM,2BAA2B,iBAAiB;AAClD,kBAAY;AACZ,gCAA0B,iBAAiB,SAAS,WAAW;AAC/D,aAAO,MAAM;AACX,kCAA0B,oBAAoB,SAAS,WAAW;AAAA,MACpE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,WACE,6BAAAH,QAAA;AAAA,MAAC,sBAAAI;AAAA,MAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,eAAY;AAAA,QACZ,cAAW;AAAA,QACV,GAAG;AAAA;AAAA,MAEJ,6BAAAJ,QAAA,cAAC,UAAK,UAAU,IAAI,KAAK,mBAAmB
|
|
4
|
+
"sourcesContent": ["import React, { useCallback, useEffect, useRef } from 'react';\nimport ModalContainer, {\n ModalContainerProps,\n} from '@digigov/react-core/ModalContainer';\nimport useKeypress from '@digigov/ui/utils/hooks/useKeypress';\n\nexport interface ModalProps extends ModalContainerProps {\n onEscape?: () => void;\n}\n\nexport const Modal = React.forwardRef<HTMLDivElement, ModalProps>(\n function Modal({ ...props }, ref) {\n if (props.open) {\n return <ModalBase {...props} ref={ref} />;\n } else {\n return null;\n }\n }\n);\n\nexport const ModalBase = React.forwardRef<HTMLDivElement, ModalProps>(\n function ModalBase({ open, children, onEscape, ...props }, ref) {\n const firstModalElement = useRef<HTMLSpanElement>(null);\n const lastModalElement = useRef<HTMLSpanElement>(null);\n const handleFocus = useCallback(() => {\n firstModalElement.current?.focus();\n }, []);\n useKeypress('Escape', onEscape);\n useEffect(() => {\n const lastModalElementInstance = lastModalElement.current;\n handleFocus();\n lastModalElementInstance?.addEventListener('focus', handleFocus);\n return () => {\n lastModalElementInstance?.removeEventListener('focus', handleFocus);\n };\n }, []);\n return (\n <ModalContainer\n open={open}\n role=\"dialog\"\n ref={ref}\n aria-hidden=\"false\"\n aria-modal=\"true\"\n {...props}\n >\n <span tabIndex={-1} ref={firstModalElement} />\n {open && children}\n <span tabIndex={0} ref={lastModalElement} />\n </ModalContainer>\n );\n }\n);\n\nexport default Modal;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsD;AACtD,4BAEO;AACP,yBAAwB;AAMjB,MAAM,QAAQ,aAAAA,QAAM;AAAA,EACzB,SAASC,OAAM,EAAE,GAAG,MAAM,GAAG,KAAK;AAChC,QAAI,MAAM,MAAM;AACd,aAAO,6BAAAD,QAAA,cAAC,aAAW,GAAG,OAAO,KAAU;AAAA,IACzC,OAAO;AACL,aAAO;AAAA,IACT;AAAA,EACF;AACF;AAEO,MAAM,YAAY,aAAAA,QAAM;AAAA,EAC7B,SAASE,WAAU,EAAE,MAAM,UAAU,UAAU,GAAG,MAAM,GAAG,KAAK;AAC9D,UAAM,wBAAoB,qBAAwB,IAAI;AACtD,UAAM,uBAAmB,qBAAwB,IAAI;AACrD,UAAM,kBAAc,0BAAY,MAAM;AACpC,wBAAkB,SAAS,MAAM;AAAA,IACnC,GAAG,CAAC,CAAC;AACL,2BAAAC,SAAY,UAAU,QAAQ;AAC9B,gCAAU,MAAM;AACd,YAAM,2BAA2B,iBAAiB;AAClD,kBAAY;AACZ,gCAA0B,iBAAiB,SAAS,WAAW;AAC/D,aAAO,MAAM;AACX,kCAA0B,oBAAoB,SAAS,WAAW;AAAA,MACpE;AAAA,IACF,GAAG,CAAC,CAAC;AACL,WACE,6BAAAH,QAAA;AAAA,MAAC,sBAAAI;AAAA,MAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL;AAAA,QACA,eAAY;AAAA,QACZ,cAAW;AAAA,QACV,GAAG;AAAA;AAAA,MAEJ,6BAAAJ,QAAA,cAAC,UAAK,UAAU,IAAI,KAAK,mBAAmB;AAAA,MAC3C,QAAQ;AAAA,MACT,6BAAAA,QAAA,cAAC,UAAK,UAAU,GAAG,KAAK,kBAAkB;AAAA,IAC5C;AAAA,EAEJ;AACF;AAEA,IAAO,oBAAQ;",
|
|
6
6
|
"names": ["React", "Modal", "ModalBase", "useKeypress", "ModalContainer"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var useNotificationArea_exports = {};
|
|
19
|
+
__export(useNotificationArea_exports, {
|
|
20
|
+
useNotificationArea: () => useNotificationArea
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(useNotificationArea_exports);
|
|
23
|
+
var import_react = require("react");
|
|
24
|
+
const notificationAreaId = "loader-notification-area";
|
|
25
|
+
const activeSpinnersAttr = "data-active-spinners";
|
|
26
|
+
function generateUniqueId() {
|
|
27
|
+
return `spinner-${Math.random().toString(36).substring(2, 9)}`;
|
|
28
|
+
}
|
|
29
|
+
const getOrCreateNotificationArea = () => {
|
|
30
|
+
let element = document.getElementById(notificationAreaId);
|
|
31
|
+
if (!element) {
|
|
32
|
+
element = document.createElement("div");
|
|
33
|
+
element.id = notificationAreaId;
|
|
34
|
+
element.setAttribute("role", "status");
|
|
35
|
+
element.setAttribute("aria-live", "polite");
|
|
36
|
+
element.className = "ds-visually-hidden";
|
|
37
|
+
document.body.appendChild(element);
|
|
38
|
+
}
|
|
39
|
+
return element;
|
|
40
|
+
};
|
|
41
|
+
const useNotificationArea = (loadingText = "\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...", finishedText = "\u0397 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03BF\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03B8\u03B7\u03BA\u03B5.") => {
|
|
42
|
+
const spinnerId = (0, import_react.useRef)(generateUniqueId());
|
|
43
|
+
const notificationRef = (0, import_react.useRef)(null);
|
|
44
|
+
const getActiveIds = (0, import_react.useCallback)(() => {
|
|
45
|
+
const current = notificationRef.current;
|
|
46
|
+
const value = current?.getAttribute(activeSpinnersAttr) || "";
|
|
47
|
+
return value.split(",").filter(Boolean);
|
|
48
|
+
}, [notificationRef]);
|
|
49
|
+
const setActiveSpinnerId = (0, import_react.useCallback)(() => {
|
|
50
|
+
const current = notificationRef.current;
|
|
51
|
+
if (current) {
|
|
52
|
+
const ids = new Set(getActiveIds());
|
|
53
|
+
ids.add(spinnerId.current);
|
|
54
|
+
current.setAttribute(activeSpinnersAttr, Array.from(ids).join(","));
|
|
55
|
+
}
|
|
56
|
+
}, [notificationRef, getActiveIds, spinnerId]);
|
|
57
|
+
const unsetActiveSpinnerId = (0, import_react.useCallback)(() => {
|
|
58
|
+
const current = notificationRef.current;
|
|
59
|
+
if (current) {
|
|
60
|
+
const ids = getActiveIds().filter((id) => id !== spinnerId.current);
|
|
61
|
+
current.setAttribute(activeSpinnersAttr, ids.join(","));
|
|
62
|
+
}
|
|
63
|
+
}, [notificationRef, getActiveIds, spinnerId]);
|
|
64
|
+
const setTextContent = (text) => {
|
|
65
|
+
if (notificationRef.current) {
|
|
66
|
+
notificationRef.current.textContent = text;
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
(0, import_react.useEffect)(() => {
|
|
70
|
+
if (typeof document === "undefined") return;
|
|
71
|
+
notificationRef.current = getOrCreateNotificationArea();
|
|
72
|
+
setActiveSpinnerId();
|
|
73
|
+
setTextContent(loadingText);
|
|
74
|
+
return () => {
|
|
75
|
+
unsetActiveSpinnerId();
|
|
76
|
+
if (getActiveIds().length === 0) {
|
|
77
|
+
setTextContent(finishedText);
|
|
78
|
+
setTimeout(() => {
|
|
79
|
+
const el = notificationRef.current;
|
|
80
|
+
if (el && getActiveIds().length === 0) {
|
|
81
|
+
el.removeAttribute(activeSpinnersAttr);
|
|
82
|
+
el.textContent = "";
|
|
83
|
+
}
|
|
84
|
+
}, 1e3);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
}, [
|
|
88
|
+
loadingText,
|
|
89
|
+
finishedText,
|
|
90
|
+
setActiveSpinnerId,
|
|
91
|
+
unsetActiveSpinnerId,
|
|
92
|
+
getActiveIds
|
|
93
|
+
]);
|
|
94
|
+
};
|
|
95
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
96
|
+
0 && (module.exports = {
|
|
97
|
+
useNotificationArea
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=useNotificationArea.js.map
|