@aarhus-university/au-lib-react-components 9.11.19 → 10.0.2

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 (165) hide show
  1. package/.eslintrc.js +44 -0
  2. package/README.md +19 -20
  3. package/babel.config.js +7 -6
  4. package/build/umd/all.css +1 -1
  5. package/build/umd/all.css.map +1 -1
  6. package/build/umd/all.js +1 -1
  7. package/build/umd/all.js.map +1 -1
  8. package/build/umd/alphabox.js +1 -1
  9. package/build/umd/alphabox.js.map +1 -1
  10. package/build/umd/databox.js +1 -2
  11. package/build/umd/databox.js.map +1 -1
  12. package/build/umd/diagramme.js +1 -1
  13. package/build/umd/diagramme.js.map +1 -1
  14. package/build/umd/flowbox.js +1 -1
  15. package/build/umd/flowbox.js.map +1 -1
  16. package/build/umd/universe.js +1 -1
  17. package/build/umd/universe.js.map +1 -1
  18. package/package.json +66 -60
  19. package/src/components/{delphinus/AUAlertComponent.js → AUAlertComponent.tsx} +70 -85
  20. package/src/components/{AutoSuggestComponent.js → AUAutoSuggestComponent.js} +45 -19
  21. package/src/components/AUCalendarComponent.tsx +493 -0
  22. package/src/components/AUContentToggleComponent.tsx +33 -0
  23. package/src/components/AUDatepickerComponent.tsx +117 -0
  24. package/src/components/AUMobilePrefixComponent.tsx +15 -0
  25. package/src/components/{delphinus/AUModalComponent.js → AUModalComponent.tsx} +80 -94
  26. package/src/components/{form/AUReceiptComponent.js → AUReceiptComponent.tsx} +33 -40
  27. package/src/components/AUSpinnerComponent.tsx +67 -0
  28. package/src/components/{delphinus/AUSubNavComponent.js → AUSubNavComponent.tsx} +38 -53
  29. package/src/components/{form/AUSubmitButtonContainerComponent.js → AUSubmitButtonContainerComponent.tsx} +31 -39
  30. package/src/components/{delphinus/AUTabbedContentComponent.js → AUTabbedContentComponent.tsx} +145 -150
  31. package/src/components/{delphinus/AUTableComponent.js → AUTableComponent.tsx} +24 -28
  32. package/src/components/{delphinus/AUToastComponent.js → AUToastComponent.tsx} +104 -91
  33. package/src/components/{delphinus/AUToolbarComponent.js → AUToolbarComponent.tsx} +45 -48
  34. package/src/components/profile/AUProfileActions.js +128 -128
  35. package/src/components/profile/AUProfileAvatarComponent.js +83 -83
  36. package/src/components/profile/AUProfileAvatarV2Component.js +91 -91
  37. package/src/components/profile/AUProfileAvatarV3Component.tsx +42 -0
  38. package/src/components/profile/AUProfileContainerComponent.js +283 -283
  39. package/src/components/profile/AUProfileHooks.js +30 -30
  40. package/src/components/profile/AUProfileItemComponent.js +54 -54
  41. package/src/components/profile/AUProfileLanguageComponent.js +131 -131
  42. package/src/components/profile/{AUProfileLoginComponent.js → AUProfileLoginComponent.tsx} +3 -18
  43. package/src/components/profile/AUProfileMailComponent.js +307 -307
  44. package/src/components/profile/AUProfileMobileComponent.js +164 -164
  45. package/src/components/profile/AUProfileNameComponent.js +253 -253
  46. package/src/components/profile/AUProfileNextOfKinComponent.js +216 -216
  47. package/src/components/profile/AUProfileReducer.js +230 -230
  48. package/src/components/profile/AUProfileWidgetComponent.js +95 -95
  49. package/src/components/profile/AUProfileWidgetV2Component.js +116 -116
  50. package/src/components/profile/{AUProfileWidgetV3Component.js → AUProfileWidgetV3Component.tsx} +122 -130
  51. package/src/components/wrapping/AUEmbedComponent.js +47 -47
  52. package/src/{components → layout-2016/components}/alphabox/AlphaBoxComponent.js +28 -25
  53. package/src/{components → layout-2016/components}/alphabox/AlphaBoxContentComponent.js +25 -14
  54. package/src/{components → layout-2016/components/common}/AUCollapsibleComponent.js +1 -22
  55. package/src/{components → layout-2016/components/common}/AUSpinnerComponent.js +2 -24
  56. package/src/{components → layout-2016/components}/databox/DataBoxAlphabetComponent.js +1 -1
  57. package/src/{components → layout-2016/components}/databox/DataBoxAssociationComponent.js +2 -2
  58. package/src/{components → layout-2016/components}/databox/DataBoxButtonComponent.js +7 -3
  59. package/src/{components → layout-2016/components}/databox/DataBoxComponent.js +2 -2
  60. package/src/{components → layout-2016/components}/databox/DataBoxGroupingComponent.js +2 -0
  61. package/src/{components → layout-2016/components}/databox/DataBoxSearchResultComponent.js +1 -5
  62. package/src/{components → layout-2016/components}/databox/DataBoxStackedAssociationComponent.js +1 -5
  63. package/src/{components → layout-2016/components}/databox/DataBoxSuggestionComponent.js +0 -0
  64. package/src/{components → layout-2016/components/diagramme}/AUDiagrammeComponent.js +5 -6
  65. package/src/{components → layout-2016/components}/flowbox/FlowBoxComponent.js +8 -8
  66. package/src/{components → layout-2016/components}/flowbox/FlowBoxPhoneComponent.js +3 -5
  67. package/src/{components → layout-2016/components}/profile/AUProfileAvatar2016Component.js +6 -2
  68. package/src/{components → layout-2016/components}/universe/StaffTopComponent.js +4 -3
  69. package/src/{components → layout-2016/components}/universe/StudentTopComponent.js +0 -0
  70. package/src/{components → layout-2016/components}/universe/UniverseContainerComponent.js +11 -8
  71. package/src/layout-2016/lib/all.js +3 -0
  72. package/src/{lib → layout-2016/lib}/au-alphabox.js +1 -3
  73. package/src/{lib → layout-2016/lib}/au-databox.js +6 -9
  74. package/src/{lib → layout-2016/lib}/au-diagramme.js +2 -4
  75. package/src/{lib → layout-2016/lib}/au-flowbox.js +1 -3
  76. package/src/{lib → layout-2016/lib}/universe.js +0 -0
  77. package/src/lib/{helpers.js → helpers.ts} +31 -59
  78. package/src/{components/delphinus/hooks.js → lib/hooks.ts} +33 -28
  79. package/src/lib/{i18n.js → i18n.ts} +600 -601
  80. package/src/lib/{tracking.js → tracking.ts} +69 -65
  81. package/src/lib/{wrapping.js → wrapping.ts} +21 -16
  82. package/src/styles/_settings.scss +10 -10
  83. package/src/styles/alphabox.scss +222 -208
  84. package/src/styles/app.scss +7 -13
  85. package/src/styles/autosuggest.scss +57 -57
  86. package/src/styles/databox.scss +563 -563
  87. package/src/styles/diagramme.scss +119 -119
  88. package/src/styles/flowbox.scss +72 -72
  89. package/src/styles/maps.scss +395 -395
  90. package/tsconfig.json +47 -0
  91. package/types/common/interfaces/gui.d.ts +63 -0
  92. package/types/common/interfaces/model.d.ts +29 -0
  93. package/types/common/main.d.ts +5 -0
  94. package/types/common/package.json +5 -0
  95. package/types/common/payloads.d.ts +0 -0
  96. package/types/common/props.d.ts +165 -0
  97. package/{src/config/webpack.umd.config.js → webpack.config.js} +20 -16
  98. package/.eslintrc +0 -19
  99. package/build/dev.html +0 -329
  100. package/build/umd/auAuth.js +0 -2
  101. package/build/umd/auAuth.js.map +0 -1
  102. package/build/umd/databox.js.LICENSE.txt +0 -5
  103. package/build/umd/news.js +0 -2
  104. package/build/umd/news.js.map +0 -1
  105. package/src/all.js +0 -3
  106. package/src/app.js +0 -263
  107. package/src/components/AUAlertComponent.js +0 -158
  108. package/src/components/AUAmountComponent.js +0 -84
  109. package/src/components/AUBannerComponent.js +0 -99
  110. package/src/components/AUCalendarComponent.js +0 -393
  111. package/src/components/AUDatepickerComponent.js +0 -105
  112. package/src/components/AUFilterCheckboxComponent.js +0 -122
  113. package/src/components/AUFocusComponent.js +0 -55
  114. package/src/components/AUModalComponent.js +0 -94
  115. package/src/components/AUPaginationComponent.js +0 -103
  116. package/src/components/context/AUUserContextComponent.js +0 -91
  117. package/src/components/context/ImpersonateComponent.js +0 -54
  118. package/src/components/delphinus/AUCalendarComponent.js +0 -487
  119. package/src/components/delphinus/AUContentToggleComponent.js +0 -32
  120. package/src/components/delphinus/AUDatepickerComponent.js +0 -164
  121. package/src/components/delphinus/AULoginComponent.js +0 -65
  122. package/src/components/delphinus/AUSpinnerComponent.js +0 -114
  123. package/src/components/form/AUMobilePrefixComponent.js +0 -18
  124. package/src/components/news/EventLayout1Component.js +0 -94
  125. package/src/components/news/EventLayout2Component.js +0 -90
  126. package/src/components/news/EventLayout3Component.js +0 -68
  127. package/src/components/news/NewsCategoriesComponent.js +0 -21
  128. package/src/components/news/NewsCollageBannerComponent.js +0 -71
  129. package/src/components/news/NewsCollageBannerRSSComponent.js +0 -79
  130. package/src/components/news/NewsColumnsComponent.js +0 -125
  131. package/src/components/news/NewsLanguageChangeComponent.js +0 -74
  132. package/src/components/news/NewsLayout1Component.js +0 -80
  133. package/src/components/news/NewsLayout2Component.js +0 -80
  134. package/src/components/news/NewsLayout3Component.js +0 -81
  135. package/src/components/news/NewsLayout4Component.js +0 -80
  136. package/src/components/news/NewsLayout5Component.js +0 -61
  137. package/src/components/news/NewsLayout6Component.js +0 -55
  138. package/src/components/news/NewsLayout7Component.js +0 -58
  139. package/src/components/news/NewsLayout8Component.js +0 -57
  140. package/src/components/news/NewsListComponent.js +0 -291
  141. package/src/components/news/NewsPopUpComponent.js +0 -591
  142. package/src/components/news/NewsRSSComponent.js +0 -74
  143. package/src/components/news/NewsSocialComponent.js +0 -104
  144. package/src/components/news/NewsSubHeaderComponent.js +0 -19
  145. package/src/components/password/AUChangePasswordComponent.js +0 -177
  146. package/src/components/password/AUCurrentPasswordComponent.js +0 -72
  147. package/src/components/password/AUNewPasswordComponent.js +0 -143
  148. package/src/components/password/AUPasswordActions.js +0 -101
  149. package/src/components/password/AUPasswordHooks.js +0 -47
  150. package/src/components/password/AUPasswordReducer.js +0 -78
  151. package/src/components/password/AUPasswordRequirementsComponent.js +0 -29
  152. package/src/components/profile/AUProfileAvatarV3Component.js +0 -80
  153. package/src/config/webpack.dev.config.js +0 -47
  154. package/src/index.js +0 -6
  155. package/src/lib/au-auth.js +0 -227
  156. package/src/lib/au-news.js +0 -371
  157. package/src/lib/menu.js +0 -10
  158. package/src/lib/urlHandler.js +0 -63
  159. package/src/lib/validation.js +0 -181
  160. package/src/styles/alert.scss +0 -39
  161. package/src/styles/calendar.scss +0 -112
  162. package/src/styles/filtercheckbox.scss +0 -5
  163. package/src/styles/modal.scss +0 -35
  164. package/src/styles/pagination.scss +0 -11
  165. package/src/styles/spinner.scss +0 -30
