fix(core): Remove SelectionDimension functionality
This commit is contained in:
parent
60b9ad563c
commit
fb974c3a0f
@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2024-10-06 - 1.1.1 - fix(core)
|
||||||
|
Remove SelectionDimension functionality
|
||||||
|
|
||||||
|
- Removed SelectionDimension class and references
|
||||||
|
- Deleted smartrouter.classes.selectiondimension.ts and related imports
|
||||||
|
|
||||||
## 2024-10-06 - 1.1.0 - feat(core)
|
## 2024-10-06 - 1.1.0 - feat(core)
|
||||||
Add selection dimensions and route removal functionality
|
Add selection dimensions and route removal functionality
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@push.rocks/smartrouter',
|
name: '@push.rocks/smartrouter',
|
||||||
version: '1.1.0',
|
version: '1.1.1',
|
||||||
description: 'A JavaScript library providing routing capabilities for web applications.'
|
description: 'A JavaScript library providing routing capabilities for web applications.'
|
||||||
}
|
}
|
||||||
|
@ -1,50 +0,0 @@
|
|||||||
import * as plugins from './smartrouter.plugins.js';
|
|
||||||
|
|
||||||
export interface ISelectionOption<T = any> {
|
|
||||||
key: string;
|
|
||||||
detail: T;
|
|
||||||
selected?: boolean;
|
|
||||||
action: () => Promise<T>;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class SelectionDimension<T = any> {
|
|
||||||
/**
|
|
||||||
* the key of the selection dimension
|
|
||||||
*/
|
|
||||||
public dimensionKey: string;
|
|
||||||
/**
|
|
||||||
* the level of the selection dimension
|
|
||||||
* a higher level is execution later than a lower level
|
|
||||||
* during catchup phase
|
|
||||||
*/
|
|
||||||
public dimensionLevel: number;
|
|
||||||
public dimensionPeers: SelectionDimension<T>[] = [];
|
|
||||||
public selectionOptions: ISelectionOption<T>[] = [];
|
|
||||||
|
|
||||||
public selectionOptionSubject = new plugins.smartrx.rxjs.Subject<ISelectionOption<T>[]>();
|
|
||||||
|
|
||||||
public async emitSelectionOptions () {
|
|
||||||
const selectionOptions = this.selectionOptions.map((selectionOptionArg): ISelectionOption => {
|
|
||||||
return {
|
|
||||||
key: selectionOptionArg.key,
|
|
||||||
detail: selectionOptionArg.detail,
|
|
||||||
action: async () => {
|
|
||||||
this.updateSelection(selectionOptionArg);
|
|
||||||
return await selectionOptionArg.action();
|
|
||||||
},
|
|
||||||
}
|
|
||||||
});
|
|
||||||
this.selectionOptionSubject.next(selectionOptions);
|
|
||||||
}
|
|
||||||
|
|
||||||
public async updateSelection (selectionOptionArg: ISelectionOption<T>) {
|
|
||||||
for (const selectionOption of this.selectionOptions) {
|
|
||||||
if (selectionOption.key === selectionOptionArg.key) {
|
|
||||||
selectionOption.selected = true;
|
|
||||||
} else {
|
|
||||||
selectionOption.selected = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.emitSelectionOptions();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
import * as plugins from './smartrouter.plugins.js';
|
import * as plugins from './smartrouter.plugins.js';
|
||||||
|
|
||||||
import { QueryParams } from './smartrouter.classes.queryparams.js';
|
import { QueryParams } from './smartrouter.classes.queryparams.js';
|
||||||
import { type ISelectionOption, SelectionDimension } from './smartrouter.classes.selectiondimension.js';
|
|
||||||
|
|
||||||
const routeLog = (message: string) => {
|
const routeLog = (message: string) => {
|
||||||
console.log(`%c[Router]%c ${message}`, 'color: rgb(255, 105, 100);', 'color: inherit');
|
console.log(`%c[Router]%c ${message}`, 'color: rgb(255, 105, 100);', 'color: inherit');
|
||||||
@ -102,19 +101,4 @@ export class SmartRouter {
|
|||||||
} as IRouteInfo); // not waiting here
|
} as IRouteInfo); // not waiting here
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public selectionDimensionsMap = new plugins.lik.ObjectMap<SelectionDimension>();
|
|
||||||
public async createSelectionDimension(optionsArg: {
|
|
||||||
routeArg: string,
|
|
||||||
keyArg: string,
|
|
||||||
options: ISelectionOption[],
|
|
||||||
peers?: SelectionDimension[],
|
|
||||||
}) {
|
|
||||||
const selectionDimension = new SelectionDimension();
|
|
||||||
selectionDimension.dimensionKey = optionsArg.keyArg;
|
|
||||||
selectionDimension.dimensionPeers = optionsArg.peers;
|
|
||||||
selectionDimension.selectionOptions = optionsArg.options;
|
|
||||||
await this.selectionDimensionsMap.findOneAndRemove(async dimensionArg => dimensionArg.dimensionKey === optionsArg.keyArg);
|
|
||||||
this.selectionDimensionsMap.addMappedUnique(optionsArg.keyArg, selectionDimension);
|
|
||||||
}
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user