Compare commits

...

8 Commits

Author SHA1 Message Date
Lorenz Hilpert
cefdedee10 Updated Engine in package.json 2024-06-05 19:03:53 +02:00
Lorenz Hilpert
a3a2ea487d Adit Packages 2024-06-05 18:58:34 +02:00
Lorenz Hilpert
1913fb62cb Husky Pre Commit 2024-06-05 18:55:54 +02:00
Lorenz Hilpert
7ff7b05a42 Fix Build Errors 2024-06-05 18:50:31 +02:00
Lorenz Hilpert
7b08f66a75 > ng update @ngrx/store@17 @ngrx/component-store@17 @ngrx/effects@17 @ngrx/entity@17 @ngrx/store-devtools@17 2024-06-05 16:57:33 +02:00
Lorenz Hilpert
ec8ae8d19f update angular cdk 2024-06-05 16:55:33 +02:00
Lorenz Hilpert
175fd37b4e Remove "shell" section in angular.json 2024-06-05 16:52:42 +02:00
Lorenz Hilpert
80124ad130 > ng update @angular/core@17 @angular/cli@17 2024-06-05 16:49:01 +02:00
47 changed files with 6690 additions and 10087 deletions

1
.husky/pre-commit Normal file
View File

@@ -0,0 +1 @@
npm run pretty-quick

View File

@@ -1,4 +0,0 @@
- Neue Icon Module (z.B. mit SVG sprites)
- Breadcrumb Navigation (Neu)
- Remissions Produkt Liste (Refactoring / Neu)
- Angular Version (Upgrade)

View File

@@ -959,10 +959,10 @@
"builder": "@angular-devkit/build-angular:dev-server",
"configurations": {
"production": {
"browserTarget": "isa-app:build:production"
"buildTarget": "isa-app:build:production"
},
"development": {
"browserTarget": "isa-app:build:development"
"buildTarget": "isa-app:build:development"
}
},
"defaultConfiguration": "development"
@@ -970,7 +970,7 @@
"extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n",
"options": {
"browserTarget": "isa-app:build"
"buildTarget": "isa-app:build"
}
},
"test": {
@@ -1470,39 +1470,6 @@
}
}
}
},
"shell": {
"projectType": "library",
"root": "apps/shell",
"sourceRoot": "apps/shell/src",
"prefix": "shell",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:ng-packagr",
"options": {
"project": "apps/shell/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "apps/shell/tsconfig.lib.prod.json"
},
"development": {
"tsConfig": "apps/shell/tsconfig.lib.json"
}
},
"defaultConfiguration": "production"
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"tsConfig": "apps/shell/tsconfig.spec.json",
"polyfills": [
"zone.js",
"zone.js/testing"
]
}
}
}
}
},
"cli": {

View File

@@ -11,7 +11,7 @@ export class ThumbnailUrlPipe implements PipeTransform, OnDestroy {
private input$ = new BehaviorSubject<{ width?: number; height?: number; ean?: string }>(undefined);
private result: string;
private onDestroy$ = new Subject();
private onDestroy$ = new Subject<void>();
constructor(private domainCatalogThumbnailService: DomainCatalogThumbnailService, private cdr: ChangeDetectorRef) {}

View File

@@ -28,7 +28,7 @@ export const metaReducers: MetaReducer<RootState>[] = !environment.production ?
imports: [
StoreModule.forRoot(rootReducer, { metaReducers }),
EffectsModule.forRoot([]),
StoreDevtoolsModule.instrument({ name: 'ISA Ngrx Application Store' }),
StoreDevtoolsModule.instrument({ name: 'ISA Ngrx Application Store', connectInZone: true }),
],
})
export class AppStoreModule {}

View File

