Sfoglia il codice sorgente

chore(admin-ui,ui-devkit): Update Angular to v18 and peer deps

David Höck 11 mesi fa
parent
commit
f88a1c9fab
26 ha cambiato i file con 810 aggiunte e 569 eliminazioni
  1. 1 1
      docs/package-lock.json
  2. 1 1
      docs/package.json
  3. 644 420
      package-lock.json
  4. 2 2
      package.json
  5. 0 2
      packages/admin-ui/angular.json
  6. 6 3
      packages/admin-ui/package.json
  7. 5 6
      packages/admin-ui/src/lib/catalog/src/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.html
  8. 4 3
      packages/admin-ui/src/lib/catalog/src/components/collection-contents/collection-contents.component.html
  9. 99 99
      packages/admin-ui/src/lib/catalog/src/components/collection-data-table/collection-data-table.component.html
  10. 7 1
      packages/admin-ui/src/lib/core/src/shared/shared.module.ts
  11. 9 9
      packages/admin-ui/src/lib/system/src/components/job-list/job-list.component.html
  12. 1 1
      packages/admin-ui/src/lib/system/src/components/job-state-label/job-state-label.component.html
  13. 5 5
      packages/admin-ui/src/lib/system/src/components/job-state-label/job-state-label.component.ts
  14. 2 1
      packages/admin-ui/src/lib/system/src/system.module.ts
  15. 9 0
      packages/admin-ui/tsconfig.json
  16. 1 1
      packages/asset-server-plugin/package.json
  17. 1 1
      packages/cli/package.json
  18. 1 1
      packages/common/package.json
  19. 1 1
      packages/core/package.json
  20. 1 1
      packages/create/package.json
  21. 1 1
      packages/dev-server/package.json
  22. 1 1
      packages/elasticsearch-plugin/package.json
  23. 1 1
      packages/email-plugin/package.json
  24. 1 1
      packages/job-queue-plugin/package.json
  25. 1 1
      packages/testing/package.json
  26. 5 5
      packages/ui-devkit/package.json

+ 1 - 1
docs/package-lock.json

