vakhramoff / ng-polymorpheus

Polymorpheus is a tiny library for polymorphic templates in Angular.

Home Page:https://codesandbox.io/s/github/TinkoffCreditSystems/ng-polymorpheus/tree/master/projects/demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Polymorpheus

npm version Build Status Coverage Status angular-open-source-starter

Polymorpheus is a tiny library for polymorphic templates in Angular.

It is 1 KB gzip, dependency free and allows you to make pretty cool things.

Polymorpheus

What does it do?

It abstracts over different ways of view customization in Angular with one simple attribute component:

<header polymorpheus-outlet [content]="content" [context]="context"></header>

Content accepts:

  • primitives like number or string
  • functions that take context as argument and return a primitive
  • templates that get instantiated with given context
  • components that would get context injected through DI

Context is optional when you need your content to adapt to the situation

How to use it?

Typical use case would be a component that accepts visual customization and defines context by itself. Say a menu list where you can configure how each item should look like by passing a template. And context would be item itself and, for example, whether it is focused or not.

Please see extensive demo.

You can also read about this concept in detail.

Open-source

Do you also want to open-source something, but hate the collateral work? Check out this Angular Open-source Library Starter we’ve created for our projects. It got you covered on continuous integration, pre-commit checks, linting, versioning + changelog, code coverage and all that jazz.

Core team

Alex Inkin
Alex Inkin
Roman Sedov
Roman Sedov

About

Polymorpheus is a tiny library for polymorphic templates in Angular.

https://codesandbox.io/s/github/TinkoffCreditSystems/ng-polymorpheus/tree/master/projects/demo

License:Apache License 2.0


Languages

Language:TypeScript 90.4%Language:HTML 5.5%Language:Less 2.2%Language:JavaScript 1.3%Language:CSS 0.6%