fall through local template: hello {{world}}
If eg-dynamic-content fails to fetch and render the requested URL, it reports the results via onComplete. When it fails, it sets renderLocal to true, allowing the stock template to render.
UPDATE: The above code only works when the application is compiled with the JIT compiler. After much digging, it appears dynamic complilation is not possible when using the AOT compiler. (The AOT compiler is preferred for production because it creates code that renders faster in the browser / requires less cpu at render time).
In the context of a public catalog, we could potentially build it as a separate app (we'll likely do that anyway) that can optionally use the JIT compiler for dynamic content.
Considering other options for dynamic print templates...
UPDATE2: A possible option would be to create a separate angular app with one component that knows how to render dynamic content. This app will be complied via JIT and packaged as a standalone Angular Element. It could then be imported into the main app by loading its js bundle. In theory, that would allow the main app to be compiled with AOT. Angular Elements are new, though, and it sounds like they will be much improved in Angular7.
==== 2018-06-06 ====
* Acquisitions admin splash page added.
* All links point to Angular admin pages, except for the Funds page which will require additional development to add the year filter and rollover stuff.
==== 2018-06-04 ====
* Removed Eg prefix from most shared classes/service since it's unnecessary with imports and it's clunky.
* We now have 42 auto-generated server admin UI's. That's all the admin UI's that only require a grid an maybe an org filter. Other UIs (e.g. org tree) will require custom code.
==== 2018-05-31 ====
* More admin UI automation
* We now have 42 server admin UI's loading in the Angular6 app. These are all basic admin pages that don't require any special handling -- e.g. building trees of data -- stuff that can just be managed with a grid, add/delete actions, and optionally an org unit filter.
==== 2018-05-25 ====
* Created an EgAdminPageComponent for generic IDL object CRUD management. We now have admin pages for billing types, hard due dates, and sms carriers.
* Using the new admin page component, the sms carrier page admin page is a whopping 10 lines of code.
* All existing code is now ng-lint compliant.
==== 2018-05-17 ====
=== Unit Tests ===
* Added first unit tests for core services (idl, org, event).
* Unit test syntax is practically identical, some minor variation in setting up the tests and using TS.
* Unit tests live in *.spec.ts files (e.g. org.spec.ts) right beside the tested code (e.g. org.service.ts)
=== ng lint ===
* Discovered 'ng lint'. Running it on the code base shows a bunch of warnings. Slowly cleaning those up. One useful warning in particular is how various 'rxjs' libs are imported. Generic imports (import {blah} from 'rxjs') imports way too much code. So I'm making those more specific (e.g. import {map} from 'rxjs/operators/map').