@@ -20,7 +20,7 @@
       "devDependencies": {
       "devDependencies": {
         "@docusaurus/module-type-aliases": "^3.4.0",
         "@docusaurus/module-type-aliases": "^3.4.0",
         "@tsconfig/docusaurus": "^1.0.5",
         "@tsconfig/docusaurus": "^1.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
       },
       },
       "engines": {
       "engines": {
         "node": ">=16.14"
         "node": ">=16.14"

+ 1 - 1
docs/package.json

@@ -27,7 +27,7 @@
   "devDependencies": {
   "devDependencies": {
     "@docusaurus/module-type-aliases": "^3.4.0",
     "@docusaurus/module-type-aliases": "^3.4.0",
     "@tsconfig/docusaurus": "^1.0.5",
     "@tsconfig/docusaurus": "^1.0.5",
-    "typescript": "5.3.3"
+    "typescript": "~5.4.4"
   },
   },
   "browserslist": {
   "browserslist": {
     "production": [
     "production": [

File diff suppressed because it is too large
+ 644 - 420
package-lock.json


+ 2 - 2
package.json

@@ -46,13 +46,13 @@
     "graphql": "~16.9.0",
     "graphql": "~16.9.0",
     "husky": "^4.3.0",
     "husky": "^4.3.0",
     "klaw-sync": "^6.0.0",
     "klaw-sync": "^6.0.0",
-    "lerna": "^8.1.2",
+    "lerna": "^8.1.9",
     "lint-staged": "^10.5.4",
     "lint-staged": "^10.5.4",
     "prettier": "^3.2.5",
     "prettier": "^3.2.5",
     "rollup": "^4.18.0",
     "rollup": "^4.18.0",
     "tinybench": "^2.6.0",
     "tinybench": "^2.6.0",
     "ts-node": "^10.9.2",
     "ts-node": "^10.9.2",
-    "typescript": "5.3.3",
+    "typescript": "~5.4.4",
     "unplugin-swc": "^1.4.4",
     "unplugin-swc": "^1.4.4",
     "vitest": "^1.3.1"
     "vitest": "^1.3.1"
   },
   },

+ 0 - 2
packages/admin-ui/angular.json

@@ -45,8 +45,6 @@
               "lodash",
               "lodash",
               "dayjs",
               "dayjs",
               "apollo-upload-client",
               "apollo-upload-client",
-              "@clr/icons",
-              "@clr/icons/shapes/all-shapes",
               "@vendure/common/lib/generated-types",
               "@vendure/common/lib/generated-types",
               "@vendure/common/lib/simple-deep-clone",
               "@vendure/common/lib/simple-deep-clone",
               "@vendure/common/lib/shared-constants",
               "@vendure/common/lib/shared-constants",

+ 6 - 3
packages/admin-ui/package.json

@@ -42,16 +42,19 @@
     "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
     "@biesbjerg/ngx-translate-extract-marker": "^1.0.0",
     "@messageformat/core": "^3.2.0",
     "@messageformat/core": "^3.2.0",
     "@ng-icons/core": "^29.10.0",
     "@ng-icons/core": "^29.10.0",
-    "@ng-select/ng-select": "^12.0.7",
+    "@ng-icons/lucide": ">=29.0.0",
+    "@ng-select/ng-select": "^13.9.1",
     "@ngx-translate/core": "^15.0.0",
     "@ngx-translate/core": "^15.0.0",
     "@ngx-translate/http-loader": "^8.0.0",
     "@ngx-translate/http-loader": "^8.0.0",
-    "@spartan-ng/brain": "0.0.1-alpha.381",
+    "@spartan-ng/brain": "latest",
     "@spartan-ng/ui-core": "latest",
     "@spartan-ng/ui-core": "latest",
     "@vendure/common": "^3.1.2",
     "@vendure/common": "^3.1.2",
     "@webcomponents/custom-elements": "^1.6.0",
     "@webcomponents/custom-elements": "^1.6.0",
-    "apollo-angular": "^6.0.0",
+    "apollo-angular": "^7.2.1",
     "apollo-upload-client": "^18.0.1",
     "apollo-upload-client": "^18.0.1",
     "chartist": "^1.3.0",
     "chartist": "^1.3.0",
+    "class-variance-authority": "^0.7.0",
+    "clsx": "^2.1.1",
     "codejar": "^4.2.0",
     "codejar": "^4.2.0",
     "dayjs": "^1.11.10",
     "dayjs": "^1.11.10",
     "graphql": "~16.9.0",
     "graphql": "~16.9.0",

+ 5 - 6
packages/admin-ui/src/lib/catalog/src/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.html

@@ -6,21 +6,20 @@
 </ng-template>
 </ng-template>
 
 
 <div class="flex">
 <div class="flex">
-    <clr-input-container>
+    <hlm-form-field>
         <label>{{ 'common.channel' | translate }}</label>
         <label>{{ 'common.channel' | translate }}</label>
         <vdr-channel-assignment-control
         <vdr-channel-assignment-control
-            clrInput
             [multiple]="false"
             [multiple]="false"
             [includeDefaultChannel]="false"
             [includeDefaultChannel]="false"
             [disableChannelIds]="currentChannelIds"
             [disableChannelIds]="currentChannelIds"
             [formControl]="selectedChannelIdControl"
             [formControl]="selectedChannelIdControl"
         ></vdr-channel-assignment-control>
         ></vdr-channel-assignment-control>
-    </clr-input-container>
+    </hlm-form-field>
     <div class="flex-spacer"></div>
     <div class="flex-spacer"></div>
-    <clr-input-container>
+    <hlm-form-field>
         <label>{{ 'catalog.price-conversion-factor' | translate }}</label>
         <label>{{ 'catalog.price-conversion-factor' | translate }}</label>
-        <input clrInput type="number" min="0" max="99999" [formControl]="priceFactorControl" />
-    </clr-input-container>
+        <input type="number" min="0" max="99999" [formControl]="priceFactorControl" />
+    </hlm-form-field>
 </div>
 </div>
 
 
 <div class="channel-price-preview">
 <div class="channel-price-preview">

+ 4 - 3
packages/admin-ui/src/lib/catalog/src/components/collection-contents/collection-contents.component.html

@@ -37,9 +37,10 @@
         <vdr-dt2-column [heading]="'common.name' | translate" id="name" [optional]="false">
         <vdr-dt2-column [heading]="'common.name' | translate" id="name" [optional]="false">
             <ng-template let-variant="item">
             <ng-template let-variant="item">
                 <a class="button-ghost" [routerLink]="['/catalog/products', variant.productId]"
                 <a class="button-ghost" [routerLink]="['/catalog/products', variant.productId]"
-                    ><span>{{ variant.name }}</span
-                    ><clr-icon shape="arrow right"
-                /></a>
+                >
+                    <span>{{ variant.name }}</span>
+                    <hlm-icon name="lucideArrowRight" />
+                </a>
             </ng-template>
             </ng-template>
         </vdr-dt2-column>
         </vdr-dt2-column>
         <vdr-dt2-column [heading]="'catalog.sku' | translate" id="sku" [optional]="false">
         <vdr-dt2-column [heading]="'catalog.sku' | translate" id="sku" [optional]="false">

+ 99 - 99
packages/admin-ui/src/lib/catalog/src/components/collection-data-table/collection-data-table.component.html

@@ -9,93 +9,93 @@
     </div>
     </div>
     <table class="" [class.no-select]="disableSelect">
     <table class="" [class.no-select]="disableSelect">
         <thead [class.items-selected]="selectionManager?.selection.length">
         <thead [class.items-selected]="selectionManager?.selection.length">
-            <tr class="heading-row">
-                <th *ngIf="selectionManager" class="selection-col">
-                    <div class="flex">
-                        <div class="drag-handle-spacer"></div>
-                        <input
-                            type="checkbox"
-                            clrCheckbox
-                            [checked]="selectionManager?.areAllCurrentItemsSelected()"
-                            (change)="onToggleAllClick()"
-                        />
-                    </div>
-                </th>
-                <th
-                    *ngFor="let column of visibleSortedColumns; last as isLast"
-                    [class.expand]="column.expand"
-                >
-                    <div class="cell-content" [ngClass]="column.align">
-                        <vdr-ui-extension-point
-                            [locationId]="id"
-                            [metadata]="column.id"
-                            api="dataTable"
-                            [topPx]="-6"
-                            [leftPx]="-24"
-                            display="block"
-                        >
-                            <span>{{ column.heading }}</span>
-                        </vdr-ui-extension-point>
-                        <div *ngIf="column.sort as sort" class="sort-toggle">
-                            <button (click)="sort.toggleSortOrder()" [class.active]="sort.sortOrder">
-                                <hlm *ngIf="!sort.sortOrder" shape="two-way-arrows left"></hlm>
-                                <clr-icon *ngIf="sort.sortOrder === 'ASC'" shape="arrow up"></clr-icon>
-                                <clr-icon *ngIf="sort.sortOrder === 'DESC'" shape="arrow down"></clr-icon>
-                            </button>
-                            <div class="sort-label" *ngIf="sort.sortOrder">{{ sort.sortOrder }}</div>
-                        </div>
-                    </div>
-                </th>
-                <th>
-                    <div class="column-picker">
-                        <vdr-data-table-colum-picker
-                            [uiLanguage]="uiLanguage$ | async"
-                            [columns]="sortedColumns"
-                            (reorder)="onColumnReorder($event)"
-                            (resetColumns)="onColumnsReset()"
-                        ></vdr-data-table-colum-picker>
+        <tr class="heading-row">
+            <th *ngIf="selectionManager" class="selection-col">
+                <div class="flex">
+                    <div class="drag-handle-spacer"></div>
+                    <input
+                        type="checkbox"
+                        clrCheckbox
+                        [checked]="selectionManager?.areAllCurrentItemsSelected()"
+                        (change)="onToggleAllClick()"
+                    />
+                </div>
+            </th>
+            <th
+                *ngFor="let column of visibleSortedColumns; last as isLast"
+                [class.expand]="column.expand"
+            >
+                <div class="cell-content" [ngClass]="column.align">
+                    <vdr-ui-extension-point
+                        [locationId]="id"
+                        [metadata]="column.id"
+                        api="dataTable"
+                        [topPx]="-6"
+                        [leftPx]="-24"
+                        display="block"
+                    >
+                        <span>{{ column.heading }}</span>
+                    </vdr-ui-extension-point>
+                    <div *ngIf="column.sort as sort" class="sort-toggle">
+                        <button (click)="sort.toggleSortOrder()" [class.active]="sort.sortOrder">
+                            <hlm-icon *ngIf="!sort.sortOrder" name="lucideArrowDownUp"></hlm-icon>
+                            <hlm-icon *ngIf="sort.sortOrder === 'ASC'" name="lucideArrowDownUp"></hlm-icon>
+                            <hlm-icon *ngIf="sort.sortOrder === 'DESC'" name="lucideArrowDown"></hlm-icon>
+                        </button>
+                        <div class="sort-label" *ngIf="sort.sortOrder">{{ sort.sortOrder }}</div>
                     </div>
                     </div>
-                </th>
-            </tr>
-            <tr *ngIf="searchComponent || customSearchTemplate || filters?.length">
-                <th
-                    [attr.colspan]="visibleSortedColumns.length + (selectionManager ? 2 : 1)"
-                    class="filter-row"
+                </div>
+            </th>
+            <th>
+                <div class="column-picker">
+                    <vdr-data-table-colum-picker
+                        [uiLanguage]="uiLanguage$ | async"
+                        [columns]="sortedColumns"
+                        (reorder)="onColumnReorder($event)"
+                        (resetColumns)="onColumnsReset()"
+                    ></vdr-data-table-colum-picker>
+                </div>
+            </th>
+        </tr>
+        <tr *ngIf="searchComponent || customSearchTemplate || filters?.length">
+            <th
+                [attr.colspan]="visibleSortedColumns.length + (selectionManager ? 2 : 1)"
+                class="filter-row"
+                [class.active]="showSearchFilterRow"
+            >
+                <button
+                    class="button-ghost toggle-search-filter-row"
                     [class.active]="showSearchFilterRow"
                     [class.active]="showSearchFilterRow"
+                    (click)="toggleSearchFilterRow()"
+                    [title]="'common.search-and-filter-list' | translate"
                 >
                 >
-                    <button
-                        class="button-ghost toggle-search-filter-row"
-                        [class.active]="showSearchFilterRow"
-                        (click)="toggleSearchFilterRow()"
-                        [title]="'common.search-and-filter-list' | translate"
-                    >
-                        <clr-icon shape="search"></clr-icon>
-                    </button>
-                    <div class="filter-row-wrapper" [class.hidden]="!showSearchFilterRow">
-                        <ng-container *ngTemplateOutlet="searchComponent?.template"></ng-container>
-                        <ng-container *ngTemplateOutlet="customSearchTemplate"></ng-container>
-                        <ng-container *ngIf="filters">
-                            <div class="filters">
-                                <vdr-data-table-filters
-                                    *ngFor="let activeFilter of filters.activeFilters"
-                                    [filterWithValue]="activeFilter"
-                                    [filters]="filters"
-                                    class="mt-1"
-                                ></vdr-data-table-filters>
-                                <vdr-data-table-filters
-                                    *ngIf="filters.length"
-                                    [filters]="filters"
-                                    class="mt-1"
-                                ></vdr-data-table-filters>
-                                <vdr-add-filter-preset-button
-                                    [filters]="filters"
-                                    [dataTableId]="id"
-                                ></vdr-add-filter-preset-button>
-                            </div>
-                        </ng-container>
-                    </div>
-                </th>
-            </tr>
+                    <clr-icon shape="search"></clr-icon>
+                </button>
+                <div class="filter-row-wrapper" [class.hidden]="!showSearchFilterRow">
+                    <ng-container *ngTemplateOutlet="searchComponent?.template"></ng-container>
+                    <ng-container *ngTemplateOutlet="customSearchTemplate"></ng-container>
+                    <ng-container *ngIf="filters">
+                        <div class="filters">
+                            <vdr-data-table-filters
+                                *ngFor="let activeFilter of filters.activeFilters"
+                                [filterWithValue]="activeFilter"
+                                [filters]="filters"
+                                class="mt-1"
+                            ></vdr-data-table-filters>
+                            <vdr-data-table-filters
+                                *ngIf="filters.length"
+                                [filters]="filters"
+                                class="mt-1"
+                            ></vdr-data-table-filters>
+                            <vdr-add-filter-preset-button
+                                [filters]="filters"
+                                [dataTableId]="id"
+                            ></vdr-add-filter-preset-button>
+                        </div>
+                    </ng-container>
+                </div>
+            </th>
+        </tr>
         </thead>
         </thead>
         <tbody
         <tbody
             cdkDropList
             cdkDropList
@@ -103,8 +103,8 @@
             (cdkDropListDropped)="onDrop($event)"
             (cdkDropListDropped)="onDrop($event)"
             [cdkDropListSortPredicate]="sortPredicate"
             [cdkDropListSortPredicate]="sortPredicate"
         >
         >
-            <ng-container
-                *ngFor="
+        <ng-container
+            *ngFor="
                 let item of items
                 let item of items
                     | paginate
                     | paginate
                         : {
                         : {
@@ -116,19 +116,19 @@
                 index as i;
                 index as i;
                 trackBy: trackByFn
                 trackBy: trackByFn
             "
             "
-            >
-                <ng-container
-                    [ngTemplateOutlet]="collectionRowTmp"
-                    [ngTemplateOutletContext]="{ item: item, i: i, depth: 0 }"
-                ></ng-container>
-            </ng-container>
-            <ng-container>
-                <tr *ngIf="!items?.length">
-                    <td [attr.colspan]="visibleSortedColumns.length + (selectionManager ? 2 : 1)">
-                        <vdr-empty-placeholder [emptyStateLabel]="emptyStateLabel"></vdr-empty-placeholder>
-                    </td>
-                </tr>
-            </ng-container>
+        >
+            <ng-container
+                [ngTemplateOutlet]="collectionRowTmp"
+                [ngTemplateOutletContext]="{ item: item, i: i, depth: 0 }"
+            ></ng-container>
+        </ng-container>
+        <ng-container>
+            <tr *ngIf="!items?.length">
+                <td [attr.colspan]="visibleSortedColumns.length + (selectionManager ? 2 : 1)">
+                    <vdr-empty-placeholder [emptyStateLabel]="emptyStateLabel"></vdr-empty-placeholder>
+                </td>
+            </tr>
+        </ng-container>
         </tbody>
         </tbody>
     </table>
     </table>
 </div>
 </div>

+ 7 - 1
packages/admin-ui/src/lib/core/src/shared/shared.module.ts

@@ -9,7 +9,11 @@ import { NgSelectModule } from '@ng-select/ng-select';
 import { TranslateModule } from '@ngx-translate/core';
 import { TranslateModule } from '@ngx-translate/core';
 import '@webcomponents/custom-elements/custom-elements.min.js';
 import '@webcomponents/custom-elements/custom-elements.min.js';
 import { NgxPaginationModule } from 'ngx-pagination';
 import { NgxPaginationModule } from 'ngx-pagination';
+import { HlmIconDirective, HlmIconModule } from '@spartan-ng/ui-icon-helm';
+import { HlmFormFieldModule } from '@spartan-ng/ui-formfield-helm';
 
 
+import { HlmCheckboxModule } from '@spartan-ng/ui-checkbox-helm';
+import { HlmLabelModule } from '@spartan-ng/ui-label-helm';
 import { ModalService } from '../providers/modal/modal.service';
 import { ModalService } from '../providers/modal/modal.service';
 
 
 import { ActionBarItemsComponent } from './components/action-bar-items/action-bar-items.component';
 import { ActionBarItemsComponent } from './components/action-bar-items/action-bar-items.component';
@@ -174,7 +178,6 @@ import { AddFilterPresetButtonComponent } from './components/data-table-filter-p
 import { RenameFilterPresetDialogComponent } from './components/data-table-filter-presets/rename-filter-preset-dialog.component';
 import { RenameFilterPresetDialogComponent } from './components/data-table-filter-presets/rename-filter-preset-dialog.component';
 import { ActionBarDropdownMenuComponent } from './components/action-bar-dropdown-menu/action-bar-dropdown-menu.component';
 import { ActionBarDropdownMenuComponent } from './components/action-bar-dropdown-menu/action-bar-dropdown-menu.component';
 import { DuplicateEntityDialogComponent } from './components/duplicate-entity-dialog/duplicate-entity-dialog.component';
 import { DuplicateEntityDialogComponent } from './components/duplicate-entity-dialog/duplicate-entity-dialog.component';
-import { HlmIconModule } from '@spartan-ng/ui-icon-helm';
 
 
 const IMPORTS = [
 const IMPORTS = [
     CommonModule,
     CommonModule,
@@ -188,6 +191,9 @@ const IMPORTS = [
     DragDropModule,
     DragDropModule,
     A11yModule,
     A11yModule,
     HlmIconModule,
     HlmIconModule,
+    HlmFormFieldModule,
+    HlmCheckboxModule,
+    HlmLabelModule,
 ];
 ];
 
 
 const DECLARATIONS = [
 const DECLARATIONS = [

+ 9 - 9
packages/admin-ui/src/lib/system/src/components/job-list/job-list.component.html

@@ -5,10 +5,10 @@
     <vdr-page-block>
     <vdr-page-block>
         <vdr-action-bar>
         <vdr-action-bar>
             <vdr-ab-left>
             <vdr-ab-left>
-                <clr-checkbox-wrapper class="mr-2">
-                    <input type="checkbox" clrCheckbox [formControl]="liveUpdate" name="live-update" />
-                    <label>{{ 'common.live-update' | translate }}</label>
-                </clr-checkbox-wrapper>
+                <label class="flex items-center" hlmLabel>
+                    <hlm-checkbox class="mr-2" [formControl]="liveUpdate" checkIconName="lucideMoon" />
+                    {{ 'common.live-update' | translate }}
+                </label>
             </vdr-ab-left>
             </vdr-ab-left>
             <vdr-ab-right>
             <vdr-ab-right>
                 <vdr-action-bar-items locationId="job-list"></vdr-action-bar-items>
                 <vdr-action-bar-items locationId="job-list"></vdr-action-bar-items>
@@ -99,7 +99,7 @@
                         vdrDropdownTrigger
                         vdrDropdownTrigger
                         [title]="'system.job-data' | translate"
                         [title]="'system.job-data' | translate"
                     >
                     >
-                        <clr-icon shape="details"></clr-icon>
+                        <ng-icon hlm name="lucideEllipsisVertical"></ng-icon>
                     </button>
                     </button>
                     <vdr-dropdown-menu>
                     <vdr-dropdown-menu>
                         <div class="result-detail">
                         <div class="result-detail">
@@ -127,7 +127,7 @@
             <ng-template let-job="item">
             <ng-template let-job="item">
                 <vdr-dropdown *ngIf="hasResult(job)">
                 <vdr-dropdown *ngIf="hasResult(job)">
                     <button class="button-small mr-1" vdrDropdownTrigger>
                     <button class="button-small mr-1" vdrDropdownTrigger>
-                        <clr-icon shape="details"></clr-icon>
+                        <ng-icon name="lucideEllipsisVertical"></ng-icon>
                         {{ 'system.job-result' | translate }}
                         {{ 'system.job-result' | translate }}
                     </button>
                     </button>
                     <vdr-dropdown-menu>
                     <vdr-dropdown-menu>
@@ -138,7 +138,7 @@
                 </vdr-dropdown>
                 </vdr-dropdown>
                 <vdr-dropdown *ngIf="job.error">
                 <vdr-dropdown *ngIf="job.error">
                     <button class="button-small" vdrDropdownTrigger>
                     <button class="button-small" vdrDropdownTrigger>
-                        <clr-icon shape="exclamation-circle"></clr-icon>
+                        <ng-icon name="lucideMessageCircleWarning"></ng-icon>
                         {{ 'system.job-error' | translate }}
                         {{ 'system.job-error' | translate }}
                     </button>
                     </button>
                     <vdr-dropdown-menu>
                     <vdr-dropdown-menu>
@@ -149,7 +149,7 @@
                 </vdr-dropdown>
                 </vdr-dropdown>
                 <vdr-dropdown *ngIf="!job.isSettled && job.state !== 'FAILED'">
                 <vdr-dropdown *ngIf="!job.isSettled && job.state !== 'FAILED'">
                     <button class="icon-button" vdrDropdownTrigger>
                     <button class="icon-button" vdrDropdownTrigger>
-                        <clr-icon shape="ellipsis-vertical" size="12"></clr-icon>
+                        <ng-icon shape="ellipsis-vertical" size="12"></ng-icon>
                     </button>
                     </button>
                     <vdr-dropdown-menu vdrPosition="bottom-right">
                     <vdr-dropdown-menu vdrPosition="bottom-right">
                         <button
                         <button
@@ -159,7 +159,7 @@
                             [disabled]="!(['DeleteSettings', 'DeleteSystem'] | hasPermission)"
                             [disabled]="!(['DeleteSettings', 'DeleteSystem'] | hasPermission)"
                             vdrDropdownItem
                             vdrDropdownItem
                         >
                         >
-                            <clr-icon shape="ban" class="is-danger"></clr-icon>
+                            <ng-icon name="lucideMessageCircleWarning" class="is-danger"></ng-icon>
                             {{ 'common.cancel' | translate }}
                             {{ 'common.cancel' | translate }}
                         </button>
                         </button>
                     </vdr-dropdown-menu>
                     </vdr-dropdown-menu>

+ 1 - 1
packages/admin-ui/src/lib/system/src/components/job-state-label/job-state-label.component.html

@@ -1,5 +1,5 @@
 <vdr-chip [colorType]="colorType">
 <vdr-chip [colorType]="colorType">
-    <clr-icon [attr.shape]="iconShape" class="mr1"></clr-icon>
+    <ng-icon hlm [attr.name]="iconShape" class="mr-1"></ng-icon>
     {{ job.state | titlecase }}
     {{ job.state | titlecase }}
     <span *ngIf="job.state === 'RUNNING'" class="progress">
     <span *ngIf="job.state === 'RUNNING'" class="progress">
         {{ (job.progress / 100) | percent }}
         {{ (job.progress / 100) | percent }}

+ 5 - 5
packages/admin-ui/src/lib/system/src/components/job-state-label/job-state-label.component.ts

@@ -14,16 +14,16 @@ export class JobStateLabelComponent {
     get iconShape(): string {
     get iconShape(): string {
         switch (this.job.state) {
         switch (this.job.state) {
             case JobState.COMPLETED:
             case JobState.COMPLETED:
-                return 'check-circle';
+                return 'lucideCircleCheck';
             case JobState.FAILED:
             case JobState.FAILED:
-                return 'exclamation-circle';
+                return 'lucideCircleX';
             case JobState.CANCELLED:
             case JobState.CANCELLED:
-                return 'ban';
+                return 'lucideCircleSlash2';
             case JobState.PENDING:
             case JobState.PENDING:
             case JobState.RETRYING:
             case JobState.RETRYING:
-                return 'hourglass';
+                return 'lucideCircleDotDashed';
             case JobState.RUNNING:
             case JobState.RUNNING:
-                return 'sync';
+                return 'lucideCircleDot';
         }
         }
     }
     }
 
 

+ 2 - 1
packages/admin-ui/src/lib/system/src/system.module.ts

@@ -2,6 +2,7 @@ import { NgModule } from '@angular/core';
 import { RouterModule } from '@angular/router';
 import { RouterModule } from '@angular/router';
 import { SharedModule } from '@vendure/admin-ui/core';
 import { SharedModule } from '@vendure/admin-ui/core';
 
 
+import { NgIcon } from '@ng-icons/core';
 import { HealthCheckComponent } from './components/health-check/health-check.component';
 import { HealthCheckComponent } from './components/health-check/health-check.component';
 import { JobListComponent } from './components/job-list/job-list.component';
 import { JobListComponent } from './components/job-list/job-list.component';
 import { JobStateLabelComponent } from './components/job-state-label/job-state-label.component';
 import { JobStateLabelComponent } from './components/job-state-label/job-state-label.component';
@@ -9,6 +10,6 @@ import { systemRoutes } from './system.routes';
 
 
 @NgModule({
 @NgModule({
     declarations: [HealthCheckComponent, JobListComponent, JobStateLabelComponent],
     declarations: [HealthCheckComponent, JobListComponent, JobStateLabelComponent],
-    imports: [SharedModule, RouterModule.forChild(systemRoutes)],
+    imports: [SharedModule, RouterModule.forChild(systemRoutes), NgIcon],
 })
 })
 export class SystemModule {}
 export class SystemModule {}

+ 9 - 0
packages/admin-ui/tsconfig.json

@@ -62,6 +62,15 @@
       ],
       ],
       "@spartan-ng/ui-icon-helm": [
       "@spartan-ng/ui-icon-helm": [
         "./src/lib/ui/ui-icon-helm/src/index.ts"
         "./src/lib/ui/ui-icon-helm/src/index.ts"
+      ],
+      "@spartan-ng/ui-formfield-helm": [
+        "./src/lib/ui/ui-formfield-helm/src/index.ts"
+      ],
+      "@spartan-ng/ui-checkbox-helm": [
+        "./src/lib/ui/ui-checkbox-helm/src/index.ts"
+      ],
+      "@spartan-ng/ui-label-helm": [
+        "./src/lib/ui/ui-label-helm/src/index.ts"
       ]
       ]
     },
     },
     "useDefineForClassFields": false
     "useDefineForClassFields": false

+ 1 - 1
packages/asset-server-plugin/package.json

@@ -31,7 +31,7 @@
         "express": "^4.18.3",
         "express": "^4.18.3",
         "node-fetch": "^2.7.0",
         "node-fetch": "^2.7.0",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     },
     },
     "dependencies": {
     "dependencies": {
         "file-type": "^19.0.0",
         "file-type": "^19.0.0",

+ 1 - 1
packages/cli/package.json

@@ -47,6 +47,6 @@
     },
     },
     "devDependencies": {
     "devDependencies": {
         "@vendure/core": "^3.1.2",
         "@vendure/core": "^3.1.2",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 1 - 1
packages/common/package.json

@@ -20,6 +20,6 @@
     ],
     ],
     "devDependencies": {
     "devDependencies": {
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 1 - 1
packages/core/package.json

@@ -102,6 +102,6 @@
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
         "sql.js": "1.12.0",
         "sql.js": "1.12.0",
         "sqlite3": "^5.1.7",
         "sqlite3": "^5.1.7",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 1 - 1
packages/create/package.json

@@ -30,7 +30,7 @@
         "@vendure/core": "^3.1.2",
         "@vendure/core": "^3.1.2",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
         "ts-node": "^10.9.2",
         "ts-node": "^10.9.2",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     },
     },
     "dependencies": {
     "dependencies": {
         "@clack/prompts": "^0.7.0",
         "@clack/prompts": "^0.7.0",

+ 1 - 1
packages/dev-server/package.json

@@ -21,7 +21,7 @@
         "@vendure/core": "^3.1.2",
         "@vendure/core": "^3.1.2",
         "@vendure/elasticsearch-plugin": "^3.1.2",
         "@vendure/elasticsearch-plugin": "^3.1.2",
         "@vendure/email-plugin": "^3.1.2",
         "@vendure/email-plugin": "^3.1.2",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     },
     },
     "devDependencies": {
     "devDependencies": {
         "@vendure/testing": "^3.1.2",
         "@vendure/testing": "^3.1.2",

+ 1 - 1
packages/elasticsearch-plugin/package.json

@@ -29,6 +29,6 @@
         "@vendure/common": "^3.1.2",
         "@vendure/common": "^3.1.2",
         "@vendure/core": "^3.1.2",
         "@vendure/core": "^3.1.2",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 1 - 1
packages/email-plugin/package.json

@@ -37,6 +37,6 @@
         "@vendure/common": "^3.1.2",
         "@vendure/common": "^3.1.2",
         "@vendure/core": "^3.1.2",
         "@vendure/core": "^3.1.2",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 1 - 1
packages/job-queue-plugin/package.json

@@ -28,6 +28,6 @@
         "bullmq": "^5.4.2",
         "bullmq": "^5.4.2",
         "ioredis": "^5.3.2",
         "ioredis": "^5.3.2",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 1 - 1
packages/testing/package.json

@@ -55,6 +55,6 @@
         "mysql": "^2.18.1",
         "mysql": "^2.18.1",
         "pg": "^8.11.3",
         "pg": "^8.11.3",
         "rimraf": "^5.0.5",
         "rimraf": "^5.0.5",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

+ 5 - 5
packages/ui-devkit/package.json

@@ -36,10 +36,10 @@
         "url": "https://github.com/vendure-ecommerce/vendure/issues"
         "url": "https://github.com/vendure-ecommerce/vendure/issues"
     },
     },
     "dependencies": {
     "dependencies": {
-        "@angular-devkit/build-angular": "^17.2.3",
-        "@angular/cli": "^17.2.3",
-        "@angular/compiler": "^17.2.4",
-        "@angular/compiler-cli": "^17.2.4",
+        "@angular-devkit/build-angular": "^18.2.13",
+        "@angular/cli": "^18.2.13",
+        "@angular/compiler":"^18.2.13",
+        "@angular/compiler-cli": "^18.2.13",
         "@vendure/admin-ui": "^3.1.2",
         "@vendure/admin-ui": "^3.1.2",
         "@vendure/common": "^3.1.2",
         "@vendure/common": "^3.1.2",
         "chalk": "^4.1.0",
         "chalk": "^4.1.0",
@@ -59,6 +59,6 @@
         "rollup": "^4.13.0",
         "rollup": "^4.13.0",
         "rollup-plugin-typescript2": "^0.36.0",
         "rollup-plugin-typescript2": "^0.36.0",
         "tslib": "^2.6.2",
         "tslib": "^2.6.2",
-        "typescript": "5.3.3"
+        "typescript": "~5.4.4"
     }
     }
 }
 }

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