nakedobjects.spa
Version:
Single Page Application client for a Naked Objects application.
124 lines (123 loc) • 6.36 kB
TypeScript
/// <reference types="lodash" />
import { RouteData, PaneRouteData, InteractionMode, CollectionViewState, ViewType, Pane } from './route-data';
import { Observable } from 'rxjs/Observable';
import { Router } from '@angular/router';
import { Location } from '@angular/common';
import { ConfigService } from './config.service';
import { LoggerService } from './logger.service';
import { Dictionary } from 'lodash';
import * as Models from "./models";
import * as Constants from './constants';
export declare class UrlManagerService {
private readonly router;
private readonly location;
private readonly configService;
private readonly loggerService;
constructor(router: Router, location: Location, configService: ConfigService, loggerService: LoggerService);
private readonly shortCutMarker;
private readonly urlShortCuts;
private readonly keySeparator;
private capturedPanes;
private currentPaneId;
private createSubMask(arr);
private createArrays(arr, arrays?);
private createMask(arr);
private arrayFromSubMask(sMask);
private arrayFromMask(sMask);
private getSearch();
private getPath();
private setNewSearch(result);
private getIds(typeOfId, paneId);
private mapIds(ids);
private getAndMapIds(typeOfId, paneId);
private getMappedValues(mappedIds);
private getInteractionMode(rawInteractionMode);
private getPaneParams(params, paneId);
private setPaneRouteDataFromParms(paneRouteData, paneId, routeParams);
private setPaneRouteData(paneRouteData, paneId);
private isSinglePane();
private searchKeysForPane(search, paneId, raw);
private allSearchKeysForPane(search, paneId);
private clearPane(search, paneId);
private clearSearchKeys(search, paneId, keys);
private paneIsAlwaysSingle(paneType);
private setupPaneNumberAndTypes(pane, newPaneType, newMode?);
private capturePane(paneId);
private getOidFromHref(href);
private getPidFromHref(href);
private setValue(paneId, search, p, pv, valueType);
private setParameter(paneId, search, p, pv);
private getId(key, search);
private setId(key, id, search);
private clearId(key, search);
private validKeysForHome();
private validKeysForObject();
private validKeysForMultiLineDialog();
private validKeysForList();
private validKeysForAttachment();
private validKeys(path);
private clearInvalidParmsFromSearch(paneId, search, path);
private handleTransition(paneId, search, transition);
private executeTransition(newValues, paneId, transition, condition);
setHome: (paneId?: Pane) => void;
setRecent: (paneId?: Pane) => void;
setMenu: (menuId: string, paneId?: Pane) => void;
setDialog: (dialogId: string, paneId?: Pane) => void;
setMultiLineDialog: (dialogId: string, paneId: Pane) => void;
setDialogOrMultiLineDialog: (actionRep: Models.ActionRepresentation | Models.ActionMember, paneId?: Pane) => void;
private closeOrCancelDialog(id, paneId, transition);
closeDialogKeepHistory: (id: string, paneId?: Pane) => void;
closeDialogReplaceHistory: (id: string, paneId?: Pane) => void;
setObject: (resultObject: Models.DomainObjectRepresentation, paneId?: Pane) => void;
setObjectWithMode: (resultObject: Models.DomainObjectRepresentation, newMode: InteractionMode, paneId?: Pane) => void;
setList: (actionMember: Models.ActionRepresentation | Models.InvokableActionMember, parms: Dictionary<Models.Value>, fromPaneId?: Pane, toPaneId?: Pane) => Dictionary<string>;
setProperty: (href: string, paneId?: Pane) => void;
setItem: (link: Models.Link, paneId?: Pane) => void;
setAttachment: (attachmentlink: Models.Link, paneId?: Pane) => void;
toggleObjectMenu: (paneId?: Pane) => void;
private checkAndSetValue(paneId, check, set);
setParameterValue: (actionId: string, p: Models.Parameter, pv: Models.Value, paneId?: Pane) => void;
setCollectionMemberState: (collectionMemberId: string, state: CollectionViewState, paneId?: Pane) => void;
setListState: (state: CollectionViewState, paneId?: Pane) => void;
setInteractionMode: (newMode: InteractionMode, paneId?: Pane) => void;
setItemSelected: (item: number, isSelected: boolean, collectionId: string, paneId?: Pane) => void;
setAllItemsSelected: (isSelected: boolean, collectionId: string, paneId?: Pane) => void;
setListPaging: (newPage: number, newPageSize: number, state: CollectionViewState, paneId?: Pane) => void;
setError: (errorCategory: Models.ErrorCategory, ec?: Models.HttpStatusCode | Models.ClientErrorCode | undefined) => void;
getRouteData: () => RouteData;
getViewType(view: string): ViewType;
getPaneRouteDataObservable: (paneId: Pane) => Observable<PaneRouteData>;
pushUrlState: (paneId?: Pane) => void;
getUrlState: (paneId?: Pane) => {
paneType: Constants.PathSegment;
search: {};
};
getListCacheIndexFromSearch: (search: Dictionary<string>, paneId: Pane, newPage: number, newPageSize: number, format?: CollectionViewState | undefined) => string;
getListCacheIndex: (paneId: Pane, newPage: number, newPageSize: number, format?: CollectionViewState | undefined) => string;
popUrlState: (paneId?: Pane) => void;
clearUrlState: (paneId: Pane) => void;
private swapSearchIds(search);
swapPanes: () => void;
private setMode(newMode);
private getMode();
cicero: () => void;
gemini: () => void;
isGemini: () => boolean;
applicationProperties: () => void;
logoff: () => void;
currentpane: () => Pane;
setHomeSinglePane: () => void;
singlePane: (paneId?: Pane) => void;
private getLocation(paneId);
private isLocation(paneId, location);
isHome: (paneId?: Pane) => boolean;
isObject: (paneId?: Pane) => boolean;
isList: (paneId?: Pane) => boolean;
isError: (paneId?: Pane) => boolean;
isRecent: (paneId?: Pane) => boolean;
isAttachment: (paneId?: Pane) => boolean;
isApplicationProperties: (paneId?: Pane) => boolean;
isMultiLineDialog: (paneId?: Pane) => boolean;
private toggleReloadFlag(search, paneId);
triggerPageReloadByFlippingReloadFlagInUrl: (paneId?: Pane) => void;
}