@coorpacademy/components 11.41.0 → 11.42.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"names":[],"mappings":";AAIA,OAAkB,EAAC,wBAAwB,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AA2BrE,eAAO,MAAM,mBAAmB,UAAkB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,YAAa,MAAM,GAAG,IAAI,KAAG,OACI,CAAC;AAEnE,QAAA,MAAM,mBAAmB;wBAAqB,wBAAwB;;;;;CAErE,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"names":[],"mappings":";AAIA,OAAkB,EAAC,wBAAwB,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAgCrE,eAAO,MAAM,mBAAmB,UAAkB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,YAAa,MAAM,GAAG,IAAI,KAAG,OACI,CAAC;AAEnE,QAAA,MAAM,mBAAmB;wBAAqB,wBAAwB;;;;;CAErE,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
@@ -12,6 +12,11 @@ const TAG_TYPES = {
12
12
  active: 'success',
13
13
  ended: 'default',
14
14
  disabled: 'warning',
15
+ // Login resolution in an audience upload
16
+ loginValid: 'success',
17
+ loginUnknown: 'failure',
18
+ loginAmbiguous: 'warning',
19
+ loginInactive: 'warning',
15
20
  // List-row information tags: « Ongoing changes », « N modules unavailable »
16
21
  ongoingChanges: 'progress',
17
22
  unavailable: 'warning',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","has","keys","Tag","propTypes","TAG_TYPES","draft","upcoming","active","ended","disabled","ongoingChanges","unavailable","processing","syncError","assigned","inProgress","completed","removed","dueSoon","overdue","late","ASSIGNMENT_TAG_KEYS","getAssignmentTagType","status","AssignmentStatusTag","label","createElement","type","process","env","NODE_ENV"],"sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"sourcesContent":["import React from 'react';\nimport has from 'lodash/fp/has';\nimport keys from 'lodash/fp/keys';\nimport Tag from '../../atom/tag';\nimport propTypes, {AssignmentStatusTagProps, TagType} from './types';\n\n// One status vocabulary for every assignment surface. Labels come from the consumer.\nconst TAG_TYPES: Record<string, TagType> = {\n // Assignment lifecycle: edit-page and tracking headers only, never on a list row\n draft: 'progress',\n upcoming: 'info',\n active: 'success',\n ended: 'default',\n disabled: 'warning',\n // List-row information tags: « Ongoing changes », « N modules unavailable »\n ongoingChanges: 'progress',\n unavailable: 'warning',\n // Sync, only when not up to date: there is no \"up to date\" key\n processing: 'progress',\n syncError: 'failure',\n // Learner row in the tracking table; \"completed late\" is a computed flag, not a status\n assigned: 'default',\n inProgress: 'info',\n completed: 'success',\n removed: 'default',\n // Computed learner flags\n dueSoon: 'warning',\n overdue: 'failure',\n late: 'warning'\n};\n\nexport const ASSIGNMENT_TAG_KEYS = keys(TAG_TYPES);\n\nexport const getAssignmentTagType = (status?: string | null): TagType =>\n status && has(status, TAG_TYPES) ? TAG_TYPES[status] : 'default';\n\nconst AssignmentStatusTag = ({status, label}: AssignmentStatusTagProps) => (\n <Tag type={getAssignmentTagType(status)} label={label} />\n);\n\nAssignmentStatusTag.propTypes = propTypes;\n\nexport default AssignmentStatusTag;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,gBAAgB;AACjC,OAAOC,GAAG,MAAM,gBAAgB;AAChC,OAAOC,SAAS,MAA2C,SAAS;;AAEpE;AACA,MAAMC,SAAkC,GAAG;EACzC;EACAC,KAAK,EAAE,UAAU;EACjBC,QAAQ,EAAE,MAAM;EAChBC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,SAAS;EACnB;EACAC,cAAc,EAAE,UAAU;EAC1BC,WAAW,EAAE,SAAS;EACtB;EACAC,UAAU,EAAE,UAAU;EACtBC,SAAS,EAAE,SAAS;EACpB;EACAC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,MAAM;EAClBC,SAAS,EAAE,SAAS;EACpBC,OAAO,EAAE,SAAS;EAClB;EACAC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGpB,IAAI,CAACG,SAAS,CAAC;AAElD,OAAO,MAAMkB,oBAAoB,GAAIC,MAAsB,IACzDA,MAAM,IAAIvB,GAAG,CAACuB,MAAM,EAAEnB,SAAS,CAAC,GAAGA,SAAS,CAACmB,MAAM,CAAC,GAAG,SAAS;AAElE,MAAMC,mBAAmB,GAAGA,CAAC;EAACD,MAAM;EAAEE;AAA+B,CAAC,kBACpE1B,KAAA,CAAA2B,aAAA,CAACxB,GAAG;EAACyB,IAAI,EAAEL,oBAAoB,CAACC,MAAM,CAAE;EAACE,KAAK,EAAEA;AAAM,CAAE,CACzD;AAEDD,mBAAmB,CAACrB,SAAS,GAAAyB,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG3B,SAAS;AAEzC,eAAeqB,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","has","keys","Tag","propTypes","TAG_TYPES","draft","upcoming","active","ended","disabled","loginValid","loginUnknown","loginAmbiguous","loginInactive","ongoingChanges","unavailable","processing","syncError","assigned","inProgress","completed","removed","dueSoon","overdue","late","ASSIGNMENT_TAG_KEYS","getAssignmentTagType","status","AssignmentStatusTag","label","createElement","type","process","env","NODE_ENV"],"sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"sourcesContent":["import React from 'react';\nimport has from 'lodash/fp/has';\nimport keys from 'lodash/fp/keys';\nimport Tag from '../../atom/tag';\nimport propTypes, {AssignmentStatusTagProps, TagType} from './types';\n\n// One status vocabulary for every assignment surface. Labels come from the consumer.\nconst TAG_TYPES: Record<string, TagType> = {\n // Assignment lifecycle: edit-page and tracking headers only, never on a list row\n draft: 'progress',\n upcoming: 'info',\n active: 'success',\n ended: 'default',\n disabled: 'warning',\n // Login resolution in an audience upload\n loginValid: 'success',\n loginUnknown: 'failure',\n loginAmbiguous: 'warning',\n loginInactive: 'warning',\n // List-row information tags: « Ongoing changes », « N modules unavailable »\n ongoingChanges: 'progress',\n unavailable: 'warning',\n // Sync, only when not up to date: there is no \"up to date\" key\n processing: 'progress',\n syncError: 'failure',\n // Learner row in the tracking table; \"completed late\" is a computed flag, not a status\n assigned: 'default',\n inProgress: 'info',\n completed: 'success',\n removed: 'default',\n // Computed learner flags\n dueSoon: 'warning',\n overdue: 'failure',\n late: 'warning'\n};\n\nexport const ASSIGNMENT_TAG_KEYS = keys(TAG_TYPES);\n\nexport const getAssignmentTagType = (status?: string | null): TagType =>\n status && has(status, TAG_TYPES) ? TAG_TYPES[status] : 'default';\n\nconst AssignmentStatusTag = ({status, label}: AssignmentStatusTagProps) => (\n <Tag type={getAssignmentTagType(status)} label={label} />\n);\n\nAssignmentStatusTag.propTypes = propTypes;\n\nexport default AssignmentStatusTag;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,MAAM,eAAe;AAC/B,OAAOC,IAAI,MAAM,gBAAgB;AACjC,OAAOC,GAAG,MAAM,gBAAgB;AAChC,OAAOC,SAAS,MAA2C,SAAS;;AAEpE;AACA,MAAMC,SAAkC,GAAG;EACzC;EACAC,KAAK,EAAE,UAAU;EACjBC,QAAQ,EAAE,MAAM;EAChBC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,SAAS;EACnB;EACAC,UAAU,EAAE,SAAS;EACrBC,YAAY,EAAE,SAAS;EACvBC,cAAc,EAAE,SAAS;EACzBC,aAAa,EAAE,SAAS;EACxB;EACAC,cAAc,EAAE,UAAU;EAC1BC,WAAW,EAAE,SAAS;EACtB;EACAC,UAAU,EAAE,UAAU;EACtBC,SAAS,EAAE,SAAS;EACpB;EACAC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,MAAM;EAClBC,SAAS,EAAE,SAAS;EACpBC,OAAO,EAAE,SAAS;EAClB;EACAC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,MAAMC,mBAAmB,GAAGxB,IAAI,CAACG,SAAS,CAAC;AAElD,OAAO,MAAMsB,oBAAoB,GAAIC,MAAsB,IACzDA,MAAM,IAAI3B,GAAG,CAAC2B,MAAM,EAAEvB,SAAS,CAAC,GAAGA,SAAS,CAACuB,MAAM,CAAC,GAAG,SAAS;AAElE,MAAMC,mBAAmB,GAAGA,CAAC;EAACD,MAAM;EAAEE;AAA+B,CAAC,kBACpE9B,KAAA,CAAA+B,aAAA,CAAC5B,GAAG;EAAC6B,IAAI,EAAEL,oBAAoB,CAACC,MAAM,CAAE;EAACE,KAAK,EAAEA;AAAM,CAAE,CACzD;AAEDD,mBAAmB,CAACzB,SAAS,GAAA6B,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG/B,SAAS;AAEzC,eAAeyB,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-result.d.ts","sourceRoot":"","sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAW,iBAAiB,EAAyC,MAAM,SAAS,CAAC;AA4B5F,QAAA,MAAM,YAAY;kEAOf,iBAAiB;;;;;;;;;;;;;;;;;;;;CAsBnB,CAAC;AAIF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"upload-result.d.ts","sourceRoot":"","sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAW,iBAAiB,EAAwB,MAAM,SAAS,CAAC;AAsB3E,QAAA,MAAM,YAAY;kEAOf,iBAAiB;;;;;;;;;;;;;;;;;;;;CAsBnB,CAAC;AAIF,eAAe,YAAY,CAAC"}
@@ -1,16 +1,13 @@
1
1
  import React from 'react';
2
+ import upperFirst from 'lodash/fp/upperFirst';
2
3
  import ButtonLink from '../../atom/button-link';
3
4
  import Tag from '../../atom/tag';
4
5
  import FaIcon from '../../atom/icon';
6
+ import { getAssignmentTagType } from '../../molecule/assignment-status-tag';
5
7
  import { COLORS } from '../../variables/colors';
6
8
  import { STATUSES, UploadResultPropTypes } from './types';
7
9
  import style from './upload-result.css';
8
- const STATUS_TAG_TYPES = {
9
- valid: 'success',
10
- unknown: 'failure',
11
- ambiguous: 'warning',
12
- inactive: 'warning'
13
- };
10
+
14
11
  // ButtonLink's text type sets its own colour; customStyle is the prop it lets win over it.
15
12
  const REMOVE_STYLE = {
16
13
  color: COLORS.cm_negative_200
@@ -79,7 +76,7 @@ const UploadResult = ({
79
76
  }, STATUSES.filter(status => summary[status]).map(status => /*#__PURE__*/React.createElement("div", {
80
77
  key: status
81
78
  }, /*#__PURE__*/React.createElement(Tag, {
82
- type: STATUS_TAG_TYPES[status],
79
+ type: getAssignmentTagType(`login${upperFirst(status)}`),
83
80
  label: summary[status]
84
81
  }))), keptLabel ? /*#__PURE__*/React.createElement("span", {
85
82
  className: style.muted
@@ -1 +1 @@
1
- {"version":3,"file":"upload-result.js","names":["React","ButtonLink","Tag","FaIcon","COLORS","STATUSES","UploadResultPropTypes","style","STATUS_TAG_TYPES","valid","unknown","ambiguous","inactive","REMOVE_STYLE","color","cm_negative_200","FIT_CONTENT","width","FILE_ICON_SIZE","faSize","wrapperSize","Report","label","onDownload","createElement","type","onClick","icon","position","faIcon","name","size","customStyle","UploadResult","file","summary","keptLabel","report","removeLabel","onRemove","className","result","iconName","iconColor","cm_positive_200","fileText","fileName","detail","muted","fileActions","filter","status","map","key","propTypes","process","env","NODE_ENV"],"sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"sourcesContent":["import React from 'react';\nimport ButtonLink from '../../atom/button-link';\nimport Tag from '../../atom/tag';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport {STATUSES, UploadResultProps, UploadResultPropTypes, UploadRowStatus} from './types';\nimport style from './upload-result.css';\n\nconst STATUS_TAG_TYPES: Record<UploadRowStatus, 'success' | 'failure' | 'warning'> = {\n valid: 'success',\n unknown: 'failure',\n ambiguous: 'warning',\n inactive: 'warning'\n};\n// ButtonLink's text type sets its own colour; customStyle is the prop it lets win over it.\nconst REMOVE_STYLE = {color: COLORS.cm_negative_200};\n// ButtonLink is full width by default, which centres the link under the file card.\nconst FIT_CONTENT = {width: 'fit-content'};\nconst FILE_ICON_SIZE = {faSize: 22, wrapperSize: 22};\n\n// Up to 5,000 rows: the logins not kept go to a file the admin can fix and upload again.\nconst Report = ({label, onDownload}: NonNullable<UploadResultProps['report']>) => (\n <div data-name=\"upload-report\">\n <ButtonLink\n type=\"text\"\n label={label}\n onClick={onDownload}\n icon={{position: 'left', faIcon: {name: 'download', size: 14}}}\n customStyle={FIT_CONTENT}\n />\n </div>\n);\n\nconst UploadResult = ({\n file,\n summary = {},\n keptLabel,\n report,\n removeLabel,\n onRemove\n}: UploadResultProps) => (\n <div className={style.result} data-name=\"upload-result\">\n <div className={style.file} data-name=\"upload-file\">\n <FaIcon iconName=\"file-excel\" iconColor={COLORS.cm_positive_200} size={FILE_ICON_SIZE} />\n <div className={style.fileText}>\n <div className={style.fileName}>{file?.name}</div>\n {file?.detail ? <div className={style.muted}>{file.detail}</div> : null}\n </div>\n <div className={style.fileActions}>\n <ButtonLink type=\"text\" label={removeLabel} onClick={onRemove} customStyle={REMOVE_STYLE} />\n </div>\n </div>\n <div className={style.summary} data-name=\"upload-summary\">\n {STATUSES.filter(status => summary[status]).map(status => (\n <div key={status}>\n <Tag type={STATUS_TAG_TYPES[status]} label={summary[status]} />\n </div>\n ))}\n {keptLabel ? <span className={style.muted}>{keptLabel}</span> : null}\n </div>\n {report ? <Report {...report} /> : null}\n </div>\n);\n\nUploadResult.propTypes = UploadResultPropTypes;\n\nexport default UploadResult;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"upload-result.js","names":["React","upperFirst","ButtonLink","Tag","FaIcon","getAssignmentTagType","COLORS","STATUSES","UploadResultPropTypes","style","REMOVE_STYLE","color","cm_negative_200","FIT_CONTENT","width","FILE_ICON_SIZE","faSize","wrapperSize","Report","label","onDownload","createElement","type","onClick","icon","position","faIcon","name","size","customStyle","UploadResult","file","summary","keptLabel","report","removeLabel","onRemove","className","result","iconName","iconColor","cm_positive_200","fileText","fileName","detail","muted","fileActions","filter","status","map","key","propTypes","process","env","NODE_ENV"],"sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"sourcesContent":["import React from 'react';\nimport upperFirst from 'lodash/fp/upperFirst';\nimport ButtonLink from '../../atom/button-link';\nimport Tag from '../../atom/tag';\nimport FaIcon from '../../atom/icon';\nimport {getAssignmentTagType} from '../../molecule/assignment-status-tag';\nimport {COLORS} from '../../variables/colors';\nimport {STATUSES, UploadResultProps, UploadResultPropTypes} from './types';\nimport style from './upload-result.css';\n\n// ButtonLink's text type sets its own colour; customStyle is the prop it lets win over it.\nconst REMOVE_STYLE = {color: COLORS.cm_negative_200};\n// ButtonLink is full width by default, which centres the link under the file card.\nconst FIT_CONTENT = {width: 'fit-content'};\nconst FILE_ICON_SIZE = {faSize: 22, wrapperSize: 22};\n\n// Up to 5,000 rows: the logins not kept go to a file the admin can fix and upload again.\nconst Report = ({label, onDownload}: NonNullable<UploadResultProps['report']>) => (\n <div data-name=\"upload-report\">\n <ButtonLink\n type=\"text\"\n label={label}\n onClick={onDownload}\n icon={{position: 'left', faIcon: {name: 'download', size: 14}}}\n customStyle={FIT_CONTENT}\n />\n </div>\n);\n\nconst UploadResult = ({\n file,\n summary = {},\n keptLabel,\n report,\n removeLabel,\n onRemove\n}: UploadResultProps) => (\n <div className={style.result} data-name=\"upload-result\">\n <div className={style.file} data-name=\"upload-file\">\n <FaIcon iconName=\"file-excel\" iconColor={COLORS.cm_positive_200} size={FILE_ICON_SIZE} />\n <div className={style.fileText}>\n <div className={style.fileName}>{file?.name}</div>\n {file?.detail ? <div className={style.muted}>{file.detail}</div> : null}\n </div>\n <div className={style.fileActions}>\n <ButtonLink type=\"text\" label={removeLabel} onClick={onRemove} customStyle={REMOVE_STYLE} />\n </div>\n </div>\n <div className={style.summary} data-name=\"upload-summary\">\n {STATUSES.filter(status => summary[status]).map(status => (\n <div key={status}>\n <Tag type={getAssignmentTagType(`login${upperFirst(status)}`)} label={summary[status]} />\n </div>\n ))}\n {keptLabel ? <span className={style.muted}>{keptLabel}</span> : null}\n </div>\n {report ? <Report {...report} /> : null}\n </div>\n);\n\nUploadResult.propTypes = UploadResultPropTypes;\n\nexport default UploadResult;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"names":[],"mappings":";AAIA,OAAkB,EAAC,wBAAwB,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AA2BrE,eAAO,MAAM,mBAAmB,UAAkB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,YAAa,MAAM,GAAG,IAAI,KAAG,OACI,CAAC;AAEnE,QAAA,MAAM,mBAAmB;wBAAqB,wBAAwB;;;;;CAErE,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"names":[],"mappings":";AAIA,OAAkB,EAAC,wBAAwB,EAAE,OAAO,EAAC,MAAM,SAAS,CAAC;AAgCrE,eAAO,MAAM,mBAAmB,UAAkB,CAAC;AAEnD,eAAO,MAAM,oBAAoB,YAAa,MAAM,GAAG,IAAI,KAAG,OACI,CAAC;AAEnE,QAAA,MAAM,mBAAmB;wBAAqB,wBAAwB;;;;;CAErE,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
@@ -16,6 +16,11 @@ const TAG_TYPES = {
16
16
  active: 'success',
17
17
  ended: 'default',
18
18
  disabled: 'warning',
19
+ // Login resolution in an audience upload
20
+ loginValid: 'success',
21
+ loginUnknown: 'failure',
22
+ loginAmbiguous: 'warning',
23
+ loginInactive: 'warning',
19
24
  // List-row information tags: « Ongoing changes », « N modules unavailable »
20
25
  ongoingChanges: 'progress',
21
26
  unavailable: 'warning',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_has","_keys","_tag","_types","e","__esModule","default","TAG_TYPES","draft","upcoming","active","ended","disabled","ongoingChanges","unavailable","processing","syncError","assigned","inProgress","completed","removed","dueSoon","overdue","late","ASSIGNMENT_TAG_KEYS","exports","keys","getAssignmentTagType","status","has","AssignmentStatusTag","label","createElement","type","propTypes","process","env","NODE_ENV","_default"],"sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"sourcesContent":["import React from 'react';\nimport has from 'lodash/fp/has';\nimport keys from 'lodash/fp/keys';\nimport Tag from '../../atom/tag';\nimport propTypes, {AssignmentStatusTagProps, TagType} from './types';\n\n// One status vocabulary for every assignment surface. Labels come from the consumer.\nconst TAG_TYPES: Record<string, TagType> = {\n // Assignment lifecycle: edit-page and tracking headers only, never on a list row\n draft: 'progress',\n upcoming: 'info',\n active: 'success',\n ended: 'default',\n disabled: 'warning',\n // List-row information tags: « Ongoing changes », « N modules unavailable »\n ongoingChanges: 'progress',\n unavailable: 'warning',\n // Sync, only when not up to date: there is no \"up to date\" key\n processing: 'progress',\n syncError: 'failure',\n // Learner row in the tracking table; \"completed late\" is a computed flag, not a status\n assigned: 'default',\n inProgress: 'info',\n completed: 'success',\n removed: 'default',\n // Computed learner flags\n dueSoon: 'warning',\n overdue: 'failure',\n late: 'warning'\n};\n\nexport const ASSIGNMENT_TAG_KEYS = keys(TAG_TYPES);\n\nexport const getAssignmentTagType = (status?: string | null): TagType =>\n status && has(status, TAG_TYPES) ? TAG_TYPES[status] : 'default';\n\nconst AssignmentStatusTag = ({status, label}: AssignmentStatusTagProps) => (\n <Tag type={getAssignmentTagType(status)} label={label} />\n);\n\nAssignmentStatusTag.propTypes = propTypes;\n\nexport default AssignmentStatusTag;\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,IAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAqE,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErE;AACA,MAAMG,SAAkC,GAAG;EACzC;EACAC,KAAK,EAAE,UAAU;EACjBC,QAAQ,EAAE,MAAM;EAChBC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,SAAS;EACnB;EACAC,cAAc,EAAE,UAAU;EAC1BC,WAAW,EAAE,SAAS;EACtB;EACAC,UAAU,EAAE,UAAU;EACtBC,SAAS,EAAE,SAAS;EACpB;EACAC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,MAAM;EAClBC,SAAS,EAAE,SAAS;EACpBC,OAAO,EAAE,SAAS;EAClB;EACAC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,aAAI,EAACnB,SAAS,CAAC;AAE3C,MAAMoB,oBAAoB,GAAIC,MAAsB,IACzDA,MAAM,IAAI,IAAAC,YAAG,EAACD,MAAM,EAAErB,SAAS,CAAC,GAAGA,SAAS,CAACqB,MAAM,CAAC,GAAG,SAAS;AAACH,OAAA,CAAAE,oBAAA,GAAAA,oBAAA;AAEnE,MAAMG,mBAAmB,GAAGA,CAAC;EAACF,MAAM;EAAEG;AAA+B,CAAC,kBACpElC,MAAA,CAAAS,OAAA,CAAA0B,aAAA,CAAC9B,IAAA,CAAAI,OAAG;EAAC2B,IAAI,EAAEN,oBAAoB,CAACC,MAAM,CAAE;EAACG,KAAK,EAAEA;AAAM,CAAE,CACzD;AAEDD,mBAAmB,CAACI,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAGH,cAAS;AAAC,IAAAI,QAAA,GAAAb,OAAA,CAAAnB,OAAA,GAE3BwB,mBAAmB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_has","_keys","_tag","_types","e","__esModule","default","TAG_TYPES","draft","upcoming","active","ended","disabled","loginValid","loginUnknown","loginAmbiguous","loginInactive","ongoingChanges","unavailable","processing","syncError","assigned","inProgress","completed","removed","dueSoon","overdue","late","ASSIGNMENT_TAG_KEYS","exports","keys","getAssignmentTagType","status","has","AssignmentStatusTag","label","createElement","type","propTypes","process","env","NODE_ENV","_default"],"sources":["../../../src/molecule/assignment-status-tag/index.tsx"],"sourcesContent":["import React from 'react';\nimport has from 'lodash/fp/has';\nimport keys from 'lodash/fp/keys';\nimport Tag from '../../atom/tag';\nimport propTypes, {AssignmentStatusTagProps, TagType} from './types';\n\n// One status vocabulary for every assignment surface. Labels come from the consumer.\nconst TAG_TYPES: Record<string, TagType> = {\n // Assignment lifecycle: edit-page and tracking headers only, never on a list row\n draft: 'progress',\n upcoming: 'info',\n active: 'success',\n ended: 'default',\n disabled: 'warning',\n // Login resolution in an audience upload\n loginValid: 'success',\n loginUnknown: 'failure',\n loginAmbiguous: 'warning',\n loginInactive: 'warning',\n // List-row information tags: « Ongoing changes », « N modules unavailable »\n ongoingChanges: 'progress',\n unavailable: 'warning',\n // Sync, only when not up to date: there is no \"up to date\" key\n processing: 'progress',\n syncError: 'failure',\n // Learner row in the tracking table; \"completed late\" is a computed flag, not a status\n assigned: 'default',\n inProgress: 'info',\n completed: 'success',\n removed: 'default',\n // Computed learner flags\n dueSoon: 'warning',\n overdue: 'failure',\n late: 'warning'\n};\n\nexport const ASSIGNMENT_TAG_KEYS = keys(TAG_TYPES);\n\nexport const getAssignmentTagType = (status?: string | null): TagType =>\n status && has(status, TAG_TYPES) ? TAG_TYPES[status] : 'default';\n\nconst AssignmentStatusTag = ({status, label}: AssignmentStatusTagProps) => (\n <Tag type={getAssignmentTagType(status)} label={label} />\n);\n\nAssignmentStatusTag.propTypes = propTypes;\n\nexport default AssignmentStatusTag;\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,IAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AAAqE,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAErE;AACA,MAAMG,SAAkC,GAAG;EACzC;EACAC,KAAK,EAAE,UAAU;EACjBC,QAAQ,EAAE,MAAM;EAChBC,MAAM,EAAE,SAAS;EACjBC,KAAK,EAAE,SAAS;EAChBC,QAAQ,EAAE,SAAS;EACnB;EACAC,UAAU,EAAE,SAAS;EACrBC,YAAY,EAAE,SAAS;EACvBC,cAAc,EAAE,SAAS;EACzBC,aAAa,EAAE,SAAS;EACxB;EACAC,cAAc,EAAE,UAAU;EAC1BC,WAAW,EAAE,SAAS;EACtB;EACAC,UAAU,EAAE,UAAU;EACtBC,SAAS,EAAE,SAAS;EACpB;EACAC,QAAQ,EAAE,SAAS;EACnBC,UAAU,EAAE,MAAM;EAClBC,SAAS,EAAE,SAAS;EACpBC,OAAO,EAAE,SAAS;EAClB;EACAC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,aAAI,EAACvB,SAAS,CAAC;AAE3C,MAAMwB,oBAAoB,GAAIC,MAAsB,IACzDA,MAAM,IAAI,IAAAC,YAAG,EAACD,MAAM,EAAEzB,SAAS,CAAC,GAAGA,SAAS,CAACyB,MAAM,CAAC,GAAG,SAAS;AAACH,OAAA,CAAAE,oBAAA,GAAAA,oBAAA;AAEnE,MAAMG,mBAAmB,GAAGA,CAAC;EAACF,MAAM;EAAEG;AAA+B,CAAC,kBACpEtC,MAAA,CAAAS,OAAA,CAAA8B,aAAA,CAAClC,IAAA,CAAAI,OAAG;EAAC+B,IAAI,EAAEN,oBAAoB,CAACC,MAAM,CAAE;EAACG,KAAK,EAAEA;AAAM,CAAE,CACzD;AAEDD,mBAAmB,CAACI,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAGH,cAAS;AAAC,IAAAI,QAAA,GAAAb,OAAA,CAAAvB,OAAA,GAE3B4B,mBAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-result.d.ts","sourceRoot":"","sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAW,iBAAiB,EAAyC,MAAM,SAAS,CAAC;AA4B5F,QAAA,MAAM,YAAY;kEAOf,iBAAiB;;;;;;;;;;;;;;;;;;;;CAsBnB,CAAC;AAIF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"upload-result.d.ts","sourceRoot":"","sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAW,iBAAiB,EAAwB,MAAM,SAAS,CAAC;AAsB3E,QAAA,MAAM,YAAY;kEAOf,iBAAiB;;;;;;;;;;;;;;;;;;;;CAsBnB,CAAC;AAIF,eAAe,YAAY,CAAC"}
@@ -3,19 +3,15 @@
3
3
  exports.__esModule = true;
4
4
  exports.default = void 0;
5
5
  var _react = _interopRequireDefault(require("react"));
6
+ var _upperFirst = _interopRequireDefault(require("lodash/fp/upperFirst"));
6
7
  var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
7
8
  var _tag = _interopRequireDefault(require("../../atom/tag"));
8
9
  var _icon = _interopRequireDefault(require("../../atom/icon"));
10
+ var _assignmentStatusTag = require("../../molecule/assignment-status-tag");
9
11
  var _colors = require("../../variables/colors");
10
12
  var _types = require("./types");
11
13
  var _uploadResult = _interopRequireDefault(require("./upload-result.css"));
12
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const STATUS_TAG_TYPES = {
14
- valid: 'success',
15
- unknown: 'failure',
16
- ambiguous: 'warning',
17
- inactive: 'warning'
18
- };
19
15
  // ButtonLink's text type sets its own colour; customStyle is the prop it lets win over it.
20
16
  const REMOVE_STYLE = {
21
17
  color: _colors.COLORS.cm_negative_200
@@ -84,7 +80,7 @@ const UploadResult = ({
84
80
  }, _types.STATUSES.filter(status => summary[status]).map(status => /*#__PURE__*/_react.default.createElement("div", {
85
81
  key: status
86
82
  }, /*#__PURE__*/_react.default.createElement(_tag.default, {
87
- type: STATUS_TAG_TYPES[status],
83
+ type: (0, _assignmentStatusTag.getAssignmentTagType)(`login${(0, _upperFirst.default)(status)}`),
88
84
  label: summary[status]
89
85
  }))), keptLabel ? /*#__PURE__*/_react.default.createElement("span", {
90
86
  className: _uploadResult.default.muted
@@ -1 +1 @@
1
- {"version":3,"file":"upload-result.js","names":["_react","_interopRequireDefault","require","_buttonLink","_tag","_icon","_colors","_types","_uploadResult","e","__esModule","default","STATUS_TAG_TYPES","valid","unknown","ambiguous","inactive","REMOVE_STYLE","color","COLORS","cm_negative_200","FIT_CONTENT","width","FILE_ICON_SIZE","faSize","wrapperSize","Report","label","onDownload","createElement","type","onClick","icon","position","faIcon","name","size","customStyle","UploadResult","file","summary","keptLabel","report","removeLabel","onRemove","className","style","result","iconName","iconColor","cm_positive_200","fileText","fileName","detail","muted","fileActions","STATUSES","filter","status","map","key","propTypes","process","env","NODE_ENV","UploadResultPropTypes","_default","exports"],"sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"sourcesContent":["import React from 'react';\nimport ButtonLink from '../../atom/button-link';\nimport Tag from '../../atom/tag';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport {STATUSES, UploadResultProps, UploadResultPropTypes, UploadRowStatus} from './types';\nimport style from './upload-result.css';\n\nconst STATUS_TAG_TYPES: Record<UploadRowStatus, 'success' | 'failure' | 'warning'> = {\n valid: 'success',\n unknown: 'failure',\n ambiguous: 'warning',\n inactive: 'warning'\n};\n// ButtonLink's text type sets its own colour; customStyle is the prop it lets win over it.\nconst REMOVE_STYLE = {color: COLORS.cm_negative_200};\n// ButtonLink is full width by default, which centres the link under the file card.\nconst FIT_CONTENT = {width: 'fit-content'};\nconst FILE_ICON_SIZE = {faSize: 22, wrapperSize: 22};\n\n// Up to 5,000 rows: the logins not kept go to a file the admin can fix and upload again.\nconst Report = ({label, onDownload}: NonNullable<UploadResultProps['report']>) => (\n <div data-name=\"upload-report\">\n <ButtonLink\n type=\"text\"\n label={label}\n onClick={onDownload}\n icon={{position: 'left', faIcon: {name: 'download', size: 14}}}\n customStyle={FIT_CONTENT}\n />\n </div>\n);\n\nconst UploadResult = ({\n file,\n summary = {},\n keptLabel,\n report,\n removeLabel,\n onRemove\n}: UploadResultProps) => (\n <div className={style.result} data-name=\"upload-result\">\n <div className={style.file} data-name=\"upload-file\">\n <FaIcon iconName=\"file-excel\" iconColor={COLORS.cm_positive_200} size={FILE_ICON_SIZE} />\n <div className={style.fileText}>\n <div className={style.fileName}>{file?.name}</div>\n {file?.detail ? <div className={style.muted}>{file.detail}</div> : null}\n </div>\n <div className={style.fileActions}>\n <ButtonLink type=\"text\" label={removeLabel} onClick={onRemove} customStyle={REMOVE_STYLE} />\n </div>\n </div>\n <div className={style.summary} data-name=\"upload-summary\">\n {STATUSES.filter(status => summary[status]).map(status => (\n <div key={status}>\n <Tag type={STATUS_TAG_TYPES[status]} label={summary[status]} />\n </div>\n ))}\n {keptLabel ? <span className={style.muted}>{keptLabel}</span> : null}\n </div>\n {report ? <Report {...report} /> : null}\n </div>\n);\n\nUploadResult.propTypes = UploadResultPropTypes;\n\nexport default UploadResult;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"upload-result.js","names":["_react","_interopRequireDefault","require","_upperFirst","_buttonLink","_tag","_icon","_assignmentStatusTag","_colors","_types","_uploadResult","e","__esModule","default","REMOVE_STYLE","color","COLORS","cm_negative_200","FIT_CONTENT","width","FILE_ICON_SIZE","faSize","wrapperSize","Report","label","onDownload","createElement","type","onClick","icon","position","faIcon","name","size","customStyle","UploadResult","file","summary","keptLabel","report","removeLabel","onRemove","className","style","result","iconName","iconColor","cm_positive_200","fileText","fileName","detail","muted","fileActions","STATUSES","filter","status","map","key","getAssignmentTagType","upperFirst","propTypes","process","env","NODE_ENV","UploadResultPropTypes","_default","exports"],"sources":["../../../src/organism/assignment-audience/upload-result.tsx"],"sourcesContent":["import React from 'react';\nimport upperFirst from 'lodash/fp/upperFirst';\nimport ButtonLink from '../../atom/button-link';\nimport Tag from '../../atom/tag';\nimport FaIcon from '../../atom/icon';\nimport {getAssignmentTagType} from '../../molecule/assignment-status-tag';\nimport {COLORS} from '../../variables/colors';\nimport {STATUSES, UploadResultProps, UploadResultPropTypes} from './types';\nimport style from './upload-result.css';\n\n// ButtonLink's text type sets its own colour; customStyle is the prop it lets win over it.\nconst REMOVE_STYLE = {color: COLORS.cm_negative_200};\n// ButtonLink is full width by default, which centres the link under the file card.\nconst FIT_CONTENT = {width: 'fit-content'};\nconst FILE_ICON_SIZE = {faSize: 22, wrapperSize: 22};\n\n// Up to 5,000 rows: the logins not kept go to a file the admin can fix and upload again.\nconst Report = ({label, onDownload}: NonNullable<UploadResultProps['report']>) => (\n <div data-name=\"upload-report\">\n <ButtonLink\n type=\"text\"\n label={label}\n onClick={onDownload}\n icon={{position: 'left', faIcon: {name: 'download', size: 14}}}\n customStyle={FIT_CONTENT}\n />\n </div>\n);\n\nconst UploadResult = ({\n file,\n summary = {},\n keptLabel,\n report,\n removeLabel,\n onRemove\n}: UploadResultProps) => (\n <div className={style.result} data-name=\"upload-result\">\n <div className={style.file} data-name=\"upload-file\">\n <FaIcon iconName=\"file-excel\" iconColor={COLORS.cm_positive_200} size={FILE_ICON_SIZE} />\n <div className={style.fileText}>\n <div className={style.fileName}>{file?.name}</div>\n {file?.detail ? <div className={style.muted}>{file.detail}</div> : null}\n </div>\n <div className={style.fileActions}>\n <ButtonLink type=\"text\" label={removeLabel} onClick={onRemove} customStyle={REMOVE_STYLE} />\n </div>\n </div>\n <div className={style.summary} data-name=\"upload-summary\">\n {STATUSES.filter(status => summary[status]).map(status => (\n <div key={status}>\n <Tag type={getAssignmentTagType(`login${upperFirst(status)}`)} label={summary[status]} />\n </div>\n ))}\n {keptLabel ? <span className={style.muted}>{keptLabel}</span> : null}\n </div>\n {report ? <Report {...report} /> : null}\n </div>\n);\n\nUploadResult.propTypes = UploadResultPropTypes;\n\nexport default UploadResult;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coorpacademy/components",
3
- "version": "11.41.0",
3
+ "version": "11.42.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -169,5 +169,5 @@
169
169
  "last 2 versions",
170
170
  "IE 11"
171
171
  ],
172
- "gitHead": "76adb38d1f2706d0ef4c1c5d62e197a7a3df6b02"
172
+ "gitHead": "faec78ddc5290cb0f7d105a983ca713840c4ae78"
173
173
  }