aboutsummaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts
diff options
context:
space:
mode:
authorsai-neetha <sai-neetha.phulmali@highstreet-technologies.com>2023-03-20 08:05:47 +0100
committerhighstreetherbert <herbert.eiselt@highstreet-technologies.com>2023-03-29 19:06:25 +0200
commit15e2d3a29b0d1a304965e34f114a911e5a7abdb3 (patch)
tree711ef5616aceb115a1081cccd152eeae0e87bc79 /sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts
parentac5e2dc8f1ee4d5549f7260374e8164d52b07f55 (diff)
Odlux Update
Add eslint and custom icons update Issue-ID: CCSDK-3871 Signed-off-by: sai-neetha <sai-neetha.phulmali@highstreet-technologies.com> Change-Id: If6b676128cc9cff0437a5dc54f85eaafd3b8c586 Signed-off-by: highstreetherbert <herbert.eiselt@highstreet-technologies.com>
Diffstat (limited to 'sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts')
-rw-r--r--sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts256
1 files changed, 129 insertions, 127 deletions
diff --git a/sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts b/sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts
index 29484d812..7d9e63caf 100644
--- a/sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts
+++ b/sdnr/wt/odlux/apps/configurationApp/src/models/uiModels.ts
@@ -16,128 +16,130 @@
* ============LICENSE_END==========================================================================
*/
+import type { WhenAST } from '../yang/whenParser';
+
export type ViewElementBase = {
- "id": string;
- "label": string;
- "module": string;
- "path": string;
- "config": boolean;
- "ifFeature"?: string;
- "when"?: string;
- "mandatory"?: boolean;
- "description"?: string;
- "isList"?: boolean;
- "default"?: string;
- "status"?: "current" | "deprecated" | "obsolete",
- "reference"?: string, // https://tools.ietf.org/html/rfc7950#section-7.21.4
-}
+ 'id': string;
+ 'label': string;
+ 'module': string;
+ 'path': string;
+ 'config': boolean;
+ 'ifFeature'?: string;
+ 'when'?: WhenAST;
+ 'mandatory'?: boolean;
+ 'description'?: string;
+ 'isList'?: boolean;
+ 'default'?: string;
+ 'status'?: 'current' | 'deprecated' | 'obsolete';
+ 'reference'?: string; // https://tools.ietf.org/html/rfc7950#section-7.21.4
+};
// https://tools.ietf.org/html/rfc7950#section-9.8
export type ViewElementBinary = ViewElementBase & {
- "uiType": "binary";
- "length"?: Expression<YangRange>; // number of octets
-}
+ 'uiType': 'binary';
+ 'length'?: Expression<YangRange>; // number of octets
+};
// https://tools.ietf.org/html/rfc7950#section-9.7.4
export type ViewElementBits = ViewElementBase & {
- "uiType": "bits";
- "flags": {
+ 'uiType': 'bits';
+ 'flags': {
[name: string]: number | undefined; // 0 - 4294967295
- }
-}
+ };
+};
// https://tools.ietf.org/html/rfc7950#section-9
export type ViewElementString = ViewElementBase & {
- "uiType": "string";
- "pattern"?: Expression<RegExp>;
- "length"?: Expression<YangRange>;
- "invertMatch"?: true;
-}
+ 'uiType': 'string';
+ 'pattern'?: Expression<RegExp>;
+ 'length'?: Expression<YangRange>;
+ 'invertMatch'?: true;
+};
// special case derived from
export type ViewElementDate = ViewElementBase & {
- "uiType": "date";
- "pattern"?: Expression<RegExp>;
- "length"?: Expression<YangRange>;
- "invertMatch"?: true;
-}
+ 'uiType': 'date';
+ 'pattern'?: Expression<RegExp>;
+ 'length'?: Expression<YangRange>;
+ 'invertMatch'?: true;
+};
// https://tools.ietf.org/html/rfc7950#section-9.3
export type ViewElementNumber = ViewElementBase & {
- "uiType": "number";
- "min": number;
- "max": number;
- "range"?: Expression<YangRange>;
- "units"?: string;
- "format"?: string;
- "fDigits"?: number;
-}
+ 'uiType': 'number';
+ 'min': number;
+ 'max': number;
+ 'range'?: Expression<YangRange>;
+ 'units'?: string;
+ 'format'?: string;
+ 'fDigits'?: number;
+};
// https://tools.ietf.org/html/rfc7950#section-9.5
export type ViewElementBoolean = ViewElementBase & {
- "uiType": "boolean";
- "trueValue"?: string;
- "falseValue"?: string;
-}
+ 'uiType': 'boolean';
+ 'trueValue'?: string;
+ 'falseValue'?: string;
+};
// https://tools.ietf.org/html/rfc7950#section-9.6.4
export type ViewElementSelection = ViewElementBase & {
- "uiType": "selection";
- "multiSelect"?: boolean
- "options": {
- "key": string;
- "value": string;
- "description"?: string,
- "status"?: "current" | "deprecated" | "obsolete",
- "reference"?: string,
+ 'uiType': 'selection';
+ 'multiSelect'?: boolean;
+ 'options': {
+ 'key': string;
+ 'value': string;
+ 'description'?: string;
+ 'status'?: 'current' | 'deprecated' | 'obsolete';
+ 'reference'?: string;
}[];
-}
+};
// is a list if isList is true ;-)
export type ViewElementObject = ViewElementBase & {
- "uiType": "object";
- "isList"?: false;
- "viewId": string;
-}
+ 'uiType': 'object';
+ 'isList'?: false;
+ 'viewId': string;
+};
// Hint: read only lists do not need a key
export type ViewElementList = (ViewElementBase & {
- "uiType": "object";
- "isList": true;
- "viewId": string;
- "key"?: string;
+ 'uiType': 'object';
+ 'isList': true;
+ 'viewId': string;
+ 'key'?: string;
});
export type ViewElementReference = ViewElementBase & {
- "uiType": "reference";
- "referencePath": string;
- "ref": (currentPath: string) => [ViewElement , string] | undefined;
-}
+ 'uiType': 'reference';
+ 'referencePath': string;
+ 'ref': (currentPath: string) => [ViewElement, string] | undefined;
+};
export type ViewElementUnion = ViewElementBase & {
- "uiType": "union";
- "elements": ViewElement[];
-}
+ 'uiType': 'union';
+ 'elements': ViewElement[];
+};
-export type ViewElementChoiseCase = { id: string, label: string, description?: string, elements: { [name: string]: ViewElement } };
+export type ViewElementChoiceCase = { id: string; label: string; description?: string; elements: { [name: string]: ViewElement } };
-export type ViewElementChoise = ViewElementBase & {
- "uiType": "choise";
- "cases": {
- [name: string]: ViewElementChoiseCase;
- }
-}
+export type ViewElementChoice = ViewElementBase & {
+ 'uiType': 'choice';
+ 'cases': {
+ [name: string]: ViewElementChoiceCase;
+ };
+};
// https://tools.ietf.org/html/rfc7950#section-7.14.1
export type ViewElementRpc = ViewElementBase & {
- "uiType": "rpc";
- "inputViewId"?: string;
- "outputViewId"?: string;
-}
+ 'uiType': 'rpc';
+ 'inputViewId'?: string;
+ 'outputViewId'?: string;
+};
export type ViewElementEmpty = ViewElementBase & {
- "uiType": "empty";
-}
+ 'uiType': 'empty';
+};
export type ViewElement =
| ViewElementEmpty
@@ -152,88 +154,88 @@ export type ViewElement =
| ViewElementSelection
| ViewElementReference
| ViewElementUnion
- | ViewElementChoise
+ | ViewElementChoice
| ViewElementRpc;
export const isViewElementString = (viewElement: ViewElement): viewElement is ViewElementString => {
- return viewElement && (viewElement.uiType === "string" || viewElement.uiType === "date");
-}
+ return viewElement && (viewElement.uiType === 'string' || viewElement.uiType === 'date');
+};
export const isViewElementDate = (viewElement: ViewElement): viewElement is ViewElementDate => {
- return viewElement && (viewElement.uiType === "date");
-}
+ return viewElement && (viewElement.uiType === 'date');
+};
export const isViewElementNumber = (viewElement: ViewElement): viewElement is ViewElementNumber => {
- return viewElement && viewElement.uiType === "number";
-}
+ return viewElement && viewElement.uiType === 'number';
+};
export const isViewElementBoolean = (viewElement: ViewElement): viewElement is ViewElementBoolean => {
- return viewElement && viewElement.uiType === "boolean";
-}
+ return viewElement && viewElement.uiType === 'boolean';
+};
export const isViewElementObject = (viewElement: ViewElement): viewElement is ViewElementObject => {
- return viewElement && viewElement.uiType === "object" && viewElement.isList === false;
-}
+ return viewElement && viewElement.uiType === 'object' && viewElement.isList === false;
+};
export const isViewElementList = (viewElement: ViewElement): viewElement is ViewElementList => {
- return viewElement && viewElement.uiType === "object" && viewElement.isList === true;
-}
+ return viewElement && viewElement.uiType === 'object' && viewElement.isList === true;
+};
export const isViewElementObjectOrList = (viewElement: ViewElement): viewElement is ViewElementObject | ViewElementList => {
- return viewElement && viewElement.uiType === "object";
-}
+ return viewElement && viewElement.uiType === 'object';
+};
export const isViewElementSelection = (viewElement: ViewElement): viewElement is ViewElementSelection => {
- return viewElement && viewElement.uiType === "selection";
-}
+ return viewElement && viewElement.uiType === 'selection';
+};
export const isViewElementReference = (viewElement: ViewElement): viewElement is ViewElementReference => {
- return viewElement && viewElement.uiType === "reference";
-}
+ return viewElement && viewElement.uiType === 'reference';
+};
export const isViewElementUnion = (viewElement: ViewElement): viewElement is ViewElementUnion => {
- return viewElement && viewElement.uiType === "union";
-}
+ return viewElement && viewElement.uiType === 'union';
+};
-export const isViewElementChoise = (viewElement: ViewElement): viewElement is ViewElementChoise => {
- return viewElement && viewElement.uiType === "choise";
-}
+export const isViewElementChoice = (viewElement: ViewElement): viewElement is ViewElementChoice => {
+ return viewElement && viewElement.uiType === 'choice';
+};
export const isViewElementRpc = (viewElement: ViewElement): viewElement is ViewElementRpc => {
- return viewElement && viewElement.uiType === "rpc";
-}
+ return viewElement && viewElement.uiType === 'rpc';
+};
export const isViewElementEmpty = (viewElement: ViewElement): viewElement is ViewElementRpc => {
- return viewElement && viewElement.uiType === "empty";
-}
+ return viewElement && viewElement.uiType === 'empty';
+};
-export const ResolveFunction = Symbol("IsResolved");
+export const ResolveFunction = Symbol('IsResolved');
export type ViewSpecification = {
- "id": string;
- "ns"?: string;
- "name"?: string;
- "title"?: string;
- "parentView"?: string;
- "language": string;
- "ifFeature"?: string;
- "when"?: string;
- "uses"?: (string[]) & { [ResolveFunction]?: (parent: string) => void };
- "elements": { [name: string]: ViewElement };
- "config": boolean;
- readonly "canEdit": boolean;
-}
+ id: string;
+ ns?: string;
+ name?: string;
+ title?: string;
+ parentView?: string;
+ language: string;
+ ifFeature?: string;
+ when?: WhenAST;
+ uses?: (string[]) & { [ResolveFunction]?: (parent: string) => void };
+ elements: { [name: string]: ViewElement };
+ config: boolean;
+ readonly canEdit: boolean;
+};
export type YangRange = {
- min: number,
- max: number,
-}
+ min: number;
+ max: number;
+};
export type Expression<T> =
| T
| Operator<T>;
export type Operator<T> = {
- operation: "AND" | "OR";
+ operation: 'AND' | 'OR';
arguments: Expression<T>[];
-} \ No newline at end of file
+}; \ No newline at end of file