[Chore] Support Angular v19 (Nx v20.8.0) (#8610)

* chore(nx): migrate @nx/workspace to version 20.3.0

* chore(material): run migration-v19 for Angular Material update

* chore(packages): run explicit-standalone-flag migration for Angular v19

* chore(deps): downgrade TypeScript to 5.5.4 for Angular compatibility

* chore(deps): bump Angular ESLint dependencies to version 19

* chore(deps): bump @ng-select/ng-select to version 14.1.0

* chore(deps): bump @commitlint packages to latest versions

* fix(cspell): typo spelling :-)

* chore(packages): migrate initializers to new provider functions

* chore(deps): update the @angular/cli package version to ~19.0.0

* chore(deps): update packages to support Angular v19

* chore(packages): migrate initializers to new provider functions

* fix: correct Sentry.TraceService injection in AppInitializer

* Update yarn.lock

* Update yarn.lock

* fix: update yarn.lock

* fix(cspell): typo spelling :-)

* fix: update yarn.lock

* chore(deps): bump @angular/common to version 19.0.0

* chore(nx): migrate @nx/workspace to version 20.4.2

* chore(deps): update yarn.lock

* chore(nx): migrate @nx/workspace to version 20.4.4

* chore(deps): bump @angular/core from 19.1.5 to 19.1.6

* chore(deps): upgrade @nebular/auth and @nebular/theme to v15

- Upgrade @nebular/auth from ^14.0.2 to ^15.0.0
- Upgrade @nebular/theme from ^14.0.2 to ^15.0.0

* chore(deps): bump @angular-slider/ngx-slider from ^18.0.0 to ^19.0.0

* chore(deps): bump ngx-page-scroll and ngx-page-scroll-core to v14

- Bump ngx-page-scroll from ^13.0.0 to ^14.0.0
- Bump ngx-page-scroll-core from ^13.0.0 to ^14.0.0

* chore(deps): bump ngx-permissions from ^17.1.0 to ^19.0.0

* chore(deps): bump @ng-select/ng-select from ^14.1.0 to ^14.2.2

* chore(deps): bump @fortawesome/angular-fontawesome from 0.15.0 to 1.0.0

* fix: desktop build (make component standalone disabled)

* chore(deps): bump @angular/core from 18.2.12 to 19.1.6

* chore(nx): migrate @nx/workspace to version 20.8.0

* chore(deps): bump ng2-file-upload to version ^8.0.0

* chore(deps): bump @angular/core from 19.1.6 to 19.2.7

* chore(deps): bump @fullcalendar/core from ^6.1.15 to ^6.1.17

* chore(deps): bump @angular-eslint packages to v19.3.0

* fix: add `standalone: false` to angular components

* chore(deps): downgrade @angular-builders/custom-webpack from v19.0.1 to v18.0.0

* chore(deps): bump angular2-smart-table from ^3.5.0 to ^3.6.1

* refactor(styles): replace @import with @use for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* chore(deps): bump @angular/core from 19.0.0 to 19.2.0

* chore(deps): updated dependencies for `@fullcalendar/angular`

* fix(cspell): typo spelling :-)

* Revert "chore(deps): updated dependencies for `@fullcalendar/angular`"

This reverts commit 4b34d72071.

