Skip to content

Commit e1a260b

Browse files
authored
Merge pull request #465 from PlaceOS/refactor/clean-libs
refactor: cleanup shared code
2 parents 1918ac4 + b9343fc commit e1a260b

File tree

883 files changed

+18371
-9060
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

883 files changed

+18371
-9060
lines changed

.github/workflows/pull-request.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: 'PR Flow'
22

33
on:
44
push:
5-
branches: [feat/*, fix/*, custom/*]
5+
branches: [feat/*, fix/*, custom/*, refactor/*]
66
pull_request:
7-
branches: [feat/*, fix/*, custom/*]
7+
branches: [feat/*, fix/*, custom/*, refactor/*]
88

99
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
1010
jobs:
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { Component, inject, OnInit } from '@angular/core';
2+
import { PlaceOS_Service } from '@placeos/common';
3+
4+
@Component({
5+
selector: 'app-root',
6+
template: `
7+
<global-banner />
8+
<div class="relative h-1/2 w-full flex-1">
9+
<router-outlet></router-outlet>
10+
</div>
11+
@if (has_chat) {
12+
<global-chat />
13+
}
14+
<global-loading />
15+
<!-- <debug-console *ngIf="debug"></debug-console> -->
16+
`,
17+
styles: [
18+
`
19+
:host {
20+
display: flex;
21+
flex-direction: column;
22+
height: 100%;
23+
width: 100%;
24+
}
25+
`,
26+
],
27+
standalone: false,
28+
})
29+
export class AppComponent implements OnInit {
30+
private _placeos = inject(PlaceOS_Service);
31+
32+
public get has_chat(): boolean {
33+
return this._placeos.has_chat;
34+
}
35+
36+
public ngOnInit(): void {
37+
this._placeos.init();
38+
}
39+
}

apps/assistant-panel/src/app/app.module.ts

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,54 +7,35 @@ import {
77
NgModule,
88
provideZonelessChangeDetection,
99
} from '@angular/core';
10-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
1110
import { BrowserModule } from '@angular/platform-browser';
1211
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
1312
import { Router, RouterModule } from '@angular/router';
1413
import { ServiceWorkerModule } from '@angular/service-worker';
1514

16-
import { MatRippleModule } from '@angular/material/core';
17-
import { MatFormFieldModule } from '@angular/material/form-field';
18-
import { MatInputModule } from '@angular/material/input';
19-
import { MatSnackBarModule } from '@angular/material/snack-bar';
20-
2115
import * as Sentry from '@sentry/angular';
2216

23-
import { AppComponent } from 'libs/components/src/lib/app.component';
17+
import {
18+
GlobalBannerComponent,
19+
GlobalLoadingComponent,
20+
} from '@placeos/components';
2421
import { environment } from '../environments/environment';
2522
import { routes } from './app.routes';
2623

27-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
28-
import { GlobalBannerComponent } from 'libs/components/src/lib/global-banner.component';
29-
import { GlobalLoadingComponent } from 'libs/components/src/lib/global-loading.component';
30-
import { IconComponent } from 'libs/components/src/lib/icon.component';
31-
import { TranslatePipe } from 'libs/components/src/lib/translate.pipe';
32-
24+
import { AppComponent } from './app.component';
3325
import { BootstrapComponent } from './bootstrap.component';
3426
import { PanelViewComponent } from './panel-view.component';
3527

36-
const MAT_MODULES: any[] = [
37-
MatFormFieldModule,
38-
MatInputModule,
39-
MatSnackBarModule,
40-
MatRippleModule,
41-
MatAutocompleteModule,
42-
];
43-
4428
@NgModule({
45-
declarations: [AppComponent, BootstrapComponent, PanelViewComponent],
29+
declarations: [AppComponent],
4630
bootstrap: [AppComponent],
4731
imports: [
4832
BrowserModule,
4933
BrowserAnimationsModule,
5034
RouterModule.forRoot(routes, { useHash: true }),
51-
FormsModule,
52-
ReactiveFormsModule,
53-
...MAT_MODULES,
5435
GlobalLoadingComponent,
5536
GlobalBannerComponent,
56-
IconComponent,
57-
TranslatePipe,
37+
BootstrapComponent,
38+
PanelViewComponent,
5839
ServiceWorkerModule.register('ngsw-worker.js', {
5940
enabled: environment.production,
6041
}),

apps/assistant-panel/src/app/bootstrap.component.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1+
import { CommonModule } from '@angular/common';
12
import { Component, OnInit, inject } from '@angular/core';
3+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
4+
import { MatRippleModule } from '@angular/material/core';
5+
import { MatFormFieldModule } from '@angular/material/form-field';
6+
import { MatInputModule } from '@angular/material/input';
7+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
28
import { ActivatedRoute, Router } from '@angular/router';
3-
import { AsyncHandler } from '@placeos/common';
4-
import { OrganisationService } from '@placeos/organisation';
9+
import { AsyncHandler, OrganisationService, Space } from '@placeos/common';
10+
import { TranslatePipe } from '@placeos/components';
511
import { querySystems } from '@placeos/ts-client';
6-
import { Space } from 'libs/events/src/lib/space.class';
712
import { BehaviorSubject, combineLatest, of } from 'rxjs';
813
import { debounceTime, map, shareReplay, switchMap } from 'rxjs/operators';
914

@@ -116,7 +121,15 @@ const SYS_ID_KEY = 'PLACEOS.ASSISTANT.system';
116121
</div>
117122
`,
118123
styles: [],
119-
standalone: false,
124+
imports: [
125+
MatAutocompleteModule,
126+
MatFormFieldModule,
127+
MatInputModule,
128+
MatProgressSpinnerModule,
129+
MatRippleModule,
130+
CommonModule,
131+
TranslatePipe,
132+
],
120133
})
121134
export class BootstrapComponent extends AsyncHandler implements OnInit {
122135
private _org = inject(OrganisationService);

apps/assistant-panel/src/app/panel-view.component.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
import { Component, ElementRef, inject, viewChild } from '@angular/core';
22
import { ActivatedRoute } from '@angular/router';
33
import { AsyncHandler, currentUser } from '@placeos/common';
4-
import { ChatService } from 'libs/components/src/lib/chat/chat.service';
4+
import {
5+
ChatService,
6+
DateFromPipe,
7+
IconComponent,
8+
SanitizePipe,
9+
} from '@placeos/components';
510
import { first, map, tap } from 'rxjs/operators';
611

7-
import { OrganisationService } from '@placeos/organisation';
12+
import { CommonModule } from '@angular/common';
13+
import { MatRippleModule } from '@angular/material/core';
14+
import { OrganisationService } from '@placeos/common';
815
import * as tf from '@tensorflow/tfjs';
916

1017
declare let loadVosklet: any;
@@ -219,7 +226,13 @@ declare let loadVosklet: any;
219226
}
220227
`,
221228
],
222-
standalone: false,
229+
imports: [
230+
MatRippleModule,
231+
CommonModule,
232+
IconComponent,
233+
SanitizePipe,
234+
DateFromPipe,
235+
],
223236
})
224237
export class PanelViewComponent extends AsyncHandler {
225238
private _route = inject(ActivatedRoute);
@@ -480,7 +493,7 @@ export class PanelViewComponent extends AsyncHandler {
480493
this.interval('check_listening', () => this.startListening(), 500);
481494
}
482495

483-
public _last_text: string = '';
496+
public _last_text = '';
484497

485498
private _speakText(text: string) {
486499
if (this._last_text === text) return;

apps/assistant-panel/src/test-setup.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ globalThis.ngJest = {
66
},
77
};
88
import { defineGlobalsInjections } from '@ngneat/spectator';
9+
import { TranslatePipe } from '@placeos/components';
910
import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
10-
import { TranslatePipe } from 'libs/components/src/lib/translate.pipe';
1111
import { MockPipe } from 'ng-mocks';
1212

1313
setupZoneTestEnv();
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { Component, inject, OnInit } from '@angular/core';
2+
import { PlaceOS_Service, setMocks } from '@placeos/common';
3+
import { mocksInit } from '@placeos/mocks';
4+
5+
@Component({
6+
selector: 'app-root',
7+
template: `
8+
<global-banner />
9+
<div class="relative h-1/2 w-full flex-1">
10+
<router-outlet></router-outlet>
11+
</div>
12+
@if (has_chat) {
13+
<global-chat />
14+
}
15+
<global-loading />
16+
<!-- <debug-console *ngIf="debug"></debug-console> -->
17+
`,
18+
styles: [
19+
`
20+
:host {
21+
display: flex;
22+
flex-direction: column;
23+
height: 100%;
24+
width: 100%;
25+
}
26+
`,
27+
],
28+
standalone: false,
29+
})
30+
export class AppComponent implements OnInit {
31+
private _placeos = inject(PlaceOS_Service);
32+
33+
public get has_chat(): boolean {
34+
return this._placeos.has_chat;
35+
}
36+
37+
public ngOnInit(): void {
38+
setMocks(mocksInit);
39+
this._placeos.init();
40+
}
41+
}

apps/booking-panel/src/app/app.module.ts

Lines changed: 17 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,24 @@ import {
44
NgModule,
55
provideZonelessChangeDetection,
66
} from '@angular/core';
7-
import { FormsModule } from '@angular/forms';
87
import { BrowserModule } from '@angular/platform-browser';
98
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
109
import { Router } from '@angular/router';
1110
import { ServiceWorkerModule } from '@angular/service-worker';
1211

13-
import { MatAutocompleteModule } from '@angular/material/autocomplete';
14-
import { MatFormFieldModule } from '@angular/material/form-field';
15-
import { MatInputModule } from '@angular/material/input';
16-
import { MatSnackBarModule } from '@angular/material/snack-bar';
17-
1812
import { AppRoutingModule } from './app-routing.module';
1913

20-
import { AppComponent } from 'libs/components/src/lib/app.component';
2114
import { environment } from '../environments/environment';
22-
import { SharedOverlaysModule } from './overlays/overlays.module';
2315

24-
import { MatRippleModule } from '@angular/material/core';
2516
import * as Sentry from '@sentry/angular';
2617
import { BootstrapComponent } from './bootstrap.component';
27-
import { AppCheckinModule } from './checkin/checkin.module';
2818
import { EventPanelComponent } from './event-panel.component';
29-
import { AppPanelViewModule } from './new-panel/panel-view.module';
3019

31-
import { LocaleService } from 'libs/common/src/lib/locale.service';
32-
import { AuthenticatedImageDirective } from 'libs/components/src/lib/authenticated-image.directive';
33-
import { GlobalBannerComponent } from 'libs/components/src/lib/global-banner.component';
34-
import { GlobalLoadingComponent } from 'libs/components/src/lib/global-loading.component';
35-
import { IconComponent } from 'libs/components/src/lib/icon.component';
36-
import { SafePipe } from 'libs/components/src/lib/safe.pipe';
37-
import { TranslatePipe } from 'libs/components/src/lib/translate.pipe';
20+
import { LocaleService } from '@placeos/common';
21+
import {
22+
GlobalBannerComponent,
23+
GlobalLoadingComponent,
24+
} from '@placeos/components';
3825

3926
import { registerLocaleData } from '@angular/common';
4027
import localeAr from '@angular/common/locales/ar';
@@ -43,41 +30,25 @@ import localeFr from '@angular/common/locales/fr';
4330
import localeIt from '@angular/common/locales/it';
4431
import localeJa from '@angular/common/locales/ja';
4532
import localeZh from '@angular/common/locales/zh';
46-
import { MatDialogModule } from '@angular/material/dialog';
47-
import { SanitizePipe } from 'libs/components/src/lib/sanitise.pipe';
48-
49-
const MAT_MODULES: any[] = [
50-
MatFormFieldModule,
51-
MatInputModule,
52-
MatAutocompleteModule,
53-
MatSnackBarModule,
54-
MatRippleModule,
55-
MatDialogModule,
56-
];
57-
58-
const STANDALONE_COMPONENTS = [
59-
GlobalBannerComponent,
60-
GlobalLoadingComponent,
61-
IconComponent,
62-
AuthenticatedImageDirective,
63-
TranslatePipe,
64-
SafePipe,
65-
SanitizePipe,
66-
];
33+
import { AppComponent } from './app.component';
34+
import { CheckinViewComponent } from './checkin/checkin-view.component';
35+
import { PanelViewComponent } from './new-panel/panel-view.component';
6736

6837
@NgModule({
69-
declarations: [AppComponent, BootstrapComponent, EventPanelComponent],
38+
declarations: [AppComponent],
7039
bootstrap: [AppComponent],
7140
imports: [
7241
BrowserModule,
7342
BrowserAnimationsModule,
7443
AppRoutingModule,
75-
FormsModule,
76-
SharedOverlaysModule,
77-
AppPanelViewModule,
78-
AppCheckinModule,
79-
...MAT_MODULES,
80-
...STANDALONE_COMPONENTS,
44+
GlobalBannerComponent,
45+
GlobalLoadingComponent,
46+
47+
BootstrapComponent,
48+
EventPanelComponent,
49+
CheckinViewComponent,
50+
PanelViewComponent,
51+
8152
ServiceWorkerModule.register('ngsw-worker.js', {
8253
enabled: environment.production,
8354
}),

apps/booking-panel/src/app/bootstrap.component.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@ import { querySystems } from '@placeos/ts-client';
44
import { BehaviorSubject, combineLatest, of } from 'rxjs';
55
import { debounceTime, map, shareReplay, switchMap, tap } from 'rxjs/operators';
66

7-
import { AsyncHandler } from 'libs/common/src/lib/async-handler.class';
8-
import { OrganisationService } from 'libs/organisation/src/lib/organisation.service';
7+
import { AsyncHandler, OrganisationService } from '@placeos/common';
98

10-
import { Space } from 'libs/events/src/lib/space.class';
9+
import { CommonModule } from '@angular/common';
10+
import { FormsModule } from '@angular/forms';
11+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
12+
import { MatRippleModule } from '@angular/material/core';
13+
import { MatFormFieldModule } from '@angular/material/form-field';
14+
import { MatInputModule } from '@angular/material/input';
15+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
16+
import { Space } from '@placeos/common';
17+
import { TranslatePipe } from '@placeos/components';
1118

1219
@Component({
1320
selector: '[app-bootstrap]',
@@ -121,7 +128,16 @@ import { Space } from 'libs/events/src/lib/space.class';
121128
}
122129
`,
123130
],
124-
standalone: false,
131+
imports: [
132+
CommonModule,
133+
MatRippleModule,
134+
TranslatePipe,
135+
MatProgressSpinnerModule,
136+
MatAutocompleteModule,
137+
MatFormFieldModule,
138+
MatInputModule,
139+
FormsModule,
140+
],
125141
})
126142
export class BootstrapComponent extends AsyncHandler implements OnInit {
127143
private route = inject(ActivatedRoute);

0 commit comments

Comments
 (0)