@@ -1,9 +1,8 @@
1
1
  /* eslint-env browser */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import axios from 'axios';
5
4
  import AlphaBoxContentComponent from './AlphaBoxContentComponent';
6
- import AutoSuggestComponent from '../AutoSuggestComponent';
5
+ import AUAutoSuggestComponent from '../../../components/AUAutoSuggestComponent';
7
6
  import DataBoxSuggestionComponent from '../databox/DataBoxSuggestionComponent';
8
7
 
9
8
  class AlphaBoxComponent extends React.Component {
@@ -24,19 +23,22 @@ class AlphaBoxComponent extends React.Component {
24
23
  if (data.itemsOnly) {
25
24
  data.source += '?itemsOnly=true';
26
25
  }
27
- axios.get(data.source).then((promise) => {
28
- const { data: pData } = promise;
26
+ fetch(data.source).then((promise) => promise.json()).then((pData) => {
29
27
  this.setState({ items: pData.items });
30
28
  });
31
29
  }
32
30
  }
33
31
 
34
- getSuggestions(value, collection, callback) {
32
+ getSuggestions(value, _, callback) {
35
33
  const { items } = this.state;
36
34
  const inputValue = value.trim().toLowerCase();
37
35
  const inputLength = inputValue.length;
38
36
  callback(inputLength < 2 ? []
39
- : items.filter((x) => x.name.toLowerCase().indexOf(inputValue) > -1)
37
+ : items.filter(
38
+ (x) => x.name.toLowerCase().indexOf(inputValue) > -1
39
+ || x.name.replace(/-/ig, ' ').toLowerCase().indexOf(inputValue) > -1
40
+ || x.name.replace(/ /ig, '-').toLowerCase().indexOf(inputValue) > -1,
41
+ )
40
42
  .sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase(), 'da', { ignorePunctuation: true })));
41
43
  }
42
44
 
@@ -66,31 +68,16 @@ class AlphaBoxComponent extends React.Component {
66
68
  <h2>
67
69
  <a href={config.url}>{config.title}</a>
68
70
  </h2>
69
- {(() => {
70
- if (config.description !== '') {
71
- return <p>{config.description}</p>;
72
- }
73
- return null;
74
- })()}
75
- {(() => {
76
- if (config.links.length > 0) {
77
- return (
78
- <ul className="quicklinks resetlist">
79
- {renderLinks}
80
- </ul>
81
- );
82
- }
83
- return null;
84
- })()}
85
71
  <AlphaBoxContentComponent
86
72
  items={items}
87
73
  linkColor={box.background.linkColor}
74
+ noResultsText={config.noResultsAlphabet}
75
+ noResultsUri={config.noResultsUri}
88
76
  />
89
- <AutoSuggestComponent
77
+ <AUAutoSuggestComponent
90
78
  placeholder={box.search.placeHolder}
91
- setQuery={() => { }}
92
79
  setResults={(_items) => {
93
- if (_items.length === 1 && _items[0].url) {
80
+ if (_items.length >= 1 && _items[0].url) {
94
81
  window.location.href = _items[0].url;
95
82
  }
96
83
  }}
@@ -98,7 +85,20 @@ class AlphaBoxComponent extends React.Component {
98
85
  getSuggestions={this.getSuggestions}
99
86
  getSuggestionValue={(suggestion) => suggestion.name}
100
87
  renderSuggestion={(suggestion) => <DataBoxSuggestionComponent item={suggestion} />}
88
+ noResultsText={config.noResultsSearch}
101
89
  />
90
+ {
91
+ config.description !== '' && (
92
+ <h3>{config.description}</h3>
93
+ )
94
+ }
95
+ {
96
+ config.links.length > 0 && (
97
+ <ul className="quicklinks resetlist">
98
+ {renderLinks}
99
+ </ul>
100
+ )
101
+ }
102
102
  </div>
103
103
  </div>
104
104
  );
@@ -124,6 +124,9 @@ AlphaBoxComponent.propTypes = {
124
124
  url: PropTypes.string.isRequired,
125
125
  })).isRequired,
126
126
  title: PropTypes.string.isRequired,
127
+ noResultsAlphabet: PropTypes.string.isRequired,
128
+ noResultsSearch: PropTypes.string.isRequired,
129
+ noResultsUri: PropTypes.string.isRequired,
127
130
  }).isRequired,