* chore(deps): switch @angular/* to ^19.2.7

* fix: revert nx migrations.json

* Revert "chore(deps): switch @angular/* to ^19.2.7"

This reverts commit edd9105c51.

* fix: align @angular/cdk version with @angular/core version

* chore(deps): bump @angular-builders/custom-webpack from 18.0.0 to 19.0.1

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* refactor(styles): replace `@import` with `@use` for SCSS module

* chore(deps): bump typescript from 5.5.4 to ^5.8.3

* fix(server-dashboard): remove redundant nullish coalescing from autoStart check

* fix: add suggestions from greptile-apps bot review

* fix: add suggestions from greptile-apps bot review
This commit is contained in:
Rahul R.
2025-04-26 15:47:55 +05:30
committed by GitHub
parent cd96f8b313
commit e6b86f4c9d
1240 changed files with 8849 additions and 7279 deletions
+88 -3
View File
@@ -117,7 +117,6 @@
"echarts",
"editorplaceholder",
"elif",
"Embeddable",
"empl",
"entrypoint",
"envalid",
@@ -153,7 +152,6 @@
"Fullname",
"fullscreenable",
"fulltext",
"gauzyapiserver",
"gauzydesktop",
"gauzydesktoptimer",
"gauzydevsess",
@@ -280,7 +278,6 @@
"linkedin",
"listbox",
"localforage",
"locutus",
"longform",
"longtext",
"macbook",
@@ -544,6 +541,94 @@
"Yostorono",
"zfgk",
"zipkin",
"gauzyapiserver",
"Embeddable",
"locutus",
"proto",
"iubenda",
"iconed",
"cust",
"trasp",
"policyicon",
"wbars",
"allcaps",
"iubgreen",
"unixepoch",
"macbook",
"upvotes",
"downvotes",
"Bykey",
"Recu",
"Clokr",
"KNEX",
"ASPECTO",
"COBERTURA",
"EXTP",
"RDCL",
"VMFE",
"GOROOT",
"PGBIN",
"PGDATA",
"PGPASSWORD",
"PGROOT",
"PGUSER",
"PHPROOT",
"PIPX",
"UPDATECHECK",
"NOLOGO",
"GHCUP",
"MSYS",
"PERFLOG",
"PROGRAMFILES",
"ALLUSERSPROFILE",
"APPDATA",
"COMMONPROGRAMFILES",
"serverapi",
"serializables",
"drppicker",
"titlebar",
"raleway",
"browserslist",
"flexbox",
"nbinput",
"nbbutton",
"xaxis",
"wdth",
"concate",
"typeahead",
"maxlength",
"xplatframework",
"localforage",
"longform",
"rfdc",
"bluehalo",
"libx264",
"libx",
"WXGA",
"SXGA",
"UXGA",
"NTSC",
"libvpx",
"libaom",
"theora",
"Theora",
"Unregisters",
"allwindows",
"Johndoe",
"minizlib",
"DOCR",
"apida",
"appplatform",
"apistageda",
"elif",
"appleboy",
"apidemoda",
"forin",
"distutils",
"loggable",
"inversed",
"iquery",
"nodownload",
"Zrdm",
"greenkeeper",
"classpath",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"$schema": "./apps/gauzy/node_modules/@angular/cli/lib/config/schema.json",
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
"cli": {
"warnings": {
"versionMismatch": false
+15 -15
View File
@@ -35,26 +35,26 @@
"electronmon": "^2.0.2"
},
"dependencies": {
"@angular/animations": "18.2.12",
"@angular/cdk": "18.2.14",
"@angular/common": "18.2.12",
"@angular/core": "18.2.12",
"@angular/forms": "18.2.12",
"@angular/material": "18.2.14",
"@angular/router": "18.2.12",
"@angular/animations": "19.2.7",
"@angular/cdk": "19.2.7",
"@angular/common": "19.2.7",
"@angular/core": "19.2.7",
"@angular/forms": "19.2.7",
"@angular/material": "19.2.7",
"@angular/router": "19.2.7",
"@datorama/akita": "^8.0.1",
"@datorama/akita-ngdevtools": "^7.0.0",
"@electron/remote": "^2.0.8",
"@grpc/grpc-js": "^1.6.7",
"@nebular/auth": "^14.0.2",
"@nebular/auth": "^15.0.0",
"@nebular/bootstrap": "^9.1.0-rc.6",
"@nebular/eva-icons": "^14.0.2",
"@nebular/security": "^14.0.2",
"@nebular/theme": "^14.0.2",
"@ng-select/ng-select": "^13.9.0",
"@nebular/eva-icons": "^15.0.0",
"@nebular/security": "^15.0.0",
"@nebular/theme": "^15.0.0",
"@ng-select/ng-select": "^14.2.2",
"@ngx-translate/core": "^16.0.4",
"@ngx-translate/http-loader": "^16.0.1",
"@ngneat/until-destroy": "^10.0.0",
"@ngx-translate/core": "^16.0.3",
"@ngx-translate/http-loader": "^16.0.0",
"@sentry/angular-ivy": "^7.101.1",
"@sentry/electron": "^4.18.0",
"@sentry/node": "^7.101.1",
@@ -88,7 +88,7 @@
"squirrelly": "^8.0.8",
"twing": "^5.0.2",
"underscore": "^1.13.3",
"undici": "^6.10.2"
"undici": "^6.10.2"
},
"optionalDependencies": {
"node-linux": "^0.1.12",
+1 -1
View File
@@ -67,6 +67,6 @@
"@nestjs/testing": "^10.4.15",
"nodemon": "^3.1.0",
"ts-node": "^10.9.2",
"typescript": "5.5.4"
"typescript": "^5.8.3"
}
}
+14 -14
View File
@@ -33,26 +33,26 @@
"terser-webpack-plugin": "^5.3.10"
},
"dependencies": {
"@angular/animations": "18.2.12",
"@angular/cdk": "18.2.14",
"@angular/common": "18.2.12",
"@angular/core": "18.2.12",
"@angular/forms": "18.2.12",
"@angular/material": "18.2.14",
"@angular/router": "18.2.12",
"@angular/animations": "19.2.7",
"@angular/cdk": "19.2.7",
"@angular/common": "19.2.7",
"@angular/core": "19.2.7",
"@angular/forms": "19.2.7",
"@angular/material": "19.2.7",
"@angular/router": "19.2.7",
"@datorama/akita": "^8.0.1",
"@datorama/akita-ngdevtools": "^7.0.0",
"@electron/remote": "^2.0.8",
"@grpc/grpc-js": "^1.6.7",
"@nebular/auth": "^14.0.2",
"@nebular/auth": "^15.0.0",
"@nebular/bootstrap": "^9.1.0-rc.6",
"@nebular/eva-icons": "^14.0.2",
"@nebular/security": "^14.0.2",
"@nebular/theme": "^14.0.2",
"@ng-select/ng-select": "^13.9.0",
"@nebular/eva-icons": "^15.0.0",
"@nebular/security": "^15.0.0",
"@nebular/theme": "^15.0.0",
"@ng-select/ng-select": "^14.2.2",
"@ngneat/until-destroy": "^10.0.0",
"@ngx-translate/core": "^16.0.3",
"@ngx-translate/http-loader": "^16.0.0",
"@ngx-translate/core": "^16.0.4",
"@ngx-translate/http-loader": "^16.0.1",
"@sentry/angular-ivy": "^7.101.1",
"@sentry/electron": "^4.18.0",
"@sentry/node": "^7.101.1",
+4 -3
View File
@@ -15,9 +15,10 @@ import { AppService } from './app.service';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'gauzy-root',
template: '<router-outlet></router-outlet>',
styleUrls: ['./app.component.scss']
selector: 'gauzy-root',
template: '<router-outlet></router-outlet>',
styleUrls: ['./app.component.scss'],
standalone: false
})
export class AppComponent implements OnInit, AfterViewInit {
constructor(
+14 -13
View File
@@ -1,5 +1,5 @@
import { HTTP_INTERCEPTORS, HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { APP_INITIALIZER, ErrorHandler, Injector, NgModule } from '@angular/core';
import { ErrorHandler, Injector, NgModule, inject, provideAppInitializer } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Router } from '@angular/router';
@@ -181,12 +181,15 @@ if (environment.SENTRY_DSN) {
provide: ErrorHandler,
useClass: ErrorHandlerService
},
{
provide: APP_INITIALIZER,
useFactory: serverConnectionFactory,
deps: [ServerConnectionService, Store, Router, Injector],
multi: true
},
provideAppInitializer(() => {
const initializerFn = (serverConnectionFactory)(
inject(ServerConnectionService),
inject(Store),
inject(Router),
inject(Injector)
);
return initializerFn();
}),
{
provide: ErrorHandler,
useValue: Sentry.createErrorHandler({
@@ -197,12 +200,10 @@ if (environment.SENTRY_DSN) {
provide: Sentry.TraceService,
deps: [Router]
},
{
provide: APP_INITIALIZER,
useFactory: () => () => { },
deps: [Sentry.TraceService],
multi: true
},
provideAppInitializer(() => {
const initializerFn = ((trace: Sentry.TraceService) => () => { })(inject(Sentry.TraceService));
return initializerFn();
}),
{ provide: DEFAULT_TIMEOUT, useValue: 80000 },
{
provide: GAUZY_ENV,
@@ -1,7 +1,8 @@
@use '@angular/material' as mat;
@mixin angular-material() {
@include mat.core();
@include mat.elevation-classes();
@include mat.app-background();
@include nb-for-theme(material-dark) {
$custom-dark-theme: mat.m2-define-dark-theme(
+14 -14
View File
@@ -34,27 +34,27 @@
"terser-webpack-plugin": "^5.3.10"
},
"dependencies": {
"@angular/animations": "18.2.12",
"@angular/cdk": "18.2.14",
"@angular/common": "18.2.12",
"@angular/core": "18.2.12",
"@angular/forms": "18.2.12",
"@angular/material": "18.2.14",
"@angular/router": "18.2.12",
"@angular/animations": "19.2.7",
"@angular/cdk": "19.2.7",
"@angular/common": "19.2.7",
"@angular/core": "19.2.7",
"@angular/forms": "19.2.7",
"@angular/material": "19.2.7",
"@angular/router": "19.2.7",
"@datorama/akita": "^8.0.1",
"@datorama/akita-ngdevtools": "^7.0.0",
"@electron/remote": "^2.0.8",
"@grpc/grpc-js": "^1.6.7",
"@nebular/auth": "^14.0.2",
"@nebular/auth": "^15.0.0",
"@nebular/bootstrap": "^9.1.0-rc.6",
"@nebular/eva-icons": "^14.0.2",
"@nebular/security": "^14.0.2",
"@nebular/theme": "^14.0.2",
"@nebular/eva-icons": "^15.0.0",
"@nebular/security": "^15.0.0",
"@nebular/theme": "^15.0.0",
"@nestjs/typeorm": "^10.0.2",
"@ng-select/ng-select": "^13.9.0",
"@ng-select/ng-select": "^14.2.2",
"@ngneat/until-destroy": "^10.0.0",
"@ngx-translate/core": "^16.0.3",
"@ngx-translate/http-loader": "^16.0.0",
"@ngx-translate/core": "^16.0.4",
"@ngx-translate/http-loader": "^16.0.1",
"@sentry/angular-ivy": "^7.101.1",
"@sentry/electron": "^4.18.0",
"@sentry/node": "^7.101.1",
+3 -2
View File
@@ -3,8 +3,9 @@ import { ActivityWatchElectronService, ElectronService, LanguageElectronService,
import { AppService } from './app.service';
@Component({
selector: 'gauzy-root',
template: '<router-outlet></router-outlet>'
selector: 'gauzy-root',
template: '<router-outlet></router-outlet>',
standalone: false
})
export class AppComponent implements OnInit, AfterViewInit {
public title: string;
+5 -7
View File
@@ -1,5 +1,5 @@
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
import { APP_INITIALIZER, ErrorHandler, NgModule } from '@angular/core';
import { ErrorHandler, NgModule, inject, provideAppInitializer } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { Router, RouterModule } from '@angular/router';
@@ -128,12 +128,10 @@ if (environment.SENTRY_DSN) {
provide: Sentry.TraceService,
deps: [Router]
},
{
provide: APP_INITIALIZER,
useFactory: () => () => { },
deps: [Sentry.TraceService],
multi: true
},
provideAppInitializer(() => {
const initializerFn = ((trace: Sentry.TraceService) => () => { })(inject(Sentry.TraceService));
return initializerFn();
}),
{
provide: ErrorHandler,
useClass: ErrorHandlerService
@@ -1,7 +1,8 @@
@use '@angular/material' as mat;
@mixin angular-material() {
@include mat.core();
@include mat.elevation-classes();
@include mat.app-background();
@include nb-for-theme(material-dark) {
$custom-dark-theme: mat.define-dark-theme(
+1 -1
View File
@@ -63,7 +63,7 @@
"jasmine-core": "^3.6.0",
"jasmine-spec-reporter": "^6.0.0",
"jest": "^29.7.0",
"jest-preset-angular": "14.1.1",
"jest-preset-angular": "14.4.2",
"karma": "^5.2.3",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
+42 -43
View File
@@ -24,36 +24,35 @@
},
"dependencies": {
"@akveo/ng2-completer": "^9.0.1",
"@ali-hm/angular-tree-component": "^18.0.5",
"@angular-slider/ngx-slider": "^18.0.0",
"@angular/animations": "18.2.12",
"@angular/cdk": "18.2.14",
"@angular/common": "18.2.12",
"@angular/core": "18.2.12",
"@angular/forms": "18.2.12",
"@angular/language-service": "18.2.12",
"@angular/material": "18.2.14",
"@angular/platform-browser": "18.2.12",
"@angular/platform-browser-dynamic": "18.2.12",
"@angular/router": "18.2.12",
"@angular/service-worker": "18.2.12",
"@asymmetrik/ngx-leaflet": "^18.0.1",
"@ali-hm/angular-tree-component": "^19.0.1",
"@angular-slider/ngx-slider": "^19.0.0",
"@angular/animations": "19.2.7",
"@angular/cdk": "19.2.7",
"@angular/common": "19.2.7",
"@angular/core": "19.2.7",
"@angular/forms": "19.2.7",
"@angular/language-service": "19.2.7",
"@angular/material": "19.2.7",
"@angular/platform-browser": "19.2.7",
"@angular/platform-browser-dynamic": "19.2.7",
"@angular/router": "19.2.7",
"@angular/service-worker": "19.2.7",
"@bluehalo/ngx-leaflet": "^19.0.0",
"@datorama/akita": "^8.0.1",
"@datorama/akita-ngdevtools": "^7.0.0",
"@electron/remote": "^2.0.8",
"@fortawesome/angular-fontawesome": "^0.15.0",
"@fortawesome/angular-fontawesome": "^1.0.0",
"@fortawesome/fontawesome-free": "^6.7.2",
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-brands-svg-icons": "^6.7.2",
"@fortawesome/free-regular-svg-icons": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@fullcalendar/angular": "^6.1.15",
"@fullcalendar/bootstrap": "^6.1.15",
"@fullcalendar/core": "^6.1.15",
"@fullcalendar/daygrid": "^6.1.15",
"@fullcalendar/interaction": "^6.1.15",
"@fullcalendar/moment-timezone": "^6.1.15",
"@fullcalendar/timegrid": "^6.1.15",
"@fullcalendar/angular": "^6.1.17",
"@fullcalendar/core": "^6.1.17",
"@fullcalendar/daygrid": "^6.1.17",
"@fullcalendar/interaction": "^6.1.17",
"@fullcalendar/moment-timezone": "^6.1.17",
"@fullcalendar/timegrid": "^6.1.17",
"@gauzy/contracts": "^0.1.0",
"@gauzy/plugin-job-employee-ui": "^0.1.0",
"@gauzy/plugin-job-proposal-ui": "^0.1.0",
@@ -62,31 +61,31 @@
"@gauzy/plugin-maintenance-ui": "^0.1.0",
"@gauzy/plugin-onboarding-ui": "^0.1.0",
"@gauzy/plugin-public-layout-ui": "^0.1.0",
"@jitsu/js": "^1.9.12",
"@jitsu/js": "^1.10.0",
"@kurkle/color": "^0.3.2",
"@nebular/auth": "^14.0.2",
"@nebular/auth": "^15.0.0",
"@nebular/bootstrap": "^9.1.0-rc.6",
"@nebular/eva-icons": "^14.0.2",
"@nebular/security": "^14.0.2",
"@nebular/theme": "^14.0.2",
"@ng-maps/core": "^7.0.0",
"@ng-maps/google": "^7.0.0",
"@ng-select/ng-select": "^13.9.0",
"@nebular/eva-icons": "^15.0.0",
"@nebular/security": "^15.0.0",
"@nebular/theme": "^15.0.0",
"@ng-maps/core": "^8.0.0",
"@ng-maps/google": "^8.0.0",
"@ng-select/ng-select": "^14.2.2",
"@ngneat/until-destroy": "^10.0.0",
"@ngx-translate/core": "^16.0.3",
"@ngx-translate/http-loader": "^16.0.0",
"@ngx-translate/core": "^16.0.4",
"@ngx-translate/http-loader": "^16.0.1",
"@sentry/angular-ivy": "^7.101.1",
"@sentry/browser": "^7.90.0",
"@sentry/node": "^7.101.1",
"@sentry/tracing": "^7.101.1",
"@sentry/types": "^7.101.1",
"@sentry/utils": "^7.90.0",
"@swimlane/ngx-charts": "^20.1.0",
"angular2-smart-table": "^3.4.0",
"@swimlane/ngx-charts": "^22.0.0-alpha.1",
"angular2-smart-table": "^3.6.1",
"bootstrap": "^4.3.1",
"brace": "^0.11.1",
"camelcase": "^6.3.0",
"chart.js": "^4.4.1",
"chart.js": "^4.4.9",
"chart.piecelabel.js": "^0.15.0",
"chartjs-plugin-annotation": "^3.0.1",
"ckeditor4": "4.22.1",
@@ -130,23 +129,23 @@
"moment-timezone": "^0.5.45",
"nebular-icons": "^1.1.0",
"ng2-charts": "^5.0.4",
"ng2-file-upload": "^7.0.1",
"ng2-file-upload": "^8.0.0",
"ngx-ace-editor-wrapper": "^9.1.12",
"ngx-clipboard": "^16.0.0",
"ngx-color-picker": "^17.0.0",
"ngx-cookie-service": "^18.0.0",
"ngx-countdown": "^17.1.1",
"ngx-cookie-service": "^19.0.0",
"ngx-countdown": "^19.0.0",
"ngx-daterangepicker-material": "^6.0.4",
"ngx-draggable-dom": "^3.4.1",
"ngx-echarts": "^8.0.1",
"ngx-feature-toggle": "^12.0.0",
"ngx-filepond": "^7.0.3",
"ngx-infinite-scroll": "^18.0.0",
"ngx-infinite-scroll": "^19.0.0",
"ngx-moment": "^6.0.2",
"ngx-page-scroll": "^13.0.0",
"ngx-page-scroll-core": "^13.0.0",
"ngx-page-scroll": "^14.0.1",
"ngx-page-scroll-core": "^14.0.1",
"ngx-perfect-scrollbar": "^10.1.1",
"ngx-permissions": "^17.1.0",
"ngx-permissions": "^19.0.0",
"normalize.css": "^8.0.1",
"pug": "^3.0.2",
"randomcolor": "^0.6.2",
@@ -188,7 +187,7 @@
"jasmine-core": "^3.6.0",
"jasmine-spec-reporter": "^6.0.0",
"jest": "^29.7.0",
"jest-preset-angular": "14.1.1",
"jest-preset-angular": "14.4.2",
"karma": "^5.2.3",
"karma-chrome-launcher": "^3.1.0",
"karma-cli": "^2.0.0",
+3 -2
View File
@@ -30,8 +30,9 @@ import { I18nService } from '@gauzy/ui-core/i18n';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-app',
template: '<router-outlet *ngIf="!loading"></router-outlet>'
selector: 'ga-app',
template: '<router-outlet *ngIf="!loading"></router-outlet>',
standalone: false
})
export class AppComponent implements OnInit, AfterViewInit {
// Loading indicator
+21 -25
View File
@@ -7,7 +7,7 @@ import { HTTP_INTERCEPTORS, HttpClient, provideHttpClient, withInterceptorsFromD
import { ExtraOptions, Router, RouterModule } from '@angular/router';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { NgModule, APP_INITIALIZER, ErrorHandler } from '@angular/core';
import { NgModule, ErrorHandler, inject, provideAppInitializer } from '@angular/core';
import { AkitaNgDevtools } from '@datorama/akita-ngdevtools';
import {
NbChatModule,
@@ -161,33 +161,29 @@ const FEATURE_MODULES = [
multi: true
},
ServerConnectionService,
{
provide: APP_INITIALIZER,
useFactory: serverConnectionFactory,
deps: [ServerConnectionService, Store, Router],
multi: true
},
provideAppInitializer(() => {
const initializerFn = serverConnectionFactory(
inject(ServerConnectionService),
inject(Store),
inject(Router)
);
return initializerFn();
}),
GoogleMapsLoaderService,
{
provide: APP_INITIALIZER,
useFactory: googleMapsLoaderFactory,
deps: [GoogleMapsLoaderService],
multi: true
},
provideAppInitializer(() => {
const initializerFn = googleMapsLoaderFactory(inject(GoogleMapsLoaderService));
return initializerFn();
}),
FeatureService,
{
provide: APP_INITIALIZER,
useFactory: featureToggleLoaderFactory,
deps: [FeatureService, Store],
multi: true
},
provideAppInitializer(() => {
const initializerFn = featureToggleLoaderFactory(inject(FeatureService), inject(Store));
return initializerFn();
}),
AppInitService,
{
provide: APP_INITIALIZER,
useFactory: initializeApp,
deps: [AppInitService],
multi: true
},
provideAppInitializer(() => {
const initializerFn = initializeApp(inject(AppInitService));
return initializerFn();
}),
{
provide: ErrorHandler,
useClass: SentryErrorHandler
@@ -1,8 +1,9 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
@Component({
selector: 'ngx-about',
templateUrl: './about.component.html'
selector: 'ngx-about',
templateUrl: './about.component.html',
standalone: false
})
export class AboutComponent implements OnInit, OnDestroy {
constructor() {}
@@ -1,4 +1,4 @@
@import '../email-templates/email-templates.component.scss';
@use '../email-templates/email-templates.component' as *;
:host {
.ace-editor {
@@ -12,8 +12,9 @@ import { AccountingTemplateService, Store } from '@gauzy/ui-core/core';
@UntilDestroy({ checkProperties: true })
@Component({
templateUrl: './accounting-templates.component.html',
styleUrls: ['./accounting-templates.component.scss']
templateUrl: './accounting-templates.component.html',
styleUrls: ['./accounting-templates.component.scss'],
standalone: false
})
export class AccountingTemplatesComponent implements OnInit, AfterViewInit, OnDestroy {
previewTemplate: SafeHtml;
@@ -1,4 +1,4 @@
@import '@shared/_pg-card';
@forward '@shared/_pg-card';
.gauzy-button-container {
align-self: flex-end;
@@ -18,9 +18,10 @@ import {
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ngx-approval-policy',
templateUrl: './approval-policy.component.html',
styleUrls: ['./approval-policy.component.scss']
selector: 'ngx-approval-policy',
templateUrl: './approval-policy.component.html',
styleUrls: ['./approval-policy.component.scss'],
standalone: false
})
export class ApprovalPolicyComponent extends PaginationFilterBaseComponent implements AfterViewInit, OnInit, OnDestroy {
public settingsSmartTable: object;
@@ -1,4 +1,4 @@
@import '@shared/_pg-card';
@forward '@shared/_pg-card';
:host {
nb-card-body {
@@ -32,9 +32,10 @@ import { ApprovalPolicyComponent } from './table-components/approval-policy/appr
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ngx-approvals',
templateUrl: './approvals.component.html',
styleUrls: ['./approvals.component.scss']
selector: 'ngx-approvals',
templateUrl: './approvals.component.html',
styleUrls: ['./approvals.component.scss'],
standalone: false
})
export class ApprovalsComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
public settingsSmartTable: object;
@@ -1,4 +1,4 @@
@import 'themes';
@use 'themes' as *;
div {
display: flex;
@@ -1,9 +1,10 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'ngx-approval-policy-table',
templateUrl: './approval-policy.component.html',
styleUrls: ['./approval-policy.component.scss']
selector: 'ngx-approval-policy-table',
templateUrl: './approval-policy.component.html',
styleUrls: ['./approval-policy.component.scss'],
standalone: false
})
export class ApprovalPolicyComponent {
@Input()
@@ -3,8 +3,9 @@ import { RequestApprovalStatusTypesEnum, ComponentLayoutStyleEnum, RolesEnum } f
import { Store } from '@gauzy/ui-core/core';
@Component({
selector: 'ngx-request-approval-action',
templateUrl: './request-approval-action.component.html'
selector: 'ngx-request-approval-action',
templateUrl: './request-approval-action.component.html',
standalone: false
})
export class RequestApprovalActionComponent implements OnInit {
@Input()
@@ -13,9 +13,10 @@ import { CandidateFeedbacksService } from '@gauzy/ui-core/core';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-average-criterions-rating-chart',
templateUrl: './average-criterions-rating-chart.component.html',
styleUrls: ['./average-criterions-rating-chart.component.scss']
selector: 'ga-average-criterions-rating-chart',
templateUrl: './average-criterions-rating-chart.component.html',
styleUrls: ['./average-criterions-rating-chart.component.scss'],
standalone: false
})
export class AverageCriterionsRatingChartComponent implements OnInit, OnDestroy {
labels: string[] = [];
@@ -1,4 +1,4 @@
@import 'themes';
@use 'themes' as *;
.title {
margin-top: 2rem;
@@ -6,9 +6,10 @@ import { CandidateFeedbacksService } from '@gauzy/ui-core/core';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-criterions-rating-chart',
templateUrl: './criterions-rating-chart.component.html',
styleUrls: ['./criterions-rating-chart.component.scss']
selector: 'ga-criterions-rating-chart',
templateUrl: './criterions-rating-chart.component.html',
styleUrls: ['./criterions-rating-chart.component.scss'],
standalone: false
})
export class CriterionsRatingChartComponent implements OnDestroy {
labels: string[] = [];
@@ -7,9 +7,10 @@ import { tap } from 'rxjs/operators';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-interview-rating-chart',
templateUrl: './interview-rating-chart.component.html',
styleUrls: ['./interview-rating-chart.component.scss']
selector: 'ga-interview-rating-chart',
templateUrl: './interview-rating-chart.component.html',
styleUrls: ['./interview-rating-chart.component.scss'],
standalone: false
})
export class InterviewRatingChartComponent implements OnInit, OnDestroy {
labels: string[] = [];
@@ -5,8 +5,8 @@ import { ICandidate } from '@gauzy/contracts';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-overall-rating-chart',
template: `
selector: 'ga-overall-rating-chart',
template: `
<ng-container *ngIf="rating?.length > 0 && candidates?.length > 0; else noDataTemplate">
<canvas
style="height: 400px; width: 100%;"
@@ -22,7 +22,8 @@ import { ICandidate } from '@gauzy/contracts';
<span>{{ 'CANDIDATES_PAGE.STATISTIC.NO_DATA' | translate }}</span>
</div>
</ng-template>
`
`,
standalone: false
})
export class CandidateRatingChartComponent implements OnInit, OnDestroy {
labels: string[] = [];
@@ -1,4 +1,4 @@
@import 'themes';
@use 'themes' as *;
:host {
nb-accordion-item-header ::ng-deep nb-icon {
@@ -14,9 +14,10 @@ import { distinctUntilChange } from '@gauzy/ui-core/common';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-candidate-statistic',
templateUrl: './candidate-statistic.component.html',
styleUrls: ['./candidate-statistic.component.scss']
selector: 'ga-candidate-statistic',
templateUrl: './candidate-statistic.component.html',
styleUrls: ['./candidate-statistic.component.scss'],
standalone: false
})
export class CandidateStatisticComponent implements OnInit, OnDestroy {
public organization$: Observable<IOrganization>;
@@ -1,6 +1,6 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-cards';
@import '@shared/_pg-card';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-cards' as *;
@use '@shared/_pg-card' as *;
.manage-btn {
display: flex;
@@ -33,8 +33,9 @@ import { CandidateStatusComponent, CandidateSourceComponent } from './table-comp
@UntilDestroy({ checkProperties: true })
@Component({
templateUrl: './candidates.component.html',
styleUrls: ['./candidates.component.scss']
templateUrl: './candidates.component.html',
styleUrls: ['./candidates.component.scss'],
standalone: false
})
export class CandidatesComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
includeArchived: boolean = false;
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-dialogs' as *;
.documents-form {
width: 100%;
@@ -16,9 +16,10 @@ import {
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-documents',
templateUrl: './edit-candidate-documents.component.html',
styleUrls: ['./edit-candidate-documents.component.scss']
selector: 'ga-edit-candidate-documents',
templateUrl: './edit-candidate-documents.component.html',
styleUrls: ['./edit-candidate-documents.component.scss'],
standalone: false
})
export class EditCandidateDocumentsComponent
extends PaginationFilterBaseComponent
@@ -23,9 +23,10 @@ import { Store } from '@gauzy/ui-core/core';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-employment',
templateUrl: './edit-candidate-employment.component.html',
styleUrls: ['./edit-candidate-employment.component.scss']
selector: 'ga-edit-candidate-employment',
templateUrl: './edit-candidate-employment.component.html',
styleUrls: ['./edit-candidate-employment.component.scss'],
standalone: false
})
export class EditCandidateEmploymentComponent implements OnInit, OnDestroy {
selectedCandidate: ICandidate;
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-dialogs' as *;
.education-form {
width: 100%;
@@ -11,9 +11,10 @@ import { DateViewComponent, PaginationFilterBaseComponent } from '@gauzy/ui-core
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-education',
templateUrl: './edit-candidate-education.component.html',
styleUrls: ['./edit-candidate-education.component.scss']
selector: 'ga-edit-candidate-education',
templateUrl: './edit-candidate-education.component.html',
styleUrls: ['./edit-candidate-education.component.scss'],
standalone: false
})
export class EditCandidateEducationComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
public selectedOrganization: IOrganization;
@@ -1,4 +1,5 @@
@import 'themes';
@use 'themes' as *;
:host {
border-radius: nb-theme(border-radius);
nb-tab {
@@ -5,8 +5,8 @@ export interface ICandidateSkill {
candidateId: string;
}
@Component({
selector: 'ga-edit-candidate-experience',
template: `
selector: 'ga-edit-candidate-experience',
template: `
<nb-tabset style="padding: 1rem;">
<nb-tab
class="custom-tab"
@@ -35,6 +35,7 @@ export interface ICandidateSkill {
</nb-tab>
</nb-tabset>
`,
styleUrls: ['./edit-candidate-experience.component.scss']
styleUrls: ['./edit-candidate-experience.component.scss'],
standalone: false
})
export class EditCandidateExperienceComponent {}
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-dialogs' as *;
.experience-form {
width: 100%;
@@ -53,4 +53,4 @@ form {
.table-scroll-container{
@include input-appearance(2rem, var(--gauzy-sidebar-background-4));
}
}
}
@@ -10,9 +10,10 @@ import { PaginationFilterBaseComponent } from '@gauzy/ui-core/shared';
import { CandidateExperienceService, CandidateStore, Store, ToastrService } from '@gauzy/ui-core/core';
@Component({
selector: 'ga-edit-candidate-experience-form',
templateUrl: './edit-candidate-experience-form.component.html',
styleUrls: ['./edit-candidate-experience-form.component.scss']
selector: 'ga-edit-candidate-experience-form',
templateUrl: './edit-candidate-experience-form.component.html',
styleUrls: ['./edit-candidate-experience-form.component.scss'],
standalone: false
})
export class EditCandidateExperienceFormComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
selectedOrganization: IOrganization;
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-dialogs' as *;
form {
background-color: var(--gauzy-card-2);
@@ -10,9 +10,10 @@ import { LocalDataSource } from 'angular2-smart-table';
import { CandidateSkillsService, CandidateStore, Store, ToastrService } from '@gauzy/ui-core/core';
@Component({
selector: 'ga-edit-candidate-skills',
templateUrl: './edit-candidate-skills.component.html',
styleUrls: ['edit-candidate-skills.component.scss']
selector: 'ga-edit-candidate-skills',
templateUrl: './edit-candidate-skills.component.html',
styleUrls: ['edit-candidate-skills.component.scss'],
standalone: false
})
export class EditCandidateSkillsComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
private _ngDestroy$ = new Subject<void>();
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-dialogs' as *;
.form {
padding: 0;
@@ -34,9 +34,10 @@ import { FeedbackStatusTableComponent } from './table-components';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-feedbacks',
templateUrl: './edit-candidate-feedbacks.component.html',
styleUrls: ['./edit-candidate-feedbacks.component.scss']
selector: 'ga-edit-candidate-feedbacks',
templateUrl: './edit-candidate-feedbacks.component.html',
styleUrls: ['./edit-candidate-feedbacks.component.scss'],
standalone: false
})
export class EditCandidateFeedbacksComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
feedbackId = null;
@@ -1,8 +1,8 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'ga-feedback-status',
template: `
selector: 'ga-feedback-status',
template: `
<div *ngIf="rowData?.status === 'REJECTED'">
<div class="badge badge-danger">
{{ 'CANDIDATES_PAGE.REJECTED' | translate }}
@@ -14,8 +14,8 @@ import { Component, Input } from '@angular/core';
</div>
</div>
`,
styles: [
`
styles: [
`
.badge-danger {
background-color: #ff3d71;
}
@@ -35,7 +35,8 @@ import { Component, Input } from '@angular/core';
text-align: left;
}
`
]
],
standalone: false
})
export class FeedbackStatusTableComponent {
@Input()
@@ -6,9 +6,10 @@ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
@UntilDestroy()
@Component({
selector: 'ga-edit-candidate-hiring',
templateUrl: './edit-candidate-hiring.component.html',
styleUrls: ['./edit-candidate-hiring.component.scss']
selector: 'ga-edit-candidate-hiring',
templateUrl: './edit-candidate-hiring.component.html',
styleUrls: ['./edit-candidate-hiring.component.scss'],
standalone: false
})
export class EditCandidateHiringComponent implements OnInit, OnDestroy {
form: UntypedFormGroup;
@@ -1,7 +1,8 @@
import { Component } from '@angular/core';
@Component({
selector: 'ga-edit-candidate-history',
templateUrl: './edit-candidate-history.component.html'
selector: 'ga-edit-candidate-history',
templateUrl: './edit-candidate-history.component.html',
standalone: false
})
export class EditCandidateHistoryComponent {}
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-overrides';
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-overrides' as *;
.right-block {
display: flex;
@@ -39,9 +39,10 @@ import { InterviewCriterionsTableComponent } from '../../../manage-candidate-int
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-interview',
templateUrl: './edit-candidate-interview.component.html',
styleUrls: ['./edit-candidate-interview.component.scss']
selector: 'ga-edit-candidate-interview',
templateUrl: './edit-candidate-interview.component.html',
styleUrls: ['./edit-candidate-interview.component.scss'],
standalone: false
})
export class EditCandidateInterviewComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
interviewList: ICandidateInterview[];
@@ -1,16 +1,17 @@
import { Component } from '@angular/core';
@Component({
selector: 'ga-edit-candidate-location',
template: `
selector: 'ga-edit-candidate-location',
template: `
<ga-employee-location [isCandidate]="true"></ga-employee-location>
`,
styles: [
`
styles: [
`
:host {
overflow-y: auto;
max-height: calc(100vh - 28rem);
}
`
]
],
standalone: false
})
export class EditCandidateLocationComponent {}
@@ -13,20 +13,21 @@ import { distinctUntilChange } from '@gauzy/ui-core/common';
*/
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-main',
templateUrl: './edit-candidate-main.component.html',
styleUrls: [
'../../../../organizations/edit-organization/edit-organization-settings/edit-organization-main/edit-organization-main.component.scss'
],
styles: [
`
selector: 'ga-edit-candidate-main',
templateUrl: './edit-candidate-main.component.html',
styleUrls: [
'../../../../organizations/edit-organization/edit-organization-settings/edit-organization-main/edit-organization-main.component.scss'
],
styles: [
`
:host {
overflow-y: auto;
max-height: calc(100vh - 24rem);
height: 100%;
}
`
]
],
standalone: false
})
export class EditCandidateMainComponent implements OnInit, OnDestroy {
hoverState: boolean;
@@ -1,6 +1,6 @@
@import 'gauzy/_gauzy-overrides';
@import 'var';
@import '@shared/_edit-profile-form';
@use 'var' as *;
@use 'gauzy/_gauzy-overrides' as *;
@forward '@shared/_edit-profile-form';
.form-group input {
width: 100%;
@@ -26,10 +26,11 @@ import { firstValueFrom } from 'rxjs';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-edit-candidate-profile',
templateUrl: './edit-candidate-profile.component.html',
styleUrls: ['./edit-candidate-profile.component.scss'],
providers: [CandidateStore]
selector: 'ga-edit-candidate-profile',
templateUrl: './edit-candidate-profile.component.html',
styleUrls: ['./edit-candidate-profile.component.scss'],
providers: [CandidateStore],
standalone: false
})
export class EditCandidateProfileComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
routeParams: Params;
@@ -1,15 +1,16 @@
import { Component } from '@angular/core';
@Component({
selector: 'ga-edit-candidate-rates',
template: ` <ga-employee-rates [isCandidate]="true"></ga-employee-rates> `,
styles: [
`
selector: 'ga-edit-candidate-rates',
template: ` <ga-employee-rates [isCandidate]="true"></ga-employee-rates> `,
styles: [
`
:host {
overflow-y: auto;
max-height: calc(100vh - 28rem);
}
`
]
],
standalone: false
})
export class EditCandidateRatesComponent {}
@@ -1,7 +1,8 @@
import { Component } from '@angular/core';
@Component({
selector: 'ga-edit-candidate-tasks',
templateUrl: './edit-candidate-tasks.component.html'
selector: 'ga-edit-candidate-tasks',
templateUrl: './edit-candidate-tasks.component.html',
standalone: false
})
export class EditCandidateTasksComponent {}
@@ -1,4 +1,4 @@
@import 'themes';
@use 'themes' as *;
:host .notification {
margin-top: 18px;
@@ -11,9 +11,10 @@ import { NbDialogService } from '@nebular/theme';
import { CandidateInterviewInfoComponent } from '@gauzy/ui-core/shared';
@Component({
selector: 'ga-edit-candidate',
templateUrl: './edit-candidate.component.html',
styleUrls: ['../../dashboard/dashboard.component.scss', './edit-candidate.component.scss']
selector: 'ga-edit-candidate',
templateUrl: './edit-candidate.component.html',
styleUrls: ['../../dashboard/dashboard.component.scss', './edit-candidate.component.scss'],
standalone: false
})
export class EditCandidateComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
private _ngDestroy$ = new Subject<void>();
@@ -1,5 +1,5 @@
@import 'gauzy/_gauzy-overrides';
@import 'gauzy/_gauzy-cards';
@use 'gauzy/_gauzy-cards' as *;
@use 'gauzy/_gauzy-overrides' as ga-overrides;
.main-header {
display: flex;
@@ -15,10 +15,10 @@
}
::ng-deep .buttons {
@include nb-select-overrides(
@include ga-overrides.nb-select-overrides(
2rem,
$default-button-radius,
$default-box-shadow
ga-overrides.$default-button-radius,
ga-overrides.$default-box-shadow
);
display: flex;
align-items: center;
@@ -34,16 +34,15 @@
@include nb-ltr(padding, 0.75rem 0.5rem 0.75rem 0.75rem !important);
@include nb-rtl(padding, 0.75rem 0.75rem 0.75rem 0.5rem !important);
}
h5 {
font-size: 18px;
font-weight: 600;
line-height: 22px;
letter-spacing: 0em;
}
.custom-calendar {
overflow-y: auto;
height: calc(100vh - 21.75rem);
}
@include card_overrides(unset, $default-card-height, $default-radius);
}
h5 {
font-size: 18px;
font-weight: 600;
line-height: 22px;
letter-spacing: 0em;
}
@@ -27,9 +27,10 @@ import { CandidateInterviewInfoComponent, CandidateInterviewMutationComponent }
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-interview-calendar',
templateUrl: './interview-calendar.component.html',
styleUrls: ['./interview-calendar.component.scss']
selector: 'ga-interview-calendar',
templateUrl: './interview-calendar.component.html',
styleUrls: ['./interview-calendar.component.scss'],
standalone: false
})
export class InterviewCalendarComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
public calendarOptions: CalendarOptions = { events: [] };
@@ -1,4 +1,4 @@
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-dialogs' as *;
.add-criterion {
display: flex;
@@ -9,9 +9,10 @@ import { CandidatePersonalQualitiesService, ToastrService } from '@gauzy/ui-core
import { Store } from '@gauzy/ui-core/core';
@Component({
selector: 'ga-candidate-personal-qualities',
templateUrl: './candidate-personal-qualities.component.html',
styleUrls: ['./candidate-personal-qualities.component.scss']
selector: 'ga-candidate-personal-qualities',
templateUrl: './candidate-personal-qualities.component.html',
styleUrls: ['./candidate-personal-qualities.component.scss'],
standalone: false
})
export class CandidatePersonalQualitiesComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
private _ngDestroy$ = new Subject<void>();
@@ -1,4 +1,4 @@
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-dialogs' as *;
.add-criterion {
display: flex;
@@ -9,9 +9,10 @@ import { CandidateTechnologiesService, ToastrService } from '@gauzy/ui-core/core
import { Store } from '@gauzy/ui-core/core';
@Component({
selector: 'ga-candidate-technologies',
templateUrl: './candidate-technologies.component.html',
styleUrls: ['./candidate-technologies.component.scss']
selector: 'ga-candidate-technologies',
templateUrl: './candidate-technologies.component.html',
styleUrls: ['./candidate-technologies.component.scss'],
standalone: false
})
export class CandidateTechnologiesComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
private _ngDestroy$ = new Subject<void>();
@@ -1,4 +1,4 @@
@import 'themes';
@use 'themes' as *;
.add-criterion {
display: flex;
@@ -1,8 +1,8 @@
import { Component } from '@angular/core';
@Component({
selector: 'ga-interview-criterions',
template: `
selector: 'ga-interview-criterions',
template: `
<div class="add-criterion">
<ga-candidate-technologies
class="add-criterion-card"
@@ -12,7 +12,8 @@ import { Component } from '@angular/core';
></ga-candidate-personal-qualities>
</div>
`,
styleUrls: ['./interview-criterions.component.scss']
styleUrls: ['./interview-criterions.component.scss'],
standalone: false
})
export class InterviewCriterionsComponent {
constructor() {}
@@ -1,6 +1,6 @@
@import 'gauzy/_gauzy-cards';
@import 'gauzy/_gauzy-table';
@import 'gauzy/_gauzy-overrides';
@use 'gauzy/_gauzy-cards' as *;
@use 'gauzy/_gauzy-table' as *;
@use 'gauzy/_gauzy-overrides' as ga-overrides;
:host .card {
display: flex;
@@ -164,10 +164,10 @@
overflow-y: auto;
}
::ng-deep .header {
@include nb-select-overrides(
@include ga-overrides.nb-select-overrides(
2rem,
$default-button-radius,
$default-box-shadow
ga-overrides.$default-button-radius,
ga-overrides.$default-box-shadow
);
}
}
@@ -46,9 +46,10 @@ import {
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-interview-panel',
templateUrl: './interview-panel.component.html',
styleUrls: ['./interview-panel.component.scss']
selector: 'ga-interview-panel',
templateUrl: './interview-panel.component.html',
styleUrls: ['./interview-panel.component.scss'],
standalone: false
})
export class InterviewPanelComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
interviewList: ICandidateInterview[];
@@ -4,8 +4,8 @@ import { TranslationBaseComponent } from '@gauzy/ui-core/i18n';
import { TranslateService } from '@ngx-translate/core';
@Component({
selector: 'ga-interview-actions',
template: `
selector: 'ga-interview-actions',
template: `
<div class="update">
<div class="badges">
<div class="badge badge-primary" *ngIf="isPastInterview(rowData)">
@@ -75,8 +75,8 @@ import { TranslateService } from '@ngx-translate/core';
</div>
</div>
`,
styles: [
`
styles: [
`
.badge-warning {
background-color: #fa0;
}
@@ -127,7 +127,8 @@ import { TranslateService } from '@ngx-translate/core';
align-items: center;
}
`
]
],
standalone: false
})
export class InterviewActionsTableComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
@Input() rowData: any;
@@ -1,8 +1,8 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'ga-interview-criterions',
template: `
selector: 'ga-interview-criterions',
template: `
<ul style="padding-left: 10px; margin:0;">
<li *ngFor="let tech of rowData.technologies">
<span> {{ tech.name }} </span>
@@ -13,13 +13,14 @@ import { Component, Input } from '@angular/core';
</li>
</ul>
`,
styles: [
`
styles: [
`
ul {
list-style-type: '- ';
}
`
]
],
standalone: false
})
export class InterviewCriterionsTableComponent {
@Input()
@@ -1,16 +1,16 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'ga-interview-date',
template: `
selector: 'ga-interview-date',
template: `
<div class="start-column">
<strong style="text-align:center;">{{ rowData?.startTime | date : 'shortDate' }} </strong>
<span> {{ rowData?.startTime | date : 'shortTime' }}</span>
<span>{{ rowData?.endTime | date : 'shortTime' }} </span>
</div>
`,
styles: [
`
styles: [
`
.start-column {
display: flex;
flex-direction: column;
@@ -18,7 +18,8 @@ import { Component, Input } from '@angular/core';
align-items: flex-start;
}
`
]
],
standalone: false
})
export class InterviewDateTableComponent {
@Input() rowData: any;
@@ -1,13 +1,14 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'ga-interview-interviewers',
template: `
selector: 'ga-interview-interviewers',
template: `
<ngx-employee-with-links
*ngIf="rowData.employees?.length > 0"
[value]="rowData?.employees"
></ngx-employee-with-links>
`
`,
standalone: false
})
export class InterviewersTableComponent {
@Input() rowData: any;
@@ -1,12 +1,13 @@
import { Component, Input } from '@angular/core';
@Component({
selector: 'ga-interview-rating',
template: `
selector: 'ga-interview-rating',
template: `
<div class="rating">
<ga-star-rating-output [rate]="rowData.rating"></ga-star-rating-output>
</div>
`
`,
standalone: false
})
export class InterviewStarRatingComponent {
@Input() rowData: any;
@@ -1,4 +1,4 @@
@import 'themes';
@use 'themes' as *;
::ng-deep {
.nb-theme-default .tab-link:focus {
@@ -13,9 +13,10 @@ import { CandidateInterviewMutationComponent } from '@gauzy/ui-core/shared';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-manage-candidate-interviews',
templateUrl: './manage-candidate-interviews.component.html',
styleUrls: ['./manage-candidate-interviews.component.scss']
selector: 'ga-manage-candidate-interviews',
templateUrl: './manage-candidate-interviews.component.html',
styleUrls: ['./manage-candidate-interviews.component.scss'],
standalone: false
})
export class ManageCandidateInterviewsComponent
extends TranslationBaseComponent
@@ -2,8 +2,9 @@ import { Component } from '@angular/core';
import { InvitationTypeEnum } from '@gauzy/contracts';
@Component({
selector: 'ga-manage-candidate-invite',
templateUrl: './manage-candidate-invite.component.html'
selector: 'ga-manage-candidate-invite',
templateUrl: './manage-candidate-invite.component.html',
standalone: false
})
export class ManageCandidateInviteComponent {
@@ -1,13 +1,14 @@
import { Component, Input } from '@angular/core';
@Component({
template: `
template: `
<div class="text-center">
<strong class="d-block">
{{ rowData.source?.name }}
</strong>
</div>
`
`,
standalone: false
})
export class CandidateSourceComponent {
@Input() rowData: any;
@@ -1,8 +1,9 @@
import { Component, Input } from '@angular/core';
@Component({
templateUrl: './candidate-status.component.html',
styleUrls: ['./candidate-status.component.scss']
templateUrl: './candidate-status.component.html',
styleUrls: ['./candidate-status.component.scss'],
standalone: false
})
export class CandidateStatusComponent {
@Input() rowData: any;
@@ -1,4 +1,4 @@
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-dialogs' as *;
.contact-container {
transition: transform 150ms ease-in-out;
@@ -23,9 +23,10 @@ import { ErrorHandlingService, OrganizationProjectsService, Store, ToastrService
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-contact-mutation',
templateUrl: './contact-mutation.component.html',
styleUrls: ['./contact-mutation.component.scss']
selector: 'ga-contact-mutation',
templateUrl: './contact-mutation.component.html',
styleUrls: ['./contact-mutation.component.scss'],
standalone: false
})
export class ContactMutationComponent extends TranslationBaseComponent implements OnInit {
FormHelpers: typeof FormHelpers = FormHelpers;
@@ -12,9 +12,10 @@ import { EmployeesService, OrganizationContactService } from '@gauzy/ui-core/cor
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ngx-contact-view',
templateUrl: './contact-view.component.html',
styleUrls: ['./contact-view.component.scss']
selector: 'ngx-contact-view',
templateUrl: './contact-view.component.html',
styleUrls: ['./contact-view.component.scss'],
standalone: false
})
export class ContactViewComponent extends TranslationBaseComponent implements OnInit {
tabs: any[];
@@ -1,4 +1,4 @@
@import '@shared/_pg-card';
@use '@shared/_pg-card' as *;
.contact-list {
display: flex;
@@ -41,9 +41,10 @@ import {
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ngx-contacts-list',
templateUrl: './contacts.component.html',
styleUrls: ['./contacts.component.scss']
selector: 'ngx-contacts-list',
templateUrl: './contacts.component.html',
styleUrls: ['./contacts.component.scss'],
standalone: false
})
export class ContactsComponent extends PaginationFilterBaseComponent implements OnInit, OnDestroy {
showAddCard: boolean;
@@ -1,4 +1,5 @@
@import 'gauzy/_gauzy-dialogs';
@use 'gauzy/_gauzy-dialogs' as *;
nb-card {
width: 645px;
background-color: nb-theme(gauzy-card-1);
@@ -7,9 +7,10 @@ import { TranslationBaseComponent } from '@gauzy/ui-core/i18n';
import { InviteService, OrganizationContactService, ToastrService, UsersService } from '@gauzy/ui-core/core';
@Component({
selector: 'ga-invite-contact',
templateUrl: './invite-contact.component.html',
styleUrls: ['./invite-contact.component.scss']
selector: 'ga-invite-contact',
templateUrl: './invite-contact.component.html',
styleUrls: ['./invite-contact.component.scss'],
standalone: false
})
export class InviteContactComponent extends TranslationBaseComponent implements OnInit {
constructor(
@@ -2,9 +2,10 @@ import { Component, Input, Output, EventEmitter } from '@angular/core';
import { ComponentLayoutStyleEnum } from '@gauzy/contracts';
@Component({
selector: 'ngx-contact-action',
templateUrl: './contact-action.component.html',
styleUrls: ['../../contacts.component.scss']
selector: 'ngx-contact-action',
templateUrl: './contact-action.component.html',
styleUrls: ['../../contacts.component.scss'],
standalone: false
})
export class ContactActionComponent {
@Input()
@@ -1,4 +1,4 @@
@import 'gauzy/_gauzy-cards';
@use 'gauzy/_gauzy-cards' as *;
.organization-employee-header {
display: grid;
@@ -119,4 +119,4 @@
flex-direction: column;
justify-content: flex-start;
align-items: flex-start;
}
}
@@ -21,13 +21,14 @@ import { ALL_EMPLOYEES_SELECTED, ChartUtil, IChartData } from '@gauzy/ui-core/sh
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-dashboard-accounting',
templateUrl: './accounting.component.html',
styleUrls: [
'../../organizations/edit-organization/edit-organization.component.scss',
'./accounting.component.scss'
],
providers: [CurrencyPipe]
selector: 'ga-dashboard-accounting',
templateUrl: './accounting.component.html',
styleUrls: [
'../../organizations/edit-organization/edit-organization.component.scss',
'./accounting.component.scss'
],
providers: [CurrencyPipe],
standalone: false
})
export class AccountingComponent extends TranslationBaseComponent implements AfterViewInit, OnInit, OnDestroy {
public aggregatedEmployeeStatistics: IAggregatedEmployeeStatistic;
@@ -1,4 +1,5 @@
@import 'var';
@use 'var' as *;
.header {
padding: 30px;
@@ -10,9 +10,10 @@ import { DynamicTabsComponent } from '@gauzy/ui-core/shared';
@UntilDestroy()
@Component({
selector: 'ga-dashboard-layout',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
selector: 'ga-dashboard-layout',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss'],
standalone: false
})
export class DashboardComponent extends TranslationBaseComponent implements OnInit, OnDestroy {
public tabsetId: PageTabsetRegistryId = this._route.snapshot.data.tabsetId; // The identifier for the tabset
@@ -6,9 +6,10 @@ import { PermissionsEnum } from '@gauzy/contracts';
@UntilDestroy()
@Component({
selector: 'ga-data-entry-shortcuts',
templateUrl: './data-entry-shortcuts.component.html',
styleUrls: ['./data-entry-shortcuts.component.scss']
selector: 'ga-data-entry-shortcuts',
templateUrl: './data-entry-shortcuts.component.html',
styleUrls: ['./data-entry-shortcuts.component.scss'],
standalone: false
})
export class DataEntryShortcutsComponent implements OnInit, OnDestroy {
constructor(readonly router: Router, readonly store: Store) {}
@@ -8,9 +8,10 @@ export enum EmployeeChartEnum {
}
@Component({
selector: 'ga-employee-charts',
templateUrl: './employee-charts.component.html',
styleUrls: ['./employee-charts.component.scss']
selector: 'ga-employee-charts',
templateUrl: './employee-charts.component.html',
styleUrls: ['./employee-charts.component.scss'],
standalone: false
})
export class EmployeeChartsComponent implements OnInit {
selectedChart = EmployeeChartEnum.BAR;
@@ -15,8 +15,8 @@ import { Store } from '@gauzy/ui-core/core';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-employee-doughnut-chart',
template: `
selector: 'ga-employee-doughnut-chart',
template: `
<ng-template [ngIf]="employeeStatistics.length" [ngIfElse]="chartNotFoundTemplate">
<!-- <span>{{ displayDate }}</span> -->
<canvas
@@ -36,8 +36,8 @@ import { Store } from '@gauzy/ui-core/core';
</div>
</ng-template>
`,
styles: [
`
styles: [
`
:host {
.title {
display: flex;
@@ -46,8 +46,9 @@ import { Store } from '@gauzy/ui-core/core';
}
}
`
],
providers: [CurrencyPipe, CurrencyPositionPipe]
],
providers: [CurrencyPipe, CurrencyPositionPipe],
standalone: false
})
export class EmployeeDoughnutChartComponent extends TranslationBaseComponent implements OnInit, OnDestroy, OnChanges {
public chartType: ChartType = 'doughnut';
@@ -15,8 +15,8 @@ import { CurrencyPositionPipe } from '@gauzy/ui-core/shared';
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-employee-horizontal-bar-chart',
template: `
selector: 'ga-employee-horizontal-bar-chart',
template: `
<ng-template [ngIf]="employeeStatistics.length" [ngIfElse]="chartNotFoundTemplate">
<div class="chart">
<canvas baseChart [data]="data" [options]="chartOptions" [type]="chartType"></canvas>
@@ -31,8 +31,8 @@ import { CurrencyPositionPipe } from '@gauzy/ui-core/shared';
</div>
</ng-template>
`,
styles: [
`
styles: [
`
:host {
.chart {
width: 500px;
@@ -46,8 +46,9 @@ import { CurrencyPositionPipe } from '@gauzy/ui-core/shared';
}
}
`
],
providers: [CurrencyPipe, CurrencyPositionPipe]
],
providers: [CurrencyPipe, CurrencyPositionPipe],
standalone: false
})
export class EmployeeHorizontalBarChartComponent
extends TranslationBaseComponent
@@ -8,8 +8,8 @@ import { TranslationBaseComponent } from '@gauzy/ui-core/i18n';
@UntilDestroy()
@Component({
selector: 'ga-employee-stacked-bar-chart',
template: `
selector: 'ga-employee-stacked-bar-chart',
template: `
<div *ngIf="noData" style="display: flex; flex-direction: column; align-items: center;">
<nb-icon icon="info-outline"></nb-icon>
<div>
@@ -24,7 +24,8 @@ import { TranslationBaseComponent } from '@gauzy/ui-core/i18n';
[data]="data"
[options]="options"
></canvas>
`
`,
standalone: false
})
export class EmployeeStackedBarChartComponent extends TranslationBaseComponent implements OnInit, OnDestroy, OnChanges {
data: any;
@@ -1,4 +1,5 @@
@import 'gauzy/_gauzy-cards';
@use 'gauzy/_gauzy-cards' as *;
.header {
background-color: unset;
.header-container {
@@ -19,9 +19,10 @@ import { ProfitHistoryComponent, RecordsHistoryComponent } from '@gauzy/ui-core/
@UntilDestroy({ checkProperties: true })
@Component({
selector: 'ga-human-resources',
templateUrl: './human-resources.component.html',
styleUrls: ['./human-resources.component.scss']
selector: 'ga-human-resources',
templateUrl: './human-resources.component.html',
styleUrls: ['./human-resources.component.scss'],
standalone: false
})
export class HumanResourcesComponent implements OnInit, OnDestroy {
loading: boolean;

Some files were not shown because too many files have changed in this diff Show More