Security News
CISA Brings KEV Data to GitHub
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
gentics-ui-core
Advanced tools
This is the common core framework for the Gentics CMS and Mesh UI, and other Angular applications.
This is the common core framework for the Gentics CMS and Mesh UI, and other Angular applications.
Gentics UI Core 13.0.2 and up supports Angular 13.
npm install gentics-ui-core --save
Note that npm will say that the foundation-sites
package, which is a dependency of UI Core, requires a peer dependency of jquery
and what-input
. For the usage of foundation-sites within gentics-ui-core these peer dependencies are not needed.
// app.module.ts
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { GenticsUICoreModule } from 'gentics-ui-core';
@NgModule({
// ...
imports: [
FormsModule,
GenticsUICoreModule.forRoot(),
ReactiveFormsModule
]
}
export class AppModule { }
<gtx-overlay-host>
component to your AppComponent's template if you want to use components that have overlay parts:<!-- app.component.html -->
<!-- ... -->
<gtx-overlay-host></gtx-overlay-host>
preserveWhitespaces
to true
in your tsconfig.json
or tsconfig.app.json
.
This is necessary for the default spacing between components.{
...
"angularCompilerOptions": {
"preserveWhitespaces": true
},
...
}
main.ts
file enable preservation of whitespaces in the call to bootstrapModule()
:// main.ts
platformBrowserDynamic().bootstrapModule(AppModule,
// Enable preservation of whitespaces for default spacing between components.
{ preserveWhitespaces: true }
).catch(err => console.error(err));
Do not use any ViewEncapsulation other than ViewEncapsulation.None
(which is the default), because some UI Core components use the CSS ::ng-deep
selector.
If you are using lazy loading of routes, the singleton services need to be provided again in the lazily loaded module, because otherwise they will not be found. For example:
// my-lazily-loaded.module.ts
// ...
@NgModule({
// ...
providers: [
ModalService,
OverlayHostService
// ...
]
})
export class MyLazilyLoadedModule {
// ...
}
my-example
in the folder ./my-example
, use me
as the prefix for components, set up a routing module, and use SCSS for defining styles. Please note that while a custom prefix and the routing module are optional, SCSS must be used for the styles in order to be compatible with Gentics UI Core.ng new my-example --prefix=me --routing=true --style=scss
polyfills.ts
.
Note that the SideMenu requires the web-animations-js
polyfill in IE, Edge, and Safari:/***************************************************************************************************
* BROWSER POLYFILLS
*/
// Polyfills required by your target browsers.
// ...
/**
* Web Animations `@angular/platform-browser/animations`
* Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
* Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
*/
import 'web-animations-js'; // Run `npm install --save web-animations-js`.
polyfills.ts
:/***************************************************************************************************
* APPLICATION IMPORTS
*/
// This is necessary, because GUIC uses the Intl library, which requires a global object (like in Node.js).
(window as any).global = window;
Follow the steps from Using ui-core in a project.
Add the following imports to your global styles SCSS:
// styles.scss
@import "node_modules/gentics-ui-core/styles/variables";
@import "node_modules/gentics-ui-core/styles/mixins";
@import "node_modules/gentics-ui-core/styles/core";
// ...
You can see the _variables.scss file for a list of variables, which you can override before importing the variables file.
Full documentation and examples are available at https://gentics.github.io/gentics-ui-core/
The following sections are intended for people, who want to contribute to Gentics UI Core.
The build system for the project is angular-cli with a custom directory structure (to maintain the previous directory structure before the migration to angular-cli)
and a custom post-build gulp script. For full documentation on available commands, see https://angular.io/cli.
Due to the post-build gulp script it is important to not use ng build
directly, but always use npm run build
.
The builder configured in angular.json is not the default one from angular-cli, but ngx-build-plus, because we need to be able to customize the webpack configuration.
There are two important branches in this project: master and maintenance-v6.x. From which one of these you need to create a new branch for development depends on what you want to work on:
master
branchmaintenance-v6.x
branchmaster
branchImportant: After merging a bugfix into the maintenance-v6.x
branch:
maintenance-v6.x
into the master
branch.master
branch.master
branch.master
branch.To execute a single test run for the gentics-ui-core library and the docs app, execute:
npm test
To run tests in watch mode for the gentics-ui-core library, execute:
ng test gentics-ui-core
To run tests in watch mode for the docs app, execute:
ng test docs
Although the UI Core is intended to be consumed in a raw (uncompiled) state, there is a demo app
included under src/demo
which will serve as a "living style guide"
as well as a way to manually test each of the core components.
npm install
npm start
This will rebuild the docs app on every change to the source files and serve the output on http://localhost:4200.
projects/gentics-ui-core/package.json
to the desired valuegit commit -am 'vX.Y.Z'
git tag vX.Y.Z
git reset --hard HEAD^
git push origin vX.Y.Z master
npm run build -- gentics-ui-core
npm publish ./dist/gentics-ui-core
Documentation is built as a static Angular app into "docs" and maintained on the branch "gh-pages". The easiest way to manage the branch is to check it out in the "docs" subfolder:
# check out ui-core twice, master in ./ and gh-pages in ./docs
git clone -o github -b gh-pages git@github.com:gentics/gentics-ui-core ./docs
# build the docs (if you want to create separate version of the docs, you need to append --docsVersion=vX.x param)
npm run build -- docs --prod=true
# commit and push gh-pages
cd docs
git add .
git commit -m "Update latest docs to vX.Y.Z"
git push github
FAQs
This is the common core framework for the Gentics CMS and Mesh UI, and other Angular applications.
The npm package gentics-ui-core receives a total of 27 weekly downloads. As such, gentics-ui-core popularity was classified as not popular.
We found that gentics-ui-core demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.