phx-react 1.3.1224 → 1.3.1227

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 (105) hide show
  1. package/dist/cjs/components/Row/Row.js +1 -1
  2. package/dist/cjs/components/TargetSelect/components/filter-dropdown.d.ts +12 -0
  3. package/dist/cjs/components/TargetSelect/components/filter-dropdown.js +57 -0
  4. package/dist/cjs/components/TargetSelect/components/filter-dropdown.js.map +1 -0
  5. package/dist/cjs/components/TargetSelect/components/modal-custom-list.d.ts +11 -0
  6. package/dist/cjs/components/TargetSelect/components/modal-custom-list.js +100 -0
  7. package/dist/cjs/components/TargetSelect/components/modal-custom-list.js.map +1 -0
  8. package/dist/cjs/components/TargetSelect/components/modal-search-user.d.ts +10 -0
  9. package/dist/cjs/components/TargetSelect/components/modal-search-user.js +130 -0
  10. package/dist/cjs/components/TargetSelect/components/modal-search-user.js.map +1 -0
  11. package/dist/cjs/components/TargetSelect/components/radio-group-select.d.ts +15 -0
  12. package/dist/cjs/components/TargetSelect/components/radio-group-select.js +43 -0
  13. package/dist/cjs/components/TargetSelect/components/radio-group-select.js.map +1 -0
  14. package/dist/cjs/components/TargetSelect/graphql/mutation.d.ts +2 -0
  15. package/dist/cjs/components/TargetSelect/graphql/mutation.js +6 -0
  16. package/dist/cjs/components/TargetSelect/graphql/mutation.js.map +1 -0
  17. package/dist/cjs/components/TargetSelect/graphql/query.d.ts +4 -0
  18. package/dist/cjs/components/TargetSelect/graphql/query.js +49 -0
  19. package/dist/cjs/components/TargetSelect/graphql/query.js.map +1 -0
  20. package/dist/cjs/components/TargetSelect/hooks/use-get-data-select.d.ts +7 -0
  21. package/dist/cjs/components/TargetSelect/hooks/use-get-data-select.js +61 -0
  22. package/dist/cjs/components/TargetSelect/hooks/use-get-data-select.js.map +1 -0
  23. package/dist/cjs/components/TargetSelect/hooks/use-target-select.d.ts +15 -0
  24. package/dist/cjs/components/TargetSelect/hooks/use-target-select.js +131 -0
  25. package/dist/cjs/components/TargetSelect/hooks/use-target-select.js.map +1 -0
  26. package/dist/cjs/components/TargetSelect/index.d.ts +1 -0
  27. package/dist/cjs/components/TargetSelect/index.js +5 -0
  28. package/dist/cjs/components/TargetSelect/index.js.map +1 -0
  29. package/dist/cjs/components/TargetSelect/phx-target-select.d.ts +3 -0
  30. package/dist/cjs/components/TargetSelect/phx-target-select.js +123 -0
  31. package/dist/cjs/components/TargetSelect/phx-target-select.js.map +1 -0
  32. package/dist/cjs/components/TargetSelect/sample/config.d.ts +74 -0
  33. package/dist/cjs/components/TargetSelect/sample/config.js +94 -0
  34. package/dist/cjs/components/TargetSelect/sample/config.js.map +1 -0
  35. package/dist/cjs/components/TargetSelect/sample/sample-data.d.ts +2 -0
  36. package/dist/cjs/components/TargetSelect/sample/sample-data.js +35 -0
  37. package/dist/cjs/components/TargetSelect/sample/sample-data.js.map +1 -0
  38. package/dist/cjs/components/TargetSelect/types.d.ts +47 -0
  39. package/dist/cjs/components/TargetSelect/types.js +3 -0
  40. package/dist/cjs/components/TargetSelect/types.js.map +1 -0
  41. package/dist/cjs/components/TargetSelect/utils/constant.d.ts +17 -0
  42. package/dist/cjs/components/TargetSelect/utils/constant.js +21 -0
  43. package/dist/cjs/components/TargetSelect/utils/constant.js.map +1 -0
  44. package/dist/cjs/components/TargetSelect/utils/helper.d.ts +8 -0
  45. package/dist/cjs/components/TargetSelect/utils/helper.js +75 -0
  46. package/dist/cjs/components/TargetSelect/utils/helper.js.map +1 -0
  47. package/dist/cjs/demo/demo-phx-row.d.ts +2 -0
  48. package/dist/cjs/demo/demo-phx-row.js +31 -0
  49. package/dist/cjs/demo/demo-phx-row.js.map +1 -0
  50. package/dist/cjs/index.d.ts +3 -1
  51. package/dist/cjs/index.js +6 -2
  52. package/dist/cjs/index.js.map +1 -1
  53. package/dist/esm/components/Row/Row.js +1 -1
  54. package/dist/esm/components/TargetSelect/components/filter-dropdown.d.ts +12 -0
  55. package/dist/esm/components/TargetSelect/components/filter-dropdown.js +54 -0
  56. package/dist/esm/components/TargetSelect/components/filter-dropdown.js.map +1 -0
  57. package/dist/esm/components/TargetSelect/components/modal-custom-list.d.ts +11 -0
  58. package/dist/esm/components/TargetSelect/components/modal-custom-list.js +97 -0
  59. package/dist/esm/components/TargetSelect/components/modal-custom-list.js.map +1 -0
  60. package/dist/esm/components/TargetSelect/components/modal-search-user.d.ts +10 -0
  61. package/dist/esm/components/TargetSelect/components/modal-search-user.js +127 -0
  62. package/dist/esm/components/TargetSelect/components/modal-search-user.js.map +1 -0
  63. package/dist/esm/components/TargetSelect/components/radio-group-select.d.ts +15 -0
  64. package/dist/esm/components/TargetSelect/components/radio-group-select.js +39 -0
  65. package/dist/esm/components/TargetSelect/components/radio-group-select.js.map +1 -0
  66. package/dist/esm/components/TargetSelect/graphql/mutation.d.ts +2 -0
  67. package/dist/esm/components/TargetSelect/graphql/mutation.js +3 -0
  68. package/dist/esm/components/TargetSelect/graphql/mutation.js.map +1 -0
  69. package/dist/esm/components/TargetSelect/graphql/query.d.ts +4 -0
  70. package/dist/esm/components/TargetSelect/graphql/query.js +45 -0
  71. package/dist/esm/components/TargetSelect/graphql/query.js.map +1 -0
  72. package/dist/esm/components/TargetSelect/hooks/use-get-data-select.d.ts +7 -0
  73. package/dist/esm/components/TargetSelect/hooks/use-get-data-select.js +58 -0
  74. package/dist/esm/components/TargetSelect/hooks/use-get-data-select.js.map +1 -0
  75. package/dist/esm/components/TargetSelect/hooks/use-target-select.d.ts +15 -0
  76. package/dist/esm/components/TargetSelect/hooks/use-target-select.js +128 -0
  77. package/dist/esm/components/TargetSelect/hooks/use-target-select.js.map +1 -0
  78. package/dist/esm/components/TargetSelect/index.d.ts +1 -0
  79. package/dist/esm/components/TargetSelect/index.js +2 -0
  80. package/dist/esm/components/TargetSelect/index.js.map +1 -0
  81. package/dist/esm/components/TargetSelect/phx-target-select.d.ts +3 -0
  82. package/dist/esm/components/TargetSelect/phx-target-select.js +120 -0
  83. package/dist/esm/components/TargetSelect/phx-target-select.js.map +1 -0
  84. package/dist/esm/components/TargetSelect/sample/config.d.ts +74 -0
  85. package/dist/esm/components/TargetSelect/sample/config.js +91 -0
  86. package/dist/esm/components/TargetSelect/sample/config.js.map +1 -0
  87. package/dist/esm/components/TargetSelect/sample/sample-data.d.ts +2 -0
  88. package/dist/esm/components/TargetSelect/sample/sample-data.js +32 -0
  89. package/dist/esm/components/TargetSelect/sample/sample-data.js.map +1 -0
  90. package/dist/esm/components/TargetSelect/types.d.ts +47 -0
  91. package/dist/esm/components/TargetSelect/types.js +2 -0
  92. package/dist/esm/components/TargetSelect/types.js.map +1 -0
  93. package/dist/esm/components/TargetSelect/utils/constant.d.ts +17 -0
  94. package/dist/esm/components/TargetSelect/utils/constant.js +18 -0
  95. package/dist/esm/components/TargetSelect/utils/constant.js.map +1 -0
  96. package/dist/esm/components/TargetSelect/utils/helper.d.ts +8 -0
  97. package/dist/esm/components/TargetSelect/utils/helper.js +69 -0
  98. package/dist/esm/components/TargetSelect/utils/helper.js.map +1 -0
  99. package/dist/esm/demo/demo-phx-row.d.ts +2 -0
  100. package/dist/esm/demo/demo-phx-row.js +27 -0
  101. package/dist/esm/demo/demo-phx-row.js.map +1 -0
  102. package/dist/esm/index.d.ts +3 -1
  103. package/dist/esm/index.js +3 -1
  104. package/dist/esm/index.js.map +1 -1
  105. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import { FILTER_BY } from '../utils/constant';
