@govuk-one-login/frontend-ui 1.2.0 → 1.3.0

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 (42) hide show
  1. package/README.md +3 -3
  2. package/build/all.css +1 -1
  3. package/build/cjs/index-fe.cjs +102 -116
  4. package/build/cjs/index.cjs +6 -4
  5. package/build/cjs/index.d.ts +1 -37
  6. package/build/cjs/index.d.ts.map +1 -1
  7. package/build/cjs/typescript/spinner.d.ts +6 -0
  8. package/build/cjs/typescript/spinner.d.ts.map +1 -0
  9. package/build/cjs/utils/types.d.ts +51 -0
  10. package/build/cjs/utils/types.d.ts.map +1 -0
  11. package/build/components/bases/auth/auth-base.njk +1 -1
  12. package/build/components/bases/home/home-base.njk +1 -1
  13. package/build/components/bases/identity/identity-base-form.njk +1 -1
  14. package/build/components/bases/identity/identity-base-page.njk +10 -1
  15. package/build/components/bases/ipv-core/ipv-core-base.njk +1 -1
  16. package/build/components/bases/mobile/mobile-base.njk +1 -1
  17. package/build/components/cookie-banner/template.njk +12 -3
  18. package/build/components/footer/_index.scss +9 -0
  19. package/build/components/footer/template.njk +1 -1
  20. package/build/components/header/_index.scss +63 -34
  21. package/build/components/header/template.njk +4 -4
  22. package/build/components/phase-banner/_index.scss +6 -0
  23. package/build/components/phase-banner/template.njk +2 -1
  24. package/build/components/skip-link/template.njk +5 -1
  25. package/build/esm/index-fe.js +102 -116
  26. package/build/esm/index.d.ts +1 -37
  27. package/build/esm/index.d.ts.map +1 -1
  28. package/build/esm/index.js +6 -4
  29. package/build/esm/typescript/spinner.d.ts +6 -0
  30. package/build/esm/typescript/spinner.d.ts.map +1 -0
  31. package/build/esm/utils/types.d.ts +51 -0
  32. package/build/esm/utils/types.d.ts.map +1 -0
  33. package/package.json +11 -6
  34. package/build/cjs/__tests__/index.spec.d.ts +0 -2
  35. package/build/cjs/__tests__/index.spec.d.ts.map +0 -1
  36. package/build/cjs/__tests__/logger.spec.d.ts +0 -2
  37. package/build/cjs/__tests__/logger.spec.d.ts.map +0 -1
  38. package/build/components/spinner/javascript/spinner.js +0 -118
  39. package/build/esm/__tests__/index.spec.d.ts +0 -2
  40. package/build/esm/__tests__/index.spec.d.ts.map +0 -1
  41. package/build/esm/__tests__/logger.spec.d.ts +0 -2
  42. package/build/esm/__tests__/logger.spec.d.ts.map +0 -1
@@ -1,118 +0,0 @@
1
- export const WaitInteractions = (() => {
2
- const content = {
3
- initial: {
4
- spinnerState: "pending",
5
- },
6
- complete: { spinnerState: "completed" },
7
- };
8
-
9
- const state = {
10
- spinnerState: content.initial.spinnerState,
11
- done: false,
12
- virtualDom: [],
13
- };
14
-
15
- const timers = {};
16
-
17
- const createVirtualDom = () => {
18
- const initialState = [
19
- {
20
- nodeName: "div",
21
- id: "spinner",
22
- classes: ["spinner", "spinner__pending", "centre", state.spinnerState],
23
- },
24
- ];
25
-
26
- return initialState;
27
- };
28
-
29
- const vDomHasChanged = (currentVDom, nextVDom) => {
30
- return JSON.stringify(currentVDom) !== JSON.stringify(nextVDom);
31
- };
32
-
33
- const updateDom = () => {
34
- const vDomChanged = vDomHasChanged(state.virtualDom, createVirtualDom());
35
- const container = document.getElementById("spinner-container");
36
-
37
- if (vDomChanged) {
38
- state.virtualDom = createVirtualDom();
39
- const elements = state?.virtualDom?.map(convert);
40
- container?.replaceChildren(...elements);
41
- }
42
-
43
- if (state.error) {
44
- container?.classList.add("spinner-container__error");
45
- }
46
-
47
- if (state.done) {
48
- clearInterval(timers.updateDomTimer);
49
- }
50
- };
51
-
52
- const reflectCompletion = () => {
53
- state.spinnerState = "spinner__ready";
54
- state.spinnerStateText = content.complete.spinnerState;
55
- state.done = true;
56
- };
57
-
58
- const reflectError = () => {
59
- state.spinnerState = "spinner__failed";
60
- state.done = true;
61
- state.error = true;
62
- };
63
-
64
- const convert = (node) => {
65
- const el = document.createElement(node.nodeName);
66
- if (node.text) el.textContent = node.text;
67
- if (node.innerHTML) el.innerHTML = node.innerHTML;
68
- if (node.id) el.id = node.id;
69
- if (node.classes) el.classList.add(...node.classes);
70
- return el;
71
- };
72
-
73
- const notInErrorOrDoneState = () => {
74
- return !(state.done || state.error);
75
- };
76
-
77
- const requestIDProcessingStatus = async () => {
78
- const apiRoute =
79
- document?.getElementById("spinner-container")?.dataset.apiRoute;
80
- try {
81
- const response = await fetch(apiRoute);
82
-
83
- if (response.status !== 200) {
84
- throw new Error(`Status code ${response.status} received`);
85
- }
86
-
87
- const data = await response.json();
88
-
89
- if (data.status === "Clear to proceed") {
90
- reflectCompletion();
91
- } else if (notInErrorOrDoneState()) {
92
- setTimeout(async () => {
93
- await requestIDProcessingStatus();
94
- }, 1000);
95
- }
96
- } catch (e) {
97
- console.log(e);
98
- reflectError();
99
- }
100
- };
101
-
102
- return {
103
- state: state,
104
- init: () => {
105
- timers.updateDomTimer = setInterval(updateDom, 2000);
106
-
107
- timers.abortUnresponsiveRequest = setTimeout(() => {
108
- reflectError();
109
- }, 15000);
110
-
111
- updateDom();
112
-
113
- requestIDProcessingStatus().then(() => {
114
- updateDom();
115
- });
116
- },
117
- };
118
- })();
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/index.spec.ts"],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=logger.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/logger.spec.ts"],"names":[],"mappings":""}