@ieeesa-npm/dashboard 0.0.0-stage → 0.0.1

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 (63) hide show
  1. package/README.md +75 -3
  2. package/esm2022/ieeesa-npm-dashboard.mjs +5 -0
  3. package/esm2022/lib/assets/constants.json +141 -0
  4. package/esm2022/lib/assets/dashboard-mock.mjs +217 -0
  5. package/esm2022/lib/assets/dashboard-route-paths.mock.mjs +12 -0
  6. package/esm2022/lib/assets/dashboard-user-permissions.mock.mjs +23 -0
  7. package/esm2022/lib/assets/date-formats.mjs +28 -0
  8. package/esm2022/lib/components/event-group-card/event-group-card.component.mjs +277 -0
  9. package/esm2022/lib/components/meeting-attendance-row/meeting-attendance-row.component.mjs +181 -0
  10. package/esm2022/lib/components/member-level-badge/member-level-badge.component.mjs +79 -0
  11. package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs +163 -0
  12. package/esm2022/lib/components/welcome-header/dashboard-welcome-header.component.mjs +151 -0
  13. package/esm2022/lib/components/your-groups/your-groups.component.mjs +206 -0
  14. package/esm2022/lib/dashboard.component.mjs +377 -0
  15. package/esm2022/lib/dashboard.module.mjs +16 -0
  16. package/esm2022/lib/dashboard.routes.mjs +7 -0
  17. package/esm2022/lib/models/attendance-action-permissions.model.mjs +2 -0
  18. package/esm2022/lib/models/attendance-state.model.mjs +7 -0
  19. package/esm2022/lib/models/dashboard-list-response.model.mjs +2 -0
  20. package/esm2022/lib/models/dashboard-route-config.model.mjs +2 -0
  21. package/esm2022/lib/models/dashboard-section-state.model.mjs +9 -0
  22. package/esm2022/lib/models/dashboard-user-info.model.mjs +2 -0
  23. package/esm2022/lib/models/group-row.model.mjs +2 -0
  24. package/esm2022/lib/models/meeting-row.model.mjs +2 -0
  25. package/esm2022/lib/models/page-change.model.mjs +2 -0
  26. package/esm2022/lib/models/upcoming-event.model.mjs +2 -0
  27. package/esm2022/lib/services/attendance-reducers.mjs +54 -0
  28. package/esm2022/lib/services/dashboard.service.mjs +208 -0
  29. package/esm2022/lib/services/user-permissions.service.mjs +50 -0
  30. package/esm2022/lib/utils/attendance-action.util.mjs +53 -0
  31. package/esm2022/public-api.mjs +34 -0
  32. package/fesm2022/ieeesa-npm-dashboard.mjs +2234 -0
  33. package/fesm2022/ieeesa-npm-dashboard.mjs.map +1 -0
  34. package/index.d.ts +5 -0
  35. package/lib/assets/dashboard-mock.d.ts +31 -0
  36. package/lib/assets/dashboard-route-paths.mock.d.ts +2 -0
  37. package/lib/assets/dashboard-user-permissions.mock.d.ts +2 -0
  38. package/lib/assets/date-formats.d.ts +27 -0
  39. package/lib/components/event-group-card/event-group-card.component.d.ts +300 -0
  40. package/lib/components/meeting-attendance-row/meeting-attendance-row.component.d.ts +239 -0
  41. package/lib/components/member-level-badge/member-level-badge.component.d.ts +161 -0
  42. package/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.d.ts +238 -0
  43. package/lib/components/welcome-header/dashboard-welcome-header.component.d.ts +98 -0
  44. package/lib/components/your-groups/your-groups.component.d.ts +110 -0
  45. package/lib/dashboard.component.d.ts +376 -0
  46. package/lib/dashboard.module.d.ts +7 -0
  47. package/lib/dashboard.routes.d.ts +2 -0
  48. package/lib/models/attendance-action-permissions.model.d.ts +4 -0
  49. package/lib/models/attendance-state.model.d.ts +4 -0
  50. package/lib/models/dashboard-list-response.model.d.ts +5 -0
  51. package/lib/models/dashboard-route-config.model.d.ts +7 -0
  52. package/lib/models/dashboard-section-state.model.d.ts +6 -0
  53. package/lib/models/dashboard-user-info.model.d.ts +5 -0
  54. package/lib/models/group-row.model.d.ts +8 -0
  55. package/lib/models/meeting-row.model.d.ts +12 -0
  56. package/lib/models/page-change.model.d.ts +4 -0
  57. package/lib/models/upcoming-event.model.d.ts +13 -0
  58. package/lib/services/attendance-reducers.d.ts +43 -0
  59. package/lib/services/dashboard.service.d.ts +119 -0
  60. package/lib/services/user-permissions.service.d.ts +31 -0
  61. package/lib/utils/attendance-action.util.d.ts +38 -0
  62. package/package.json +30 -3
  63. package/public-api.d.ts +24 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Pure helpers for the per-meeting attendance action state machine. No Angular /