3
+ import ModalCustomList from './modal-custom-list';
4
+ import { PHXRadio } from '../../Radio';
5
+ import { PHXCombobox } from '../../Combobox';
6
+ export default function RadioGroupSelect(_a) {
7
+ var handleChangeFilter = _a.handleChangeFilter, listRadio = _a.listRadio, listTargetSelected = _a.listTargetSelected, schoolYearId = _a.schoolYearId, selectOptions = _a.selectOptions, target = _a.target;
8
+ return (React.createElement("div", { className: 'ml-7 space-y-3' }, listRadio.map(function (radio) {
9
+ var comboboxLabel = radio.comboboxLabel, helpText = radio.helpText, title = radio.title, value = radio.value;
10
+ var checkedFilterBy = listTargetSelected.find(function (item) { return item.filterBy === value && item.target === target; });
11
+ var isHaveCombobox = checkedFilterBy && value !== FILTER_BY.CUSTOM_LIST && value !== FILTER_BY.ALL;
12
+ return (React.createElement("div", { key: value, className: 'space-y-2' },
13
+ React.createElement(PHXRadio, { checked: !!checkedFilterBy,
14
+ // @ts-ignore
15
+ description: React.createElement("div", null,
16
+ React.createElement("p", null, helpText),
17
+ (checkedFilterBy === null || checkedFilterBy === void 0 ? void 0 : checkedFilterBy.filterBy) === FILTER_BY.CUSTOM_LIST && value === FILTER_BY.CUSTOM_LIST && (React.createElement(ModalCustomList, { defaultData: checkedFilterBy === null || checkedFilterBy === void 0 ? void 0 : checkedFilterBy.filterValues, filters: selectOptions, handleChange: function (data) {
18
+ return handleChangeFilter({
19
+ target: target,
20
+ filterBy: value,
21
+ filterValues: data
22
+ });
23
+ }, schoolYearId: schoolYearId, target: target }))), name: target, onChange: function () {
24
+ handleChangeFilter({
25
+ target: target,
26
+ filterBy: value,
27
+ filterValues: []
28
+ });
29
+ }, title: title }),
30
+ isHaveCombobox && (React.createElement(PHXCombobox, { defaultValue: checkedFilterBy === null || checkedFilterBy === void 0 ? void 0 : checkedFilterBy.filterValues, label: comboboxLabel, listOptions: (selectOptions === null || selectOptions === void 0 ? void 0 : selectOptions[value]) || [], onChange: function (selectedValues) {
31
+ return handleChangeFilter({
32
+ target: target,
33
+ filterBy: value,
34
+ filterValues: selectedValues
35
+ });
36
+ }, placeholder: 'L\u1EF1a ch\u1ECDn' }))));
37
+ })));
38
+ }
39
+ //# sourceMappingURL=radio-group-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group-select.js","sourceRoot":"","sources":["../../../../../src/components/TargetSelect/components/radio-group-select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,eAAe,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EAmBxC;QAlBC,kBAAkB,wBAAA,EAClB,SAAS,eAAA,EACT,kBAAkB,wBAAA,EAClB,YAAY,kBAAA,EACZ,aAAa,mBAAA,EACb,MAAM,YAAA;IAcN,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,IAC5B,SAAS,CAAC,GAAG,CAAC,UAAC,KAAK;QACX,IAAA,aAAa,GAA6B,KAAK,cAAlC,EAAE,QAAQ,GAAmB,KAAK,SAAxB,EAAE,KAAK,GAAY,KAAK,MAAjB,EAAE,KAAK,GAAK,KAAK,MAAV,CAAU;QACvD,IAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAjD,CAAiD,CAAC,CAAA;QAC5G,IAAM,cAAc,GAAG,eAAe,IAAI,KAAK,KAAK,SAAS,CAAC,WAAW,IAAI,KAAK,KAAK,SAAS,CAAC,GAAG,CAAA;QAEpG,OAAO,CACL,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,WAAW;YACpC,oBAAC,QAAQ,IACP,OAAO,EAAE,CAAC,CAAC,eAAe;gBAC1B,aAAa;gBACb,WAAW,EACT;oBACE,+BAAI,QAAQ,CAAK;oBAEhB,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ,MAAK,SAAS,CAAC,WAAW,IAAI,KAAK,KAAK,SAAS,CAAC,WAAW,IAAI,CACzF,oBAAC,eAAe,IACd,WAAW,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,EAC1C,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,UAAC,IAAI;4BACjB,OAAA,kBAAkB,CAAC;gCACjB,MAAM,QAAA;gCACN,QAAQ,EAAE,KAAK;gCACf,YAAY,EAAE,IAAI;6BACnB,CAAC;wBAJF,CAIE,EAEJ,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,GACd,CACH,CACG,EAER,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;oBACR,kBAAkB,CAAC;wBACjB,MAAM,QAAA;wBACN,QAAQ,EAAE,KAAK;wBACf,YAAY,EAAE,EAAE;qBACjB,CAAC,CAAA;gBACJ,CAAC,EACD,KAAK,EAAE,KAAK,GACZ;YACD,cAAc,IAAI,CACjB,oBAAC,WAAW,IACV,YAAY,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,YAAY,EAC3C,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,KAAI,EAAE,EACzC,QAAQ,EAAE,UAAC,cAAmD;oBAC5D,OAAA,kBAAkB,CAAC;wBACjB,MAAM,QAAA;wBACN,QAAQ,EAAE,KAAK;wBACf,YAAY,EAAE,cAAc;qBAC7B,CAAC;gBAJF,CAIE,EAEJ,WAAW,EAAC,oBAAU,GACtB,CACH,CACG,CACP,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const insertTargetMutation = "\n mutation MyMutation($data: [target_inform_target_insert_input!]!) {\n insert_target_inform_target(objects: $data) {\n affected_rows\n returning {\n id\n }\n }\n }\n";
2
+ export declare const updateTargetMutation = "\n mutation updateTargetMutation(\n $targetId: uuid!\n $targetByRoles: [target_inform_target_by_role_insert_input!]!\n ) {\n update_target_inform_target_by_role(\n where: {target_id: {_eq: $targetId}}\n _set: {deleted_at: now}\n ) {\n affected_rows\n }\n\n insert_target_inform_target_by_role(objects: $targetByRoles) {\n affected_rows\n }\n }\n";
@@ -0,0 +1,3 @@
1
+ export var insertTargetMutation = "\n mutation MyMutation($data: [target_inform_target_insert_input!]!) {\n insert_target_inform_target(objects: $data) {\n affected_rows\n returning {\n id\n }\n }\n }\n";
2
+ export var updateTargetMutation = "\n mutation updateTargetMutation(\n $targetId: uuid!\n $targetByRoles: [target_inform_target_by_role_insert_input!]!\n ) {\n update_target_inform_target_by_role(\n where: {target_id: {_eq: $targetId}}\n _set: {deleted_at: now}\n ) {\n affected_rows\n }\n\n insert_target_inform_target_by_role(objects: $targetByRoles) {\n affected_rows\n }\n }\n";
3
+ //# sourceMappingURL=mutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutation.js","sourceRoot":"","sources":["../../../../../src/components/TargetSelect/graphql/mutation.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,oBAAoB,GAAG,uMASnC,CAAA;AAED,MAAM,CAAC,IAAM,oBAAoB,GAAG,uYAgBnC,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { IQueryBuilderProps } from '../types';
2
+ export declare const getSelectQuery = "\n query getSelectQuery($schoolId: Int!, $schoolYearId: Int!) {\n educational_level(\n where: {deleted_at: {_is_null: true}, school_id: {_eq: $schoolId}}\n ) {\n id\n name\n code\n }\n grade(where: {deleted_at: {_is_null: true}, school_id: {_eq: $schoolId}}) {\n id\n name\n code\n educational_level_id\n }\n classroom(\n where: {\n deleted_at: {_is_null: true}\n school_id: {_eq: $schoolId}\n school_year_id: {_eq: $schoolYearId}\n }\n ) {\n id\n name\n code\n grade {\n id\n educational_level_id\n }\n }\n }\n";
3
+ export declare const queryListUserBuilder: ({ condition, schoolYearId, target, }: IQueryBuilderProps) => string;
4
+ export declare const getTargetByIdQuery = "\n query getTargetByIdQuery($id: uuid!) {\n target_inform_target_by_pk(id: $id) {\n target_by_roles(where: {deleted_at: {_is_null: true}}) {\n role_code\n target_educational_levels {\n educational_level {\n id\n name\n code\n }\n }\n target_grades {\n grade {\n id\n name\n code\n }\n }\n target_classrooms {\n classroom {\n id\n name\n code\n }\n }\n target_users {\n user {\n id\n name: full_name\n phone: phone_number\n email\n profile_teacher {\n user_code\n } \n profile_staff {\n user_code\n }\n }\n }\n }\n }\n }\n";
@@ -0,0 +1,45 @@
1
+ import { OPTION_FILTER_ALL, ROLE_CODE } from '../utils/constant';
2
+ export var getSelectQuery = "\n query getSelectQuery($schoolId: Int!, $schoolYearId: Int!) {\n educational_level(\n where: {deleted_at: {_is_null: true}, school_id: {_eq: $schoolId}}\n ) {\n id\n name\n code\n }\n grade(where: {deleted_at: {_is_null: true}, school_id: {_eq: $schoolId}}) {\n id\n name\n code\n educational_level_id\n }\n classroom(\n where: {\n deleted_at: {_is_null: true}\n school_id: {_eq: $schoolId}\n school_year_id: {_eq: $schoolYearId}\n }\n ) {\n id\n name\n code\n grade {\n id\n educational_level_id\n }\n }\n }\n";
3
+ var getFieldByTarget = function (target, schoolYearId) {
4
+ var _a;
5
+ var fieldByTarget = (_a = {},
6
+ _a[ROLE_CODE.TEACHER] = "\n profile: profile_teacher {\n user_code\n educational_level_group {\n educational_level_map_groups(where:{deleted_at:{_is_null:true}}) {\n educational_level_id\n }\n }\n teacher_subject_assignments(where: {deleted_at:{_is_null:true}}) {\n classroom_teachers(where: {deleted_at:{_is_null:true} classroom:{school_year_id:{_eq: ".concat(schoolYearId, "}}}) {\n classroom {\n id\n grade_id\n }\n }\n }\n }\n "),
7
+ _a[ROLE_CODE.STAFF] = "\n profile: profile_staff {\n user_code\n educational_level_group {\n educational_level_map_groups(where:{deleted_at:{_is_null:true}}) {\n educational_level_id\n }\n }\n }\n ",
8
+ _a[ROLE_CODE.PARENT] = "\n profile: profile_student {\n user_code\n }\n relationship_users(where: {deleted_at: {_is_null: true}}) {\n userByStudentId {\n full_name\n classroom_students(where: {deleted_at: {_is_null: true}, classroom: {school_year_id: {_eq: ".concat(schoolYearId, "}}}) {\n classroom {\n name\n id\n grade {\n id\n educational_level_id\n }\n\n }\n }\n }\n }\n "),
9
+ _a);
10
+ return fieldByTarget[target];
11
+ };
12
+ var isFilterAll = function (value) { return OPTION_FILTER_ALL.id === value; };
13
+ var getConditionsByTarget = function (_a) {
14
+ var condition = _a.condition, schoolYearId = _a.schoolYearId, target = _a.target;
15
+ var classroomId = condition.classroomId, educationalLevelId = condition.educationalLevelId, gradeId = condition.gradeId;
16
+ if ([classroomId, educationalLevelId, gradeId].every(function (item) { return item === OPTION_FILTER_ALL.id; })) {
17
+ // nếu bộ lọc đều chọn tất cả thì ko cần filter theo gì cả
18
+ return '';
19
+ }
20
+ var isNotAllEducationalLevel = !isFilterAll(educationalLevelId);
21
+ var isNotAllGrade = !isFilterAll(gradeId);
22
+ var isANotllClassroom = !isFilterAll(classroomId);
23
+ if (target === ROLE_CODE.PARENT) {
24
+ return " \n relationship_users:{\n deleted_at:{_is_null:true}\n userByStudentId:{\n classroom_students:{\n deleted_at: {_is_null: true}\n classroom:{\n ".concat(isANotllClassroom ? "id:{_eq: ".concat(classroomId, "}") : '', "\n school_year_id:{_eq: ").concat(schoolYearId, "}\n grade:{\n ").concat(isNotAllGrade ? "id:{_eq: ".concat(gradeId, "}") : '', "\n ").concat(isNotAllEducationalLevel ? "educational_level_id:{_eq: ".concat(educationalLevelId, "}") : '', "\n \n }\n }\n }\n }\n }\n ");
25
+ }
26
+ if (target === ROLE_CODE.TEACHER) {
27
+ return "\n profile_teacher:{\n ".concat(isNotAllEducationalLevel
28
+ ? " educational_level_group:{\n educational_level_map_groups:{\n deleted_at:{_is_null:true}\n educational_level_id:{_eq: ".concat(educationalLevelId, "}\n }\n }")
29
+ : '', "\n\n ").concat(isNotAllGrade || isANotllClassroom
30
+ ? " teacher_subject_assignments: {\n deleted_at:{_is_null:true}\n classroom_teachers:{\n deleted_at:{_is_null:true}\n classroom:{\n school_year_id:{_eq: ".concat(schoolYearId, "}\n ").concat(isANotllClassroom ? "id:{_eq: ".concat(classroomId, "}") : '', "\n ").concat(isNotAllGrade ? "grade_id:{_eq: ".concat(gradeId, "}") : '', "\n \n }\n }\n }")
31
+ : '', "\n \n\n }\n ");
32
+ }
33
+ if (target === ROLE_CODE.STAFF) {
34
+ return "\n ".concat(isNotAllEducationalLevel
35
+ ? "profile_staff:{\n educational_level_group:{\n educational_level_map_groups:{\n deleted_at:{_is_null:true}\n educational_level_id:{_eq: ".concat(educationalLevelId, "}\n }\n }\n }")
36
+ : '', "\n ");
37
+ }
38
+ return '';
39
+ };
40
+ export var queryListUserBuilder = function (_a) {
41
+ var condition = _a.condition, schoolYearId = _a.schoolYearId, target = _a.target;
42
+ return " query getListUserQuery(\n $roleCode: String!\n $limit: Int!\n $offset: Int!\n $searchKeyword: String!\n ) {\n users(\n limit: $limit\n offset: $offset\n order_by: {id: desc}\n where: {\n ".concat(getConditionsByTarget({ target: target, schoolYearId: schoolYearId, condition: condition }), "\n deleted_at: {_is_null: true}\n user_roles: {\n deleted_at: {_is_null: true}\n role: {role_code: {_eq: $roleCode}}\n }\n _or: [\n {full_name: {_ilike: $searchKeyword}}\n {full_name_unaccent: {_ilike: $searchKeyword}}\n ]\n }\n ) {\n id\n full_name\n email\n phone_number\n ").concat(getFieldByTarget(target, schoolYearId), "\n user_roles(where: {deleted_at: {_is_null: true}}) {\n role {\n name\n }\n }\n }\n }");
43
+ };
44
+ export var getTargetByIdQuery = "\n query getTargetByIdQuery($id: uuid!) {\n target_inform_target_by_pk(id: $id) {\n target_by_roles(where: {deleted_at: {_is_null: true}}) {\n role_code\n target_educational_levels {\n educational_level {\n id\n name\n code\n }\n }\n target_grades {\n grade {\n id\n name\n code\n }\n }\n target_classrooms {\n classroom {\n id\n name\n code\n }\n }\n target_users {\n user {\n id\n name: full_name\n phone: phone_number\n email\n profile_teacher {\n user_code\n } \n profile_staff {\n user_code\n }\n }\n }\n }\n }\n }\n";
45
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../../src/components/TargetSelect/graphql/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ISelectOptions } from '../types';
2
+ export default function useGetDataSelectTarget({ schoolYearId }: {
3
+ schoolYearId: number;
4
+ }): {
5
+ selectOptions: ISelectOptions;
6
+ loading: boolean;
7
+ };
@@ -0,0 +1,58 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { useEffect, useState } from 'react';
3
+ import { getSelectQuery } from '../graphql/query';
4
+ import PHXFuncGetLoggedInfo from '../../Func/getLoginInfo';
5
+ import PHXClientQueryV3 from '../../Func/clientQueryV3';
6
+ export default function useGetDataSelectTarget(_a) {
7
+ var _this = this;
8
+ var schoolYearId = _a.schoolYearId;
9
+ var _b = useState({
10
+ EDUCATIONAL_LEVEL: [],
11
+ GRADE: [],
12
+ CLASSROOM: []
13
+ }), selectOptions = _b[0], setSelectOptions = _b[1];
14
+ var _c = useState(true), loading = _c[0], setLoading = _c[1];
15
+ var userInfo = PHXFuncGetLoggedInfo();
16
+ var getDataSelect = function () { return __awaiter(_this, void 0, void 0, function () {
17
+ var _a, classroom, educational_level, grade, e_1;
18
+ return __generator(this, function (_b) {
19
+ switch (_b.label) {
20
+ case 0:
21
+ setLoading(true);
22
+ _b.label = 1;
23
+ case 1:
24
+ _b.trys.push([1, 3, 4, 5]);
25
+ return [4 /*yield*/, PHXClientQueryV3({
26
+ query: getSelectQuery,
27
+ variables: {
28
+ schoolId: userInfo === null || userInfo === void 0 ? void 0 : userInfo.school_id,
29
+ schoolYearId: schoolYearId
30
+ }
31
+ })];
32
+ case 2:
33
+ _a = (_b.sent()).data, classroom = _a.classroom, educational_level = _a.educational_level, grade = _a.grade;
34
+ setSelectOptions({
35
+ EDUCATIONAL_LEVEL: educational_level,
36
+ GRADE: grade,
37
+ CLASSROOM: classroom
38
+ });
39
+ return [3 /*break*/, 5];
40
+ case 3:
41
+ e_1 = _b.sent();
42
+ console.error(e_1);
43
+ return [3 /*break*/, 5];
44
+ case 4:
45
+ setLoading(false);
46
+ return [7 /*endfinally*/];
47
+ case 5: return [2 /*return*/];
48
+ }
49
+ });
50
+ }); };
51
+ useEffect(function () {
52
+ if (schoolYearId) {
53
+ getDataSelect();
54
+ }
55
+ }, [schoolYearId]);
56
+ return { selectOptions: selectOptions, loading: loading };
57
+ }
58
+ //# sourceMappingURL=use-get-data-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-get-data-select.js","sourceRoot":"","sources":["../../../../../src/components/TargetSelect/hooks/use-get-data-select.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,OAAO,oBAAoB,MAAM,yBAAyB,CAAA;AAC1D,OAAO,gBAAgB,MAAM,0BAA0B,CAAA;AAEvD,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAAC,EAA0C;IAAzF,iBAyCC;QAzCgD,YAAY,kBAAA;IACrD,IAAA,KAAoC,QAAQ,CAAiB;QACjE,iBAAiB,EAAE,EAAE;QACrB,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;KACd,CAAC,EAJK,aAAa,QAAA,EAAE,gBAAgB,QAIpC,CAAA;IACI,IAAA,KAAwB,QAAQ,CAAC,IAAI,CAAC,EAArC,OAAO,QAAA,EAAE,UAAU,QAAkB,CAAA;IAC5C,IAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAA;IAEvC,IAAM,aAAa,GAAG;;;;;oBACpB,UAAU,CAAC,IAAI,CAAC,CAAA;;;;oBAIV,qBAAM,gBAAgB,CAAC;4BACzB,KAAK,EAAE,cAAc;4BACrB,SAAS,EAAE;gCACT,QAAQ,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS;gCAC7B,YAAY,cAAA;6BACb;yBACF,CAAC,EAAA;;oBAPA,KACE,CAAA,SAMF,CAAA,KAP6C,EAArC,SAAS,eAAA,EAAE,iBAAiB,uBAAA,EAAE,KAAK,WAAA;oBAS7C,gBAAgB,CAAC;wBACf,iBAAiB,EAAE,iBAAiB;wBACpC,KAAK,EAAE,KAAK;wBACZ,SAAS,EAAE,SAAS;qBACrB,CAAC,CAAA;;;;oBAEF,OAAO,CAAC,KAAK,CAAC,GAAC,CAAC,CAAA;;;oBAEhB,UAAU,CAAC,KAAK,CAAC,CAAA;;;;;SAEpB,CAAA;IAED,SAAS,CAAC;QACR,IAAI,YAAY,EAAE;YAChB,aAAa,EAAE,CAAA;SAChB;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,OAAO,EAAE,aAAa,eAAA,EAAE,OAAO,SAAA,EAAE,CAAA;AACnC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { ITargetSelectedData } from '../types';
2
+ export default function useTargetSelect({ moduleCode }: {
3
+ moduleCode: string;
4
+ }): {
5
+ handleInsertTarget: ({ data }: {
6
+ data: Array<ITargetSelectedData>;
7
+ }) => Promise<{
8
+ id: number | null;
9
+ }>;
10
+ handleUpdateTarget: ({ data, id }: {
11
+ data: Array<ITargetSelectedData>;
12
+ id: string;
13
+ }) => Promise<void>;
14
+ loading: boolean;
15
+ };
@@ -0,0 +1,128 @@
1
+ import { __assign, __awaiter, __generator } from "tslib";
2
+ import { useState } from 'react';
3
+ import { insertTargetMutation, updateTargetMutation } from '../graphql/mutation';
4
+ import { FILTER_BY } from '../utils/constant';
5
+ import PHXFuncGetLoggedInfo from '../../Func/getLoginInfo';
6
+ import PHXClientMutationV3 from '../../Func/clientMutationV3';
7
+ export default function useTargetSelect(_a) {
8
+ var _this = this;
9
+ var moduleCode = _a.moduleCode;
10
+ var _b = useState(false), loading = _b[0], setLoading = _b[1];
11
+ var userInfo = PHXFuncGetLoggedInfo();
12
+ var getDataTargetSubmit = function (data, targetId) {
13
+ var result = [];
14
+ var schoolId = userInfo === null || userInfo === void 0 ? void 0 : userInfo.school_id;
15
+ data.forEach(function (item) {
16
+ var filterBy = item.filterBy, filterValues = item.filterValues, target = item.target;
17
+ var isALL = filterBy === FILTER_BY.ALL;
18
+ if (isALL) {
19
+ result.push(__assign({ role_code: target, is_all: isALL, school_id: schoolId }, (targetId ? { target_id: targetId } : {})));
20
+ return;
21
+ }
22
+ var filterBySubmit = __assign({ role_code: target, school_id: schoolId, target_educational_levels: { data: [] }, target_grades: { data: [] }, target_classrooms: { data: [] }, target_users: { data: [] } }, (targetId ? { target_id: targetId } : {}));
23
+ if (filterBy === FILTER_BY.EDUCATIONAL_LEVEL) {
24
+ filterBySubmit.target_educational_levels.data = filterValues.map(function (filterValue) { return ({
25
+ school_id: schoolId,
26
+ educational_level_id: filterValue.id
27
+ }); });
28
+ }
29
+ if (filterBy === FILTER_BY.GRADE) {
30
+ filterBySubmit.target_grades.data = filterValues.map(function (filterValue) { return ({
31
+ school_id: schoolId,
32
+ grade_id: filterValue.id
33
+ }); });
34
+ }
35
+ if (filterBy === FILTER_BY.CLASSROOM) {
36
+ filterBySubmit.target_classrooms.data = filterValues.map(function (filterValue) { return ({
37
+ school_id: schoolId,
38
+ classroom_id: filterValue.id
39
+ }); });
40
+ }
41
+ if (filterBy === FILTER_BY.CUSTOM_LIST) {
42
+ filterBySubmit.target_users.data = filterValues.map(function (filterValue) { return ({
43
+ school_id: schoolId,
44
+ user_id: filterValue.id
45
+ }); });
46
+ }
47
+ result.push(filterBySubmit);
48
+ });
49
+ return result;
50
+ };
51
+ var handleInsertTarget = function (_a) {
52
+ var data = _a.data;
53
+ return __awaiter(_this, void 0, void 0, function () {
54
+ var dataSubmit, returning, e_1;
55
+ var _b;
56
+ return __generator(this, function (_c) {
57
+ switch (_c.label) {
58
+ case 0:
59
+ setLoading(true);
60
+ _c.label = 1;
61
+ case 1:
62
+ _c.trys.push([1, 3, 4, 5]);
63
+ dataSubmit = {
64
+ school_id: userInfo === null || userInfo === void 0 ? void 0 : userInfo.school_id,
65
+ module_code: moduleCode,
66
+ target_by_roles: {
67
+ data: getDataTargetSubmit(data)
68
+ }
69
+ };
70
+ return [4 /*yield*/, PHXClientMutationV3({
71
+ query: insertTargetMutation,
72
+ variables: {
73
+ data: dataSubmit
74
+ },
75
+ isDelay: false
76
+ })];
77
+ case 2:
78
+ returning = (_c.sent()).data.insert_target_inform_target.returning;
79
+ return [2 /*return*/, { id: (_b = returning[0]) === null || _b === void 0 ? void 0 : _b.id }];
80
+ case 3:
81
+ e_1 = _c.sent();
82
+ console.error(e_1);
83
+ return [2 /*return*/, { id: null }];
84
+ case 4:
85
+ setLoading(false);
86
+ return [7 /*endfinally*/];
87
+ case 5: return [2 /*return*/];
88
+ }
89
+ });
90
+ });
91
+ };
92
+ var handleUpdateTarget = function (_a) {
93
+ var data = _a.data, id = _a.id;
94
+ return __awaiter(_this, void 0, void 0, function () {
95
+ var e_2;
96
+ return __generator(this, function (_b) {
97
+ switch (_b.label) {
98
+ case 0:
99
+ setLoading(true);
100
+ _b.label = 1;
101
+ case 1:
102
+ _b.trys.push([1, 3, 4, 5]);
103
+ return [4 /*yield*/, PHXClientMutationV3({
104
+ query: updateTargetMutation,
105
+ variables: {
106
+ targetId: id,
107
+ targetByRoles: getDataTargetSubmit(data, id)
108
+ },
109
+ isDelay: false
110
+ })];
111
+ case 2:
112
+ _b.sent();
113
+ return [3 /*break*/, 5];
114
+ case 3:
115
+ e_2 = _b.sent();
116
+ console.error(e_2);
117
+ return [3 /*break*/, 5];
118
+ case 4:
119
+ setLoading(false);
120
+ return [7 /*endfinally*/];
121
+ case 5: return [2 /*return*/];
122
+ }
123
+ });
124
+ });
125
+ };
126
+ return { handleInsertTarget: handleInsertTarget, handleUpdateTarget: handleUpdateTarget, loading: loading };
127
+ }
128
+ //# sourceMappingURL=use-target-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-target-select.js","sourceRoot":"","sources":["../../../../../src/components/TargetSelect/hooks/use-target-select.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './phx-target-select';
@@ -0,0 +1,2 @@
1
+ export * from './phx-target-select';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/TargetSelect/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ITargetSelectProps } from './types';
2
+ import React from 'react';
3
+ export default function PHXTargetSelect({ onChange, schoolYearId, targetId }: ITargetSelectProps): React.JSX.Element;
@@ -0,0 +1,120 @@
1
+ 'use client';
2
+ import { __assign, __awaiter, __generator, __rest, __spreadArray } from "tslib";
3
+ import { useEffect, useState } from 'react';
4
+ import RadioGroupSelect from './components/radio-group-select';
5
+ import { getTargetByIdQuery } from './graphql/query';
6
+ import useGetDataSelectTarget from './hooks/use-get-data-select';
7
+ import { targetConfigs } from './sample/config';
8
+ import { FILTER_BY } from './utils/constant';
9
+ import PHXClientQueryV3 from '../Func/clientQueryV3';
10
+ import { PHXSkeleton } from '../Skeleton';
11
+ import { PHXCard } from '../Card';
12
+ import React from 'react';
13
+ import { PHXCheckbox } from '../Checkbox';
14
+ export default function PHXTargetSelect(_a) {
15
+ var _this = this;
16
+ var onChange = _a.onChange, schoolYearId = _a.schoolYearId, targetId = _a.targetId;
17
+ var _b = useState([]), listTargetSelected = _b[0], setListTargetSelected = _b[1];
18
+ var _c = useGetDataSelectTarget({
19
+ schoolYearId: schoolYearId
20
+ }), getSelectLoading = _c.loading, selectOptions = _c.selectOptions;
21
+ var _d = useState(false), getDefaultLoading = _d[0], setGetDefaultLoading = _d[1];
22
+ var handleChangeTarget = function (target) {
23
+ var isCheckedByValue = listTargetSelected.some(function (item) { return item.target === target; });
24
+ var nextValues = [];
25
+ if (isCheckedByValue) {
26
+ nextValues = listTargetSelected.filter(function (item) { return item.target !== target; });
27
+ }
28
+ else {
29
+ nextValues = __spreadArray(__spreadArray([], listTargetSelected, true), [
30
+ {
31
+ target: target,
32
+ filterBy: FILTER_BY.ALL,
33
+ filterValues: []
34
+ },
35
+ ], false);
36
+ }
37
+ setListTargetSelected(nextValues);
38
+ onChange === null || onChange === void 0 ? void 0 : onChange(nextValues);
39
+ };
40
+ var handleChangeFilter = function (data) {
41
+ var clone = __spreadArray([], listTargetSelected, true);
42
+ var filteredData = clone.filter(function (item) { return item.target !== data.target; });
43
+ filteredData.push(data);
44
+ setListTargetSelected(filteredData);
45
+ onChange === null || onChange === void 0 ? void 0 : onChange(filteredData);
46
+ };
47
+ var getDefaultData = function () { return __awaiter(_this, void 0, void 0, function () {
48
+ var target_by_roles, formatedData, e_1;
49
+ return __generator(this, function (_a) {
50
+ switch (_a.label) {
51
+ case 0:
52
+ setGetDefaultLoading(true);
53
+ _a.label = 1;
54
+ case 1:
55
+ _a.trys.push([1, 3, 4, 5]);
56
+ return [4 /*yield*/, PHXClientQueryV3({
57
+ query: getTargetByIdQuery,
58
+ variables: {
59
+ id: targetId
60
+ }
61
+ })];
62
+ case 2:
63
+ target_by_roles = (_a.sent()).data.target_inform_target_by_pk.target_by_roles;
64
+ formatedData = target_by_roles === null || target_by_roles === void 0 ? void 0 : target_by_roles.map(function (target_by_role) {
65
+ var role_code = target_by_role.role_code, target_classrooms = target_by_role.target_classrooms, target_educational_levels = target_by_role.target_educational_levels, target_grades = target_by_role.target_grades, target_users = target_by_role.target_users;
66
+ var filterBy = FILTER_BY.ALL, filterValues = [];
67
+ if ((target_educational_levels === null || target_educational_levels === void 0 ? void 0 : target_educational_levels.length) > 0) {
68
+ filterBy = FILTER_BY.EDUCATIONAL_LEVEL;
69
+ filterValues = target_educational_levels.map(function (item) { return item.educational_level; });
70
+ }
71
+ if ((target_grades === null || target_grades === void 0 ? void 0 : target_grades.length) > 0) {
72
+ filterBy = FILTER_BY.GRADE;
73
+ filterValues = target_grades.map(function (item) { return item.grade; });
74
+ }
75
+ if ((target_classrooms === null || target_classrooms === void 0 ? void 0 : target_classrooms.length) > 0) {
76
+ filterBy = FILTER_BY.CLASSROOM;
77
+ filterValues = target_classrooms.map(function (item) { return item.classroom; });
78
+ }
79
+ if ((target_users === null || target_users === void 0 ? void 0 : target_users.length) > 0) {
80
+ filterBy = FILTER_BY.CUSTOM_LIST;
81
+ filterValues = target_users.map(function (item) {
82
+ var _a = item.user, profile_staff = _a.profile_staff, profile_teacher = _a.profile_teacher, rest = __rest(_a, ["profile_staff", "profile_teacher"]);
83
+ return __assign(__assign({}, rest), { code: (profile_staff === null || profile_staff === void 0 ? void 0 : profile_staff.user_code) || (profile_teacher === null || profile_teacher === void 0 ? void 0 : profile_teacher.user_code) || '' });
84
+ });
85
+ }
86
+ return {
87
+ target: role_code,
88
+ filterBy: filterBy,
89
+ filterValues: filterValues
90
+ };
91
+ });
92
+ setListTargetSelected(formatedData);
93
+ onChange === null || onChange === void 0 ? void 0 : onChange(formatedData);
94
+ return [3 /*break*/, 5];
95
+ case 3:
96
+ e_1 = _a.sent();
97
+ console.error(e_1);
98
+ return [3 /*break*/, 5];
99
+ case 4:
100
+ setGetDefaultLoading(false);
101
+ return [7 /*endfinally*/];
102
+ case 5: return [2 /*return*/];
103
+ }
104
+ });
105
+ }); };
106
+ useEffect(function () {
107
+ if (targetId) {
108
+ getDefaultData();
109
+ }
110
+ }, [targetId]);
111
+ return (React.createElement(React.Fragment, null, getSelectLoading || getDefaultLoading ? (React.createElement(PHXSkeleton, { type: 'table' })) : (React.createElement(PHXCard, { primaryHeader: true, title: '\u0110\u1ED1i t\u01B0\u1EE3ng hi\u1EC3n th\u1ECB' },
112
+ React.createElement("div", { className: 'space-y-3 ' }, targetConfigs.map(function (config) {
113
+ var helpText = config.helpText, listRadio = config.listRadio, title = config.title, value = config.value;
114
+ var isChecked = listTargetSelected.some(function (item) { return item.target === value; });
115
+ return (React.createElement("div", { key: value, className: 'space-y-2' },
116
+ React.createElement(PHXCheckbox, { checked: isChecked, helpText: helpText, id: value, isShowHelpText: true, onChange: function () { return handleChangeTarget(value); }, title: title }),
117
+ isChecked && (React.createElement(RadioGroupSelect, { handleChangeFilter: handleChangeFilter, listRadio: listRadio, listTargetSelected: listTargetSelected, schoolYearId: schoolYearId, selectOptions: selectOptions, target: value }))));
118
+ }))))));
119
+ }
120
+ //# sourceMappingURL=phx-target-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phx-target-select.js","sourceRoot":"","sources":["../../../../src/components/TargetSelect/phx-target-select.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ export declare const targetConfigs: ({
2
+ title: string;
3
+ value: "PH";
4
+ helpText: string;
5
+ listRadio: ({
6
+ title: string;
7
+ helpText: string;
8
+ value: "ALL";
9
+ comboboxLabel?: undefined;
10
+ } | {
11
+ title: string;
12
+ helpText: string;
13
+ value: "EDUCATIONAL_LEVEL";
14
+ comboboxLabel: string;
15
+ } | {
16
+ title: string;
17
+ helpText: string;
18
+ value: "GRADE";
19
+ comboboxLabel: string;
20
+ } | {
21
+ title: string;
22
+ helpText: string;
23
+ value: "CLASSROOM";
24
+ comboboxLabel: string;
25
+ } | {
26
+ title: string;
27
+ helpText: string;
28
+ value: "CUSTOM_LIST";
29
+ comboboxLabel?: undefined;
30
+ })[];
31
+ } | {
32
+ title: string;
33
+ value: "GV";
34
+ helpText: string;
35
+ listRadio: ({
36
+ title: string;
37
+ helpText: string;
38
+ value: "ALL";
39
+ comboboxLabel?: undefined;
40
+ } | {
41
+ title: string;
42
+ helpText: string;
43
+ value: "EDUCATIONAL_LEVEL";
44
+ comboboxLabel: string;
45
+ } | {
46
+ title: string;
47
+ helpText: string;
48
+ value: "GRADE";
49
+ comboboxLabel: string;
50
+ } | {
51
+ title: string;
52
+ helpText: string;
53
+ value: "CLASSROOM";
54
+ comboboxLabel: string;
55
+ } | {
56
+ title: string;
57
+ helpText: string;
58
+ value: "CUSTOM_LIST";
59
+ comboboxLabel?: undefined;
60
+ })[];
61
+ } | {
62
+ title: string;
63
+ value: "NV";
64
+ helpText: string;
65
+ listRadio: ({
66
+ title: string;
67
+ helpText: string;
68
+ value: "ALL";
69
+ } | {
70
+ title: string;
71
+ helpText: string;
72
+ value: "CUSTOM_LIST";
73
+ })[];
74
+ })[];