@@ -1,18 +1,17 @@
import { DOCUMENT } from '@angular/common';
import { Component, HostListener, Inject, OnInit, Renderer2 } from '@angular/core';
import { Title } from '@angular/platform-browser';
import { SwUpdate, UpdateAvailableEvent } from '@angular/service-worker';
import { SwUpdate } from '@angular/service-worker';
import { ApplicationService } from '@core/application';
import { Config } from '@core/config';
import { NotificationsHub } from '@hub/notifications';
import packageInfo from 'package';
import { asapScheduler, interval, Observable, Subscription } from 'rxjs';
import { asapScheduler, interval, Subscription } from 'rxjs';
import { UserStateService } from '@swagger/isa';
import { IsaLogProvider } from './providers';
import { EnvironmentService } from '@core/environment';
import { AuthService } from '@core/auth';
import { UiMessageModalComponent, UiModalService } from '@ui/modal';
import { tap } from 'rxjs/operators';
@Component({
selector: 'app-root',
@@ -21,7 +20,6 @@ import { tap } from 'rxjs/operators';
})
export class AppComponent implements OnInit {
private _checkForUpdates: number = this._config.get('checkForUpdates');
updateAvailableObs: Observable<UpdateAvailableEvent>;
get checkForUpdates(): number {
return this._checkForUpdates;

View File

@@ -23,7 +23,7 @@
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
import 'web-animations-js'; // Run `npm install --save web-animations-js`.
// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
/**
* By default, zone.js will patch all possible macroTask and DomEvents
@@ -57,4 +57,3 @@ import 'zone.js'; // Included with Angular CLI.
/***************************************************************************************************
* APPLICATION IMPORTS
*/
import 'hammerjs';

View File

@@ -47,7 +47,7 @@ export class MockRemissionService extends RemissionService {
>();
private remissionSubjectIdRef = new Map<number, number>();
private reloadProductsSubject = new Subject();
private reloadProductsSubject = new Subject<void>();
private productSubject = new BehaviorSubject<RemissionProduct[]>(
remissionProducts
);

View File

@@ -141,7 +141,7 @@ export class ArticleDetailsComponent implements OnInit, OnDestroy {
this.store.deliveryB2BAvailability$,
]).pipe(
map((availabilities) => {
return availabilities?.some((availability) => availability?.priceMaintained) ?? false;
return availabilities?.some((availability) => (availability as any)?.priceMaintained) ?? false;
})
);

View File

@@ -24,7 +24,7 @@ import { FilterAutocompleteProvider } from '@shared/components/filter';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ArticleSearchComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
private _processId$: Observable<number>;
constructor(

View File

@@ -58,7 +58,7 @@ export class ArticleSearchFilterComponent implements OnInit, OnDestroy {
}
}
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
constructor(
private articleSearch: ArticleSearchService,

View File

@@ -33,7 +33,7 @@ export class PageCatalogComponent implements OnInit, AfterViewInit, OnDestroy {
return `${this.breadcrumbRef?.nativeElement?.clientWidth}px`;
}
_onDestroy$ = new Subject<boolean>();
_onDestroy$ = new Subject<void>();
get isTablet$() {
return this._environmentService.matchTablet$;

View File

@@ -33,7 +33,7 @@ export class CheckoutSummaryComponent implements OnInit, OnDestroy {
private _toaster = inject(ToasterService);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
processId = Date.now();
selectedDate = this.dateAdapter.today();
minDateDatepicker = this.dateAdapter.addCalendarDays(this.dateAdapter.today(), -1);

View File

@@ -141,7 +141,7 @@ export class CustomerOrderDetailsItemComponent extends ComponentStore<CustomerOr
more$ = this.select((s) => s.more);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
get isNative() {
return this._environment.isNative();

View File

@@ -22,7 +22,7 @@ export class CustomerOrderSearchFilterComponent implements OnInit, OnDestroy {
processId = Number(this._activatedRoute?.parent?.snapshot?.data?.processId);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
@ViewChild(FilterComponent, { static: false })
uiFilter: FilterComponent;

View File

@@ -23,7 +23,7 @@ import { CustomerOrdersNavigationService } from '@shared/services';
],
})
export class CustomerOrderSearchComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
private _processId$: Observable<number>;
get isTablet() {

View File

@@ -201,8 +201,8 @@ export class CustomerOrderSearchStore extends ComponentStore<CustomerOrderSearch
search = this.effect((options$: Observable<{ clear?: boolean; siletReload?: boolean }>) =>
options$.pipe(
tap((_) => {
this.searchStarted.next();
tap((opt) => {
this.searchStarted.next(opt);
this.patchState({ message: undefined });
}),
withLatestFrom(this.results$, this.filter$, this.selectedBranch$),

View File

@@ -99,7 +99,7 @@ export class CustomerOrderSearchResultsComponent extends ComponentStore<Customer
processId$ = this._activatedRoute.parent.data.pipe(map((data) => +data.processId));
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
trackByFn: TrackByFunction<OrderItemListItemDTO> = (index, item) => `${item.orderId}${item.orderItemId}${item.orderItemSubsetId}`;

View File

@@ -30,7 +30,7 @@ export class CustomerOrderComponent implements OnInit {
return `${this.breadcrumbRef?.nativeElement?.clientWidth}px`;
}
_onDestroy$ = new Subject<boolean>();
_onDestroy$ = new Subject<void>();
get isTablet$() {
return this._environmentService.matchTablet$;

View File

@@ -197,7 +197,7 @@ export class CustomerTypeSelectorComponent extends ComponentStore<CustomerTypeSe
setValue(value: { p4mUser?: boolean; customerType?: string } | string) {
const initial = { p4mUser: this.p4mUser, customerType: this.customerType };
if (isString(value)) {
if (typeof value === 'string') {
this.value = value;
} else {
if (isBoolean(value.p4mUser)) {

View File

@@ -72,7 +72,7 @@ export class CreateP4MCustomerComponent extends AbstractCreateCustomer implement
birthDateValidatorFns = [];
existingCustomer$: Observable<CustomerInfoDTO | null>;
existingCustomer$: Observable<CustomerInfoDTO | CustomerDTO | null>;
ngOnInit(): void {
super.ngOnInit();

View File

@@ -29,7 +29,7 @@ export interface CustomerDetailsViewMainState {
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class CustomerDetailsViewMainComponent extends ComponentStore<CustomerDetailsViewMainState> implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
customerService = inject(CrmCustomerService);

View File

@@ -123,7 +123,7 @@ export class GoodsInListItemComponent extends ComponentStore<GoodsInListItemComp
shareReplay()
);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
constructor(
private _omsService: DomainOmsService,

View File

@@ -59,7 +59,7 @@ export class GoodsInListComponent implements OnInit, AfterViewInit, OnDestroy {
showSaveSscSpinner$ = new BehaviorSubject<boolean>(false);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
private readonly SCROLL_POSITION_TOKEN = 'GOODS_IN_LIST_SCROLL_POSITION';

View File

@@ -59,7 +59,7 @@ export class GoodsOutDetailsComponent extends ComponentStore<GoodsOutDetailsComp
processId$ = this._activatedRoute.parent.data.pipe(map((params) => +params.processId));
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
constructor(
private _activatedRoute: ActivatedRoute,

View File

@@ -37,7 +37,7 @@ export class GoodsOutSearchFilterComponent implements OnInit, OnDestroy {
@Input()
processId: number;
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
@ViewChild(UiFilterComponent, { static: false })
uiFilter: UiFilterComponent;

View File

@@ -30,7 +30,7 @@ import { GoodsOutSearchMainAutocompleteProvider } from './providers/goods-out-se
],
})
export class GoodsOutSearchComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
hasFilter$ = combineLatest([this._goodsOutSearchStore.filter$, this._goodsOutSearchStore.defaultSettings$]).pipe(
map(([filter, defaultFilter]) => !isEqual(filter?.getQueryParams(), UiFilter.create(defaultFilter).getQueryParams()))

View File

@@ -70,7 +70,7 @@ export class GoodsOutSearchResultsComponent extends ComponentStore<GoodsOutSearc
processId$ = this._activatedRoute.parent.data.pipe(map((data) => +data.processId));
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
trackByFn: TrackByFunction<OrderItemListItemDTO> = (index, item) => `${item.orderId}${item.orderItemId}${item.orderItemSubsetId}`;

View File

@@ -175,7 +175,7 @@ export class PickUpShelfDetailsItemComponent extends ComponentStore<PickUpShelfD
more$ = this.select((s) => s.more);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
expanded: boolean = false;

View File

@@ -16,7 +16,7 @@ import { AddProductModalData } from './add-product-modal.data';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class AddProductModalComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
get processId() {
return this._config.get('process.ids.remission');

View File

@@ -16,7 +16,7 @@ export class RemissionFilterComponent implements OnDestroy {
filter$ = this.store.filter$.pipe(map((filter) => UiFilter.create(filter)));
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
constructor(public store: RemissionListComponentStore) {}

View File

@@ -23,7 +23,7 @@ import { RemissionListComponent } from '../remission-list.component';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class RemissionListItemComponent implements OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
@Input()
item: RemissionListItem;

View File

@@ -37,7 +37,7 @@ export class RemissionListComponent implements OnInit, OnDestroy {
@ViewChild('scrollContainer', { static: true })
scrollContainer: CdkVirtualScrollViewport;
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
get processId() {
return this._config.get('process.ids.remission');

View File

@@ -16,7 +16,7 @@ import { ToasterService } from '@shared/shell';
providers: [RemissionListComponentStore],
})
export class RemissionComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
get processId() {
return this._config.get('process.ids.remission');

View File

@@ -111,7 +111,7 @@ export class TaskInfoComponent implements OnChanges {
indicatorColor$ = this.info$.pipe(map((info) => this.domainTaskCalendarService.getProcessingStatusColorCode(info)));
private noteAdded$ = new Subject();
private noteAdded$ = new Subject<void>();
notes$ = combineLatest([this.info$, this.noteAdded$.pipe(startWith([undefined]))]).pipe(
switchMap(([info]) => this.domainTaskCalendarService.getComments({ infoId: info.id })),

View File

@@ -17,7 +17,7 @@ import { TaskCalendarStore } from '../../task-calendar.store';
exportAs: 'taskSearchbar',
})
export class TaskSearchbarComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
control = new UntypedFormControl('', [Validators.minLength(3)]);

View File

@@ -15,7 +15,7 @@ import { TaskCalendarStore } from '../../task-calendar.store';
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class TaskCalendarFilterComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
@Output() exitFilter = new EventEmitter<void>();
filter$ = new BehaviorSubject<UiFilter>(undefined);

View File

@@ -16,7 +16,7 @@ import { ApplicationService } from '@core/application';
providers: [TaskCalendarStore],
})
export class PageTaskCalendarComponent implements OnInit, OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
@ViewChild('searchInput', { static: true })
searchInput: ElementRef;

View File

@@ -18,7 +18,7 @@ import { TaskCalendarStore } from '../../task-calendar.store';
providers: [DatePipe],
})
export class TaskSearchComponent implements OnInit, OnDestroy, AfterViewInit {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
private _taskCalendarKey = this._config.get('process.ids.taskCalendar');
today = this.dateAdapter.today();

View File

@@ -95,7 +95,7 @@ export class BranchSelectorComponent implements OnInit, OnDestroy, AfterViewInit
}
private _value: BranchDTO;
private _onDestroy$ = new Subject<boolean>();
private _onDestroy$ = new Subject<void>();
@Output() valueChange = new EventEmitter<BranchDTO>();

View File

@@ -144,7 +144,7 @@ export class SharedGoodsInOutOrderDetailsItemComponent extends ComponentStore<Sh
showMore$ = this.more$.pipe(map((more) => more || this._auth.hasRole('CallCenter')));
fetchHistory$ = new BehaviorSubject<boolean>(false);
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
constructor(
private _host: SharedGoodsInOutOrderDetailsStore,

View File

@@ -11,7 +11,7 @@ import { SEARCH_STATE_SEARCH_SERVICE, SEARCH_STATE_SETTINGS_LOADER } from './tok
@Injectable()
export class SearchComponentStoreService<T = any> extends ComponentStore<SearchState<T>> implements OnDestroy {
private _onDestroy$ = new Subject();
private _onDestroy$ = new Subject<void>();
get state() {
return this.get();

View File

@@ -1,23 +1,12 @@
/* tslint:disable */
/**
* Gr<47><72>e / Volumen
*/
export interface SizeOfString {
/**
* H<>he
*/
height: number;
/**
* L<>nge / Tiefe
*/
length: number;
/**
* Ma<4D>einheit
*/
unit?: string;
/**

View File

@@ -28,7 +28,7 @@ export class UiNotesComponent implements OnChanges, OnInit, OnDestroy {
control = new UntypedFormControl('', [Validators.required]);
private onDestroy$ = new Subject();
private onDestroy$ = new Subject<void>();
constructor(private cdr: ChangeDetectorRef) {}

16495
package-lock.json generated
View File

File diff suppressed because it is too large Load Diff

View File

@@ -53,94 +53,73 @@
"gen:swagger:eis": "ng-swagger-gen --config ng-swagger-gen/eis.json",
"gen:swagger:remi": "ng-swagger-gen --config ng-swagger-gen/remi.json",
"gen:swagger:wws": "ng-swagger-gen --config ng-swagger-gen/wws.json",
"prettier": "prettier --write ."
},
"husky": {
"hooks": {
"pre-commit": "pretty-quick --staged"
}
"prettier": "prettier --write .",
"pretty-quick": "pretty-quick --staged",
"prepare": "husky"
},
"private": true,
"dependencies": {
"@angular/animations": "^16.1.7",
"@angular/cdk": "^16.1.6",
"@angular/common": "^16.1.7",
"@angular/compiler": "^16.1.7",
"@angular/core": "^16.1.7",
"@angular/forms": "^16.1.7",
"@angular/localize": "^16.1.7",
"@angular/platform-browser": "^16.1.7",
"@angular/platform-browser-dynamic": "^16.1.7",
"@angular/router": "^16.1.7",
"@angular/service-worker": "^16.1.7",
"@angular/animations": "^17.3.10",
"@angular/cdk": "^17.3.10",
"@angular/common": "^17.3.10",
"@angular/compiler": "^17.3.10",
"@angular/core": "^17.3.10",
"@angular/forms": "^17.3.10",
"@angular/localize": "^17.3.10",
"@angular/platform-browser": "^17.3.10",
"@angular/platform-browser-dynamic": "^17.3.10",
"@angular/router": "^17.3.10",
"@angular/service-worker": "^17.3.10",
"@microsoft/signalr": "^7.0.0",
"@ngrx/component-store": "^16.1.0",
"@ngrx/effects": "^16.1.0",
"@ngrx/entity": "^16.1.0",
"@ngrx/store": "^16.1.0",
"@ngrx/store-devtools": "^16.1.0",
"angular-oauth2-oidc": "^15.0.1",
"angular-oauth2-oidc-jwks": "^15.0.1",
"core-js": "^2.6.5",
"hammerjs": "^2.0.8",
"@ngrx/component-store": "^17.2.0",
"@ngrx/effects": "^17.2.0",
"@ngrx/entity": "^17.2.0",
"@ngrx/store": "^17.2.0",
"@ngrx/store-devtools": "^17.2.0",
"angular-oauth2-oidc": "^17.0.2",
"angular-oauth2-oidc-jwks": "^17.0.2",
"lodash": "^4.17.21",
"moment": "^2.29.4",
"ng2-pdf-viewer": "^9.1.5",
"moment": "^2.30.1",
"ng2-pdf-viewer": "^10.2.2",
"parse-duration": "^1.1.0",
"rxjs": "^6.6.7",
"scandit-sdk": "^5.13.2",
"rxjs": "~7.8.0",
"scandit-sdk": "^5.15.0",
"socket.io": "^4.5.4",
"tslib": "^2.0.0",
"uglify-js": "^3.4.9",
"tslib": "^2.3.0",
"uuid": "^8.3.2",
"web-animations-js": "^2.3.2",
"zone.js": "~0.13.1"
"zone.js": "~0.14.6"
},
"devDependencies": {
"@angular-devkit/build-angular": "^16.1.6",
"@angular/cli": "^16.1.6",
"@angular/compiler-cli": "^16.1.7",
"@angular/language-service": "^16.1.7",
"@angular-devkit/build-angular": "^17.3.8",
"@angular/cli": "^17.3.8",
"@angular/compiler-cli": "^17.3.10",
"@angular/language-service": "^17.3.10",
"@ngneat/spectator": "^15.0.1",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/lodash": "^4.14.168",
"@types/moment": "^2.13.0",
"@types/node": "^18.6.1",
"@types/uuid": "^8.3.0",
"autoprefixer": "^10.4.12",
"codelyzer": "^6.0.2",
"husky": "^4.2.3",
"jasmine-core": "~3.8.0",
"jasmine-marbles": "^0.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~6.3.9",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage": "^2.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
"karma-jasmine-html-reporter": "^1.5.0",
"karma-junit-reporter": "^2.0.1",
"ng-mocks": "^14.11.0",
"ng-packagr": "^16.1.0",
"autoprefixer": "^10.4.19",
"husky": "^9.0.11",
"jasmine-core": "~5.1.2",
"jasmine-marbles": "^0.9.2",
"jasmine-spec-reporter": "~7.0.0",
"karma": "~6.4.3",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "^2.2.1",
"karma-coverage-istanbul-reporter": "~3.0.3",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
"karma-junit-reporter": "~2.0.1",
"ng-swagger-gen": "^2.3.1",
"ngrx-store-freeze": "^0.2.4",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.18",
"postcss-loader": "^4.1.0",
"postcss-scss": "^3.0.4",
"prettier": "2.0.1",
"pretty-quick": "^2.0.1",
"sass": "^1.37.5",
"stylelint": "^13.7.2",
"stylelint-config-standard": "^20.0.0",
"tailwindcss": "^3.1.8",
"ts-node": "~7.0.0",
"tslint": "~6.1.0",
"typescript": "~5.1.6"
"postcss": "^8.4.38",
"prettier": "~3.3.1",
"pretty-quick": "~4.0.0",
"tailwindcss": "^3.4.3",
"typescript": "~5.4.5"
},
"engines": {
"node": "18.x",
"npm": "8.x"
"node": ">=18.13.0",
"npm": ">=10.5.2"
}
}
}

View File

@@ -1,13 +0,0 @@
module.exports = {
//extends: ['stylelint-config-standard'],
rules: {
'at-rule-no-unknown': [
true,
{
ignoreAtRules: ['tailwind', 'apply', 'variants', 'responsive', 'screen'],
},
],
'declaration-block-trailing-semicolon': null,
'no-descending-specificity': null,
},
};