mirror of
https://github.com/ever-co/ever-gauzy.git
synced 2026-10-02 01:54:50 +08:00
[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 commit4b34d72071. * chore(deps): switch @angular/* to ^19.2.7 * fix: revert nx migrations.json * Revert "chore(deps): switch @angular/* to ^19.2.7" This reverts commitedd9105c51. * 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:
+88
-3
@@ -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
@@ -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
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
@@ -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,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;
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'themes';
|
||||
@use 'themes' as *;
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
|
||||
+4
-3
@@ -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
-2
@@ -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()
|
||||
|
||||
+4
-3
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'themes';
|
||||
@use 'themes' as *;
|
||||
|
||||
.title {
|
||||
margin-top: 2rem;
|
||||
|
||||
+4
-3
@@ -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[] = [];
|
||||
|
||||
+4
-3
@@ -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[] = [];
|
||||
|
||||
+4
-3
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'themes';
|
||||
@use 'themes' as *;
|
||||
|
||||
:host {
|
||||
nb-accordion-item-header ::ng-deep nb-icon {
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+2
-2
@@ -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%;
|
||||
|
||||
+4
-3
@@ -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
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+2
-2
@@ -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%;
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+2
-1
@@ -1,4 +1,5 @@
|
||||
@import 'themes';
|
||||
@use 'themes' as *;
|
||||
|
||||
:host {
|
||||
border-radius: nb-theme(border-radius);
|
||||
nb-tab {
|
||||
|
||||
+4
-3
@@ -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 {}
|
||||
|
||||
+3
-3
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+2
-2
@@ -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);
|
||||
|
||||
+4
-3
@@ -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>();
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+6
-5
@@ -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()
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+3
-2
@@ -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 {}
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+4
-3
@@ -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[];
|
||||
|
||||
+6
-5
@@ -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 {}
|
||||
|
||||
+9
-8
@@ -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;
|
||||
|
||||
+3
-3
@@ -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%;
|
||||
|
||||
+5
-4
@@ -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;
|
||||
|
||||
+6
-5
@@ -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 {}
|
||||
|
||||
+3
-2
@@ -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>();
|
||||
|
||||
+11
-12
@@ -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;
|
||||
}
|
||||
|
||||
+4
-3
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'gauzy/_gauzy-dialogs';
|
||||
@use 'gauzy/_gauzy-dialogs' as *;
|
||||
|
||||
.add-criterion {
|
||||
display: flex;
|
||||
|
||||
+4
-3
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'gauzy/_gauzy-dialogs';
|
||||
@use 'gauzy/_gauzy-dialogs' as *;
|
||||
|
||||
.add-criterion {
|
||||
display: flex;
|
||||
|
||||
+4
-3
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'themes';
|
||||
@use 'themes' as *;
|
||||
|
||||
.add-criterion {
|
||||
display: flex;
|
||||
|
||||
+4
-3
@@ -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() {}
|
||||
|
||||
+6
-6
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -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[];
|
||||
|
||||
+6
-5
@@ -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;
|
||||
|
||||
+6
-5
@@ -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()
|
||||
|
||||
+6
-5
@@ -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;
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+4
-3
@@ -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
-1
@@ -1,4 +1,4 @@
|
||||
@import 'themes';
|
||||
@use 'themes' as *;
|
||||
|
||||
::ng-deep {
|
||||
.nb-theme-default .tab-link:focus {
|
||||
|
||||
+4
-3
@@ -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
|
||||
|
||||
+3
-2
@@ -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 {
|
||||
|
||||
|
||||
+3
-2
@@ -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;
|
||||
|
||||
+3
-2
@@ -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(
|
||||
|
||||
+4
-3
@@ -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
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+7
-6
@@ -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';
|
||||
|
||||
+7
-6
@@ -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
|
||||
|
||||
+4
-3
@@ -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
Reference in New Issue
Block a user