@ -2,54 +2,69 @@ import '@angular/localize/init';
import { IRoute } from './interfaces/interfaces' ;
export const routes = {
access : 'access' ,
adminControl : 'admin' ,
api : 'api' ,
auth : 'auth' ,
demo : 'demo' ,
i18n : 'i18n' ,
jobs : 'jobs' ,
market : 'market' ,
marketData : 'market-data' ,
membership : 'membership' ,
personalFinanceTools : 'personal-finance-tools' ,
public : 'p' ,
saas : 'saas' ,
settings : 'settings' ,
start : 'start' ,
users : 'users' ,
webauthn : 'webauthn' ,
// Publicly accessible pages
about : $localize ` :kebab-case:about ` ,
blog : 'blog' ,
changelog : $localize ` :kebab-case:changelog ` ,
faq : $localize ` :kebab-case:faq ` ,
glossary : $localize ` :kebab-case:glossary ` ,
guides : $localize ` :kebab-case:guides ` ,
license : $localize ` :kebab-case:license ` ,
markets : $localize ` :kebab-case:markets ` ,
openSourceAlternativeTo : $localize ` :kebab-case:open-source-alternative-to ` ,
ossFriends : 'oss-friends' ,
pricing : $localize ` :kebab-case:pricing ` ,
privacyPolicy : $localize ` :kebab-case:privacy-policy ` ,
resources : $localize ` :kebab-case:resources ` ,
selfHosting : $localize ` :kebab-case:self-hosting ` ,
termsOfService : $localize ` :kebab-case:terms-of-service `
} ;
export const internalRoutes : Record < string , IRoute > = {
account : {
path : 'account' ,
routerLink : [ '/account' ] ,
subRoutes : {
access : {
path : 'access' ,
routerLink : [ '/account' , 'access' ] ,
title : $localize ` Access `
} ,
membership : {
path : 'membership' ,
routerLink : [ '/account' , 'membership' ] ,
title : $localize ` Membership `
}
} ,
title : $localize ` Settings `
} ,
adminControl : {
excludeFromAssistant : true ,
path : 'admin' ,
routerLink : [ '/admin' ] ,
subRoutes : {
jobs : {
path : 'jobs' ,
routerLink : [ '/admin' , 'jobs' ] ,
title : $localize ` Job Queue `
} ,
marketData : {
path : 'market-data' ,
routerLink : [ '/admin' , 'market-data' ] ,
title : $localize ` Market Data `
} ,
settings : {
path : 'settings' ,
routerLink : [ '/admin' , 'settings' ] ,
title : $localize ` Settings `
} ,
users : {
path : 'users' ,
routerLink : [ '/admin' , 'users' ] ,
title : $localize ` Users `
}
} ,
title : $localize ` Admin Control `
} ,
accounts : {
path : 'accounts' ,
routerLink : [ '/accounts' ] ,
title : $localize ` Accounts `
} ,
api : {
excludeFromAssistant : true ,
path : 'api' ,
routerLink : [ '/api' ] ,
title : 'Ghostfolio API'
} ,
auth : {
excludeFromAssistant : true ,
path : 'auth' ,
routerLink : [ '/auth' ] ,
title : $localize ` Sign in `
} ,
home : {
path : 'home' ,
routerLink : [ '/home' ] ,
@ -59,6 +74,11 @@ export const internalRoutes: Record<string, IRoute> = {
routerLink : [ '/home' , 'holdings' ] ,
title : $localize ` Holdings `
} ,
markets : {
path : 'markets' ,
routerLink : [ '/home' , 'markets' ] ,
title : $localize ` Markets `
} ,
summary : {
path : 'summary' ,
routerLink : [ '/home' , 'summary' ] ,
@ -72,6 +92,12 @@ export const internalRoutes: Record<string, IRoute> = {
} ,
title : $localize ` Overview `
} ,
i18n : {
excludeFromAssistant : true ,
path : 'i18n' ,
routerLink : [ '/i18n' ] ,
title : $localize ` Internationalization `
} ,
portfolio : {
path : 'portfolio' ,
routerLink : [ '/portfolio' ] ,
@ -104,6 +130,12 @@ export const internalRoutes: Record<string, IRoute> = {
} ,
title : $localize ` Portfolio `
} ,
webauthn : {
excludeFromAssistant : true ,
path : 'webauthn' ,
routerLink : [ '/webauthn' ] ,
title : $localize ` Sign in `
} ,
zen : {
excludeFromAssistant : true ,
path : 'zen' ,
@ -120,19 +152,156 @@ export const internalRoutes: Record<string, IRoute> = {
} ;
export const publicRoutes = {
about : {
path : $localize ` :kebab-case:about ` ,
routerLink : [ '/' + $localize ` :kebab-case:about ` ] ,
subRoutes : {
changelog : {
path : $localize ` :kebab-case:changelog ` ,
routerLink : [
'/' + $localize ` :kebab-case:about ` ,
$localize ` :kebab-case:changelog `
] ,
title : $localize ` Changelog `
} ,
license : {
path : $localize ` :kebab-case:license ` ,
routerLink : [
'/' + $localize ` :kebab-case:about ` ,
$localize ` :kebab-case:license `
] ,
title : $localize ` License `
} ,
ossFriends : {
path : 'oss-friends' ,
routerLink : [ '/' + $localize ` :kebab-case:about ` , 'oss-friends' ] ,
title : 'OSS Friends'
} ,
privacyPolicy : {
path : $localize ` :kebab-case:privacy-policy ` ,
routerLink : [
'/' + $localize ` :kebab-case:about ` ,
$localize ` :kebab-case:privacy-policy `
] ,
title : $localize ` Privacy Policy `
} ,
termsOfService : {
path : $localize ` :kebab-case:terms-of-service ` ,
routerLink : [
'/' + $localize ` :kebab-case:about ` ,
$localize ` :kebab-case:terms-of-service `
] ,
title : $localize ` Terms of Service `
}
} ,
title : $localize ` About `
} ,
blog : {
path : 'blog' ,
routerLink : [ '/blog' ] ,
title : $localize ` Blog `
} ,
demo : {
path : 'demo' ,
routerLink : [ '/demo' ] ,
title : $localize ` Live Demo `
} ,
faq : {
path : $localize ` :kebab-case:faq ` ,
routerLink : [ '/' + $localize ` :kebab-case:faq ` ] ,
subRoutes : {
saas : {
path : 'saas' ,
routerLink : [ '/' + $localize ` :kebab-case:faq ` , 'saas' ] ,
title : $localize ` Cloud ` + ' (SaaS)'
} ,
selfHosting : {
path : $localize ` :kebab-case:self-hosting ` ,
routerLink : [
'/' + $localize ` :kebab-case:faq ` ,
$localize ` :kebab-case:self-hosting `
] ,
title : $localize ` Self-Hosting `
}
} ,
title : $localize ` Frequently Asked Questions (FAQ) `
} ,
features : {
path : $localize ` :kebab-case:features ` ,
routerLink : [ '/' + $localize ` :kebab-case:features ` ] ,
title : $localize ` Features `
} ,
markets : {
path : $localize ` :kebab-case:markets ` ,
routerLink : [ '/' + $localize ` :kebab-case:markets ` ] ,
title : $localize ` Markets `
} ,
openStartup : {
path : 'open' ,
routerLink : [ '/open' ] ,
title : 'Open Startup'
} ,
pricing : {
path : $localize ` :kebab-case:pricing ` ,
routerLink : [ '/' + $localize ` :kebab-case:pricing ` ] ,
title : $localize ` Pricing `
} ,
public : {
path : 'p' ,
routerLink : [ '/p' ]
} ,
register : {
path : $localize ` :kebab-case:register ` ,
routerLink : [ '/' + $localize ` :kebab-case:register ` ] ,
title : $localize ` Registration `
} ,
resources : {
path : $localize ` :kebab-case:resources ` ,
routerLink : [ '/' + $localize ` :kebab-case:resources ` ] ,
subRoutes : {
glossary : {
path : $localize ` :kebab-case:glossary ` ,
routerLink : [
'/' + $localize ` :kebab-case:resources ` ,
$localize ` :kebab-case:glossary `
] ,
title : $localize ` Glossary `
} ,
guides : {
path : $localize ` :kebab-case:guides ` ,
routerLink : [
'/' + $localize ` :kebab-case:resources ` ,
$localize ` :kebab-case:guides `
] ,
title : $localize ` Guides `
} ,
markets : {
path : $localize ` :kebab-case:markets ` ,
routerLink : [
'/' + $localize ` :kebab-case:resources ` ,
$localize ` :kebab-case:markets `
] ,
title : $localize ` Markets `
} ,
personalFinanceTools : {
path : 'personal-finance-tools' ,
routerLink : [
'/' + $localize ` :kebab-case:resources ` ,
'personal-finance-tools'
] ,
subRoutes : {
product : {
path : $localize ` :kebab-case:open-source-alternative-to ` ,
title : $localize ` Open Source Alternative to `
}
} ,
title : $localize ` Personal Finance Tools `
}
} ,
title : $localize ` Resources `
} ,
start : {
path : 'start' ,
routerLink : [ '/start' ]
}
} ;