Move components, containers and views to core lib

- Move files to core lib
- Fix imports
- Fix unit tests configuration
- Fix configuration
- Use ng-dynamic-component no barrels version
-- enables using ng-dynamic-component in angular lib
This commit is contained in:
Clemente Raposo 2021-02-25 17:42:44 +00:00 committed by Dillon-Brown
parent 72f065bbda
commit 3eb305ba4f
547 changed files with 2558 additions and 2452 deletions

View file

@ -78,14 +78,14 @@
"serve": {
"builder": "ngx-build-plus:dev-server",
"options": {
"browserTarget": "SuiteCRM:build:serve",
"browserTarget": "shell:build:serve",
"proxyConfig": "./proxy.conf.local.json",
"extraWebpackConfig": "core/app/shell/webpack.config.js",
"port": 5000
},
"configurations": {
"production": {
"browserTarget": "SuiteCRM:build:production",
"browserTarget": "shell:build:production",
"extraWebpackConfig": "core/app/shell/webpack.prod.config.js"
}
}
@ -202,11 +202,18 @@
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"builder": "ngx-build-plus:karma",
"options": {
"main": "core/app/core/src/test.ts",
"tsConfig": "core/app/core/tsconfig.spec.json",
"karmaConfig": "core/app/core/karma.conf.js"
"karmaConfig": "core/app/core/karma.conf.js",
"styles": [
"node_modules/bootstrap-css-only/css/bootstrap.min.css"
],
"scripts": [],
"assets": [
],
"extraWebpackConfig": "core/app/core/webpack.config.spec.js"
}
},
"lint": {

View file

@ -8,27 +8,25 @@ module.exports = function (config) {
plugins: [
require('karma-jasmine'),
require('karma-chrome-launcher'),
require('karma-firefox-launcher'),
require('karma-jasmine-html-reporter'),
require('karma-coverage'),
require('karma-coverage-istanbul-reporter'),
require('@angular-devkit/build-angular/plugins/karma')
],
client: {
clearContext: false // leave Jasmine Spec Runner output visible in browser
},
coverageReporter: {
dir: require('path').join(__dirname, '../../../coverage/core'),
subdir: '.',
reporters: [
{ type: 'html' },
{ type: 'text-summary' }
],
coverageIstanbulReporter: {
dir: require('path').join(__dirname, '../../coverage/core'),
reports: ['html', 'lcovonly', 'text-summary'],
fixWebpackSourcePaths: true
},
reporters: ['progress', 'kjhtml'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
browsers: ['Chromium'],
singleRun: false,
restartOnFileChange: true
});

View file

@ -6,12 +6,14 @@
"@angular/core": "^11.0.0",
"rxjs": "^6.6.3",
"apollo-angular": "^2.2.0",
"graphql": "^14.7.0",
"graphql-tag": "^2.11.0",
"@apollo/client": "^3.3.7",
"luxon": "^1.25.0",
"bn-ng-idle": "^1.0.1",
"@angular-architects/module-federation": "^1.1.0",
"lodash-es": "^4.17.20"
"lodash-es": "^4.17.20",
"ng-dynamic-component": "^8.0.1"
},
"dependencies": {
"tslib": "^2.0.0"

View file

@ -24,20 +24,20 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {CUSTOM_ELEMENTS_SCHEMA} from '@angular/core';
import {RouterTestingModule} from '@angular/router/testing';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {ActionBarUiComponent} from './action-bar.component';
import {ThemeImagesStore} from 'core';
import {of} from 'rxjs';
import {take} from 'rxjs/operators';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {GlobalSearch} from 'core';
import {By} from '@angular/platform-browser';
import {FormsModule} from '@angular/forms';
import {themeImagesMockData} from 'core';
import {GlobalSearch} from '../../services/navigation/global-search/global-search.service';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {themeImagesMockData} from '../../store/theme-images/theme-images.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
import {ThemeImagesStore} from '../../store/theme-images/theme-images.store';
describe('ActionBarUiComponent', () => {

View file

@ -27,9 +27,9 @@
import {Component} from '@angular/core';
import {combineLatest, Observable} from 'rxjs';
import {map} from 'rxjs/operators';
import {LanguageStore, LanguageStrings} from 'core';
import {ActionBarModel} from './action-bar-model';
import {GlobalSearch} from 'core';
import {LanguageStore, LanguageStrings} from '../../store/language/language.store';
import {GlobalSearch} from '../../services/navigation/global-search/global-search.service';
@Component({
selector: 'scrm-action-bar-ui',

View file

@ -27,10 +27,10 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {ActionBarUiComponent} from './action-bar.component';
import {ImageModule} from '@components/image/image.module';
import {RouterModule} from '@angular/router';
import {FormsModule} from '@angular/forms';
import {ButtonLoadingUiModule} from 'core';
import {ButtonLoadingUiModule} from '../../directives/button-loading/button-loading.module';
import {ImageModule} from '../image/image.module';
@NgModule({
declarations: [ActionBarUiComponent],

View file

@ -28,15 +28,14 @@ import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {Component} from '@angular/core';
import {BehaviorSubject, Observable, of} from 'rxjs';
import {BulkActionDataSource, BulkActionMenuComponent} from './bulk-action-menu.component';
import {SelectionDataSource} from 'common';
import {BulkActionsMap, SelectionDataSource, SelectionStatus} from 'common';
import {By} from '@angular/platform-browser';
import {LanguageStore} from 'core';
import {languageMockData} from 'core';
import {shareReplay, take} from 'rxjs/operators';
import {ButtonModule} from '@components/button/button.module';
import {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {BulkActionsMap, SelectionStatus} from 'common';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
import {ButtonModule} from '../button/button.module';
import {LanguageStore} from '../../store/language/language.store';
import {languageMockData} from '../../store/language/language.store.spec.mock';
const selectionSubject = new BehaviorSubject<SelectionStatus>(SelectionStatus.NONE);

View file

@ -26,9 +26,9 @@
import {Component, Input, OnInit} from '@angular/core';
import {combineLatest, Observable} from 'rxjs';
import {LanguageStore, LanguageStringMap} from 'core';
import {map} from 'rxjs/operators';
import {BulkActionsMap, DropdownButtonInterface, SelectionStatus, SelectionDataSource} from 'common';
import {BulkActionsMap, DropdownButtonInterface, SelectionDataSource, SelectionStatus} from 'common';
import {LanguageStore, LanguageStringMap} from '../../store/language/language.store';
export interface BulkActionDataSource {
getBulkActions(): Observable<BulkActionsMap>;

View file

@ -29,7 +29,7 @@ import {CommonModule} from '@angular/common';
import {BulkActionMenuComponent} from './bulk-action-menu.component';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
@NgModule({
declarations: [BulkActionMenuComponent],

View file

@ -24,18 +24,18 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {ButtonGroupComponent} from './button-group.component';
import {Component} from '@angular/core';
import {ButtonModule} from '@components/button/button.module';
import {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';
import {ButtonGroupInterface} from 'common';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {shareReplay} from 'rxjs/operators';
import {Observable, of} from 'rxjs';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
import {ButtonModule} from '../button/button.module';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
@Component({
selector: 'dropdown-group-test-host-component',

View file

@ -26,9 +26,9 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {ButtonGroupComponent} from '@components/button-group/button-group.component';
import {ButtonModule} from '@components/button/button.module';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
import {ButtonModule} from '../button/button.module';
import {ButtonGroupComponent} from './button-group.component';
@NgModule({

View file

@ -24,14 +24,14 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {ButtonComponent} from './button.component';
import {Component} from '@angular/core';
import {ButtonInterface} from 'common';
import {ImageModule} from '@components/image/image.module';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
import {ImageModule} from '../image/image.module';
@Component({

View file

@ -26,7 +26,7 @@
import {Component, Input} from '@angular/core';
import {ButtonInterface} from 'common';
import {LanguageStore} from 'core';
import {LanguageStore} from '../../store/language/language.store';
@Component({
selector: 'scrm-button',

View file

@ -28,8 +28,8 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {ButtonComponent} from './button.component';
import {ImageModule} from '@components/image/image.module';
import {LabelModule} from '@components/label/label.module';
import {LabelModule} from '../label/label.module';
import {ImageModule} from '../image/image.module';
@NgModule({
declarations: [ButtonComponent],

View file

@ -24,11 +24,11 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {Component} from '@angular/core';
import {ChartMessageAreaModule} from '@components/chart/components/chart-message-area/chart-message-area.module';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {ChartMessageAreaModule} from './chart-message-area.module';
import {languageStoreMock} from '../../../../store/language/language.store.spec.mock';
import {LanguageStore} from '../../../../store/language/language.store';
@Component({

View file

@ -25,7 +25,7 @@
*/
import {Component, Input} from '@angular/core';
import {LanguageStore} from 'core';
import {LanguageStore} from '../../../../store/language/language.store';
@Component({
selector: 'scrm-chart-message-area',

View file

@ -26,8 +26,8 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {ChartMessageAreaComponent} from '@components/chart/components/chart-message-area/chart-message-area.component';
import {LabelModule} from '@components/label/label.module';
import {LabelModule} from '../../../label/label.module';
import {ChartMessageAreaComponent} from './chart-message-area.component';
@NgModule({
declarations: [ChartMessageAreaComponent],

View file

@ -26,7 +26,7 @@
import {Component, Input, OnInit} from '@angular/core';
import {ChartDataSource} from 'common';
import {chartTypeMap} from '@components/chart/components/chart/chart.manifest';
import {chartTypeMap} from './chart.manifest';
@Component({
selector: 'scrm-chart',

View file

@ -0,0 +1,18 @@
import {PieGridChartComponent} from '../pie-grid-chart/pie-grid-chart.component';
import {VerticalBarChartModule} from '../vertical-bar-chart/vertical-bar-chart.module';
import {VerticalBarChartComponent} from '../vertical-bar-chart/vertical-bar-chart.component';
import {PieGridChartModule} from '../pie-grid-chart/pie-grid-chart.module';
import {LineChartModule} from '../line-chart/line-chart.module';
import {LineChartComponent} from '../line-chart/line-chart.component';
export const chartModules = [
LineChartModule,
PieGridChartModule,
VerticalBarChartModule
];
export const chartTypeMap = {
'line-chart': LineChartComponent,
'pie-grid': PieGridChartComponent,
'vertical-bar': VerticalBarChartComponent
};

View file

@ -28,8 +28,8 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {ChartComponent} from './chart.component';
import {DynamicModule} from 'ng-dynamic-component';
import {chartModules} from '@components/chart/components/chart/chart.manifest';
import {ChartMessageAreaModule} from '@components/chart/components/chart-message-area/chart-message-area.module';
import {ChartMessageAreaModule} from '../chart-message-area/chart-message-area.module';
import {chartModules} from './chart.manifest';
@NgModule({
declarations: [ChartComponent],
@ -38,7 +38,7 @@ import {ChartMessageAreaModule} from '@components/chart/components/chart-message
CommonModule,
...chartModules,
DynamicModule,
ChartMessageAreaModule
ChartMessageAreaModule,
]
})
export class ChartModule {

View file

@ -25,10 +25,9 @@
*/
import {Component, OnDestroy, OnInit} from '@angular/core';
import {BaseChartComponent} from '@components/chart/components/base-chart/base-chart.component';
import {MultiSeries} from 'common';
import {isFalse} from 'common';
import {isFalse, MultiSeries} from 'common';
import {Subscription} from 'rxjs';
import {BaseChartComponent} from '../base-chart/base-chart.component';
@Component({
selector: 'scrm-line-chart',

View file

@ -26,9 +26,9 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {LineChartComponent} from '@components/chart/components/line-chart/line-chart.component';
import {NgxChartsModule} from '@swimlane/ngx-charts';
import {ChartMessageAreaModule} from '@components/chart/components/chart-message-area/chart-message-area.module';
import {ChartMessageAreaModule} from '../chart-message-area/chart-message-area.module';
import {LineChartComponent} from './line-chart.component';
@NgModule({

View file

@ -25,10 +25,10 @@
*/
import {Component, OnDestroy, OnInit} from '@angular/core';
import {BaseChartComponent} from '@components/chart/components/base-chart/base-chart.component';
import {SeriesResult, SingleSeries} from 'common';
import {Subscription} from 'rxjs';
import {LanguageStore} from 'core';
import {LanguageStore} from '../../../../store/language/language.store';
import {BaseChartComponent} from '../base-chart/base-chart.component';
@Component({
selector: 'scrm-pie-grid-chart',

View file

@ -28,7 +28,7 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {PieGridChartComponent} from './pie-grid-chart.component';
import {NgxChartsModule} from '@swimlane/ngx-charts';
import {ChartMessageAreaModule} from '@components/chart/components/chart-message-area/chart-message-area.module';
import {ChartMessageAreaModule} from '../chart-message-area/chart-message-area.module';
@NgModule({
declarations: [PieGridChartComponent],

View file

@ -25,10 +25,9 @@
*/
import {Component, OnDestroy, OnInit} from '@angular/core';
import {BaseChartComponent} from '@components/chart/components/base-chart/base-chart.component';
import {SingleSeries} from 'common';
import {isFalse} from 'common';
import {isFalse, SingleSeries} from 'common';
import {Subscription} from 'rxjs';
import {BaseChartComponent} from '../base-chart/base-chart.component';
@Component({
selector: 'scrm-vertical-bar-chart',

View file

@ -28,7 +28,7 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {VerticalBarChartComponent} from './vertical-bar-chart.component';
import {NgxChartsModule} from '@swimlane/ngx-charts';
import {ChartMessageAreaModule} from '@components/chart/components/chart-message-area/chart-message-area.module';
import {ChartMessageAreaModule} from '../chart-message-area/chart-message-area.module';
@NgModule({
declarations: [VerticalBarChartComponent],

View file

@ -24,13 +24,13 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {Component} from '@angular/core';
import {CloseButtonComponent} from './close-button.component';
import {ButtonInterface} from 'common';
import {ButtonModule} from '@components/button/button.module';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {ButtonModule} from '../button/button.module';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
@Component({
selector: 'close-button-test-host-component',

View file

@ -27,7 +27,7 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {CloseButtonComponent} from './close-button.component';
import {ButtonModule} from '@components/button/button.module';
import {ButtonModule} from '../button/button.module';
@NgModule({
declarations: [CloseButtonComponent],

View file

@ -27,8 +27,7 @@
import {Component, OnInit} from '@angular/core';
import {CdkDragDrop, moveItemInArray, transferArrayItem} from '@angular/cdk/drag-drop';
import {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';
import { ButtonInterface } from '@base/app-common/components/button/button.model';
import { ModalCloseFeedBack } from '@base/app-common/components/modal/modal.model';
import {ButtonInterface, ModalCloseFeedBack} from 'common';
@Component({
selector: 'scrm-columnchooser',
@ -37,7 +36,7 @@ import { ModalCloseFeedBack } from '@base/app-common/components/modal/modal.mode
export class ColumnChooserComponent implements OnInit {
close: ButtonInterface;
modalTitle = 'Choose Columns';
displayed = [

View file

@ -29,9 +29,9 @@ import {CommonModule} from '@angular/common';
import {ColumnChooserComponent} from './columnchooser.component';
import {DragDropModule} from '@angular/cdk/drag-drop';
import {ImageModule} from '@components/image/image.module';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import { CloseButtonModule } from '../close-button/close-button.module';
import {ImageModule} from '../image/image.module';
@NgModule({
declarations: [ColumnChooserComponent],

View file

@ -24,15 +24,15 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {DropdownButtonComponent} from './dropdown-button.component';
import {Component} from '@angular/core';
import {ButtonModule} from '@components/button/button.module';
import {DropdownButtonInterface} from 'common';
import {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {ButtonModule} from '../button/button.module';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
@Component({
selector: 'dropdown-button-test-host-component',

View file

@ -28,8 +28,8 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {DropdownButtonComponent} from './dropdown-button.component';
import {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';
import {ImageModule} from '@components/image/image.module';
import {DropdownSubmenuModule} from '@components/dropdown-submenu/dropdown-submenu.module';
import {DropdownSubmenuModule} from '../dropdown-submenu/dropdown-submenu.module';
import {ImageModule} from '../image/image.module';
@NgModule({
declarations: [DropdownButtonComponent],

View file

@ -24,14 +24,14 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {DropdownSubmenuComponent} from './dropdown-submenu.component';
import {Component} from '@angular/core';
import {ButtonModule} from '@components/button/button.module';
import {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {DropdownButtonInterface} from 'common';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
import {ButtonModule} from '../button/button.module';
@Component({

View file

@ -26,9 +26,9 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {DropdownSubmenuComponent} from '@components/dropdown-submenu/dropdown-submenu.component';
import {ImageModule} from '@components/image/image.module';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
import {DropdownSubmenuComponent} from './dropdown-submenu.component';
import {ImageModule} from '../image/image.module';
@NgModule({

View file

@ -27,19 +27,19 @@
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {Component} from '@angular/core';
import {Field} from 'common';
import {DynamicLabelModule} from '@components/dynamic-label/dynamic-label.module';
import {UserPreferenceStore} from 'core';
import {userPreferenceStoreMock} from 'core';
import {NumberFormatter} from 'core';
import {numberFormatterMock} from 'core';
import {DatetimeFormatter} from 'core';
import {datetimeFormatterMock} from 'core';
import {DateFormatter} from 'core';
import {dateFormatterMock} from 'core';
import {CurrencyFormatter} from 'core';
import {currencyFormatterMock} from 'core';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {UserPreferenceStore} from '../../store/user-preference/user-preference.store';
import {datetimeFormatterMock} from '../../services/formatters/datetime/datetime-formatter.service.spec.mock';
import {CurrencyFormatter} from '../../services/formatters/currency/currency-formatter.service';
import {userPreferenceStoreMock} from '../../store/user-preference/user-preference.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
import {DynamicLabelModule} from './dynamic-label.module';
import {numberFormatterMock} from '../../services/formatters/number/number-formatter.spec.mock';
import {dateFormatterMock} from '../../services/formatters/datetime/date-formatter.service.spec.mock';
import {DateFormatter} from '../../services/formatters/datetime/date-formatter.service';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {currencyFormatterMock} from '../../services/formatters/currency/currency-formatter.service.spec.mock';
import {DatetimeFormatter} from '../../services/formatters/datetime/datetime-formatter.service';
import {NumberFormatter} from '../../services/formatters/number/number-formatter.service';
@Component({
selector: 'dynamic-label-test-host-component',

View file

@ -25,12 +25,11 @@
*/
import {Component, Input, OnChanges, OnInit, SimpleChanges} from '@angular/core';
import {DynamicLabelService} from 'core';
import {StringMap} from 'common';
import {FieldMap} from 'common';
import {LanguageStore, LanguageStrings} from 'core';
import {FieldMap, StringMap} from 'common';
import {Observable} from 'rxjs';
import {tap} from 'rxjs/operators';
import {LanguageStore, LanguageStrings} from '../../store/language/language.store';
import {DynamicLabelService} from '../../services/language/dynamic-label.service';
@Component({
selector: 'scrm-dynamic-label',

View file

@ -24,10 +24,10 @@
* the words "Supercharged by SuiteCRM".
*/
import { Input, OnDestroy, OnInit, Directive } from '@angular/core';
import {FieldGridRow} from '@components/field-grid/field-grid.model';
import {Directive, Input, OnDestroy, OnInit} from '@angular/core';
import {Subscription} from 'rxjs';
import {BreakpointObserver, Breakpoints, BreakpointState} from '@angular/cdk/layout';
import {FieldGridRow} from './field-grid.model';
@Directive()

View file

@ -24,19 +24,19 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {FieldGridComponent} from './field-grid.component';
import {Component} from '@angular/core';
import {ButtonModule} from '@components/button/button.module';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {BrowserDynamicTestingModule} from '@angular/platform-browser-dynamic/testing';
import {LayoutModule} from '@angular/cdk/layout';
import {FieldModule} from '@fields/field.module';
import {By} from '@angular/platform-browser';
import {CommonModule} from '@angular/common';
import {RouterTestingModule} from '@angular/router/testing';
import {Field} from 'common';
import {ApolloTestingModule} from 'apollo-angular/testing';
import {FieldModule} from '../../fields/field.module';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
import {ButtonModule} from '../button/button.module';
@Component({
selector: 'field-grid-host-component',

View file

@ -25,10 +25,10 @@
*/
import {Component, Input, OnChanges} from '@angular/core';
import {FieldGridColumn, FieldGridRow} from '@components/field-grid/field-grid.model';
import {BreakpointObserver} from '@angular/cdk/layout';
import {Field} from 'common';
import {BaseFieldGridComponent} from '@components/field-grid/base-field-grid.component';
import {FieldGridColumn, FieldGridRow} from './field-grid.model';
import {BaseFieldGridComponent} from './base-field-grid.component';
@Component({
selector: 'scrm-field-grid',

View file

@ -27,8 +27,8 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FieldGridComponent} from './field-grid.component';
import {ButtonModule} from '@components/button/button.module';
import {FieldModule} from '@fields/field.module';
import {FieldModule} from '../../fields/field.module';
import {ButtonModule} from '../button/button.module';
@NgModule({
declarations: [FieldGridComponent],

View file

@ -24,38 +24,35 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {FieldLayoutComponent} from './field-layout.component';
import {Component} from '@angular/core';
import {FieldMap} from 'common';
import {ButtonModule} from '@components/button/button.module';
import {DropdownButtonModule} from '@components/dropdown-button/dropdown-button.module';
import {deepClone, FieldMap, Panel, Record} from 'common';
import {BrowserDynamicTestingModule} from '@angular/platform-browser-dynamic/testing';
import {LayoutModule} from '@angular/cdk/layout';
import {FieldModule} from '@fields/field.module';
import {CommonModule} from '@angular/common';
import {RouterTestingModule} from '@angular/router/testing';
import {By} from '@angular/platform-browser';
import {BehaviorSubject, Observable} from 'rxjs';
import {Panel} from 'common';
import {FieldLayoutConfig, FieldLayoutDataSource} from '@components/field-layout/field-layout.model';
import {deepClone} from 'common';
import {Record} from 'common';
import {ModuleNameMapper} from 'core';
import {moduleNameMapperMock} from 'core';
import {UserPreferenceStore} from 'core';
import {userPreferenceStoreMock} from 'core';
import {NumberFormatter} from 'core';
import {numberFormatterMock} from 'core';
import {DatetimeFormatter} from 'core';
import {datetimeFormatterMock} from 'core';
import {DateFormatter} from 'core';
import {dateFormatterMock} from 'core';
import {CurrencyFormatter} from 'core';
import {currencyFormatterMock} from 'core';
import {LanguageStore} from 'core';
import {languageStoreMock} from 'core';
import {FieldModule} from '../../fields/field.module';
import {DropdownButtonModule} from '../dropdown-button/dropdown-button.module';
import {ButtonModule} from '../button/button.module';
import {moduleNameMapperMock} from '../../services/navigation/module-name-mapper/module-name-mapper.service.spec.mock';
import {UserPreferenceStore} from '../../store/user-preference/user-preference.store';
import {FieldLayoutConfig, FieldLayoutDataSource} from './field-layout.model';
import {datetimeFormatterMock} from '../../services/formatters/datetime/datetime-formatter.service.spec.mock';
import {CurrencyFormatter} from '../../services/formatters/currency/currency-formatter.service';
import {userPreferenceStoreMock} from '../../store/user-preference/user-preference.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
import {numberFormatterMock} from '../../services/formatters/number/number-formatter.spec.mock';
import {ModuleNameMapper} from '../../services/navigation/module-name-mapper/module-name-mapper.service';
import {dateFormatterMock} from '../../services/formatters/datetime/date-formatter.service.spec.mock';
import {DateFormatter} from '../../services/formatters/datetime/date-formatter.service';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {currencyFormatterMock} from '../../services/formatters/currency/currency-formatter.service.spec.mock';
import {DatetimeFormatter} from '../../services/formatters/datetime/datetime-formatter.service';
import {NumberFormatter} from '../../services/formatters/number/number-formatter.service';
/* eslint-disable camelcase, @typescript-eslint/camelcase */
const mockConfigData: FieldLayoutConfig = {

View file

@ -25,13 +25,11 @@
*/
import {Component, Input} from '@angular/core';
import {FieldMap} from 'common';
import {FieldGridColumn, FieldGridRow} from '@components/field-grid/field-grid.model';
import {FieldMap, Panel, Record} from 'common';
import {BreakpointObserver} from '@angular/cdk/layout';
import {Panel} from 'common';
import {FieldLayoutConfig, FieldLayoutDataSource} from '@components/field-layout/field-layout.model';
import {BaseFieldGridComponent} from '@components/field-grid/base-field-grid.component';
import {Record} from 'common';
import {FieldGridColumn, FieldGridRow} from '../field-grid/field-grid.model';
import {BaseFieldGridComponent} from '../field-grid/base-field-grid.component';
import {FieldLayoutConfig, FieldLayoutDataSource} from './field-layout.model';
@Component({
selector: 'scrm-field-layout',

View file

@ -27,9 +27,9 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FieldLayoutComponent} from './field-layout.component';
import {FieldModule} from '@fields/field.module';
import {FieldGridModule} from '@components/field-grid/field-grid.module';
import {ImageModule} from '@components/image/image.module';
import {FieldModule} from '../../fields/field.module';
import {FieldGridModule} from '../field-grid/field-grid.module';
import {ImageModule} from '../image/image.module';
@NgModule({

View file

@ -24,13 +24,13 @@
* the words "Supercharged by SuiteCRM".
*/
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {FilterUiComponent} from './filter.component';
import {ThemeImagesStore} from 'core';
import {of} from 'rxjs';
import {themeImagesMockData} from 'core';
import {take} from 'rxjs/operators';
import {themeImagesMockData} from '../../store/theme-images/theme-images.store.spec.mock';
import {ThemeImagesStore} from '../../store/theme-images/theme-images.store';
describe('FilterUiComponent', () => {
let component: FilterUiComponent;

View file

@ -27,7 +27,7 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FilterUiComponent} from './filter.component';
import {ImageModule} from '@components/image/image.module';
import {ImageModule} from '../image/image.module';
@NgModule({
declarations: [FilterUiComponent],

View file

@ -27,8 +27,8 @@
import {Component, OnInit} from '@angular/core';
import {ModalDismissReasons, NgbModal} from '@ng-bootstrap/ng-bootstrap';
import {AuthService} from 'core';
import {Subscription} from 'rxjs';
import {AuthService} from '../../services/auth/auth.service';
@Component({
selector: 'scrm-footer-ui',

View file

@ -27,7 +27,7 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FooterUiComponent} from './footer.component';
import {ImageModule} from '@components/image/image.module';
import {ImageModule} from '../image/image.module';
@NgModule({

View file

@ -27,7 +27,7 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {AngularSvgIconModule} from 'angular-svg-icon';
import {FullPageSpinnerComponent} from '@components/full-page-spinner/full-page-spinner.component';
import {FullPageSpinnerComponent} from './full-page-spinner.component';
@NgModule({
declarations: [

View file

@ -24,12 +24,12 @@
* the words "Supercharged by SuiteCRM".
*/
import {SingleValueStatisticsStoreFactory} from '@store/single-value-statistics/single-value-statistics.store.factory';
import {StatisticsFetchGQL} from '@store/statistics/graphql/api.statistics.get';
import {StatisticsMap, StatisticsQueryMap} from '@app-common/statistics/statistics.model';
import {Observable, of} from 'rxjs';
import {shareReplay} from 'rxjs/operators';
import {fieldManagerMock} from '@services/record/field/field.manager.spec.mock';
import {SingleValueStatisticsStoreFactory} from '../../store/single-value-statistics/single-value-statistics.store.factory';
import {fieldManagerMock} from '../../services/record/field/field.manager.spec.mock';
import {StatisticsFetchGQL} from '../../store/statistics/graphql/api.statistics.get';
import {StatisticsMap, StatisticsQueryMap} from 'common';
class StatisticsFetchGQLSpy extends StatisticsFetchGQL {
constructor() {

View file

@ -26,19 +26,7 @@
import {ComponentFixture, TestBed, waitForAsync} from '@angular/core/testing';
import {
GridWidgetComponent,
GridWidgetConfig,
StatisticsQueryArgs
} from '@components/grid-widget/grid-widget.component';
import {Component} from '@angular/core';
import {ViewContext} from '@app-common/views/view.model';
import {WidgetMetadata} from '@app-common/metadata/widget.metadata';
import {LanguageStore} from '@store/language/language.store';
import {languageStoreMock} from '@store/language/language.store.spec.mock';
import {gridWidgetFactoryMock} from '@components/grid-widget/grid-widget.component.spec.mock';
import {SingleValueStatisticsStoreFactory} from '@store/single-value-statistics/single-value-statistics.store.factory';
import {FieldModule} from '@fields/field.module';
import {BrowserDynamicTestingModule} from '@angular/platform-browser-dynamic/testing';
import {CommonModule} from '@angular/common';
import {RouterTestingModule} from '@angular/router/testing';
@ -47,6 +35,13 @@ import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {interval} from 'rxjs';
import {take} from 'rxjs/operators';
import {GridWidgetModule} from './grid-widget.module';
import {FieldModule} from '../../fields/field.module';
import {GridWidgetComponent, GridWidgetConfig, StatisticsQueryArgs} from './grid-widget.component';
import {SingleValueStatisticsStoreFactory} from '../../store/single-value-statistics/single-value-statistics.store.factory';
import {languageStoreMock} from '../../store/language/language.store.spec.mock';
import {LanguageStore} from '../../store/language/language.store';
import {gridWidgetFactoryMock} from './grid-widget.component.spec.mock';
import {ViewContext, WidgetMetadata} from 'common';
@Component({
selector: 'scrm-grid-widget-test-host-component',

View file

@ -25,30 +25,29 @@
*/
import {Component, Input, OnDestroy, OnInit} from '@angular/core';
import {combineLatest, Observable, of, Subscription} from 'rxjs';
import {map, shareReplay, take} from 'rxjs/operators';
import {SingleValueStatisticsStoreFactory} from '../../store/single-value-statistics/single-value-statistics.store.factory';
import {LanguageStore} from '../../store/language/language.store';
import {
ContentAlign,
ContentJustify,
FieldMap,
isTrue,
SingleValueStatisticsState,
SingleValueStatisticsStoreInterface,
StatisticMetadata,
StatisticsQuery,
StatisticWidgetLayoutCol,
StatisticWidgetLayoutRow,
StatisticWidgetOptions,
StringMap,
TextColor,
TextSizes,
WidgetMetadata
} from '@app-common/metadata/widget.metadata';
import {isTrue} from '@app-common/utils/value-utils';
import {LanguageStore} from '@store/language/language.store';
import {combineLatest, Observable, of, Subscription} from 'rxjs';
import {map, shareReplay, take} from 'rxjs/operators';
import {SingleValueStatisticsStoreFactory} from '@store/single-value-statistics/single-value-statistics.store.factory';
import {StatisticMetadata, StatisticsQuery} from '@app-common/statistics/statistics.model';
import {ViewContext} from '@app-common/views/view.model';
import {StringMap} from '@app-common/types/StringMap';
import {FieldMap} from '@app-common/record/field.model';
import {
SingleValueStatisticsState,
SingleValueStatisticsStoreInterface
} from '@app-common/statistics/statistics-store.model';
ViewContext,
WidgetMetadata,
} from 'common';
interface StatisticsEntry {
labelKey?: string;

View file

@ -0,0 +1,27 @@
import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {FieldModule} from '../../fields/field.module';
import {InlineLoadingSpinnerModule} from '../inline-loading-spinner/inline-loading-spinner.module';
import {WidgetPanelModule} from '../widget-panel/widget-panel.module';
import {GridWidgetComponent} from './grid-widget.component';
import {LabelModule} from '../label/label.module';
import {DynamicLabelModule} from '../dynamic-label/dynamic-label.module';
import {ImageModule} from '../image/image.module';
@NgModule({
declarations: [GridWidgetComponent],
exports: [
GridWidgetComponent
],
imports: [
CommonModule,
FieldModule,
InlineLoadingSpinnerModule,
WidgetPanelModule,
LabelModule,
ImageModule,
DynamicLabelModule
]
})
export class GridWidgetModule {
}

View file

@ -27,13 +27,13 @@
import {ComponentFixture, TestBed} from '@angular/core/testing';
import {ImageComponent} from './image.component';
import {ThemeImagesStore} from 'core';
import {themeImagesMockData} from 'core';
import {HttpClientTestingModule} from '@angular/common/http/testing';
import {AngularSvgIconModule} from 'angular-svg-icon';
import {of} from 'rxjs';
import {take} from 'rxjs/operators';
import {Component} from '@angular/core';
import {themeImagesMockData} from '../../store/theme-images/theme-images.store.spec.mock';
import {ThemeImagesStore} from '../../store/theme-images/theme-images.store';
@Component({
selector: 'host-component',

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