@vocollege/app 0.0.152 → 0.0.153

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/global.d.ts CHANGED
@@ -1,39 +1,39 @@
1
- export type AuthStorageConfigType = {
1
+ export declare type AuthStorageConfigType = {
2
2
  STATE: string;
3
3
  VERIFIER: string;
4
4
  REFRESH_TOKEN: string;
5
5
  ACCESS_TOKEN: string;
6
6
  TOKEN_TYPE: string;
7
7
  };
8
- export type AuthConfigType = {
8
+ export declare type AuthConfigType = {
9
9
  BASE_URL: string;
10
10
  CLIENT_ID?: string;
11
11
  LOGIN?: string;
12
12
  ENDPOINT?: string;
13
13
  STORAGE?: AuthStorageConfigType;
14
14
  };
15
- export type ApiConfigType = {
15
+ export declare type ApiConfigType = {
16
16
  BASE_URL: string;
17
17
  ENDPOINT?: string;
18
18
  GRAPHQL?: string;
19
19
  };
20
- export type AppConfigType = {
20
+ export declare type AppConfigType = {
21
21
  BASE_URL: string;
22
22
  AUTH?: string;
23
23
  HOME?: string;
24
24
  LOGIN?: string;
25
25
  };
26
- export type VoAppType = {
26
+ export declare type VoAppType = {
27
27
  configure: Function;
28
28
  config?: Function;
29
29
  auth: any;
30
30
  api: any;
31
31
  };
32
- export type VoTokenType = {
32
+ export declare type VoTokenType = {
33
33
  access_token: string;
34
34
  refresh_token: string;
35
35
  };
36
36
  export interface GeneralObject {
37
37
  [key: string]: any;
38
38
  }
39
- export type TypeNullObject = null | GeneralObject;
39
+ export declare type TypeNullObject = null | GeneralObject;
@@ -9,12 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ while (_) try {
18
18
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {
@@ -1124,7 +1124,7 @@
1124
1124
  "courseMomentSaved": "Utbildningen har sparats",
1125
1125
  "courseMomentDeleted": "Utbildningen har raderats",
1126
1126
  "stakeholdersExplanation": "Intressenter är användare som kommer att få tillgång till alla diplom som kopplas till denna utbildning.",
1127
- "noVoOrderer": "Om utbildningen genomförs för målgruppen som är utanför VO-College (lokalt eller regionalt) en administrationsavgift på 3000 kr tas av VO-College",
1127
+ "noVoOrderer": "Om utbildningen genomförs för målgruppen som är utanför VO-College (lokalt eller regionalt) en administrationsavgift på 2000 kr tas av VO-College. Om utbildningen genomförs för målgruppen i en annan bransch är vård och omsorg en administrationsavgift på 3000 kr tas av VO-College",
1128
1128
  "billingAddressInfo": [
1129
1129
  "Organisation, organisationsnummer",
1130
1130
  "Faktureringsaddress",
@@ -23,12 +23,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
23
23
  });
24
24
  };
25
25
  var __generator = (this && this.__generator) || function (thisArg, body) {
26
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
27
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
26
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
31
+ while (_) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -69,10 +69,10 @@ var Vapor = /** @class */ (function () {
69
69
  /**
70
70
  * Store a file in S3 and return its UUID, key, and other information.
71
71
  */
72
- Vapor.prototype.store = function (file_1) {
73
- return __awaiter(this, arguments, void 0, function (file, options) {
72
+ Vapor.prototype.store = function (file, options) {
73
+ if (options === void 0) { options = {}; }
74
+ return __awaiter(this, void 0, void 0, function () {
74
75
  var response, instance, headers, cancelToken;
75
- if (options === void 0) { options = {}; }
76
76
  return __generator(this, function (_a) {
77
77
  switch (_a.label) {
78
78
  case 0: return [4 /*yield*/, axios_1.default.post(
@@ -20,12 +20,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  });
21
21
  };
22
22
  var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
25
  function verb(n) { return function (v) { return step([n, v]); }; }
26
26
  function step(op) {
27
27
  if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ while (_) try {
29
29
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
30
  if (y = 0, t) op = [op[0] & 2, t.value];
31
31
  switch (op[0]) {
@@ -6,7 +6,7 @@ declare class VoApi extends VoBase {
6
6
  init(params?: GeneralObject): void;
7
7
  get getGraphqlUrl(): string;
8
8
  get getGraphqlSubscriptionUrl(): string;
9
- getUser(): Promise<import("axios").AxiosResponse<any, any>>;
9
+ getUser(): Promise<import("axios").AxiosResponse<any>>;
10
10
  logout(): Promise<boolean>;
11
11
  }
12
12
  declare const _default: VoApi;
@@ -24,12 +24,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
24
24
  });
25
25
  };
26
26
  var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
28
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
29
  function verb(n) { return function (v) { return step([n, v]); }; }
30
30
  function step(op) {
31
31
  if (f) throw new TypeError("Generator is already executing.");
32
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ while (_) try {
33
33
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
34
  if (y = 0, t) op = [op[0] & 2, t.value];
35
35
  switch (op[0]) {
@@ -47,12 +47,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
47
47
  });
48
48
  };
49
49
  var __generator = (this && this.__generator) || function (thisArg, body) {
50
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
51
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
50
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
51
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
52
52
  function verb(n) { return function (v) { return step([n, v]); }; }
53
53
  function step(op) {
54
54
  if (f) throw new TypeError("Generator is already executing.");
55
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
55
+ while (_) try {
56
56
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
57
57
  if (y = 0, t) op = [op[0] & 2, t.value];
58
58
  switch (op[0]) {
@@ -1,4 +1,4 @@
1
- type VoConfigType = {
1
+ declare type VoConfigType = {
2
2
  [key: string]: any;
3
3
  };
4
4
  declare class VoConfig {
@@ -3,7 +3,7 @@ declare class VoDocs extends VoBase {
3
3
  graphqlClient: any;
4
4
  init(): void;
5
5
  get getGraphqlUrl(): string;
6
- getTemporaryFileUrl(id: string, publicDownload?: boolean): Promise<import("axios").AxiosResponse<any, any>>;
6
+ getTemporaryFileUrl(id: string, publicDownload?: boolean): Promise<import("axios").AxiosResponse<any>>;
7
7
  }
8
8
  declare const _default: VoDocs;
9
9
  export default _default;
@@ -24,12 +24,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
24
24
  });
25
25
  };
26
26
  var __generator = (this && this.__generator) || function (thisArg, body) {
27
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
28
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
29
  function verb(n) { return function (v) { return step([n, v]); }; }
30
30
  function step(op) {
31
31
  if (f) throw new TypeError("Generator is already executing.");
32
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
+ while (_) try {
33
33
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
34
  if (y = 0, t) op = [op[0] & 2, t.value];
35
35
  switch (op[0]) {
@@ -77,10 +77,10 @@ var VoDocs = /** @class */ (function (_super) {
77
77
  enumerable: false,
78
78
  configurable: true
79
79
  });
80
- VoDocs.prototype.getTemporaryFileUrl = function (id_1) {
81
- return __awaiter(this, arguments, void 0, function (id, publicDownload) {
80
+ VoDocs.prototype.getTemporaryFileUrl = function (id, publicDownload) {
81
+ if (publicDownload === void 0) { publicDownload = false; }
82
+ return __awaiter(this, void 0, void 0, function () {
82
83
  var currentGroup, endpoint, url;
83
- if (publicDownload === void 0) { publicDownload = false; }
84
84
  return __generator(this, function (_a) {
85
85
  try {
86
86
  currentGroup = VoGroups_1.default.getCurrent(true);
@@ -7,7 +7,7 @@ export declare const localStorage: {
7
7
  get: (key: string) => string | false | null;
8
8
  remove: (key: string) => true | undefined;
9
9
  };
10
- type encodeQueryDataType = {
10
+ declare type encodeQueryDataType = {
11
11
  [key: string]: any;
12
12
  };
13
13
  export declare const encodeQueryData: (data: encodeQueryDataType) => string;
@@ -20,7 +20,7 @@ export declare const regexPatterns: {
20
20
  personalNumber: RegExp;
21
21
  orgnr: RegExp;
22
22
  };
23
- type errorObjectType = {
23
+ declare type errorObjectType = {
24
24
  message: string;
25
25
  fields?: {
26
26
  [key: string]: any;
@@ -33,8 +33,8 @@ export declare const wrapPromise: (promise: any) => {
33
33
  read: () => any;
34
34
  };
35
35
  export declare const downloadFile: (url: string) => void;
36
- export declare const orderByPosition: (a: any, b: any) => 0 | 1 | -1;
37
- export declare const orderByField: (a: any, b: any, field: string) => 0 | 1 | -1;
36
+ export declare const orderByPosition: (a: any, b: any) => 1 | -1 | 0;
37
+ export declare const orderByField: (a: any, b: any, field: string) => 1 | -1 | 0;
38
38
  export declare const shortenText: (str: string, limit?: number, stripHtml?: boolean, addEllipsis?: boolean) => string;
39
39
  export declare const getImageContact: (item: any, width?: number, height?: number) => string;
40
40
  export declare const getImage: (item: any, width: number, height: number, field?: string) => string;
@@ -42,7 +42,7 @@ export declare const getImageDescription: (item: any, field?: string) => any;
42
42
  export declare const getContactName: (item?: GeneralObject) => string;
43
43
  export declare const getUserString: (item?: GeneralObject) => string;
44
44
  export declare const parseState: (state: any, initialState: any) => GeneralObject;
45
- export declare const changeObj: (obj: any, key: string, value: any) => {};
45
+ export declare const changeObj: (obj: any, is: any, value: any) => {};
46
46
  export declare const reducer: (state: any, action: any) => any;
47
47
  export declare const getGroupLogotype: (group: GeneralObject, logo?: string, output?: GeneralObject[]) => any;
48
48
  export declare const getObjValue: (obj: any, ...props: string[]) => any;
@@ -20,12 +20,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  });
21
21
  };
22
22
  var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
25
  function verb(n) { return function (v) { return step([n, v]); }; }
26
26
  function step(op) {
27
27
  if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ while (_) try {
29
29
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
30
  if (y = 0, t) op = [op[0] & 2, t.value];
31
31
  switch (op[0]) {
@@ -121,7 +121,7 @@ exports.regexPatterns = {
121
121
  username: /(^[a-z]{3,})([\.]|[\_]|[\-]|[a-z]|[0-9]?)+$/,
122
122
  email: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i,
123
123
  stringNonDigit: /^[^0-9]+$/,
124
- password: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/, // At least 8 characters, 1 uppercase, 1 lowercase and 1 digit.
124
+ password: /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/,
125
125
  cleanName: /(^[a-z]{1,})(\w|-?)+$/,
126
126
  personalNumber: /^(\d{8})[-]\d{4}$/,
127
127
  orgnr: /^(\d{6})[-]\d{4}$/,
@@ -325,16 +325,27 @@ var parseState = function (state, initialState) {
325
325
  return newState;
326
326
  };
327
327
  exports.parseState = parseState;
328
- var changeObj = function (obj, key, value) {
329
- var keys = key.split(".");
330
- return keys.reduce(function (acc, v, i) {
331
- if (i == keys.length - 1)
332
- acc[v] = value;
333
- return acc[v];
334
- }, obj);
328
+ // This method is copied from
329
+ // https://stackoverflow.com/questions/6393943/convert-javascript-string-in-dot-notation-into-an-object-reference
330
+ //
331
+ // @TODO Maybe this entire logic can be replaced by Array.reduce(),
332
+ // something like this:
333
+ // let data = is.split(".").reduce((o: any, i) => o && o[i], pbj);
334
+ // data = value;
335
+ //
336
+ var changeObj = function (obj, is, value) {
337
+ if (typeof is == "string")
338
+ return (0, exports.changeObj)(obj, is.split("."), value);
339
+ else if (is.length == 1 && value !== undefined)
340
+ return (obj[is[0]] = value);
341
+ else if (is.length == 0)
342
+ return obj;
343
+ else
344
+ return (0, exports.changeObj)(obj[is[0]], is.slice(1), value);
335
345
  };
336
346
  exports.changeObj = changeObj;
337
347
  var reducer = function (state, action) {
348
+ var _a;
338
349
  var key = action.key, values = action.values;
339
350
  if (!key) {
340
351
  return __assign(__assign({}, state), values);
@@ -350,8 +361,11 @@ var reducer = function (state, action) {
350
361
  }
351
362
  return __assign(__assign({}, state), { loading: newValues });
352
363
  }
353
- (0, exports.changeObj)(state, key, values);
354
- return __assign({}, state);
364
+ if (key.indexOf(".") > -1) {
365
+ (0, exports.changeObj)(state, key, values);
366
+ return __assign({}, state);
367
+ }
368
+ return __assign(__assign({}, state), (_a = {}, _a[key] = values, _a));
355
369
  };
356
370
  exports.reducer = reducer;
357
371
  var getGroupLogotype = function (group, logo, output) {
@@ -368,6 +382,16 @@ var getGroupLogotype = function (group, logo, output) {
368
382
  return null;
369
383
  };
370
384
  exports.getGroupLogotype = getGroupLogotype;
385
+ // export const makeId = (length = 10) => {
386
+ // let result = "";
387
+ // let characters =
388
+ // "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
389
+ // let charactersLength = characters.length;
390
+ // for (var i = 0; i < length; i++) {
391
+ // result += characters.charAt(Math.floor(Math.random() * charactersLength));
392
+ // }
393
+ // return result;
394
+ // };
371
395
  var getObjValue = function (obj) {
372
396
  var props = [];
373
397
  for (var _i = 1; _i < arguments.length; _i++) {
@@ -1,4 +1,4 @@
1
- type RoutesType = {
1
+ declare type RoutesType = {
2
2
  [key: string]: any;
3
3
  };
4
4
  declare class VoRouter {
@@ -6,7 +6,7 @@ declare const localStorage: {
6
6
  get: (key: string) => string | false | null;
7
7
  remove: (key: string) => true | undefined;
8
8
  };
9
- type encodeQueryDataType = {
9
+ declare type encodeQueryDataType = {
10
10
  [key: string]: any;
11
11
  };
12
12
  declare const encodeQueryData: (data: encodeQueryDataType) => string;
@@ -16,7 +16,7 @@ declare const regexPatterns: {
16
16
  stringNonDigit: RegExp;
17
17
  password: RegExp;
18
18
  };
19
- type errorObjectType = {
19
+ declare type errorObjectType = {
20
20
  message: string;
21
21
  fields?: {
22
22
  [key: string]: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vocollege/app",
3
- "version": "0.0.152",
3
+ "version": "0.0.153",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -1124,7 +1124,7 @@
1124
1124
  "courseMomentSaved": "Utbildningen har sparats",
1125
1125
  "courseMomentDeleted": "Utbildningen har raderats",
1126
1126
  "stakeholdersExplanation": "Intressenter är användare som kommer att få tillgång till alla diplom som kopplas till denna utbildning.",
1127
- "noVoOrderer": "Om utbildningen genomförs för målgruppen som är utanför VO-College (lokalt eller regionalt) en administrationsavgift på 3000 kr tas av VO-College",
1127
+ "noVoOrderer": "Om utbildningen genomförs för målgruppen som är utanför VO-College (lokalt eller regionalt) en administrationsavgift på 2000 kr tas av VO-College. Om utbildningen genomförs för målgruppen i en annan bransch är vård och omsorg en administrationsavgift på 3000 kr tas av VO-College",
1128
1128
  "billingAddressInfo": [
1129
1129
  "Organisation, organisationsnummer",
1130
1130
  "Faktureringsaddress",
@@ -283,12 +283,19 @@ export const parseState = (state: any, initialState: any) => {
283
283
  return newState;
284
284
  };
285
285
 
286
- export const changeObj = (obj: any, key: string, value: any): {} => {
287
- let keys = key.split(".");
288
- return keys.reduce((acc, v, i) => {
289
- if (i == keys.length -1) acc[v] = value;
290
- return acc[v];
291
- }, obj);
286
+ // This method is copied from
287
+ // https://stackoverflow.com/questions/6393943/convert-javascript-string-in-dot-notation-into-an-object-reference
288
+ //
289
+ // @TODO Maybe this entire logic can be replaced by Array.reduce(),
290
+ // something like this:
291
+ // let data = is.split(".").reduce((o: any, i) => o && o[i], pbj);
292
+ // data = value;
293
+ //
294
+ export const changeObj = (obj: any, is: any, value: any): {} => {
295
+ if (typeof is == "string") return changeObj(obj, is.split("."), value);
296
+ else if (is.length == 1 && value !== undefined) return (obj[is[0]] = value);
297
+ else if (is.length == 0) return obj;
298
+ else return changeObj(obj[is[0]], is.slice(1), value);
292
299
  };
293
300
 
294
301
  export const reducer = (state: any, action: any) => {
@@ -306,8 +313,11 @@ export const reducer = (state: any, action: any) => {
306
313
  }
307
314
  return { ...state, loading: newValues };
308
315
  }
309
- changeObj(state, key, values);
310
- return { ...state };
316
+ if (key.indexOf(".") > -1) {
317
+ changeObj(state, key, values);
318
+ return { ...state };
319
+ }
320
+ return { ...state, [key]: values };
311
321
  };
312
322
 
313
323
  export const getGroupLogotype = (
@@ -325,6 +335,17 @@ export const getGroupLogotype = (
325
335
  return null;
326
336
  };
327
337
 
338
+ // export const makeId = (length = 10) => {
339
+ // let result = "";
340
+ // let characters =
341
+ // "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
342
+ // let charactersLength = characters.length;
343
+ // for (var i = 0; i < length; i++) {
344
+ // result += characters.charAt(Math.floor(Math.random() * charactersLength));
345
+ // }
346
+ // return result;
347
+ // };
348
+
328
349
  export const getObjValue = (obj: any, ...props: string[]): any => {
329
350
  return (
330
351
  obj &&