Skip to content

v15.0.0 - Nx v19, Angular v18, Angular Material v18 update

Latest
Compare
Choose a tag to compare
@ZenSoftware ZenSoftware released this 11 Jun 05:13
· 40 commits to base since this release
  • 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 the theme 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 the User.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 of single.
  • @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 },
    },
  ],
};