@glissandoo/lib 1.53.1 → 1.53.3

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,12 +1,9 @@
1
- import { LanguagesTypes } from '../../../lang';
2
1
  import { AEventPlayerBasicData } from '../types';
3
2
  import { EventPlayerStatus } from './types';
4
3
  export default class EventoPlayerBasic {
5
4
  eventId: string;
6
- exists: boolean;
7
5
  protected data: AEventPlayerBasicData;
8
- protected lang: LanguagesTypes;
9
- constructor(eventId: string, data: AEventPlayerBasicData | null, lang?: LanguagesTypes);
6
+ constructor(eventId: string, data: AEventPlayerBasicData);
10
7
  get id(): string;
11
8
  get username(): string;
12
9
  get displayName(): string;
@@ -20,6 +17,9 @@ export default class EventoPlayerBasic {
20
17
  get selected(): boolean | null;
21
18
  get isActive(): boolean;
22
19
  get isInterested(): boolean;
20
+ get isPendingInterested(): boolean;
21
+ get isSelected(): boolean;
22
+ get isDiscarted(): boolean;
23
23
  get isConfirmed(): boolean;
24
24
  get isDeclined(): boolean;
25
25
  get isPending(): boolean;
@@ -1,14 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const lodash_1 = require("lodash");
4
- const lang_1 = require("../../../lang");
5
4
  const types_1 = require("./types");
6
5
  class EventoPlayerBasic {
7
- constructor(eventId, data, lang = lang_1.defaultLocale) {
6
+ constructor(eventId, data) {
8
7
  this.eventId = eventId;
9
- this.data = data || {};
10
- this.exists = data !== null;
11
- this.lang = lang;
8
+ this.data = data;
12
9
  }
13
10
  get id() {
14
11
  return this.data.id;
@@ -44,11 +41,20 @@ class EventoPlayerBasic {
44
41
  return !(0, lodash_1.isUndefined)(this.data.selected) ? this.data.selected : null;
45
42
  }
46
43
  get isActive() {
47
- return this.exists && this.selected !== false;
44
+ return !this.isDiscarted;
48
45
  }
49
46
  get isInterested() {
50
47
  return this.interested === true;
51
48
  }
49
+ get isPendingInterested() {
50
+ return this.interested === null;
51
+ }
52
+ get isSelected() {
53
+ return this.selected === true;
54
+ }
55
+ get isDiscarted() {
56
+ return this.selected === false;
57
+ }
52
58
  get isConfirmed() {
53
59
  return this.status === types_1.EventPlayerStatus.Confirmed;
54
60
  }
@@ -0,0 +1,28 @@
1
+ import { AEventPlayerBasicData } from '../types';
2
+ import { EventPlayerStatus } from './types';
3
+ export default class EventoPlayerBasic {
4
+ eventId: string;
5
+ protected data: AEventPlayerBasicData;
6
+ constructor(eventId: string, data: AEventPlayerBasicData);
7
+ get id(): string;
8
+ get username(): string;
9
+ get displayName(): string;
10
+ get photoURL(): string;
11
+ get mainInstrument(): import("../../../helpers/instruments").InstrumentId;
12
+ get status(): EventPlayerStatus | null;
13
+ get reason(): import("./types").EventPlayerReason | null;
14
+ get note(): string | null;
15
+ get rollcall(): EventPlayerStatus | null;
16
+ get interested(): true | null;
17
+ get selected(): boolean | null;
18
+ get isActive(): boolean;
19
+ get isInterested(): boolean;
20
+ get isPendingInterested(): boolean;
21
+ get isSelected(): boolean;
22
+ get isDiscarted(): boolean;
23
+ get isConfirmed(): boolean;
24
+ get isDeclined(): boolean;
25
+ get isPending(): boolean;
26
+ get isRollCallConfirmed(): boolean;
27
+ get isRollCallDeclined(): boolean;
28
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lodash_1 = require("lodash");
4
+ const types_1 = require("./types");
5
+ class EventoPlayerBasic {
6
+ constructor(eventId, data) {
7
+ this.eventId = eventId;
8
+ this.data = data;
9
+ }
10
+ get id() {
11
+ return this.data.id;
12
+ }
13
+ get username() {
14
+ return this.data.username;
15
+ }
16
+ get displayName() {
17
+ return this.data.displayName;
18
+ }
19
+ get photoURL() {
20
+ return this.data.photoURL;
21
+ }
22
+ get mainInstrument() {
23
+ return this.data.mainInstrument;
24
+ }
25
+ get status() {
26
+ return this.data.status;
27
+ }
28
+ get reason() {
29
+ return this.data.reason || null;
30
+ }
31
+ get note() {
32
+ return this.data.note || null;
33
+ }
34
+ get rollcall() {
35
+ return this.data.rollcall || null;
36
+ }
37
+ get interested() {
38
+ return this.data.interested || null;
39
+ }
40
+ get selected() {
41
+ return !(0, lodash_1.isUndefined)(this.data.selected) ? this.data.selected : null;
42
+ }
43
+ get isActive() {
44
+ return !this.isDiscarted;
45
+ }
46
+ get isInterested() {
47
+ return this.interested === true;
48
+ }
49
+ get isPendingInterested() {
50
+ return this.interested === null;
51
+ }
52
+ get isSelected() {
53
+ return this.selected === true;
54
+ }
55
+ get isDiscarted() {
56
+ return this.selected === false;
57
+ }
58
+ get isConfirmed() {
59
+ return this.status === types_1.EventPlayerStatus.Confirmed;
60
+ }
61
+ get isDeclined() {
62
+ return this.status === types_1.EventPlayerStatus.Declined;
63
+ }
64
+ get isPending() {
65
+ return this.status === null;
66
+ }
67
+ get isRollCallConfirmed() {
68
+ return this.rollcall === types_1.EventPlayerStatus.Confirmed;
69
+ }
70
+ get isRollCallDeclined() {
71
+ return this.rollcall === types_1.EventPlayerStatus.Declined;
72
+ }
73
+ }
74
+ exports.default = EventoPlayerBasic;
@@ -1,9 +1,14 @@
1
1
  import { InstrumentId } from '../../helpers/instruments';
2
2
  import { LanguagesTypes } from '../../lang';
3
3
  import { DocumentReference, DocumentSnapshot } from '../../types/firestore';
4
+ import EventoPlayerBasic from './Player/basic';
4
5
  import EventoPromoter from './promoter';
5
- import { EventData, EventResponseDeadlineOptions, EventStatusByTime } from './types';
6
- import EventoPlayerBasic from './Player/Basic';
6
+ import { AEventPlayerBasicData, EventData, EventResponseDeadlineOptions, EventStatusByTime } from './types';
7
+ interface PlayerListOptions {
8
+ showAll?: boolean;
9
+ order?: InstrumentId[];
10
+ asObject?: boolean;
11
+ }
7
12
  export default class Evento extends EventoPromoter<EventData> {
8
13
  constructor(doc: DocumentSnapshot, lang?: LanguagesTypes);
9
14
  get maxAttendance(): number | null;
@@ -17,9 +22,7 @@ export default class Evento extends EventoPromoter<EventData> {
17
22
  get relEvents(): string[];
18
23
  get isASerie(): boolean;
19
24
  get playerIds(): string[];
20
- get players(): {
21
- [x: string]: EventoPlayerBasic;
22
- };
25
+ get players(): Record<string, import("./types").EventPlayerBasicData>;
23
26
  get playersCount(): number;
24
27
  get repertory(): Record<string, import("./types").EventThemeBasicData>;
25
28
  get repertoryIds(): string[];
@@ -48,16 +51,13 @@ export default class Evento extends EventoPromoter<EventData> {
48
51
  tags: string[];
49
52
  media: import("../Repertory/types").ThemeMediaType | null;
50
53
  }[];
51
- playersList({ showAll, order }?: {
52
- showAll?: boolean;
53
- order?: InstrumentId[];
54
- }): EventoPlayerBasic[];
55
- get interestedPlayers(): string[];
56
- get confirmedPlayers(): string[];
57
- get declinedPlayers(): string[];
58
- get pendingPlayers(): string[];
59
- get confirmedRollCallPlayers(): string[];
60
- get declinedRollCallPlayers(): string[];
54
+ playersList<T extends PlayerListOptions>(data?: T): T['asObject'] extends true ? AEventPlayerBasicData[] : EventoPlayerBasic[];
55
+ get interestedPlayers(): EventoPlayerBasic[];
56
+ get confirmedPlayers(): EventoPlayerBasic[];
57
+ get declinedPlayers(): EventoPlayerBasic[];
58
+ get pendingPlayers(): EventoPlayerBasic[];
59
+ get confirmedRollCallPlayers(): EventoPlayerBasic[];
60
+ get declinedRollCallPlayers(): EventoPlayerBasic[];
61
61
  get isRollCalled(): boolean;
62
62
  get isActiveRollCall(): boolean;
63
63
  get templateId(): string | null;
@@ -73,3 +73,4 @@ export default class Evento extends EventoPromoter<EventData> {
73
73
  get isSelectionModeClose(): boolean;
74
74
  get isSelectionModeOpen(): boolean;
75
75
  }
76
+ export {};
@@ -8,9 +8,9 @@ const lodash_1 = require("lodash");
8
8
  const orders_1 = require("../../helpers/musicStyles/orders");
9
9
  const utils_1 = require("../../helpers/utils");
10
10
  const lang_1 = require("../../lang");
11
+ const basic_1 = __importDefault(require("./Player/basic"));
11
12
  const promoter_1 = __importDefault(require("./promoter"));
12
13
  const types_1 = require("./types");
13
- const Basic_1 = __importDefault(require("./Player/Basic"));
14
14
  class Evento extends promoter_1.default {
15
15
  constructor(doc, lang = lang_1.defaultLocale) {
16
16
  super(doc, lang);
@@ -18,7 +18,9 @@ class Evento extends promoter_1.default {
18
18
  return this.playerIds.includes(userId);
19
19
  };
20
20
  this.getPlayer = (userId) => {
21
- return userId in this.players ? this.players[userId] : null;
21
+ return userId in this.players
22
+ ? new basic_1.default(this.id, { id: userId, ...this.players[userId] })
23
+ : null;
22
24
  };
23
25
  }
24
26
  get maxAttendance() {
@@ -55,7 +57,7 @@ class Evento extends promoter_1.default {
55
57
  return this.data.playerIds || [];
56
58
  }
57
59
  get players() {
58
- return (0, lodash_1.mapValues)(this.data.players || {}, (player, id) => new Basic_1.default(this.id, { id, ...player }, this.lang));
60
+ return this.data.players || {};
59
61
  }
60
62
  get playersCount() {
61
63
  return this.data.playerIds.length;
@@ -131,32 +133,37 @@ class Evento extends promoter_1.default {
131
133
  }));
132
134
  return (0, lodash_1.orderBy)(repertory, 'order', 'asc');
133
135
  }
134
- playersList({ showAll, order } = {}) {
135
- const players = Object.values(this.players);
136
+ playersList({ showAll, order, asObject } = {}) {
137
+ const players = asObject
138
+ ? Object.entries(this.players).map(([id, player]) => ({
139
+ id,
140
+ ...player,
141
+ }))
142
+ : Object.entries(this.players).map(([id, player]) => new basic_1.default(this.id, { id, ...player }));
136
143
  const orderedPlayers = order
137
144
  ? (0, utils_1.sortByMatch)(players, 'mainInstrument', order)
138
145
  : (0, orders_1.orderByMusicStyle)(players, 'mainInstrument', this.promoterInfo.musicStyle);
139
146
  if (showAll)
140
147
  return orderedPlayers;
141
- return orderedPlayers.filter((player) => player.isActive);
148
+ return orderedPlayers.filter((player) => player.selected !== false);
142
149
  }
143
150
  get interestedPlayers() {
144
- return this.playerIds.filter((playerId) => this.players[playerId].isInterested);
151
+ return this.playersList({ showAll: true }).filter((player) => player.isInterested);
145
152
  }
146
153
  get confirmedPlayers() {
147
- return this.playerIds.filter((playerId) => this.players[playerId].isConfirmed);
154
+ return this.playersList().filter((player) => player.isConfirmed);
148
155
  }
149
156
  get declinedPlayers() {
150
- return this.playerIds.filter((playerId) => this.players[playerId].isDeclined);
157
+ return this.playersList().filter((player) => player.isDeclined);
151
158
  }
152
159
  get pendingPlayers() {
153
- return this.playerIds.filter((playerId) => this.players[playerId].isPending);
160
+ return this.playersList().filter((player) => player.isPending);
154
161
  }
155
162
  get confirmedRollCallPlayers() {
156
- return this.playerIds.filter((playerId) => this.players[playerId].isRollCallConfirmed);
163
+ return this.playersList().filter((player) => player.isRollCallConfirmed);
157
164
  }
158
165
  get declinedRollCallPlayers() {
159
- return this.playerIds.filter((playerId) => this.players[playerId].isRollCallDeclined);
166
+ return this.playersList().filter((player) => player.isRollCallDeclined);
160
167
  }
161
168
  get isRollCalled() {
162
169
  return this.rollCalledAt !== null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glissandoo/lib",
3
- "version": "1.53.1",
3
+ "version": "1.53.3",
4
4
  "description": "Glissandoo library js",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",