3
+ * service dependencies so they are trivially testable (property-tested as
4
+ * Property 1) and reusable by `MeetingAttendanceRowComponent`.
5
+ *
6
+ * The handler is the single source of truth for what a meeting row's action
7
+ * button should emit when activated. The displayed `AttendanceState` only
8
+ * advances on a successful resolution (handled by the service reducers), so this
9
+ * function is a pure mapping from the current inputs to the action to emit.
10
+ */
11
+ import { AttendanceState } from '../models/attendance-state.model';
12
+ /**
13
+ * The action a meeting row's action button should emit when activated.
14
+ * `NONE` means the activation is non-actionable (empty id or in-flight) and the
15
+ * row must emit no `logAttendance` / `leaveMeeting` / navigation event.
16
+ */
17
+ export declare enum AttendanceAction {
18
+ LOG_ATTENDANCE = "LOG_ATTENDANCE",
19
+ LEAVE_MEETING = "LEAVE_MEETING",
20
+ NONE = "NONE"
21
+ }
22
+ /**
23
+ * Resolves the attendance action to emit for a meeting row, following the
24
+ * attendance action state machine (see design: Attendance Action State Machine).
25
+ *
26
+ * Behavior:
27
+ * - Returns `NONE` when `meetingId` is empty or undefined (non-actionable row).
28
+ * - Returns `NONE` while the row is in-flight (re-entrancy guard — no further
29
+ * event is emitted until the current action resolves).
30
+ * - Returns `LEAVE_MEETING` when the state is `CURRENTLY_ATTENDING`.
31
+ * - Returns `LOG_ATTENDANCE` when the state is `NOT_ATTENDING` or undefined.
32
+ *
33
+ * @param {AttendanceState | undefined} attendanceState The row's current attendance state.
34
+ * @param {boolean} isInFlight Whether an attendance action for this row is awaiting resolution.
35
+ * @param {string | undefined} meetingId The row's meeting identifier.
36
+ * @return {AttendanceAction} The action to emit, or `NONE` when non-actionable.
37
+ */
38
+ export declare function resolveAttendanceAction(attendanceState: AttendanceState | undefined, isInFlight: boolean, meetingId: string | undefined): AttendanceAction;
package/package.json CHANGED
@@ -1,6 +1,33 @@
1
1
  {
2
2
  "name": "@ieeesa-npm/dashboard",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^16.1.0",
6
+ "@angular/core": "^16.1.0",
7
+ "@angular/material": "^16.1.3",
8
+ "@angular/router": "^16.1.0",
9
+ "@ieeesa-npm/models": ">=0.1.4",
10
+ "@ieeesa-npm/presentation": ">=0.33.33",
11
+ "@ieeesa-npm/shared-styles": ">=0.7.5",
12
+ "@ieeesa-npm/utility": ">=0.12.17",
13
+ "luxon": "^3.7.2",
14
+ "rxjs": "~7.8.0"
15
+ },
16
+ "dependencies": {
17
+ "tslib": "^2.3.0"
18
+ },
19
+ "sideEffects": false,
20
+ "module": "fesm2022/ieeesa-npm-dashboard.mjs",
21
+ "typings": "index.d.ts",
22
+ "exports": {
23
+ "./package.json": {
24
+ "default": "./package.json"
25
+ },
26
+ ".": {
27
+ "types": "./index.d.ts",
28
+ "esm2022": "./esm2022/ieeesa-npm-dashboard.mjs",
29
+ "esm": "./esm2022/ieeesa-npm-dashboard.mjs",
30
+ "default": "./fesm2022/ieeesa-npm-dashboard.mjs"
31
+ }
32
+ }
6
33
  }
@@ -0,0 +1,24 @@
1
+ export * from './lib/dashboard.component';
2
+ export * from './lib/components/welcome-header/dashboard-welcome-header.component';
3
+ export * from './lib/components/upcoming-meetings-events/upcoming-meetings-events.component';
4
+ export * from './lib/components/event-group-card/event-group-card.component';
5
+ export * from './lib/components/meeting-attendance-row/meeting-attendance-row.component';
6
+ export * from './lib/components/your-groups/your-groups.component';
7
+ export * from './lib/components/member-level-badge/member-level-badge.component';
8
+ export * from './lib/dashboard.module';
9
+ export * from './lib/dashboard.routes';
10
+ export * from './lib/models/dashboard-route-config.model';
11
+ export * from './lib/models/attendance-state.model';
12
+ export * from './lib/models/dashboard-section-state.model';
13
+ export * from './lib/models/page-change.model';
14
+ export * from './lib/models/dashboard-user-info.model';
15
+ export * from './lib/models/meeting-row.model';
16
+ export * from './lib/models/upcoming-event.model';
17
+ export * from './lib/models/group-row.model';
18
+ export * from './lib/models/attendance-action-permissions.model';
19
+ export * from './lib/models/dashboard-list-response.model';
20
+ export * from './lib/services/dashboard.service';
21
+ export * from './lib/services/user-permissions.service';
22
+ export * from './lib/assets/dashboard-route-paths.mock';
23
+ export * from './lib/assets/dashboard-user-permissions.mock';
24
+ export * from './lib/assets/dashboard-mock';