@rh-support/cases 2.4.10-beta.6 → 2.5.1
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/README.md +2 -0
- package/lib/esm/components/case/NewCaseButton.d.ts +2 -1
- package/lib/esm/components/case/NewCaseButton.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.d.ts +4 -3
- package/lib/esm/components/case-list/CaseList.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseList.js +42 -44
- package/lib/esm/components/case-list/CaseListContext.d.ts +1 -1
- package/lib/esm/components/case-list/CaseListContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterContext.d.ts +1 -1
- package/lib/esm/components/case-list/CaseListFilterContext.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterHelpers.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts +6 -3
- package/lib/esm/components/case-list/CaseListFilterReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/CaseListFilterReducer.js +3 -0
- package/lib/esm/components/case-list/CaseListReducer.d.ts +2 -2
- package/lib/esm/components/case-list/CaseListReducer.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.d.ts +3 -2
- package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsBookmarkedGroupFilter.js +25 -11
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AccountsFilter.js +10 -5
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/AdditionalFilters.js +19 -4
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilterChips.js +1 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/CaseListFilters.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts +12 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilter.js +138 -163
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/CreatorSsoNameFilterChip.js +1 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/GroupsFilter.js +157 -27
- package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.d.ts +3 -0
- package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-list-filters/InternalSsoNameFilter.js +207 -0
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductFilterChip.js +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/ProductsFilter.js +7 -5
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/SeverityFilter.js +4 -4
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/StatusFilter.js +4 -4
- package/lib/esm/components/case-list/case-list-filters/TypeFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/TypeFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/TypeFilter.js +3 -3
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-filters/VersionsFilter.js +35 -4
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CaseListTable.js +211 -113
- package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/CloseCaseBtn.js +7 -2
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts +19 -0
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.js +296 -0
- package/lib/esm/components/case-list/case-list-table/DownloadCSVFileModal.scss +27 -0
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts +3 -1
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/ExportCaseListCSV.js +19 -96
- package/lib/esm/components/case-list/case-list-table/SeverityLabel.d.ts +2 -1
- package/lib/esm/components/case-list/case-list-table/SeverityLabel.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts +9 -0
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.d.ts.map +1 -0
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.js +53 -0
- package/lib/esm/components/case-list/case-list-table/table-column-selector/TableColumnSelector.scss +7 -0
- package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts +2 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/AdvanceSearch.js +18 -13
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts +2 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/BookmarkedSearchesSelector.js +7 -6
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts +2 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/CaseSearch.js +2 -2
- package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts +2 -1
- package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.d.ts.map +1 -1
- package/lib/esm/components/case-list/case-search/SaveCaseSearchModal.js +48 -40
- package/lib/esm/components/case-list/case-search/useAdvanceSearchParser.js +1 -1
- package/lib/esm/components/escalations/EscalationForm.d.ts +1 -1
- package/lib/esm/components/escalations/EscalationForm.d.ts.map +1 -1
- package/lib/esm/components/escalations/EscalationForm.js +18 -9
- package/lib/esm/components/escalations/PartnerEscalation.d.ts +2 -1
- package/lib/esm/components/escalations/PartnerEscalation.d.ts.map +1 -1
- package/lib/esm/components/index.d.ts +2 -8
- package/lib/esm/components/index.d.ts.map +1 -1
- package/lib/esm/components/index.js +5 -8
- package/lib/esm/css/caseList.css +85 -64
- package/lib/esm/css/caseSearch.css +1 -1
- package/lib/esm/css/escalation.css +4 -4
- package/lib/esm/enums/cache.d.ts +1 -1
- package/lib/esm/enums/cache.d.ts.map +1 -1
- package/lib/esm/enums/case.js +1 -1
- package/lib/esm/enums/filters.d.ts +1 -1
- package/lib/esm/enums/filters.d.ts.map +1 -1
- package/lib/esm/enums/filters.js +1 -1
- package/lib/esm/i18n/template-es.js +1 -1
- package/lib/esm/index.d.ts +0 -2
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +0 -2
- package/lib/esm/models/caseList.d.ts +5 -2
- package/lib/esm/models/caseList.d.ts.map +1 -1
- package/lib/esm/scss/_main.scss +11 -11
- package/lib/esm/scss/_pf-overrides.scss +40 -4
- package/lib/esm/scss/index.scss +0 -1
- package/lib/esm/test-utils/testSetup.d.ts +1 -1
- package/lib/esm/test-utils/testSetup.d.ts.map +1 -1
- package/lib/esm/test-utils/testSetup.js +1 -1
- package/lib/esm/test-utils/testUtils.d.ts +1 -1
- package/lib/esm/test-utils/testUtils.js +1 -1
- package/lib/esm/utils/caseListUtils.js +3 -3
- package/lib/esm/utils/caseSearchUtils.d.ts +3 -3
- package/lib/esm/utils/caseSearchUtils.d.ts.map +1 -1
- package/lib/esm/utils/caseSearchUtils.js +18 -5
- package/lib/esm/utils/constants.js +1 -1
- package/lib/esm/utils/routeUtils.js +2 -1
- package/package.json +35 -32
|
@@ -24,7 +24,7 @@ export const FILTER_URL_QUERY_SEARCH_PARAM = 'query';
|
|
|
24
24
|
export const FILTER_URL_CURRENT_PAGE_SEARCH_PARAM = 'p';
|
|
25
25
|
export const FILTER_URL_PAGE_SIZE_SEARCH_PARAM = 'size';
|
|
26
26
|
export const FILTER_URL_QUERY_TYPE = 'searchType';
|
|
27
|
-
function createSolrQueryFromFilterState(filterState, loggedInUser) {
|
|
27
|
+
function createSolrQueryFromFilterState(filterState, loggedInUser, selectedCases = []) {
|
|
28
28
|
const { paginationInfo: { pageSize, currentPage }, sortInfo: { column, direction }, filterInfo, filterQueryInfo, } = filterState;
|
|
29
29
|
const rows = pageSize;
|
|
30
30
|
const queryString = (filterQueryInfo.queryString || '*:*').trim();
|
|
@@ -66,6 +66,7 @@ function createSolrQueryFromFilterState(filterState, loggedInUser) {
|
|
|
66
66
|
.fq(SolrKeys.accountNumber, filteredAccounts)
|
|
67
67
|
.fq(SolrKeys.escalation, escalationValue)
|
|
68
68
|
.fq(SolrKeys.type, filterInfo[SolrKeys.type], [SolrTags.c_type])
|
|
69
|
+
.fq(SolrKeys.caseNumber, selectedCases)
|
|
69
70
|
.beginOr()
|
|
70
71
|
.fq(SolrKeys.createdBySsoUsername, filterInfo[SolrKeys.createdBySsoUsername])
|
|
71
72
|
.fq(SolrKeys.caseContactSSO, filterInfo[SolrKeys.caseContactSSO])
|
|
@@ -197,15 +198,16 @@ function getStringOrBooleanValue(val) {
|
|
|
197
198
|
return val;
|
|
198
199
|
return val === 'true' ? true : val === 'false' ? false : `"${val}"`;
|
|
199
200
|
}
|
|
200
|
-
function createQueryForCSVDownload(filterState, loggedInUserRights, loggedInUsersAccount, startValue = 0, limitValue = 1000) {
|
|
201
|
+
function createQueryForCSVDownload(filterState, loggedInUserRights, loggedInUsersAccount, selectedCases = [], startValue = 0, limitValue = 1000) {
|
|
202
|
+
const newSelectedCases = selectedCases.slice(0, limitValue);
|
|
201
203
|
if (loggedInUsersAccount.secureSupport) {
|
|
202
|
-
const sfdcFilter = createSFDCQueryFromFilterState(filterState, loggedInUserRights, loggedInUsersAccount);
|
|
204
|
+
const sfdcFilter = createSFDCQueryFromFilterState(filterState, loggedInUserRights, loggedInUsersAccount, newSelectedCases);
|
|
203
205
|
sfdcFilter.offset = startValue;
|
|
204
206
|
sfdcFilter.maxResults = limitValue;
|
|
205
207
|
return sfdcFilter;
|
|
206
208
|
}
|
|
207
209
|
else {
|
|
208
|
-
const query = createSolrQueryFromFilterState(filterState, loggedInUserRights);
|
|
210
|
+
const query = createSolrQueryFromFilterState(filterState, loggedInUserRights, newSelectedCases);
|
|
209
211
|
const { start, rows } = query, solrQuery = __rest(query, ["start", "rows"]);
|
|
210
212
|
solrQuery.start = startValue;
|
|
211
213
|
solrQuery.rows = limitValue;
|
|
@@ -226,7 +228,7 @@ function objectFlip(obj, camelCaseKey = false) {
|
|
|
226
228
|
return ret;
|
|
227
229
|
}, {});
|
|
228
230
|
}
|
|
229
|
-
function createSFDCQueryFromFilterState(filterState, loggedInUser, loggedInUserAccount) {
|
|
231
|
+
function createSFDCQueryFromFilterState(filterState, loggedInUser, loggedInUserAccount, selectedCases = []) {
|
|
230
232
|
const { paginationInfo: { pageSize, currentPage }, sortInfo: { column, direction }, filterInfo, filterQueryInfo, } = filterState;
|
|
231
233
|
const maxResults = pageSize;
|
|
232
234
|
const offset = (currentPage - 1) * pageSize;
|
|
@@ -236,6 +238,8 @@ function createSFDCQueryFromFilterState(filterState, loggedInUser, loggedInUserA
|
|
|
236
238
|
const filteredSeverity = filterInfo[SolrKeys.severity];
|
|
237
239
|
const filteredProduct = filterInfo[ProductVersionKey];
|
|
238
240
|
const includeClosed = filteredStatus.length === 0 ? true : filteredStatus.includes(CaseStatus.Closed);
|
|
241
|
+
const filteredCaseOwner = filterInfo[SolrKeys.caseOwner];
|
|
242
|
+
const filteredCaseCreatedBySSO = filterInfo[SolrKeys.createdBySsoUsername];
|
|
239
243
|
// https://projects.engineering.redhat.com/browse/CPCCM-8069?focusedCommentId=2426553&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-2426553
|
|
240
244
|
// Truth table in Comment here decsribes how combination of statuses work in sfdc.
|
|
241
245
|
// below we remove the closed status from the selected status array because we have already set the include_closed flag on the line before this comment
|
|
@@ -259,6 +263,9 @@ function createSFDCQueryFromFilterState(filterState, loggedInUser, loggedInUserA
|
|
|
259
263
|
else if (!isEmpty(queryString)) {
|
|
260
264
|
sfdcFilter['keyword'] = queryString;
|
|
261
265
|
}
|
|
266
|
+
if (selectedCases.length > 0) {
|
|
267
|
+
sfdcFilter['caseNumbers'] = [...(sfdcFilter['caseNumbers'] || []), ...selectedCases];
|
|
268
|
+
}
|
|
262
269
|
if ((filteredStatus || []).length === 1) {
|
|
263
270
|
sfdcFilter['status'] = filteredStatus[0];
|
|
264
271
|
}
|
|
@@ -274,6 +281,12 @@ function createSFDCQueryFromFilterState(filterState, loggedInUser, loggedInUserA
|
|
|
274
281
|
if (filteredAccounts.length === 1 && filteredAccounts[0] !== loggedInUser.getAccountNumber()) {
|
|
275
282
|
sfdcFilter['accountNumber'] = filteredAccounts[0];
|
|
276
283
|
}
|
|
284
|
+
if ((filteredCaseOwner || []).length === 1) {
|
|
285
|
+
sfdcFilter['ownerSSOName'] = filteredCaseOwner[0];
|
|
286
|
+
}
|
|
287
|
+
if ((filteredCaseCreatedBySSO || []).length === 1) {
|
|
288
|
+
sfdcFilter['createdBySSOName'] = filteredCaseCreatedBySSO[0];
|
|
289
|
+
}
|
|
277
290
|
return sfdcFilter;
|
|
278
291
|
}
|
|
279
292
|
function mapSFDCCaseListToSolrCaseList(response = []) {
|
|
@@ -5,7 +5,7 @@ export const filterNamesMap = {
|
|
|
5
5
|
[SolrKeys.severity]: 'Severity',
|
|
6
6
|
[SolrKeys.group]: 'Groups',
|
|
7
7
|
[SolrKeys.accountNumber]: 'Bookmarks',
|
|
8
|
-
[SolrKeys.caseSummary]: '
|
|
8
|
+
[SolrKeys.caseSummary]: 'Title',
|
|
9
9
|
[SolrKeys.escalation]: 'Escalated',
|
|
10
10
|
[SolrKeys.contactName]: 'Owner',
|
|
11
11
|
[SolrKeys.product]: 'Products',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/cases",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -26,52 +26,55 @@
|
|
|
26
26
|
"lib/**/*"
|
|
27
27
|
],
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@cee-eng/hydrajs": "4.
|
|
30
|
-
"@patternfly/patternfly": "4.
|
|
31
|
-
"@patternfly/
|
|
32
|
-
"@patternfly/react-
|
|
33
|
-
"@patternfly/react-table": "4.111.33",
|
|
34
|
-
"i18next": "^19.0.1",
|
|
29
|
+
"@cee-eng/hydrajs": "4.17.36",
|
|
30
|
+
"@patternfly/patternfly": "5.4.0",
|
|
31
|
+
"@patternfly/react-core": "5.4.0",
|
|
32
|
+
"@patternfly/react-table": "5.4.0",
|
|
35
33
|
"localforage": "^1.10.0",
|
|
36
34
|
"lodash": "^4.17.21",
|
|
37
|
-
"react": "
|
|
38
|
-
"react-dom": "
|
|
39
|
-
"react-i18next": "^
|
|
35
|
+
"react": "18.2.0",
|
|
36
|
+
"react-dom": "18.2.0",
|
|
37
|
+
"react-i18next": "^15.0.1",
|
|
40
38
|
"react-router-dom": "^5.1.2",
|
|
41
39
|
"solr-query-builder": "1.0.1"
|
|
42
40
|
},
|
|
43
41
|
"dependencies": {
|
|
44
|
-
"@cee-eng/hydrajs": "4.
|
|
45
|
-
"@patternfly/patternfly": "4.
|
|
46
|
-
"@patternfly/
|
|
47
|
-
"@patternfly/react-
|
|
48
|
-
"@
|
|
49
|
-
"@rh-support/
|
|
50
|
-
"@rh-support/
|
|
51
|
-
"@rh-support/
|
|
52
|
-
"@rh-support/
|
|
53
|
-
"@rh-support/utils": "2.4.10-beta.6",
|
|
54
|
-
"i18next": "^19.0.1",
|
|
42
|
+
"@cee-eng/hydrajs": "4.17.36",
|
|
43
|
+
"@patternfly/patternfly": "5.4.0",
|
|
44
|
+
"@patternfly/react-core": "5.4.0",
|
|
45
|
+
"@patternfly/react-table": "5.4.0",
|
|
46
|
+
"@rh-support/components": "2.5.1",
|
|
47
|
+
"@rh-support/react-context": "2.5.1",
|
|
48
|
+
"@rh-support/types": "2.0.5",
|
|
49
|
+
"@rh-support/user-permissions": "2.5.0",
|
|
50
|
+
"@rh-support/utils": "2.5.0",
|
|
55
51
|
"localforage": "^1.10.0",
|
|
56
52
|
"lodash": "^4.17.21",
|
|
57
53
|
"pegjs": "^0.10.0",
|
|
58
|
-
"react": "
|
|
59
|
-
"react-dom": "
|
|
60
|
-
"react-i18next": "^
|
|
54
|
+
"react": "18.2.0",
|
|
55
|
+
"react-dom": "18.2.0",
|
|
56
|
+
"react-i18next": "^15.0.1",
|
|
61
57
|
"react-router-dom": "^5.1.2",
|
|
62
58
|
"solr-query-builder": "1.0.1"
|
|
63
59
|
},
|
|
64
60
|
"devDependencies": {
|
|
65
|
-
"@testing-library/jest-dom": "^
|
|
66
|
-
"@testing-library/react": "^
|
|
67
|
-
"@testing-library/user-event": "^
|
|
61
|
+
"@testing-library/jest-dom": "^6.2.0",
|
|
62
|
+
"@testing-library/react": "^14.1.2",
|
|
63
|
+
"@testing-library/user-event": "^14.5.1",
|
|
68
64
|
"@types/i18next": "^12.1.0",
|
|
65
|
+
"@types/jest": "^29.5.11",
|
|
69
66
|
"@types/lodash": "^4.14.136",
|
|
70
|
-
"@types/
|
|
71
|
-
"@types/react
|
|
72
|
-
"@types/react-
|
|
67
|
+
"@types/node": "^20.11.5",
|
|
68
|
+
"@types/react": "^18.2.20",
|
|
69
|
+
"@types/react-dom": "^18.2.18",
|
|
73
70
|
"@types/react-router-dom": "^5.1.2",
|
|
74
|
-
"faker": "^5.5.3"
|
|
71
|
+
"faker": "^5.5.3",
|
|
72
|
+
"jest": "^29.7.0",
|
|
73
|
+
"jest-environment-jsdom": "^29.7.0"
|
|
74
|
+
},
|
|
75
|
+
"overrides": {
|
|
76
|
+
"@types/react": "^18.2.20",
|
|
77
|
+
"@types/react-dom": "^18.2.18"
|
|
75
78
|
},
|
|
76
79
|
"scripts": {
|
|
77
80
|
"build:watch": "../../node_modules/.bin/tsc -w -p config/tsconfig.json & npm run watch:css",
|
|
@@ -93,5 +96,5 @@
|
|
|
93
96
|
"defaults and supports es6-module",
|
|
94
97
|
"maintained node versions"
|
|
95
98
|
],
|
|
96
|
-
"gitHead": "
|
|
99
|
+
"gitHead": "78f51b2cfd60107a49503d13542ba46d29df4d04"
|
|
97
100
|
}
|