<p>Sakai is an application template for Angular and is distributed as a CLI project. Current versions is Angular v14 with PrimeNG v14. In case CLI is not installed already, use the command below to set it up.</p>
<p>The application should run at <spanclass="font-semibold">http://localhost:4200/</span>, you may now start with the development of your application.</p>
Run 'ng serve' for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
Run 'ng generate component component-name' to generate a new component. You can also use `ng generate directive/pipe/service/class/module`.
Run 'ng build' to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.
Run 'ng test' to execute the unit tests via [Karma](https://karma-runner.github.io).
Run 'ng e2e' to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
Run 'ng help' for more options.
</app-code>
<h4>Structure</h4>
<p>Sakai consists of 3 main parts; the application layout, layout assets and PrimeNG component theme assets. Layout is placed inside the <spanclass="text-primary font-medium">src/app/layout</span> folder,
and the assets are in the <spanclass="text-primary font-medium">src/assets/layout</span> folder.
</p>
<h5>Default Configuration</h5>
<p>Initial layout configuration can be defined at the main app component by injecting the <spanclass="text-primary font-medium">LayoutService</span>, this step is optional and only necessary when customizing the defaults. Note that <spanclass="text-primary font-medium">theme</span> and
<spanclass="text-primary font-medium">scale</span> are not reactive since theme is configured outside of Angular at <strongclass="font-semibold">index.html</strong> by default and
initial scale is defined with the <spanclass="text-primary font-medium">$scale</span> at <strongclass="font-semibold">layout.scss</strong>. When default theme or scale is changed at their files initially, it is required to configure the layout service with the matching values
//optional configuration with the default configuration
this.layoutService.config = {
ripple: false, //toggles ripple on and off
inputStyle: 'outlined', //default style for input elements
menuMode: 'static', //layout mode of the menu, valid values are "static" and "overlay"
colorScheme: 'light', //color scheme of the template, valid values are "light" and "dark"
theme: 'lara-light-indigo', //default component theme for PrimeNG
scale: 14 //size of the body font size to scale the whole application
};
}
}
</app-code>
<h5>Menu</h5>
<p>Menu is a separate component defined in <spanclass="text-primary font-medium">src/app/layout/app.menu.component.ts</span> file and based on PrimeNG MenuModel API. In order to define the menuitems,
navigate to this file and define your own model as a nested structure.</p>
import { Component } from '@angular/core';
@Component({
selector: 'app-menu',
templateUrl: './app.menu.component.html'
})
export class AppMenuComponent implements OnInit {
model: any[] = [];
ngOnInit() {
this.model = [
{
label: 'Home',
items: [
{
label: 'Dashboard',
icon: 'pi pi-fw pi-home',
routerLink: ['/']
}
]
},
//...
];
}
}
</app-code>
<h4>Integration with Existing Angular CLI Projects</h4>
<p>Sakai structure is designed in a modular way so that it can easily be integrated with your existing application. We've created a short tutorial with details.</p>
to your bundle that are located inside <spanclass="text-primary font-medium">assets/layout/styles/theme/</span>
folder such as <spanclass="text-primary font-medium">assets/layout/styles/theme/lara-light-indigo/theme.css</span>.</p>
<p>Another alternative would be creating dynamic bundles, please see the <ahref="https://www.youtube.com/watch?v=5VOuUdDXRsE"class="font-medium text-primary hover:underline">video tutorial</a> for an example.</p>