128
131
  background: PropTypes.shape({
129
132
  color: PropTypes.string.isRequired,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { sortAlphaObj } from '../../lib/helpers';
3
+ import { sortAlphaObj } from '../../../lib/helpers';
4
4
 
5
5
  class AlphaBoxContentComponent extends React.Component {
6
6
  constructor(props) {
@@ -13,7 +13,9 @@ class AlphaBoxContentComponent extends React.Component {
13
13
 
14
14
  render() {
15
15
  const { letterIndex } = this.state;
16
- const { items, linkColor } = this.props;
16
+ const {
17
+ items, linkColor, noResultsText, noResultsUri,
18
+ } = this.props;
17
19
 
18
20
  const renderLetters = this.letters.map((l, i) => {
19
21
  const available = items.filter(
@@ -96,29 +98,38 @@ class AlphaBoxContentComponent extends React.Component {
96
98
  <ul className="letters">
97
99
  {renderLetters}
98
100
  </ul>
99
- {(() => {
100
- if (letterIndex > -1) {
101
- return (
102
- <div>
103
- <ul className="items">
104
- {renderItems}
105
- </ul>
106
- </div>
107
- );
108
- }
109
- return null;
110
- })()}
101
+ {
102
+ letterIndex > -1 && (
103
+ <div>
104
+ <ul className="items">
105
+ {renderItems}
106
+ {
107
+ (noResultsText && noResultsUri) && (
108
+ <li className="no-results"><a href={noResultsUri}>{noResultsText}</a></li>
109
+ )
110
+ }
111
+ </ul>
112
+ </div>
113
+ )
114
+ }
111
115
  </div>
112
116
  );
113
117
  }
114
118
  }
115
119
 
120
+ AlphaBoxContentComponent.defaultProps = {
121
+ noResultsText: '',
122
+ noResultsUri: '',
123
+ };
124
+
116
125
  AlphaBoxContentComponent.propTypes = {
117
126
  linkColor: PropTypes.string.isRequired,
118
127
  items: PropTypes.arrayOf(PropTypes.shape({
119
128
  name: PropTypes.string.isRequired,
120
129
  url: PropTypes.string.isRequired,
121
130
  })).isRequired,
131
+ noResultsText: PropTypes.string,
132
+ noResultsUri: PropTypes.string,
122
133
  };
123
134
 
124
135
  AlphaBoxContentComponent.displayName = 'AlphaBoxContentComponent';
@@ -1,28 +1,7 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
1
2
  import React from 'react';
2
3
  import PropTypes from 'prop-types';
3
4
 
4
- /**
5
- * AU Kollapserbart Komponent
6
- *
7
- * Eksempel:
8
- * ```jsx
9
- * <AUCollapsibleComponent
10
- key="collapse"
11
- collapsed
12
- header="Collapsible element"
13
- level={2}
14
- className="hide-for-small-only"
15
- onClick={(collapsed, node) => {
16
- this.setState({
17
- spinnerVisible: !collapsed,
18
- });
19
- }}
20
- >
21
- <h1>Test</h1>
22
- </AUCollapsibleComponent>
23
- * ```
24
- */
25
-
26
5
  class AUCollapsibleComponent extends React.Component {
27
6
  constructor(props) {
28
7
  super(props);
@@ -1,30 +1,8 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
1
2
  /* eslint-env browser */
2
3
  import React from 'react';
3
4
  import PropTypes from 'prop-types';
4
- import { isElementInViewport } from '../lib/helpers';
5
- /**
6
- * AU Spinner Komponent
7
- * Bliver brugt til lazy-loading af elementer, der først skal indlæses når de er synlige.
8
- *
9
- * Eksempel:
10
- * ```jsx
11
- * <AUSpinnerComponent
12
- domID={spinnerID}
13
- visible={this.state.spinnerVisible}
14
- columns="large-12 medium-12 small-12"
15
- content={<h1>Hej</h1>}
16
- loaded={this.state.spinnerLoaded}
17
- loadingCondition
18
- onLoad={() => {
19
- setTimeout(() => {
20
- this.setState({
21
- spinnerLoaded: true,
22
- });
23
- }, 2000);
24
- }}
25
- />
26
- * ```
27
- */
5
+ import { isElementInViewport } from '../../../lib/helpers';
28
6
 
29
7
  class AUSpinnerComponent extends React.Component {
30
8
  constructor(props) {
@@ -1,7 +1,7 @@
1
1
  /* eslint-env browser */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { sortAlphaObj } from '../../lib/helpers';
4
+ import { sortAlphaObj } from '../../../lib/helpers';
5
5
 
6
6
  class DataBoxAlphabetComponent extends React.Component {
7
7
  constructor(props) {
@@ -1,8 +1,8 @@
1
1
  /* eslint-env browser */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { sortAlphaObj } from '../../lib/helpers';
5
- import AUCollapsibleComponent from '../AUCollapsibleComponent';
4
+ import { sortAlphaObj } from '../../../lib/helpers';
5
+ import AUCollapsibleComponent from '../common/AUCollapsibleComponent';
6
6
 
7
7
  class DataBoxAssociationComponent extends React.Component {
8
8
  constructor(props) {
@@ -1,7 +1,8 @@
1
+ /* eslint-disable @typescript-eslint/no-empty-function */
1
2
  /* eslint-env browser */
2
3
  import React from 'react';
3
4
  import PropTypes from 'prop-types';
4
- import AutoSuggestComponent from '../AutoSuggestComponent';
5
+ import AUAutoSuggestComponent from '../../../components/AUAutoSuggestComponent';
5
6
  import DataBoxSuggestionComponent from './DataBoxSuggestionComponent';
6
7
 
7
8
  class DataBoxButtonComponent extends React.Component {
@@ -58,7 +59,7 @@ class DataBoxButtonComponent extends React.Component {
58
59
  return (
59
60
  <div className={classNames} key={i}>
60
61
  <span dangerouslySetInnerHTML={{ __html: b.text }} />
61
- <AutoSuggestComponent
62
+ <AUAutoSuggestComponent
62
63
  placeholder={box.search.placeHolder}
63
64
  setQuery={() => { }}
64
65
  setResults={(items) => {
@@ -130,7 +131,10 @@ DataBoxButtonComponent.propTypes = {
130
131
  searchValue: PropTypes.string,
131
132
  setActive: PropTypes.func.isRequired,
132
133
  setSearchValue: PropTypes.func.isRequired,
133
- button: PropTypes.shape({}).isRequired,
134
+ button: PropTypes.shape({
135
+ text: PropTypes.string.isRequired,
136
+ link: PropTypes.string.isRequired,
137
+ }).isRequired,
134
138
  box: PropTypes.shape({
135
139
  background: PropTypes.shape({
136
140
  color: PropTypes.string.isRequired,
@@ -7,8 +7,8 @@ import DataBoxButtonComponent from './DataBoxButtonComponent';
7
7
  import DataBoxGroupingComponent from './DataBoxGroupingComponent';
8
8
  import DataBoxSearchResultComponent from './DataBoxSearchResultComponent';
9
9
  import DataBoxAlphabetComponent from './DataBoxAlphabetComponent';
10
- import AUSpinnerComponent from '../AUSpinnerComponent';
11
- import { sortAlphaObj } from '../../lib/helpers';
10
+ import AUSpinnerComponent from '../common/AUSpinnerComponent';
11
+ import { sortAlphaObj } from '../../../lib/helpers';
12
12
 
13
13
  class DataBoxComponent extends React.Component {
14
14
  constructor(props) {
@@ -14,10 +14,12 @@ const DataBoxGroupingComponent = (props) => {
14
14
  } = props;
15
15
  let renderAssociations;
16
16
  if (stacked && grouping.associations.length === 1) {
17
+ // eslint-disable-next-line react/destructuring-assignment
17
18
  renderAssociations = props.grouping.associations.map(
18
19
  (a) => <DataBoxStackedAssociationComponent key={a.id} assoc={a} />,
19
20
  );
20
21
  } else {
22
+ // eslint-disable-next-line react/destructuring-assignment
21
23
  renderAssociations = props.grouping.associations.map((a, i) => {
22
24
  const open = expand
23
25
  || grouping.associations.length === 1
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { sortAlphaObj } from '../../lib/helpers';
3
+ import { sortAlphaObj } from '../../../lib/helpers';
4
4
 
5
5
  const DataBoxSearchResultComponent = (props) => {
6
6
  const { items, searchValue } = props;
@@ -23,10 +23,6 @@ const DataBoxSearchResultComponent = (props) => {
23
23
  );
24
24
  };
25
25
 
26
- DataBoxSearchResultComponent.defaultProps = {
27
-
28
- };
29
-
30
26
  DataBoxSearchResultComponent.propTypes = {
31
27
  items: PropTypes.arrayOf(PropTypes.shape({
32
28
  id: PropTypes.number.isRequired,
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { sortAlphaObj } from '../../lib/helpers';
3
+ import { sortAlphaObj } from '../../../lib/helpers';
4
4
 
5
5
  const DataBoxStackedAssociationComponent = (props) => {
6
6
  const { assoc } = props;
@@ -44,10 +44,6 @@ const DataBoxStackedAssociationComponent = (props) => {
44
44
  );
45
45
  };
46
46
 
47
- DataBoxStackedAssociationComponent.defaultProps = {
48
-
49
- };
50
-
51
47
  DataBoxStackedAssociationComponent.propTypes = {
52
48
  assoc: PropTypes.shape({
53
49
  items: PropTypes.arrayOf(PropTypes.shape({})).isRequired,
@@ -2,7 +2,6 @@
2
2
  /* eslint no-mixed-operators: 0 */
3
3
  import React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import axios from 'axios';
6
5
 
7
6
  const diagrammeLabels = {
8
7
  da: {
@@ -82,16 +81,16 @@ class AUDiagrammeComponent extends React.PureComponent {
82
81
  response.lines.forEach((value, key) => {
83
82
  promises.push(new Promise((resolve) => {
84
83
  const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=GetStudiediagramData&lang=en&allowOrigin=true&linjeid=${value.id}`;
85
- axios.get(url).then((promise) => {
86
- const periodType = promise.data.DiagramMetaData.DATA[0] ? promise.data.DiagramMetaData.DATA[0][3] : '';
84
+ fetch(url).then((promise) => promise.json()).then((data) => {
85
+ const periodType = data.DiagramMetaData.DATA[0] ? data.DiagramMetaData.DATA[0][3] : '';
87
86
  const node = {
88
87
  name: lang === 'da' ? value.name : value.nameEnglish,
89
88
  periodType,
90
- table: AUDiagrammeComponent.diagrammeParse(promise.data, lang),
91
- list: AUDiagrammeComponent.diagrammeParse(promise.data, lang, 'list'),
89
+ table: AUDiagrammeComponent.diagrammeParse(data, lang),
90
+ list: AUDiagrammeComponent.diagrammeParse(data, lang, 'list'),
92
91
  };
93
92
  nodes[key] = node;
94
- resolve(promise.data);
93
+ resolve(data);
95
94
  });
96
95
  }));
97
96
  });
@@ -5,7 +5,7 @@
5
5
  import React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import FlowBoxPhoneComponent from './FlowBoxPhoneComponent';
8
- import { flowboxLabels as labels } from '../../lib/i18n';
8
+ import { flowboxLabels as labels } from '../../../lib/i18n';
9
9
 
10
10
  class FlowBoxComponent extends React.Component {
11
11
  constructor(props) {
@@ -20,23 +20,23 @@ class FlowBoxComponent extends React.Component {
20
20
  this.handleSelectChange = this.handleSelectChange.bind(this);
21
21
  }
22
22
 
23
- nextNode(child) {
23
+ handleSelectChange(event) {
24
+ const { node } = this.state;
25
+ const child = node.children.find((n) => n.name === event.target.value);
24
26
  this.setState({
25
27
  node: child,
26
28
  });
27
29
  }
28
30
 
29
- prevNode(node) {
31
+ nextNode(child) {
30
32
  this.setState({
31
- node: node.parent,
33
+ node: child,
32
34
  });
33
35
  }
34
36
 
35
- handleSelectChange(event) {
36
- const { node } = this.state;
37
- const child = node.children.find((n) => n.name === event.target.value);
37
+ prevNode(node) {
38
38
  this.setState({
39
- node: child,
39
+ node: node.parent,
40
40
  });
41
41
  }
42
42
 
@@ -1,9 +1,8 @@
1
1
  /* eslint-env browser */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import axios from 'axios';
5
- import AUSpinnerComponent from '../AUSpinnerComponent';
6
- import { flowboxLabels as labels } from '../../lib/i18n';
4
+ import AUSpinnerComponent from '../common/AUSpinnerComponent';
5
+ import { flowboxLabels as labels } from '../../../lib/i18n';
7
6
 
8
7
  class FlowBoxPhoneComponent extends React.Component {
9
8
  constructor(props) {
@@ -16,8 +15,7 @@ class FlowBoxPhoneComponent extends React.Component {
16
15
  componentDidMount() {
17
16
  const { phone } = this.props;
18
17
  const iPureUrl = `https://ipure.nfit.au.dk/searchPeople.php?mode=json&q=${phone}`;
19
- axios.get(iPureUrl).then((promise) => {
20
- const persons = promise.data;
18
+ fetch(iPureUrl).then((promise) => promise.json()).then((persons) => {
21
19
  this.setState({
22
20
  persons,
23
21
  }, () => {
@@ -1,8 +1,11 @@
1
1
  /* eslint-env browser */
2
2
  import React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import AUProfileWidgetComponent from './AUProfileWidgetComponent';
5
- import AUUserContextComponent from '../context/AUUserContextComponent';
4
+ import AUProfileWidgetComponent from '../../../components/profile/AUProfileWidgetComponent';
5
+
6
+ // TODO: Re-implement portal context i staff portal and mitstudie
7
+ // before upgrading this lib-component!
8
+ const AUUserContextComponent = null;
6
9
 
7
10
  const AUProfileAvatar2016Component = ({
8
11
  lang,
@@ -63,6 +66,7 @@ const AUProfileAvatar2016Component = ({
63
66
  onLoad(userContext);
64
67
  }}
65
68
  handleError={(status, json) => {
69
+ // eslint-disable-next-line no-console
66
70
  console.log(status, json);
67
71
  }}
68
72
  spinner={false}
@@ -6,10 +6,10 @@
6
6
  import React from 'react';
7
7
  import ReactDOM from 'react-dom';
8
8
  import PropTypes from 'prop-types';
9
- import AUCollapsibleComponent from '../AUCollapsibleComponent';
10
- import AUProfileLoginComponent from '../profile/AUProfileLoginComponent';
9
+ import AUCollapsibleComponent from '../common/AUCollapsibleComponent';
10
+ import AUProfileLoginComponent from '../../../components/profile/AUProfileLoginComponent';
11
11
  import AUProfileAvatar2016Component from '../profile/AUProfileAvatar2016Component';
12
- import { getCookie, setCookie } from '../../lib/helpers';
12
+ import { getCookie, setCookie } from '../../../lib/helpers';
13
13
 
14
14
  const parseBurgerLinks = (elements) => {
15
15
  const links = [];
@@ -94,6 +94,7 @@ class StaffTopComponent extends React.Component {
94
94
  onLoad({ ...user, ...{ auId: json.auId } });
95
95
  });
96
96
  }).catch((err) => {
97
+ // eslint-disable-next-line no-console
97
98
  console.log(err);
98
99
  });
99
100
  }
@@ -1,7 +1,6 @@
1
1
  /* eslint-env browser */
2
2
  import React, { useState } from 'react';
3
- import axios from 'axios';
4
- import { universeLabels, profileLabels } from '../../lib/i18n';
3
+ import { universeLabels, profileLabels } from '../../../lib/i18n';
5
4
  import StaffTopComponent from './StaffTopComponent';
6
5
  import StudentTopComponent from './StudentTopComponent';
7
6
 
@@ -26,9 +25,11 @@ const UniverseContainerComponent = () => {
26
25
  lang={lang}
27
26
  user={user}
28
27
  promiseHandler={(callback) => {
29
- axios.get(universeGlobalContentPath).then((promise) => {
30
- callback(promise.data);
31
- });
28
+ fetch(universeGlobalContentPath).then(
29
+ (promise) => promise.json(),
30
+ ).then(
31
+ (data) => callback(data),
32
+ );
32
33
  }}
33
34
  onLoad={(context) => {
34
35
  setUser(context);
@@ -45,9 +46,11 @@ const UniverseContainerComponent = () => {
45
46
  lang={lang}
46
47
  user={user}
47
48
  promiseHandler={(callback) => {
48
- axios.get(universeGlobalContentPath).then((promise) => {
49
- callback(promise.data);
50
- });
49
+ fetch(universeGlobalContentPath).then(
50
+ (promise) => promise.json(),
51
+ ).then(
52
+ (data) => callback(data),
53
+ );
51
54
  }}
52
55
  universeLabels={universeLabels}
53
56
  profileLabels={profileLabels}
@@ -0,0 +1,3 @@
1
+ import '../../styles/app.scss';
2
+ import './au-databox';
3
+ import './au-alphabox';
@@ -89,9 +89,7 @@ class AUAlphabox {
89
89
  const mountNode = document.querySelector(box.config.container);
90
90
  const visible = mountNode && getComputedStyle(mountNode).visibility !== 'hidden';
91
91
  if (visible) {
92
- ReactDOM.render(
93
- <AlphaBoxComponent box={box} />, mountNode,
94
- );
92
+ ReactDOM.render(<AlphaBoxComponent box={box} />, mountNode);
95
93
  box.loaded = true;
96
94
  }
97
95
  }
@@ -6,7 +6,6 @@
6
6
  /* eslint-env browser */
7
7
  import React from 'react';
8
8
  import ReactDOM from 'react-dom';
9
- import axios from 'axios';
10
9
  import DataBoxComponent from '../components/databox/DataBoxComponent';
11
10
 
12
11
  const defaultOptions = {
@@ -58,8 +57,8 @@ class AUDataboxParser {
58
57
  const promises = [];
59
58
  sourceArr.forEach((s) => {
60
59
  promises.push(new Promise((resolve) => {
61
- axios.get(s).then((promise) => {
62
- resolve(promise.data);
60
+ fetch(s).then((promise) => promise.json()).then((data) => {
61
+ resolve(data);
63
62
  });
64
63
  }));
65
64
  });
@@ -380,12 +379,10 @@ class AUDatabox {
380
379
  box.config.stacked = true;
381
380
  }
382
381
  if (visible) {
383
- ReactDOM.render(
384
- <DataBoxComponent
385
- box={box}
386
- parse={parser[box.data.mode]}
387
- />, mountNode,
388
- );
382
+ ReactDOM.render(<DataBoxComponent
383
+ box={box}
384
+ parse={parser[box.data.mode]}
385
+ />, mountNode);
389
386
  box.loaded = true;
390
387
  }
391
388
 
@@ -4,8 +4,7 @@
4
4
  /* eslint-env browser */
5
5
  import React from 'react';
6
6
  import ReactDOM from 'react-dom';
7
- import axios from 'axios';
8
- import AUDiagrammeComponent from '../components/AUDiagrammeComponent';
7
+ import AUDiagrammeComponent from '../components/diagramme/AUDiagrammeComponent';
9
8
 
10
9
  const defaultOptions = {
11
10
  config: {
@@ -64,8 +63,7 @@ class AUDiagramme {
64
63
  table.id = i;
65
64
  AUDiagramme.mergeOptions(table);
66
65
  const url = `https://eddiprod.au.dk/EDDI/webservices/StudieoversigtService2.cfc?method=getLinjeListByDokordningId&tjekForVisningIstudieDiagram=true&allowOrigin=true&dokordningId=${table.config.courseID}`;
67
- axios.get(url).then((promise) => {
68
- const { data } = promise;
66
+ fetch(url).then((promise) => promise.json()).then((data) => {
69
67
  const mountNode = document.querySelector(table.config.container);
70
68
  if (mountNode) {
71
69
  ReactDOM.render(
@@ -85,9 +85,7 @@ class AUFlowbox {
85
85
  };
86
86
  AUFlowbox.parse(box);
87
87
  const mountNode = document.querySelector(box.config.container);
88
- ReactDOM.render(
89
- <FlowBoxComponent box={box} lang={this.lang} />, mountNode,
90
- );
88
+ ReactDOM.render(<FlowBoxComponent box={box} lang={this.lang} />, mountNode);
91
89
  }
92
90
  }
93
91
  }
File without changes