@abgov/jsonforms-components 2.32.5 → 2.32.7
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/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as runtime from 'react/jsx-runtime';
|
|
2
2
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
import React, { createContext, useContext, useReducer, useMemo, useEffect, useState, useRef, useCallback } from 'react';
|
|
4
|
-
import { GoAFormItem, GoAInput, GoATextArea, GoACallout, GoAInputDate, GoAInputDateTime, GoAInputTime, GoARadioGroup, GoARadioItem, GoACheckbox, GoAIcon, GoAGrid, GoAFormStepper, GoAFormStep, GoAPages, GoAButton, GoAModal, GoAButtonGroup,
|
|
4
|
+
import { GoAFormItem, GoAInput, GoATextArea, GoACallout, GoAInputDate, GoAInputDateTime, GoAInputTime, GoARadioGroup, GoARadioItem, GoACheckbox, GoAIcon, GoAGrid, GoAFormStepper, GoAFormStep, GoAPages, GoAButton, GoAModal, GoAButtonGroup, GoABadge, GoAText, GoATable, GoAIconButton, GoAFileUploadInput, GoACircularProgress, GoAContainer, GoADropdown, GoADropdownItem, GoADetails, GoASpinner } from '@abgov/react-components';
|
|
5
5
|
import styled from 'styled-components';
|
|
6
6
|
import axios from 'axios';
|
|
7
7
|
import get$1 from 'lodash/get';
|
|
@@ -7116,7 +7116,13 @@ let _$6 = t => t,
|
|
|
7116
7116
|
_t19,
|
|
7117
7117
|
_t20,
|
|
7118
7118
|
_t21,
|
|
7119
|
-
_t22
|
|
7119
|
+
_t22,
|
|
7120
|
+
_t23,
|
|
7121
|
+
_t24,
|
|
7122
|
+
_t25,
|
|
7123
|
+
_t26,
|
|
7124
|
+
_t27,
|
|
7125
|
+
_t28;
|
|
7120
7126
|
const ReviewItem = styled.div(_t$6 || (_t$6 = _$6`
|
|
7121
7127
|
display: flex;
|
|
7122
7128
|
flex-direction: column;
|
|
@@ -7124,7 +7130,63 @@ const ReviewItem = styled.div(_t$6 || (_t$6 = _$6`
|
|
|
7124
7130
|
display: none;
|
|
7125
7131
|
}
|
|
7126
7132
|
`));
|
|
7127
|
-
const
|
|
7133
|
+
const CompletionStatus = styled.div(_t2$4 || (_t2$4 = _$6`
|
|
7134
|
+
padding: 0;
|
|
7135
|
+
margin: 0;
|
|
7136
|
+
padding-top: var(--goa-space-xl);
|
|
7137
|
+
|
|
7138
|
+
display: flex;
|
|
7139
|
+
flex-direction: column;
|
|
7140
|
+
`));
|
|
7141
|
+
const BarTop = styled.div(_t3$3 || (_t3$3 = _$6`
|
|
7142
|
+
display: flex;
|
|
7143
|
+
|
|
7144
|
+
|
|
7145
|
+
.progress-text {
|
|
7146
|
+
margin-left: auto;
|
|
7147
|
+
}
|
|
7148
|
+
`));
|
|
7149
|
+
const Bar = styled.div(_t4$3 || (_t4$3 = _$6`
|
|
7150
|
+
display: flex;
|
|
7151
|
+
flex-direction: row;
|
|
7152
|
+
|
|
7153
|
+
.progress-container {
|
|
7154
|
+
align-items: flex-start;
|
|
7155
|
+
width: 100%;
|
|
7156
|
+
|
|
7157
|
+
height: 4px;
|
|
7158
|
+
background-color: #e0e0e0;
|
|
7159
|
+
border-radius: 4;
|
|
7160
|
+
overflow: hidden;
|
|
7161
|
+
position: relative;
|
|
7162
|
+
border: 1px solid #ccc;
|
|
7163
|
+
margin-bottom: 20px;
|
|
7164
|
+
}
|
|
7165
|
+
|
|
7166
|
+
.progress-bar {
|
|
7167
|
+
width: 60%;
|
|
7168
|
+
height: 100%;
|
|
7169
|
+
background-color: #004abf;
|
|
7170
|
+
border-radius: 4;
|
|
7171
|
+
position: relative;
|
|
7172
|
+
display: flex;
|
|
7173
|
+
align-items: center;
|
|
7174
|
+
justify-content: flex-end;
|
|
7175
|
+
|
|
7176
|
+
box-sizing: border-box;
|
|
7177
|
+
}
|
|
7178
|
+
|
|
7179
|
+
|
|
7180
|
+
`));
|
|
7181
|
+
styled.div(_t5$3 || (_t5$3 = _$6``));
|
|
7182
|
+
const BadgeWrapper = styled.div(_t6$2 || (_t6$2 = _$6`
|
|
7183
|
+
margin-left: 10px;
|
|
7184
|
+
margin-top: 7px;
|
|
7185
|
+
`));
|
|
7186
|
+
const CompletionTextHeader = styled.h3(_t7$1 || (_t7$1 = _$6`
|
|
7187
|
+
display: flex;
|
|
7188
|
+
`));
|
|
7189
|
+
const ReviewItemSection = styled.div(_t8$1 || (_t8$1 = _$6`
|
|
7128
7190
|
margin-bottom: var(--goa-space-m);
|
|
7129
7191
|
padding: var(--goa-space-xl) var(--goa-space-2xl);
|
|
7130
7192
|
border: 1px solid var(--goa-color-greyscale-300);
|
|
@@ -7134,18 +7196,18 @@ const ReviewItemSection = styled.div(_t2$4 || (_t2$4 = _$6`
|
|
|
7134
7196
|
max-width: 1600px;
|
|
7135
7197
|
}
|
|
7136
7198
|
`));
|
|
7137
|
-
const ReviewItemHeader = styled.div(
|
|
7199
|
+
const ReviewItemHeader = styled.div(_t9$1 || (_t9$1 = _$6`
|
|
7138
7200
|
display: flex;
|
|
7139
7201
|
align-items: center;
|
|
7140
7202
|
justify-content: space-between;
|
|
7141
7203
|
margin-bottom: var(--goa-space-xl);
|
|
7142
7204
|
`));
|
|
7143
|
-
const ReviewItemTitle = styled.div(
|
|
7205
|
+
const ReviewItemTitle = styled.div(_t0$1 || (_t0$1 = _$6`
|
|
7144
7206
|
font-size: var(--goa-space-l);
|
|
7145
7207
|
line-height: var(--goa-space-xl);
|
|
7146
7208
|
font-weight: 300;
|
|
7147
7209
|
`));
|
|
7148
|
-
const Anchor = styled.div(
|
|
7210
|
+
const Anchor = styled.div(_t1$1 || (_t1$1 = _$6`
|
|
7149
7211
|
color: #0070c4;
|
|
7150
7212
|
text-decoration: underline;
|
|
7151
7213
|
outline: none;
|
|
@@ -7156,20 +7218,20 @@ const Anchor = styled.div(_t5$3 || (_t5$3 = _$6`
|
|
|
7156
7218
|
background-color: #e6f7ff;
|
|
7157
7219
|
}
|
|
7158
7220
|
`));
|
|
7159
|
-
styled.div(
|
|
7221
|
+
styled.div(_t10$1 || (_t10$1 = _$6`
|
|
7160
7222
|
margin-left: var(--goa-space-m);
|
|
7161
7223
|
`));
|
|
7162
|
-
styled.div(
|
|
7224
|
+
styled.div(_t11$1 || (_t11$1 = _$6`
|
|
7163
7225
|
margin-bottom: var(--goa-space-m);
|
|
7164
7226
|
`));
|
|
7165
|
-
styled.div(
|
|
7227
|
+
styled.div(_t12$1 || (_t12$1 = _$6`
|
|
7166
7228
|
margin: var(--goa-space-s);
|
|
7167
7229
|
width: 100%;
|
|
7168
7230
|
`));
|
|
7169
|
-
styled.h3(
|
|
7231
|
+
styled.h3(_t13$1 || (_t13$1 = _$6`
|
|
7170
7232
|
text-transform: capitalize;
|
|
7171
7233
|
`));
|
|
7172
|
-
const RightAlignmentDiv = styled.div(
|
|
7234
|
+
const RightAlignmentDiv = styled.div(_t14$1 || (_t14$1 = _$6`
|
|
7173
7235
|
@media screen and (max-width: 767px) {
|
|
7174
7236
|
margin-bottom: var(--goa-space-l);
|
|
7175
7237
|
}
|
|
@@ -7179,52 +7241,50 @@ const RightAlignmentDiv = styled.div(_t0$1 || (_t0$1 = _$6`
|
|
|
7179
7241
|
margin-bottom: var(--goa-space-l);
|
|
7180
7242
|
}
|
|
7181
7243
|
`));
|
|
7182
|
-
const FormStepperSummaryH3 = styled.h3(
|
|
7244
|
+
const FormStepperSummaryH3 = styled.h3(_t15$1 || (_t15$1 = _$6`
|
|
7183
7245
|
flex: 1;
|
|
7184
7246
|
margin-bottom: var(--goa-space-m);
|
|
7185
7247
|
font-size: var(--goa-font-size-7);
|
|
7186
7248
|
line-height: var(--goa-line-height-4);
|
|
7187
7249
|
font-weight: var(--goa-font-weight-regular);
|
|
7188
7250
|
`));
|
|
7189
|
-
const PageRenderPadding = styled.div(
|
|
7251
|
+
const PageRenderPadding = styled.div(_t16$1 || (_t16$1 = _$6`
|
|
7190
7252
|
margin-top: var(--goa-space-2xl);
|
|
7191
7253
|
`));
|
|
7192
|
-
styled.div(
|
|
7254
|
+
styled.div(_t17$1 || (_t17$1 = _$6`
|
|
7193
7255
|
margin-bottom: var(--goa-space-2xl);
|
|
7194
7256
|
`));
|
|
7195
|
-
const PageBorder = styled.div(
|
|
7257
|
+
const PageBorder = styled.div(_t18$1 || (_t18$1 = _$6`
|
|
7196
7258
|
padding: var(--goa-space-m) var(--goa-space-3xl);
|
|
7197
7259
|
`));
|
|
7198
|
-
const TableReviewItemSection = styled.div(
|
|
7260
|
+
const TableReviewItemSection = styled.div(_t19 || (_t19 = _$6`
|
|
7199
7261
|
.element-style {
|
|
7200
7262
|
max-width: 1600px;
|
|
7201
7263
|
}
|
|
7202
7264
|
`));
|
|
7203
|
-
const TableReviewItem = styled.div(
|
|
7265
|
+
const TableReviewItem = styled.div(_t20 || (_t20 = _$6`
|
|
7204
7266
|
padding: var(--goa-space-xl) var(--goa-space-2xl);
|
|
7205
7267
|
border: 1px solid var(--goa-color-greyscale-300);
|
|
7206
7268
|
border-radius: var(--goa-border-radius-xl);
|
|
7207
7269
|
`));
|
|
7208
|
-
const TableReviewPageTitleRow = styled.div(
|
|
7270
|
+
const TableReviewPageTitleRow = styled.div(_t21 || (_t21 = _$6`
|
|
7209
7271
|
margin-top: var(--goa-space-xl);
|
|
7210
7272
|
display: flex;
|
|
7211
7273
|
justify-content: space-between;
|
|
7212
7274
|
`));
|
|
7213
|
-
const TableReviewCategoryLabel = styled.h3(
|
|
7275
|
+
const TableReviewCategoryLabel = styled.h3(_t22 || (_t22 = _$6`
|
|
7214
7276
|
color: var(--goa-color-text-secondary) !important;
|
|
7215
7277
|
margin-bottom: var(--goa-space-l);
|
|
7216
7278
|
`));
|
|
7217
|
-
const CategoryStatus = styled.td(
|
|
7279
|
+
const CategoryStatus = styled.td(_t23 || (_t23 = _$6`
|
|
7218
7280
|
width: var(--goa-space-xl);
|
|
7219
7281
|
padding-right: var(--goa-space-xl);
|
|
7220
7282
|
align-content: center;
|
|
7221
7283
|
`));
|
|
7222
|
-
const
|
|
7223
|
-
padding:
|
|
7224
|
-
margin: 0;
|
|
7225
|
-
margin-bottom: 0 !important;
|
|
7284
|
+
const Center = styled.div(_t24 || (_t24 = _$6`
|
|
7285
|
+
padding-top: 5px;
|
|
7226
7286
|
`));
|
|
7227
|
-
const PageStepperRow = styled.tr(
|
|
7287
|
+
const PageStepperRow = styled.tr(_t25 || (_t25 = _$6`
|
|
7228
7288
|
${0}
|
|
7229
7289
|
`), ({
|
|
7230
7290
|
disabled
|
|
@@ -7243,7 +7303,7 @@ const PageStepperRow = styled.tr(_t19 || (_t19 = _$6`
|
|
|
7243
7303
|
transition: background-color 0.2s ease-in-out;
|
|
7244
7304
|
}
|
|
7245
7305
|
`);
|
|
7246
|
-
const SectionHeaderRowTr = styled.tr(
|
|
7306
|
+
const SectionHeaderRowTr = styled.tr(_t26 || (_t26 = _$6`
|
|
7247
7307
|
& > td {
|
|
7248
7308
|
border: 0 !important;
|
|
7249
7309
|
padding-top: var(--goa-space-l);
|
|
@@ -7255,12 +7315,13 @@ const SectionHeaderRowTr = styled.tr(_t20 || (_t20 = _$6`
|
|
|
7255
7315
|
border-top: none !important;
|
|
7256
7316
|
}
|
|
7257
7317
|
`));
|
|
7258
|
-
const SummaryRowLink = styled.a(
|
|
7318
|
+
const SummaryRowLink = styled.a(_t27 || (_t27 = _$6`
|
|
7259
7319
|
position: relative;
|
|
7260
7320
|
top: var(--goa-space-xs);
|
|
7261
7321
|
`));
|
|
7262
|
-
styled.td(
|
|
7322
|
+
const SummaryTd = styled.td(_t28 || (_t28 = _$6`
|
|
7263
7323
|
border: 0 !important;
|
|
7324
|
+
padding: 0 !important;
|
|
7264
7325
|
`));
|
|
7265
7326
|
|
|
7266
7327
|
class ContextProviderClass {
|
|
@@ -8713,31 +8774,43 @@ $$3({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('u
|
|
|
8713
8774
|
union: union
|
|
8714
8775
|
});
|
|
8715
8776
|
|
|
8716
|
-
const ApplicationStatus = (
|
|
8717
|
-
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
const {
|
|
8722
|
-
|
|
8723
|
-
|
|
8724
|
-
|
|
8725
|
-
|
|
8726
|
-
|
|
8777
|
+
const ApplicationStatus = ({
|
|
8778
|
+
completedGroups,
|
|
8779
|
+
totalGroups
|
|
8780
|
+
}) => {
|
|
8781
|
+
const completed = completedGroups;
|
|
8782
|
+
const badge = totalGroups === completed ? jsx(GoABadge, {
|
|
8783
|
+
type: "success",
|
|
8784
|
+
content: "Complete"
|
|
8785
|
+
}) : jsx(GoABadge, {
|
|
8786
|
+
type: "information",
|
|
8787
|
+
content: "Incomplete"
|
|
8727
8788
|
});
|
|
8728
|
-
const
|
|
8729
|
-
const
|
|
8730
|
-
|
|
8731
|
-
|
|
8732
|
-
|
|
8733
|
-
|
|
8734
|
-
|
|
8735
|
-
|
|
8736
|
-
|
|
8737
|
-
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8789
|
+
const mainHeading = 'Application Progress';
|
|
8790
|
+
const progressPercentageAccurate = 100 * completed / totalGroups;
|
|
8791
|
+
return jsxs(CompletionStatus, {
|
|
8792
|
+
children: [jsxs(CompletionTextHeader, {
|
|
8793
|
+
children: [mainHeading, jsx(BadgeWrapper, {
|
|
8794
|
+
children: badge
|
|
8795
|
+
})]
|
|
8796
|
+
}), jsxs(BarTop, {
|
|
8797
|
+
children: [jsxs("div", {
|
|
8798
|
+
children: [completed, " out of ", totalGroups, " items completed"]
|
|
8799
|
+
}), jsxs("div", {
|
|
8800
|
+
className: "progress-text",
|
|
8801
|
+
children: [Math.round(progressPercentageAccurate), "%"]
|
|
8802
|
+
})]
|
|
8803
|
+
}), jsx(Bar, {
|
|
8804
|
+
children: jsx("div", {
|
|
8805
|
+
className: "progress-container",
|
|
8806
|
+
children: jsx("div", {
|
|
8807
|
+
className: "progress-bar",
|
|
8808
|
+
style: {
|
|
8809
|
+
width: `${progressPercentageAccurate}%`
|
|
8810
|
+
}
|
|
8811
|
+
})
|
|
8812
|
+
})
|
|
8813
|
+
})]
|
|
8741
8814
|
});
|
|
8742
8815
|
};
|
|
8743
8816
|
|
|
@@ -8787,11 +8860,15 @@ const getCategoryStatus = category => {
|
|
|
8787
8860
|
const getCategoryStatusBadge = category => {
|
|
8788
8861
|
const status = getCategoryStatus(category);
|
|
8789
8862
|
const badgeType = status === PageStatus.Complete ? 'success' : 'information';
|
|
8790
|
-
return
|
|
8791
|
-
|
|
8792
|
-
|
|
8793
|
-
|
|
8794
|
-
|
|
8863
|
+
return (
|
|
8864
|
+
// <div style={{ paddingTop: '5px' }}>
|
|
8865
|
+
jsx(GoABadge, {
|
|
8866
|
+
type: badgeType,
|
|
8867
|
+
content: status,
|
|
8868
|
+
ariaLabel: status
|
|
8869
|
+
})
|
|
8870
|
+
// </div>
|
|
8871
|
+
);
|
|
8795
8872
|
};
|
|
8796
8873
|
|
|
8797
8874
|
/* eslint-disable jsx-a11y/anchor-is-valid */
|
|
@@ -8813,7 +8890,9 @@ const CategoryRow = ({
|
|
|
8813
8890
|
children: [jsx("td", {
|
|
8814
8891
|
children: category.label
|
|
8815
8892
|
}, `task-list-${index}-stepper-row-label`), jsx(CategoryStatus, {
|
|
8816
|
-
children:
|
|
8893
|
+
children: jsx(Center, {
|
|
8894
|
+
children: getCategoryStatusBadge(category)
|
|
8895
|
+
})
|
|
8817
8896
|
})]
|
|
8818
8897
|
}, `task-list-${index}-stepper-row`) : null;
|
|
8819
8898
|
};
|
|
@@ -8825,23 +8904,55 @@ const SummaryRow = ({
|
|
|
8825
8904
|
onClick
|
|
8826
8905
|
}) => {
|
|
8827
8906
|
return jsx("tr", {
|
|
8828
|
-
children: jsx(
|
|
8829
|
-
|
|
8830
|
-
|
|
8831
|
-
|
|
8832
|
-
|
|
8833
|
-
|
|
8834
|
-
|
|
8835
|
-
|
|
8836
|
-
e
|
|
8837
|
-
|
|
8838
|
-
|
|
8839
|
-
|
|
8907
|
+
children: jsx(SummaryTd, {
|
|
8908
|
+
children: jsx(GoAText, {
|
|
8909
|
+
size: "heading-m",
|
|
8910
|
+
mt: "xl",
|
|
8911
|
+
mb: "xl",
|
|
8912
|
+
children: jsx(SummaryRowLink, {
|
|
8913
|
+
"data-testid": `page-ref-${index}`,
|
|
8914
|
+
href: "#",
|
|
8915
|
+
onClick: e => {
|
|
8916
|
+
e.preventDefault();
|
|
8917
|
+
onClick(index);
|
|
8918
|
+
},
|
|
8919
|
+
children: "Summary"
|
|
8920
|
+
})
|
|
8840
8921
|
})
|
|
8841
8922
|
})
|
|
8842
8923
|
});
|
|
8843
8924
|
};
|
|
8844
8925
|
|
|
8926
|
+
function mergeOrphanSections(sections) {
|
|
8927
|
+
const result = [];
|
|
8928
|
+
for (const section of sections) {
|
|
8929
|
+
const hasValidTitle = section.sectionTitle && section.sectionTitle.trim() !== '';
|
|
8930
|
+
if (hasValidTitle) {
|
|
8931
|
+
result.push(Object.assign({}, section, {
|
|
8932
|
+
categories: [...section.categories]
|
|
8933
|
+
}));
|
|
8934
|
+
} else {
|
|
8935
|
+
if (result.length > 0) {
|
|
8936
|
+
result[result.length - 1].categories.push(...section.categories);
|
|
8937
|
+
} else {
|
|
8938
|
+
result.push({
|
|
8939
|
+
sectionTitle: '',
|
|
8940
|
+
categories: [...section.categories]
|
|
8941
|
+
});
|
|
8942
|
+
}
|
|
8943
|
+
}
|
|
8944
|
+
}
|
|
8945
|
+
return result;
|
|
8946
|
+
}
|
|
8947
|
+
function expandSections(inputArray) {
|
|
8948
|
+
if (!inputArray || inputArray.length === 0) return [];
|
|
8949
|
+
const originalSection = inputArray[0];
|
|
8950
|
+
const categories = originalSection.categories || [];
|
|
8951
|
+
return categories.map((category, index) => ({
|
|
8952
|
+
sectionTitle: `${category.label} Section`,
|
|
8953
|
+
categories: [category]
|
|
8954
|
+
}));
|
|
8955
|
+
}
|
|
8845
8956
|
/* eslint-disable jsx-a11y/anchor-is-valid */
|
|
8846
8957
|
const TaskList = ({
|
|
8847
8958
|
categories,
|
|
@@ -8852,12 +8963,55 @@ const TaskList = ({
|
|
|
8852
8963
|
}) => {
|
|
8853
8964
|
const testid = 'table-of-contents';
|
|
8854
8965
|
const sectioned = getCategorySections(categories);
|
|
8966
|
+
const [completedGroups, setCompletedGroups] = useState(0);
|
|
8967
|
+
const [total, setTotal] = useState(sectioned.filter(s => s.categories && s.sectionTitle).length);
|
|
8968
|
+
const shouldShow = cat => {
|
|
8969
|
+
var _a, _b;
|
|
8970
|
+
return ((_b = (_a = cat === null || cat === void 0 ? void 0 : cat.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.showInTaskList) !== false;
|
|
8971
|
+
};
|
|
8972
|
+
const updateCompletion = (group, category, groupIndex) => {
|
|
8973
|
+
let leftIndex = groupIndex;
|
|
8974
|
+
while (leftIndex > 0 && !shouldShow(group[leftIndex - 1])) {
|
|
8975
|
+
leftIndex--;
|
|
8976
|
+
}
|
|
8977
|
+
let rightIndex = groupIndex;
|
|
8978
|
+
while (rightIndex < group.length - 1 && !shouldShow(group[rightIndex + 1])) {
|
|
8979
|
+
rightIndex++;
|
|
8980
|
+
}
|
|
8981
|
+
const currentLocalGroup = group.slice(leftIndex, rightIndex + 1);
|
|
8982
|
+
const modifyCategory = JSON.parse(JSON.stringify(category));
|
|
8983
|
+
modifyCategory.isCompleted = currentLocalGroup.length === currentLocalGroup.filter(cat => cat.isCompleted).length;
|
|
8984
|
+
return modifyCategory;
|
|
8985
|
+
};
|
|
8855
8986
|
const showInTaskListList = categories.map(cat => {
|
|
8856
8987
|
var _a, _b, _c, _d;
|
|
8857
8988
|
return ((_b = (_a = cat === null || cat === void 0 ? void 0 : cat.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.showInTaskList) || ((_d = (_c = cat === null || cat === void 0 ? void 0 : cat.uischema) === null || _c === void 0 ? void 0 : _c.options) === null || _d === void 0 ? void 0 : _d.showInTaskList) === undefined;
|
|
8858
8989
|
});
|
|
8859
8990
|
let globalIndex = 0;
|
|
8860
8991
|
let sectionIndex = 1;
|
|
8992
|
+
useEffect(() => {
|
|
8993
|
+
let count = 0;
|
|
8994
|
+
let mergedSections = mergeOrphanSections(sectioned);
|
|
8995
|
+
if (mergedSections.length === 1) {
|
|
8996
|
+
mergedSections = expandSections(mergedSections);
|
|
8997
|
+
setTotal(mergedSections.length);
|
|
8998
|
+
}
|
|
8999
|
+
mergedSections.forEach(({
|
|
9000
|
+
categories: group
|
|
9001
|
+
}) => {
|
|
9002
|
+
let countInGroup = 0;
|
|
9003
|
+
group.forEach((category, groupIndex) => {
|
|
9004
|
+
const modifyCategory = updateCompletion(group, category, groupIndex);
|
|
9005
|
+
if (getCategoryStatus(modifyCategory) === 'Completed') {
|
|
9006
|
+
countInGroup++;
|
|
9007
|
+
}
|
|
9008
|
+
});
|
|
9009
|
+
if (countInGroup === group.length) {
|
|
9010
|
+
count++;
|
|
9011
|
+
}
|
|
9012
|
+
});
|
|
9013
|
+
setCompletedGroups(count);
|
|
9014
|
+
}, [categories, sectioned]); // re-run whenever categories change
|
|
8861
9015
|
return jsx(PageBorder, {
|
|
8862
9016
|
children: jsxs("div", {
|
|
8863
9017
|
"data-testid": testid,
|
|
@@ -8866,12 +9020,15 @@ const TaskList = ({
|
|
|
8866
9020
|
ml: "xl",
|
|
8867
9021
|
mb: "xl",
|
|
8868
9022
|
children: title
|
|
8869
|
-
}),
|
|
9023
|
+
}), subtitle && jsx(GoAText, {
|
|
8870
9024
|
size: "heading-l",
|
|
8871
9025
|
mt: "none",
|
|
8872
9026
|
mb: "xl",
|
|
8873
9027
|
ml: "xl",
|
|
8874
9028
|
children: subtitle
|
|
9029
|
+
}), jsx(ApplicationStatus, {
|
|
9030
|
+
completedGroups: completedGroups,
|
|
9031
|
+
totalGroups: total
|
|
8875
9032
|
}), jsx(GoATable, {
|
|
8876
9033
|
width: "100%",
|
|
8877
9034
|
children: jsxs("tbody", {
|
|
@@ -8883,36 +9040,22 @@ const TaskList = ({
|
|
|
8883
9040
|
title: sectionTitle,
|
|
8884
9041
|
index: sectionIndex++
|
|
8885
9042
|
}, `section-${sectionTitle}`), group.map((category, groupIndex) => {
|
|
8886
|
-
//eslint-disable-next-line
|
|
8887
|
-
const shouldShow = cat => {
|
|
8888
|
-
var _a, _b;
|
|
8889
|
-
return ((_b = (_a = cat === null || cat === void 0 ? void 0 : cat.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.showInTaskList) !== false;
|
|
8890
|
-
};
|
|
8891
|
-
let leftIndex = groupIndex;
|
|
8892
|
-
while (leftIndex > 0 && !shouldShow(group[leftIndex - 1])) {
|
|
8893
|
-
leftIndex--;
|
|
8894
|
-
}
|
|
8895
|
-
let rightIndex = groupIndex;
|
|
8896
|
-
while (rightIndex < group.length - 1 && !shouldShow(group[rightIndex + 1])) {
|
|
8897
|
-
rightIndex++;
|
|
8898
|
-
}
|
|
8899
|
-
const currentLocalGroup = group.slice(leftIndex, rightIndex + 1);
|
|
8900
|
-
const showGroupTaskListList = categories.map(cat => shouldShow(cat));
|
|
8901
9043
|
const showCurrent = showInTaskListList[globalIndex];
|
|
8902
|
-
const
|
|
8903
|
-
const modifyCategory = JSON.parse(JSON.stringify(category));
|
|
8904
|
-
modifyCategory.isCompleted = currentLocalGroup.length === currentLocalGroup.filter(category => category.isCompleted).length;
|
|
9044
|
+
const idx = globalIndex++; // renamed from `index` to avoid shadowing
|
|
8905
9045
|
let currentCategory = category;
|
|
9046
|
+
const modifyCategory = updateCompletion(group, category, groupIndex);
|
|
9047
|
+
const showGroupTaskListList = categories.map(cat => shouldShow(cat));
|
|
8906
9048
|
if (showGroupTaskListList.length > showGroupTaskListList.filter(item => item === true).length) {
|
|
8907
9049
|
currentCategory = modifyCategory;
|
|
8908
9050
|
}
|
|
8909
9051
|
if (showCurrent) {
|
|
8910
9052
|
return jsx(CategoryRow, {
|
|
8911
9053
|
category: currentCategory,
|
|
8912
|
-
index:
|
|
9054
|
+
index: idx,
|
|
8913
9055
|
onClick: onClick
|
|
8914
|
-
}, `cat-${category.label}-${
|
|
9056
|
+
}, `cat-${category.label}-${idx}`);
|
|
8915
9057
|
}
|
|
9058
|
+
return null;
|
|
8916
9059
|
})]
|
|
8917
9060
|
}, index)), jsx(SummaryRow, {
|
|
8918
9061
|
index: globalIndex,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abgov/jsonforms-components",
|
|
3
|
-
"version": "2.32.
|
|
3
|
+
"version": "2.32.7",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Government of Alberta - React renderers for JSON Forms based on the design system.",
|
|
6
6
|
"repository": "https://github.com/GovAlta/adsp-monorepo",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { CategoriesState, CategoryState } from '../context';
|
|
2
|
-
interface SectionMap {
|
|
2
|
+
export interface SectionMap {
|
|
3
3
|
sectionTitle: string;
|
|
4
4
|
categories: CategoryState[];
|
|
5
5
|
}
|
|
6
6
|
export declare const getCategorySections: (categories: CategoriesState) => SectionMap[];
|
|
7
|
-
export {};
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
export declare const ReviewItem: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
2
|
+
export declare const CompletionStatus: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
|
+
export declare const BarTop: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
|
+
export declare const Bar: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
5
|
+
export declare const Percentage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
6
|
+
export declare const BadgeWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
7
|
+
export declare const CompletionTextHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
2
8
|
export declare const ReviewItemSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
9
|
export declare const ReviewItemHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
10
|
export declare const ReviewItemTitle: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
@@ -17,7 +23,7 @@ export declare const TableReviewItem: import("styled-components/dist/types").ISt
|
|
|
17
23
|
export declare const TableReviewPageTitleRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
18
24
|
export declare const TableReviewCategoryLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, never>> & string;
|
|
19
25
|
export declare const CategoryStatus: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never>> & string;
|
|
20
|
-
export declare const
|
|
26
|
+
export declare const Center: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
21
27
|
interface PageStepperRowProps {
|
|
22
28
|
disabled: boolean;
|
|
23
29
|
}
|