- Updated to Nx v19 and ran all migrations.
- Updated to Angular v18
- Updated to Angular Material v18. Updated the SASS (.scss) theme for this version of Angular Material that is now abiding by the major updates to Material v3. I generated two themes utilizing
ng generate @angular/material:m3-theme
and integrated a basic light and dark theme for the repo. The themes are directly importing the SASS styles and can be tweaked to your own taste under thetheme
folder. - Updated Prisma to v5.15.0
- Scrubbed out all deprecated packages and updated every dependency within the project.
- Implemented Prisma's new createMany and createManyAndReturn feature. Please delete your resolvers within
apps/api/src/app/graphql/resolvers/prisma
and regenerate them. You may keep theUser.ts
resolver file as it already has been regenerated for you. No other significant changes should be needed if you've managed to merge all the other changes successfully. - Refactored the code generation of GraphQL resolvers for Prisma models. There are now some minor efficiency gains that have been made.
- Went through all the feature branches and updated those as well. Recompiled and tested all of them to ensure that they are still in working order.
- @zen/grid now shows the refresh button by default.
- @zen/grid now defaults to
@Input() sortable: SortSettings = { mode: 'multiple' };
instead ofsingle
. - @zen/grid under the
kendo
branch now has working filtering for Prisma's Filter on "-to-one" relations. This will allow you to have columns within the grid that can now be filtered over with nested objects. As an example:
apps/api/prisma/schema.prisma
model User {
id String @id @default(uuid())
...
address Address? @relation(fields: [addressId], references: [id])
addressId String?
}
model Address {
id String @id @default(uuid())
country String?
...
User User[]
}
libs/graphql/src/lib/fields/User.gql.ts
import gql from 'graphql-tag';
import { AddressFields } from './Address.gql';
export const UserFields = gql`
fragment UserFields on User {
id
address {
...AddressFields
}
}
${AddressFields}
`;
libs/main/src/lib/zen-portal/zen-super/zen-user-manager/zen-user-grid/zen-user-grid.component.ts
const DEFAULT_SETTINGS: KendoGridSettings<UserFields> = {
columnsConfig: [
{
field: 'address.country',
title: 'Country',
filter: 'text',
custom: { nullable: true },
},
],
};