26 Commits

Author SHA1 Message Date
Joel Wetzell bb76c3b561 bump version 2026-08-11 19:47:27 -05:00
Joel Wetzell 8f9d2352c8 fix loop tracking for route and processors 2026-08-11 19:46:05 -05:00
Joel Wetzell 95b109de8f Merge pull request #68 from jwetzell/dependabot/npm_and_yarn/prettier-3.8.4
Bump prettier from 3.8.3 to 3.9.6
2026-08-06 09:08:38 -05:00
Joel Wetzell 53ec3b222a Bump prettier from 3.8.3 to 3.9.6
Bumps [prettier](https://github.com/prettier/prettier) from 3.8.3 to 3.9.6.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.3...3.9.6)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-06 09:06:09 -05:00
Joel Wetzell a09824ca03 Merge pull request #67 from jwetzell/dependabot/npm_and_yarn/angular-79008909a5
Bump the angular group across 1 directory with 11 updates
2026-08-06 08:55:55 -05:00
Joel Wetzell f9695c19d6 Bump the angular group across 1 directory with 11 updates
Bumps the angular group with 11 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@angular/cdk](https://github.com/angular/components) | `22.0.0` | `22.1.0` |
| [@angular/common](https://github.com/angular/angular/tree/HEAD/packages/common) | `22.0.0` | `22.1.0` |
| [@angular/compiler](https://github.com/angular/angular/tree/HEAD/packages/compiler) | `22.0.0` | `22.1.0` |
| [@angular/core](https://github.com/angular/angular/tree/HEAD/packages/core) | `22.0.0` | `22.1.0` |
| [@angular/forms](https://github.com/angular/angular/tree/HEAD/packages/forms) | `22.0.0` | `22.1.0` |
| [@angular/material](https://github.com/angular/components) | `22.0.0` | `22.1.0` |
| [@angular/platform-browser](https://github.com/angular/angular/tree/HEAD/packages/platform-browser) | `22.0.0` | `22.1.0` |
| [@angular/router](https://github.com/angular/angular/tree/HEAD/packages/router) | `22.0.0` | `22.1.0` |
| [@angular/build](https://github.com/angular/angular-cli) | `22.0.0` | `22.1.2` |
| [@angular/cli](https://github.com/angular/angular-cli) | `22.0.0` | `22.1.2` |
| [@angular/compiler-cli](https://github.com/angular/angular/tree/HEAD/packages/compiler-cli) | `22.0.0` | `22.1.0` |

Updates `@angular/cdk` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/components/releases)
- [Changelog](https://github.com/angular/components/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/components/compare/v22.0.0...v22.1.0)

Updates `@angular/common` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/common)

Updates `@angular/compiler` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/compiler)

Updates `@angular/core` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/core)

Updates `@angular/forms` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/forms)

Updates `@angular/material` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/components/releases)
- [Changelog](https://github.com/angular/components/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/components/compare/v22.0.0...v22.1.0)

Updates `@angular/platform-browser` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/platform-browser)

Updates `@angular/router` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/router)

Updates `@angular/build` from 22.0.0 to 22.1.2
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/v22.0.0...v22.1.2)

Updates `@angular/cli` from 22.0.0 to 22.1.2
- [Release notes](https://github.com/angular/angular-cli/releases)
- [Changelog](https://github.com/angular/angular-cli/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular-cli/compare/v22.0.0...v22.1.2)

Updates `@angular/compiler-cli` from 22.0.0 to 22.1.0
- [Release notes](https://github.com/angular/angular/releases)
- [Changelog](https://github.com/angular/angular/blob/main/CHANGELOG.md)
- [Commits](https://github.com/angular/angular/commits/v22.1.0/packages/compiler-cli)

---
updated-dependencies:
- dependency-name: "@angular/build"
  dependency-version: 22.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cdk"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/cli"
  dependency-version: 22.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/common"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/compiler"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/compiler-cli"
  dependency-version: 22.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/core"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/forms"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/material"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/platform-browser"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
- dependency-name: "@angular/router"
  dependency-version: 22.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: angular
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-06 08:53:55 -05:00
Joel Wetzell 2396657fc8 Merge pull request #70 from jwetzell/dependabot/npm_and_yarn/vitest-4.1.8
Bump vitest from 4.1.7 to 4.1.8
2026-08-06 08:49:25 -05:00
Joel Wetzell 83469cc9f2 Bump vitest from 4.1.7 to 4.1.8
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) from 4.1.7 to 4.1.8.
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md)
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.8/packages/vitest)

---
updated-dependencies:
- dependency-name: vitest
  dependency-version: 4.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-06 08:48:22 -05:00
Joel Wetzell 18e1000da5 Merge pull request #69 from jwetzell/dependabot/npm_and_yarn/tailwindcss-4.3.1
Bump tailwindcss from 4.3.0 to 4.3.3
2026-08-06 08:45:31 -05:00
Joel Wetzell 17536deff1 Bump tailwindcss from 4.3.0 to 4.3.3
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.3.0 to 4.3.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.3.3/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-version: 4.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-06 08:43:41 -05:00
Joel Wetzell 450c5d934d Merge pull request #63 from jwetzell/dependabot/npm_and_yarn/js-yaml-4.2.0
Bump js-yaml from 4.1.1 to 5.2.3
2026-08-06 08:39:14 -05:00
Joel Wetzell 088f278bb7 sync package-lock 2026-08-06 08:37:22 -05:00
dependabot[bot] 8db22220dd Bump js-yaml from 4.1.1 to 4.2.0
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.2.0.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/commits)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-06 08:36:28 -05:00
Joel Wetzell d72fc9726a sync package-lock.json 2026-08-06 08:33:06 -05:00
Joel Wetzell 0b86856a71 Merge pull request #72 from jwetzell/dependabot/github_actions/actions/setup-node-7.0.0
Bump actions/setup-node from 6.4.0 to 7.0.0
2026-08-06 08:14:07 -05:00
Joel Wetzell 2ed2418ae1 Merge pull request #73 from jwetzell/dependabot/github_actions/actions/checkout-7.0.1
Bump actions/checkout from 6.0.3 to 7.0.1
2026-08-06 08:13:52 -05:00
dependabot[bot] 2576e4902d Bump actions/checkout from 6.0.3 to 7.0.1
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.3 to 7.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...3d3c42e5aac5ba805825da76410c181273ba90b1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-25 06:42:23 +00:00
dependabot[bot] fa2baa71f4 Bump actions/setup-node from 6.4.0 to 7.0.0
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6.4.0 to 7.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e...820762786026740c76f36085b0efc47a31fe5020)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-18 06:42:30 +00:00
Joel Wetzell 3956290d3d sync package-lock 2026-06-07 21:18:15 -05:00
Joel Wetzell a00efa0c5c Merge pull request #62 from jwetzell/dependabot/github_actions/actions/checkout-6.0.3
Bump actions/checkout from 6.0.2 to 6.0.3
2026-06-07 21:14:36 -05:00
Joel Wetzell e309df8fe5 update angular material to v22 2026-06-07 21:11:47 -05:00
Joel Wetzell 6323dd1724 update angular to v22 2026-06-07 21:09:59 -05:00
Joel Wetzell 0aa3b23362 update node version 2026-06-07 21:05:31 -05:00
dependabot[bot] ac2ced53bf Bump actions/checkout from 6.0.2 to 6.0.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 6.0.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...df4cb1c069e1874edd31b4311f1884172cec0e10)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-06 06:42:16 +00:00
Joel Wetzell b9950c64e7 0.14.2 2026-06-01 19:28:54 -05:00
Joel Wetzell 31f42e696d rework config updates to fix drag and drop 2026-06-01 19:28:43 -05:00
18 changed files with 2850 additions and 3352 deletions
+2 -2
View File
@@ -9,10 +9,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out repository - name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Node.js - name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with: with:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
cache: 'npm' cache: 'npm'
+2 -2
View File
@@ -8,10 +8,10 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out repository - name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Node.js - name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with: with:
node-version-file: '.nvmrc' node-version-file: '.nvmrc'
cache: 'npm' cache: 'npm'
+1 -1
View File
@@ -1 +1 @@
v24.11.1 v24.15.0
+2758 -3293
View File
File diff suppressed because it is too large Load Diff
+20 -21
View File
@@ -1,6 +1,6 @@
{ {
"name": "@showbridge/webui", "name": "@showbridge/webui",
"version": "0.14.1", "version": "0.14.3",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve", "start": "ng serve",
@@ -28,35 +28,34 @@
"license": "MIT", "license": "MIT",
"packageManager": "npm@11.6.2", "packageManager": "npm@11.6.2",
"dependencies": { "dependencies": {
"@angular/cdk": "21.2.13", "@angular/cdk": "22.1.0",
"@angular/common": "21.2.15", "@angular/common": "22.1.0",
"@angular/compiler": "21.2.15", "@angular/compiler": "22.1.0",
"@angular/core": "21.2.15", "@angular/core": "22.1.0",
"@angular/forms": "21.2.15", "@angular/forms": "22.1.0",
"@angular/material": "21.2.13", "@angular/material": "22.1.0",
"@angular/platform-browser": "21.2.15", "@angular/platform-browser": "22.1.0",
"@angular/router": "21.2.15", "@angular/router": "22.1.0",
"ajv": "8.20.0", "ajv": "8.20.0",
"js-yaml": "4.1.1", "js-yaml": "4.2.0",
"lodash-es": "4.18.1", "lodash-es": "4.18.1",
"rxjs": "7.8.2", "rxjs": "7.8.2",
"tslib": "2.8.1" "tslib": "2.8.1"
}, },
"devDependencies": { "devDependencies": {
"@angular/build": "21.2.13", "@angular/build": "22.1.2",
"@angular/cli": "21.2.13", "@angular/cli": "22.1.2",
"@angular/compiler-cli": "21.2.15", "@angular/compiler-cli": "22.1.0",
"@angular/material": "21.2.13",
"@playwright/test": "1.60.0", "@playwright/test": "1.60.0",
"@tailwindcss/postcss": "4.3.0", "@tailwindcss/postcss": "4.3.0",
"@types/js-yaml": "4.0.9", "@types/js-yaml": "4.0.9",
"@types/lodash-es": "4.17.12", "@types/lodash-es": "4.17.12",
"jsdom": "29.1.1", "jsdom": "29.1.1",
"playwright-ng-schematics": "^21.1.0", "playwright-ng-schematics": "21.1.0",
"postcss": "8.5.15", "postcss": "8.5.3",
"prettier": "3.8.3", "prettier": "3.9.6",
"tailwindcss": "4.3.0", "tailwindcss": "4.3.3",
"typescript": "5.9.3", "typescript": "6.0.3",
"vitest": "4.1.7" "vitest": "4.1.8"
} }
} }
+2 -1
View File
@@ -1,4 +1,4 @@
import { Component, computed, effect, inject } from '@angular/core'; import { Component, computed, effect, inject, ChangeDetectionStrategy } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
@@ -29,6 +29,7 @@ import { SettingsService } from './services/settings';
ConfigPreviewComponent, ConfigPreviewComponent,
], ],
templateUrl: './app.html', templateUrl: './app.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './app.css', styleUrl: './app.css',
}) })
export class App { export class App {
+2 -1
View File
@@ -1,5 +1,5 @@
import { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop'; import { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
import { Component, inject, Input, OnInit } from '@angular/core'; import { Component, inject, Input, OnInit, ChangeDetectionStrategy } from '@angular/core';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { ParamInfo } from '../../models/form'; import { ParamInfo } from '../../models/form';
@@ -12,6 +12,7 @@ import { parseStringToArray } from '../../utils/params';
templateUrl: './array-form.html', templateUrl: './array-form.html',
styleUrl: './array-form.css', styleUrl: './array-form.css',
imports: [MatIconModule, FormsModule, CdkDrag, CdkDropList], imports: [MatIconModule, FormsModule, CdkDrag, CdkDropList],
changeDetection: ChangeDetectionStrategy.Eager,
standalone: true, standalone: true,
}) })
export class ArrayFormComponent implements OnInit { export class ArrayFormComponent implements OnInit {
@@ -1,4 +1,4 @@
import { Component, computed, input } from '@angular/core'; import { Component, computed, input, ChangeDetectionStrategy } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTooltipModule } from '@angular/material/tooltip';
@@ -9,6 +9,7 @@ import { Config } from '../../models/config';
selector: 'app-config-preview', selector: 'app-config-preview',
imports: [MatIconModule, MatButtonModule, MatTooltipModule], imports: [MatIconModule, MatButtonModule, MatTooltipModule],
templateUrl: './config-preview.html', templateUrl: './config-preview.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './config-preview.css', styleUrl: './config-preview.css',
}) })
export class ConfigPreviewComponent { export class ConfigPreviewComponent {
@@ -1,5 +1,5 @@
import { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop'; import { CdkDrag, CdkDragDrop, CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
import { Component, inject, input, output } from '@angular/core'; import { Component, inject, input, output, ChangeDetectionStrategy } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
@@ -7,9 +7,9 @@ import { MatSnackBar } from '@angular/material/snack-bar';
import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTooltipModule } from '@angular/material/tooltip';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import { ModuleConfig } from '../../models/config'; import { ModuleConfig } from '../../models/config';
import { ListsService } from '../../services/lists';
import { SchemaService } from '../../services/schema'; import { SchemaService } from '../../services/schema';
import { ModuleComponent } from '../module/module'; import { ModuleComponent } from '../module/module';
import { ListsService } from '../../services/lists';
@Component({ @Component({
selector: 'app-module-list', selector: 'app-module-list',
@@ -23,6 +23,7 @@ import { ListsService } from '../../services/lists';
CdkDropList, CdkDropList,
], ],
templateUrl: './module-list.html', templateUrl: './module-list.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './module-list.css', styleUrl: './module-list.css',
}) })
export class ModuleListComponent { export class ModuleListComponent {
@@ -75,7 +76,6 @@ export class ModuleListComponent {
} }
drop(event: CdkDragDrop<ModuleConfig[] | undefined>) { drop(event: CdkDragDrop<ModuleConfig[] | undefined>) {
console.log('Drop event:', event);
if (event.previousContainer === event.container) { if (event.previousContainer === event.container) {
const currentModules = this.modules(); const currentModules = this.modules();
if (currentModules === undefined) { if (currentModules === undefined) {
+10 -1
View File
@@ -1,6 +1,14 @@
import { CdkDragHandle, CdkDragPlaceholder, CdkDragPreview } from '@angular/cdk/drag-drop'; import { CdkDragHandle, CdkDragPlaceholder, CdkDragPreview } from '@angular/cdk/drag-drop';
import { JsonPipe } from '@angular/common'; import { JsonPipe } from '@angular/common';
import { Component, computed, inject, input, output, signal } from '@angular/core'; import {
Component,
computed,
inject,
input,
output,
signal,
ChangeDetectionStrategy,
} from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
@@ -29,6 +37,7 @@ import { ParamsFormComponent } from '../params-form/params-form';
CdkDragPlaceholder, CdkDragPlaceholder,
], ],
templateUrl: './module.html', templateUrl: './module.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './module.css', styleUrl: './module.css',
}) })
export class ModuleComponent { export class ModuleComponent {
@@ -1,5 +1,12 @@
import { JsonPipe } from '@angular/common'; import { JsonPipe } from '@angular/common';
import { Component, effect, input, OnDestroy, output } from '@angular/core'; import {
Component,
effect,
input,
OnDestroy,
output,
ChangeDetectionStrategy,
} from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
@@ -26,6 +33,7 @@ import { ArrayFormComponent } from '../array-form/array-form';
ArrayFormComponent, ArrayFormComponent,
MatTabsModule, MatTabsModule,
], ],
changeDetection: ChangeDetectionStrategy.Eager,
standalone: true, standalone: true,
}) })
export class ParamsFormComponent implements OnDestroy { export class ParamsFormComponent implements OnDestroy {
+2 -1
View File
@@ -1,5 +1,5 @@
import { CdkDragHandle, CdkDragPlaceholder, CdkDragPreview } from '@angular/cdk/drag-drop'; import { CdkDragHandle, CdkDragPlaceholder, CdkDragPreview } from '@angular/cdk/drag-drop';
import { Component, computed, inject, input, output } from '@angular/core'; import { Component, computed, inject, input, output, ChangeDetectionStrategy } from '@angular/core';
import { ReactiveFormsModule } from '@angular/forms'; import { ReactiveFormsModule } from '@angular/forms';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { ProcessorConfig } from '../../models/config'; import { ProcessorConfig } from '../../models/config';
@@ -17,6 +17,7 @@ import { ParamsFormComponent } from '../params-form/params-form';
CdkDragPlaceholder, CdkDragPlaceholder,
], ],
templateUrl: './processor.html', templateUrl: './processor.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './processor.css', styleUrl: './processor.css',
}) })
export class ProcessorComponent { export class ProcessorComponent {
@@ -17,7 +17,7 @@
(cdkDropListDropped)="drop($event)" (cdkDropListDropped)="drop($event)"
[cdkDropListData]="routes()" [cdkDropListData]="routes()"
> >
@for (route of routes(); track route; let i = $index) { @for (route of routes(); track $index + (route.input || ''); let i = $index) {
<div class="m-2" cdkDrag> <div class="m-2" cdkDrag>
<app-route <app-route
[id]="listService.pathToId(`routes/${i}`)" [id]="listService.pathToId(`routes/${i}`)"
+3 -3
View File
@@ -6,7 +6,7 @@ import {
moveItemInArray, moveItemInArray,
transferArrayItem, transferArrayItem,
} from '@angular/cdk/drag-drop'; } from '@angular/cdk/drag-drop';
import { Component, inject, input, output } from '@angular/core'; import { Component, inject, input, output, ChangeDetectionStrategy } from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
import { MatMenuModule } from '@angular/material/menu'; import { MatMenuModule } from '@angular/material/menu';
@@ -14,9 +14,9 @@ import { MatSnackBar } from '@angular/material/snack-bar';
import { MatTooltipModule } from '@angular/material/tooltip'; import { MatTooltipModule } from '@angular/material/tooltip';
import { cloneDeep } from 'lodash-es'; import { cloneDeep } from 'lodash-es';
import { RouteConfig } from '../../models/config'; import { RouteConfig } from '../../models/config';
import { ListsService } from '../../services/lists';
import { SchemaService } from '../../services/schema'; import { SchemaService } from '../../services/schema';
import { RouteComponent } from '../route/route'; import { RouteComponent } from '../route/route';
import { ListsService } from '../../services/lists';
@Component({ @Component({
selector: 'app-route-list', selector: 'app-route-list',
@@ -31,6 +31,7 @@ import { ListsService } from '../../services/lists';
A11yModule, A11yModule,
], ],
templateUrl: './route-list.html', templateUrl: './route-list.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './route-list.css', styleUrl: './route-list.css',
}) })
export class RouteListComponent { export class RouteListComponent {
@@ -123,7 +124,6 @@ export class RouteListComponent {
} }
drop(event: CdkDragDrop<RouteConfig[] | undefined>) { drop(event: CdkDragDrop<RouteConfig[] | undefined>) {
console.log('Drop event:', event);
if (event.previousContainer === event.container) { if (event.previousContainer === event.container) {
const currentRoutes = this.routes(); const currentRoutes = this.routes();
if (currentRoutes === undefined) { if (currentRoutes === undefined) {
+2 -2
View File
@@ -81,7 +81,7 @@
(cdkDropListDropped)="drop($event)" (cdkDropListDropped)="drop($event)"
[cdkDropListData]="route()?.processors" [cdkDropListData]="route()?.processors"
> >
@for (processor of processors(); track processor; let i = $index) { @for (processor of processors(); track $index + processor.type; let i = $index) {
<div cdkDrag> <div cdkDrag>
<app-processor <app-processor
[path]="path() + '/processors/' + i" [path]="path() + '/processors/' + i"
@@ -237,7 +237,7 @@
(cdkDropListDropped)="drop($event)" (cdkDropListDropped)="drop($event)"
[cdkDropListData]="route()?.processors" [cdkDropListData]="route()?.processors"
> >
@for (processor of processors(); track processor; let i = $index) { @for (processor of processors(); track $index + processor.type; let i = $index) {
<div cdkDrag> <div cdkDrag>
<app-processor <app-processor
[path]="path() + '/processors/' + i" [path]="path() + '/processors/' + i"
+10 -1
View File
@@ -7,7 +7,15 @@ import {
moveItemInArray, moveItemInArray,
} from '@angular/cdk/drag-drop'; } from '@angular/cdk/drag-drop';
import { JsonPipe } from '@angular/common'; import { JsonPipe } from '@angular/common';
import { Component, computed, inject, input, output, signal } from '@angular/core'; import {
Component,
computed,
inject,
input,
output,
signal,
ChangeDetectionStrategy,
} from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { MatFormFieldModule } from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon';
@@ -39,6 +47,7 @@ import { ProcessorComponent } from '../processor/processor';
CdkDragPlaceholder, CdkDragPlaceholder,
], ],
templateUrl: './route.html', templateUrl: './route.html',
changeDetection: ChangeDetectionStrategy.Eager,
styleUrl: './route.css', styleUrl: './route.css',
}) })
export class RouteComponent { export class RouteComponent {
+12 -16
View File
@@ -17,17 +17,18 @@ import { SettingsService } from './settings';
}) })
export class ConfigService { export class ConfigService {
pendingConfigIsValid = computed(() => { pendingConfigIsValid = computed(() => {
const config = this.currentlyShownConfig(); const config = this._currentlyShownConfig();
if (config === undefined) { if (config === undefined) {
return false; return false;
} }
return this.schemaService.validate(this.schemaService.configSchemaId, config); return this.schemaService.validate(this.schemaService.configSchemaId, config);
}); });
currentlyShownConfig = signal<Config | undefined>(undefined); private runningConfig = signal<Config | undefined>(undefined);
runningConfig = signal<Config | undefined>(undefined); private _currentlyShownConfig = signal<Config | undefined>(undefined);
readonly currentlyShownConfig = this._currentlyShownConfig.asReadonly();
configIsDirty = computed(() => { configIsDirty = computed(() => {
const currentlyShown = this.currentlyShownConfig(); const currentlyShown = this._currentlyShownConfig();
const running = this.runningConfig(); const running = this.runningConfig();
if (currentlyShown === undefined || running === undefined) { if (currentlyShown === undefined || running === undefined) {
return false; return false;
@@ -44,7 +45,7 @@ export class ConfigService {
constructor(private schemaService: SchemaService) { constructor(private schemaService: SchemaService) {
effect(() => { effect(() => {
console.log('config state changed', this.currentlyShownConfig()); console.log('config state changed', this._currentlyShownConfig());
}); });
effect(() => { effect(() => {
@@ -124,27 +125,22 @@ export class ConfigService {
} }
updateCurrentlyShownConfig(config: Config) { updateCurrentlyShownConfig(config: Config) {
if (isEqual(config, this.currentlyShownConfig())) { this._currentlyShownConfig.set(cloneDeep(config));
// NOTE(jwetzell): no update
return;
}
this.currentlyShownConfig.set(cloneDeep(config));
} }
updateModules(modules: ModuleConfig[]) { updateModules(modules: ModuleConfig[]) {
const currentConfig = this.currentlyShownConfig(); var newConfig = cloneDeep(this._currentlyShownConfig());
if (!currentConfig) { if (!newConfig) {
console.error('No currently shown config to update modules on'); console.error('No currently shown config to update modules on');
return; return;
} }
newConfig.modules = cloneDeep(modules);
currentConfig.modules = cloneDeep(modules); this.updateCurrentlyShownConfig(newConfig);
this.updateCurrentlyShownConfig(currentConfig);
} }
updateRoutes(routes: RouteConfig[]) { updateRoutes(routes: RouteConfig[]) {
const currentConfig = this.currentlyShownConfig(); const currentConfig = this._currentlyShownConfig();
if (!currentConfig) { if (!currentConfig) {
console.error('No currently shown config to update routes on'); console.error('No currently shown config to update routes on');
return; return;
+9 -1
View File
@@ -7,5 +7,13 @@
"types": [] "types": []
}, },
"include": ["src/**/*.ts"], "include": ["src/**/*.ts"],
"exclude": ["src/**/*.spec.ts"] "exclude": ["src/**/*.spec.ts"],
"angularCompilerOptions": {
"extendedDiagnostics": {
"checks": {
"nullishCoalescingNotNullable": "suppress",
"optionalChainNotNullable": "suppress"
}
}
}
} }