<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>
<p>Sakai provides 24 PrimeNG themes out of the box. Setup of a theme is simple by including the css of theme
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>
<p>Sakai includes a simplified version of the <ahref="https://www.primefaces.org/designer/primeng">PrimeNG Theme Designer</a> that only includes the main SASS structure. Full list of SASS variables to customize the components further is available at the
<p>Every important change is included in <b>CHANGELOG.md</b> file at the root folder of the distribution along with the instructions to update. Whenever a major version of Angular is released, a new version of the template
is provided that mainly brings compatibility support to the PrimeNG component theming. If there are no compatibility issues on component theming e.g. new components or new functionality to PrimeNG,
you may still update your application to the latest Angular and PrimeNG without the need to waiting for an update.</p>