smart-lifecycle 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +275 -0
- package/dist/behaviors/initializer-factory.d.ts +101 -0
- package/dist/behaviors/initializer-factory.d.ts.map +1 -0
- package/dist/behaviors/initializer-factory.js +183 -0
- package/dist/behaviors/initializer-factory.js.map +1 -0
- package/dist/behaviors/initializer.base.d.ts +21 -0
- package/dist/behaviors/initializer.base.d.ts.map +1 -0
- package/dist/behaviors/initializer.base.js +32 -0
- package/dist/behaviors/initializer.base.js.map +1 -0
- package/dist/behaviors/initializer.d.ts +21 -0
- package/dist/behaviors/initializer.d.ts.map +1 -0
- package/dist/behaviors/initializer.interface.d.ts +2 -0
- package/dist/behaviors/initializer.interface.d.ts.map +1 -0
- package/dist/behaviors/initializer.interface.js +2 -0
- package/dist/behaviors/initializer.interface.js.map +1 -0
- package/dist/behaviors/initializer.js +26 -0
- package/dist/behaviors/initializer.js.map +1 -0
- package/dist/behaviors/injection-helper.d.ts +90 -0
- package/dist/behaviors/injection-helper.d.ts.map +1 -0
- package/dist/behaviors/injection-helper.js +136 -0
- package/dist/behaviors/injection-helper.js.map +1 -0
- package/dist/behaviors/lifecycle-manager-factory.d.ts +126 -0
- package/dist/behaviors/lifecycle-manager-factory.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager-factory.js +211 -0
- package/dist/behaviors/lifecycle-manager-factory.js.map +1 -0
- package/dist/behaviors/lifecycle-manager.base.d.ts +115 -0
- package/dist/behaviors/lifecycle-manager.base.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager.base.js +156 -0
- package/dist/behaviors/lifecycle-manager.base.js.map +1 -0
- package/dist/behaviors/lifecycle-manager.d.ts +114 -0
- package/dist/behaviors/lifecycle-manager.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager.interface.d.ts +2 -0
- package/dist/behaviors/lifecycle-manager.interface.d.ts.map +1 -0
- package/dist/behaviors/lifecycle-manager.interface.js +2 -0
- package/dist/behaviors/lifecycle-manager.interface.js.map +1 -0
- package/dist/behaviors/lifecycle-manager.js +157 -0
- package/dist/behaviors/lifecycle-manager.js.map +1 -0
- package/dist/bootstrap.d.ts +9 -0
- package/dist/bootstrap.d.ts.map +1 -0
- package/dist/bootstrap.js +8 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +228 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/components/smart-action/smart-action-element.d.ts +15 -0
- package/dist/components/smart-action/smart-action-element.d.ts.map +1 -0
- package/dist/components/smart-action/smart-action-element.js +149 -0
- package/dist/components/smart-action/smart-action-element.js.map +1 -0
- package/dist/components/smart-action/smart-action.component.d.ts +10 -0
- package/dist/components/smart-action/smart-action.component.d.ts.map +1 -0
- package/dist/components/smart-action/smart-action.component.js +68 -0
- package/dist/components/smart-action/smart-action.component.js.map +1 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.d.ts +27 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.js +140 -0
- package/dist/components/smart-action/smart-action.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-action.d.ts +66 -0
- package/dist/components/smart-action.d.ts.map +1 -0
- package/dist/components/smart-action.js +111 -0
- package/dist/components/smart-action.js.map +1 -0
- package/dist/components/smart-for/diff-keys.d.ts +36 -0
- package/dist/components/smart-for/diff-keys.d.ts.map +1 -0
- package/dist/components/smart-for/diff-keys.js +39 -0
- package/dist/components/smart-for/diff-keys.js.map +1 -0
- package/dist/components/smart-for/item-dom-context.d.ts +27 -0
- package/dist/components/smart-for/item-dom-context.d.ts.map +1 -0
- package/dist/components/smart-for/item-dom-context.js +52 -0
- package/dist/components/smart-for/item-dom-context.js.map +1 -0
- package/dist/components/smart-for/smart-for-element.d.ts +38 -0
- package/dist/components/smart-for/smart-for-element.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for-element.js +216 -0
- package/dist/components/smart-for/smart-for-element.js.map +1 -0
- package/dist/components/smart-for/smart-for-item-scope.d.ts +52 -0
- package/dist/components/smart-for/smart-for-item-scope.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for-item-scope.js +94 -0
- package/dist/components/smart-for/smart-for-item-scope.js.map +1 -0
- package/dist/components/smart-for/smart-for.component.d.ts +10 -0
- package/dist/components/smart-for/smart-for.component.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for.component.js +69 -0
- package/dist/components/smart-for/smart-for.component.js.map +1 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.d.ts +97 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.js +369 -0
- package/dist/components/smart-for/smart-for.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-link/smart-link-element.d.ts +36 -0
- package/dist/components/smart-link/smart-link-element.d.ts.map +1 -0
- package/dist/components/smart-link/smart-link-element.js +101 -0
- package/dist/components/smart-link/smart-link-element.js.map +1 -0
- package/dist/components/smart-link/smart-link.component.d.ts +21 -0
- package/dist/components/smart-link/smart-link.component.d.ts.map +1 -0
- package/dist/components/smart-link/smart-link.component.js +78 -0
- package/dist/components/smart-link/smart-link.component.js.map +1 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.d.ts +23 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.js +53 -0
- package/dist/components/smart-link/smart-link.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-link.d.ts +2 -0
- package/dist/components/smart-link.d.ts.map +1 -0
- package/dist/components/smart-link.js +2 -0
- package/dist/components/smart-link.js.map +1 -0
- package/dist/components/smart-router/navigation-service.interface.d.ts +22 -0
- package/dist/components/smart-router/navigation-service.interface.d.ts.map +1 -0
- package/dist/components/smart-router/navigation-service.interface.js +2 -0
- package/dist/components/smart-router/navigation-service.interface.js.map +1 -0
- package/dist/components/smart-router/navigation.d.ts +57 -0
- package/dist/components/smart-router/navigation.d.ts.map +1 -0
- package/dist/components/smart-router/navigation.js +75 -0
- package/dist/components/smart-router/navigation.js.map +1 -0
- package/dist/components/smart-router/smart-router-element.d.ts +42 -0
- package/dist/components/smart-router/smart-router-element.d.ts.map +1 -0
- package/dist/components/smart-router/smart-router-element.js +188 -0
- package/dist/components/smart-router/smart-router-element.js.map +1 -0
- package/dist/components/smart-router/smart-router.component.d.ts +27 -0
- package/dist/components/smart-router/smart-router.component.d.ts.map +1 -0
- package/dist/components/smart-router/smart-router.component.js +89 -0
- package/dist/components/smart-router/smart-router.component.js.map +1 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.d.ts +25 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.js +115 -0
- package/dist/components/smart-router/smart-router.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-router.d.ts +28 -0
- package/dist/components/smart-router.d.ts.map +1 -0
- package/dist/components/smart-router.js +45 -0
- package/dist/components/smart-router.js.map +1 -0
- package/dist/components/smart-select/smart-select-element.d.ts +49 -0
- package/dist/components/smart-select/smart-select-element.d.ts.map +1 -0
- package/dist/components/smart-select/smart-select-element.js +130 -0
- package/dist/components/smart-select/smart-select-element.js.map +1 -0
- package/dist/components/smart-select/smart-select.component.d.ts +35 -0
- package/dist/components/smart-select/smart-select.component.d.ts.map +1 -0
- package/dist/components/smart-select/smart-select.component.js +92 -0
- package/dist/components/smart-select/smart-select.component.js.map +1 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.d.ts +52 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.d.ts.map +1 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.js +144 -0
- package/dist/components/smart-select/smart-select.lifecycle-manager.js.map +1 -0
- package/dist/components/smart-select.d.ts +3 -0
- package/dist/components/smart-select.d.ts.map +1 -0
- package/dist/components/smart-select.js +3 -0
- package/dist/components/smart-select.js.map +1 -0
- package/dist/core/component-instance-registry.d.ts +102 -0
- package/dist/core/component-instance-registry.d.ts.map +1 -0
- package/dist/core/component-instance-registry.js +85 -0
- package/dist/core/component-instance-registry.js.map +1 -0
- package/dist/core/component-metadata-registry.d.ts +100 -0
- package/dist/core/component-metadata-registry.d.ts.map +1 -0
- package/dist/core/component-metadata-registry.interface.d.ts +44 -0
- package/dist/core/component-metadata-registry.interface.d.ts.map +1 -0
- package/dist/core/component-metadata-registry.interface.js +2 -0
- package/dist/core/component-metadata-registry.interface.js.map +1 -0
- package/dist/core/component-metadata-registry.js +113 -0
- package/dist/core/component-metadata-registry.js.map +1 -0
- package/dist/core/component-metadata-source.interface.d.ts +40 -0
- package/dist/core/component-metadata-source.interface.d.ts.map +1 -0
- package/dist/core/component-metadata-source.interface.js +2 -0
- package/dist/core/component-metadata-source.interface.js.map +1 -0
- package/dist/core/component-metadata.d.ts +57 -0
- package/dist/core/component-metadata.d.ts.map +1 -0
- package/dist/core/component-metadata.js +2 -0
- package/dist/core/component-metadata.js.map +1 -0
- package/dist/core/smart-component.d.ts +80 -0
- package/dist/core/smart-component.d.ts.map +1 -0
- package/dist/core/smart-component.js +86 -0
- package/dist/core/smart-component.js.map +1 -0
- package/dist/decorators/component.decorator.d.ts +136 -0
- package/dist/decorators/component.decorator.d.ts.map +1 -0
- package/dist/decorators/component.decorator.js +35 -0
- package/dist/decorators/component.decorator.js.map +1 -0
- package/dist/decorators/host-listener.decorator.d.ts +30 -0
- package/dist/decorators/host-listener.decorator.d.ts.map +1 -0
- package/dist/decorators/host-listener.decorator.js +117 -0
- package/dist/decorators/host-listener.decorator.js.map +1 -0
- package/dist/decorators/index.d.ts +13 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/dist/decorators/index.js +8 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/listen/listener-initializer.d.ts +23 -0
- package/dist/decorators/listen/listener-initializer.d.ts.map +1 -0
- package/dist/decorators/listen/listener-initializer.interface.d.ts +20 -0
- package/dist/decorators/listen/listener-initializer.interface.d.ts.map +1 -0
- package/dist/decorators/listen/listener-initializer.interface.js +2 -0
- package/dist/decorators/listen/listener-initializer.interface.js.map +1 -0
- package/dist/decorators/listen/listener-initializer.js +53 -0
- package/dist/decorators/listen/listener-initializer.js.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.d.ts +27 -0
- package/dist/decorators/listen/listener-metadata-registry.d.ts.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.d.ts +26 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.d.ts.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.js +2 -0
- package/dist/decorators/listen/listener-metadata-registry.interface.js.map +1 -0
- package/dist/decorators/listen/listener-metadata-registry.js +51 -0
- package/dist/decorators/listen/listener-metadata-registry.js.map +1 -0
- package/dist/decorators/listen.decorator.d.ts +66 -0
- package/dist/decorators/listen.decorator.d.ts.map +1 -0
- package/dist/decorators/listen.decorator.js +72 -0
- package/dist/decorators/listen.decorator.js.map +1 -0
- package/dist/decorators/listener-initializer.d.ts +33 -0
- package/dist/decorators/listener-initializer.d.ts.map +1 -0
- package/dist/decorators/listener-initializer.js +67 -0
- package/dist/decorators/listener-initializer.js.map +1 -0
- package/dist/decorators/reactive.decorator.d.ts +45 -0
- package/dist/decorators/reactive.decorator.d.ts.map +1 -0
- package/dist/decorators/reactive.decorator.js +86 -0
- package/dist/decorators/reactive.decorator.js.map +1 -0
- package/dist/decorators/smart/capture-config.d.ts +10 -0
- package/dist/decorators/smart/capture-config.d.ts.map +1 -0
- package/dist/decorators/smart/capture-config.js +70 -0
- package/dist/decorators/smart/capture-config.js.map +1 -0
- package/dist/decorators/smart/dynamic-initializer.d.ts +14 -0
- package/dist/decorators/smart/dynamic-initializer.d.ts.map +1 -0
- package/dist/decorators/smart/dynamic-initializer.js +35 -0
- package/dist/decorators/smart/dynamic-initializer.js.map +1 -0
- package/dist/decorators/smart/dynamic-lifecycle.d.ts +17 -0
- package/dist/decorators/smart/dynamic-lifecycle.d.ts.map +1 -0
- package/dist/decorators/smart/dynamic-lifecycle.js +45 -0
- package/dist/decorators/smart/dynamic-lifecycle.js.map +1 -0
- package/dist/decorators/smart/enhanced-class.d.ts +21 -0
- package/dist/decorators/smart/enhanced-class.d.ts.map +1 -0
- package/dist/decorators/smart/enhanced-class.js +93 -0
- package/dist/decorators/smart/enhanced-class.js.map +1 -0
- package/dist/decorators/smart/smart-component-factory.d.ts +59 -0
- package/dist/decorators/smart/smart-component-factory.d.ts.map +1 -0
- package/dist/decorators/smart/smart-component-factory.interface.d.ts +48 -0
- package/dist/decorators/smart/smart-component-factory.interface.d.ts.map +1 -0
- package/dist/decorators/smart/smart-component-factory.interface.js +2 -0
- package/dist/decorators/smart/smart-component-factory.interface.js.map +1 -0
- package/dist/decorators/smart/smart-component-factory.js +271 -0
- package/dist/decorators/smart/smart-component-factory.js.map +1 -0
- package/dist/decorators/smart/types.d.ts +81 -0
- package/dist/decorators/smart/types.d.ts.map +1 -0
- package/dist/decorators/smart/types.js +2 -0
- package/dist/decorators/smart/types.js.map +1 -0
- package/dist/decorators/smart-render.decorator.d.ts +27 -0
- package/dist/decorators/smart-render.decorator.d.ts.map +1 -0
- package/dist/decorators/smart-render.decorator.js +41 -0
- package/dist/decorators/smart-render.decorator.js.map +1 -0
- package/dist/decorators/smart.decorator.d.ts +20 -0
- package/dist/decorators/smart.decorator.d.ts.map +1 -0
- package/dist/decorators/smart.decorator.js +45 -0
- package/dist/decorators/smart.decorator.js.map +1 -0
- package/dist/decorators/view-child.decorator.d.ts +21 -0
- package/dist/decorators/view-child.decorator.d.ts.map +1 -0
- package/dist/decorators/view-child.decorator.js +56 -0
- package/dist/decorators/view-child.decorator.js.map +1 -0
- package/dist/events/action-publisher.interface.d.ts +69 -0
- package/dist/events/action-publisher.interface.d.ts.map +1 -0
- package/dist/events/action-publisher.interface.js +2 -0
- package/dist/events/action-publisher.interface.js.map +1 -0
- package/dist/events/event-bus.d.ts +11 -0
- package/dist/events/event-bus.d.ts.map +1 -0
- package/dist/events/event-bus.interface.d.ts +66 -0
- package/dist/events/event-bus.interface.d.ts.map +1 -0
- package/dist/events/event-bus.interface.js +2 -0
- package/dist/events/event-bus.interface.js.map +1 -0
- package/dist/events/event-bus.js +11 -0
- package/dist/events/event-bus.js.map +1 -0
- package/dist/events/event-object.d.ts +33 -0
- package/dist/events/event-object.d.ts.map +1 -0
- package/dist/events/event-object.js +35 -0
- package/dist/events/event-object.js.map +1 -0
- package/dist/events/event-payload.d.ts +16 -0
- package/dist/events/event-payload.d.ts.map +1 -0
- package/dist/events/event-payload.js +2 -0
- package/dist/events/event-payload.js.map +1 -0
- package/dist/events/event-store.d.ts +99 -0
- package/dist/events/event-store.d.ts.map +1 -0
- package/dist/events/event-store.js +95 -0
- package/dist/events/event-store.js.map +1 -0
- package/dist/events/rx-event-bus.d.ts +109 -0
- package/dist/events/rx-event-bus.d.ts.map +1 -0
- package/dist/events/rx-event-bus.js +210 -0
- package/dist/events/rx-event-bus.js.map +1 -0
- package/dist/html/register-smart-behavior.d.ts +27 -0
- package/dist/html/register-smart-behavior.d.ts.map +1 -0
- package/dist/html/register-smart-behavior.js +42 -0
- package/dist/html/register-smart-behavior.js.map +1 -0
- package/dist/html/register-smart-element.d.ts +26 -0
- package/dist/html/register-smart-element.d.ts.map +1 -0
- package/dist/html/register-smart-element.js +28 -0
- package/dist/html/register-smart-element.js.map +1 -0
- package/dist/html/services-bootstrap.d.ts +17 -0
- package/dist/html/services-bootstrap.d.ts.map +1 -0
- package/dist/html/services-bootstrap.js +40 -0
- package/dist/html/services-bootstrap.js.map +1 -0
- package/dist/html/smart-element-factory.d.ts +51 -0
- package/dist/html/smart-element-factory.d.ts.map +1 -0
- package/dist/html/smart-element-factory.interface.d.ts +17 -0
- package/dist/html/smart-element-factory.interface.d.ts.map +1 -0
- package/dist/html/smart-element-factory.interface.js +2 -0
- package/dist/html/smart-element-factory.interface.js.map +1 -0
- package/dist/html/smart-element-factory.js +118 -0
- package/dist/html/smart-element-factory.js.map +1 -0
- package/dist/html/smart-element-registrar.d.ts +43 -0
- package/dist/html/smart-element-registrar.d.ts.map +1 -0
- package/dist/html/smart-element-registrar.interface.d.ts +17 -0
- package/dist/html/smart-element-registrar.interface.d.ts.map +1 -0
- package/dist/html/smart-element-registrar.interface.js +2 -0
- package/dist/html/smart-element-registrar.interface.js.map +1 -0
- package/dist/html/smart-element-registrar.js +77 -0
- package/dist/html/smart-element-registrar.js.map +1 -0
- package/dist/html/smart-tags.d.ts +16 -0
- package/dist/html/smart-tags.d.ts.map +1 -0
- package/dist/html/smart-tags.js +30 -0
- package/dist/html/smart-tags.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/observers/document-locale-observer.d.ts +15 -0
- package/dist/observers/document-locale-observer.d.ts.map +1 -0
- package/dist/observers/document-locale-observer.js +43 -0
- package/dist/observers/document-locale-observer.js.map +1 -0
- package/dist/observers/document-theme-observer.d.ts +17 -0
- package/dist/observers/document-theme-observer.d.ts.map +1 -0
- package/dist/observers/document-theme-observer.js +64 -0
- package/dist/observers/document-theme-observer.js.map +1 -0
- package/dist/observers/locale-observer.interface.d.ts +21 -0
- package/dist/observers/locale-observer.interface.d.ts.map +1 -0
- package/dist/observers/locale-observer.interface.js +2 -0
- package/dist/observers/locale-observer.interface.js.map +1 -0
- package/dist/observers/theme-observer.interface.d.ts +21 -0
- package/dist/observers/theme-observer.interface.d.ts.map +1 -0
- package/dist/observers/theme-observer.interface.js +2 -0
- package/dist/observers/theme-observer.interface.js.map +1 -0
- package/dist/providers/adapters/index.d.ts +19 -0
- package/dist/providers/adapters/index.d.ts.map +1 -0
- package/dist/providers/adapters/index.js +19 -0
- package/dist/providers/adapters/index.js.map +1 -0
- package/dist/providers/adapters/tsyringe-adapter.d.ts +139 -0
- package/dist/providers/adapters/tsyringe-adapter.d.ts.map +1 -0
- package/dist/providers/adapters/tsyringe-adapter.js +151 -0
- package/dist/providers/adapters/tsyringe-adapter.js.map +1 -0
- package/dist/providers/app-services.d.ts +131 -0
- package/dist/providers/app-services.d.ts.map +1 -0
- package/dist/providers/app-services.js +174 -0
- package/dist/providers/app-services.js.map +1 -0
- package/dist/providers/default-service-provider.d.ts +57 -0
- package/dist/providers/default-service-provider.d.ts.map +1 -0
- package/dist/providers/default-service-provider.js +89 -0
- package/dist/providers/default-service-provider.js.map +1 -0
- package/dist/providers/framework-bootstrap.d.ts +58 -0
- package/dist/providers/framework-bootstrap.d.ts.map +1 -0
- package/dist/providers/framework-bootstrap.js +153 -0
- package/dist/providers/framework-bootstrap.js.map +1 -0
- package/dist/providers/framework-element-registration.d.ts +2 -0
- package/dist/providers/framework-element-registration.d.ts.map +1 -0
- package/dist/providers/framework-element-registration.js +42 -0
- package/dist/providers/framework-element-registration.js.map +1 -0
- package/dist/providers/service-provider.d.ts +70 -0
- package/dist/providers/service-provider.d.ts.map +1 -0
- package/dist/providers/service-provider.interface.d.ts +55 -0
- package/dist/providers/service-provider.interface.d.ts.map +1 -0
- package/dist/providers/service-provider.interface.js +2 -0
- package/dist/providers/service-provider.interface.js.map +1 -0
- package/dist/providers/service-provider.js +102 -0
- package/dist/providers/service-provider.js.map +1 -0
- package/dist/reactive/dependency-tracker.d.ts +34 -0
- package/dist/reactive/dependency-tracker.d.ts.map +1 -0
- package/dist/reactive/dependency-tracker.interface.d.ts +34 -0
- package/dist/reactive/dependency-tracker.interface.d.ts.map +1 -0
- package/dist/reactive/dependency-tracker.interface.js +2 -0
- package/dist/reactive/dependency-tracker.interface.js.map +1 -0
- package/dist/reactive/dependency-tracker.js +47 -0
- package/dist/reactive/dependency-tracker.js.map +1 -0
- package/dist/reactive/index.d.ts +5 -0
- package/dist/reactive/index.d.ts.map +1 -0
- package/dist/reactive/index.js +4 -0
- package/dist/reactive/index.js.map +1 -0
- package/dist/reactive/observable.d.ts +15 -0
- package/dist/reactive/observable.d.ts.map +1 -0
- package/dist/reactive/observable.js +2 -0
- package/dist/reactive/observable.js.map +1 -0
- package/dist/reactive/operators.d.ts +6 -0
- package/dist/reactive/operators.d.ts.map +1 -0
- package/dist/reactive/operators.js +11 -0
- package/dist/reactive/operators.js.map +1 -0
- package/dist/reactive/signal.d.ts +41 -0
- package/dist/reactive/signal.d.ts.map +1 -0
- package/dist/reactive/signal.js +37 -0
- package/dist/reactive/signal.js.map +1 -0
- package/dist/reactive/subject.d.ts +30 -0
- package/dist/reactive/subject.d.ts.map +1 -0
- package/dist/reactive/subject.js +53 -0
- package/dist/reactive/subject.js.map +1 -0
- package/dist/reactive/subscription.d.ts +33 -0
- package/dist/reactive/subscription.d.ts.map +1 -0
- package/dist/reactive/subscription.js +53 -0
- package/dist/reactive/subscription.js.map +1 -0
- package/dist/registration/register-smart-behavior.d.ts +27 -0
- package/dist/registration/register-smart-behavior.d.ts.map +1 -0
- package/dist/registration/register-smart-behavior.js +42 -0
- package/dist/registration/register-smart-behavior.js.map +1 -0
- package/dist/registration/register-smart-element.d.ts +27 -0
- package/dist/registration/register-smart-element.d.ts.map +1 -0
- package/dist/registration/register-smart-element.js +26 -0
- package/dist/registration/register-smart-element.js.map +1 -0
- package/dist/registration/smart-element-factory.d.ts +46 -0
- package/dist/registration/smart-element-factory.d.ts.map +1 -0
- package/dist/registration/smart-element-factory.interface.d.ts +17 -0
- package/dist/registration/smart-element-factory.interface.d.ts.map +1 -0
- package/dist/registration/smart-element-factory.interface.js +2 -0
- package/dist/registration/smart-element-factory.interface.js.map +1 -0
- package/dist/registration/smart-element-factory.js +146 -0
- package/dist/registration/smart-element-factory.js.map +1 -0
- package/dist/registration/smart-element-registrar.d.ts +41 -0
- package/dist/registration/smart-element-registrar.d.ts.map +1 -0
- package/dist/registration/smart-element-registrar.interface.d.ts +17 -0
- package/dist/registration/smart-element-registrar.interface.d.ts.map +1 -0
- package/dist/registration/smart-element-registrar.interface.js +2 -0
- package/dist/registration/smart-element-registrar.interface.js.map +1 -0
- package/dist/registration/smart-element-registrar.js +56 -0
- package/dist/registration/smart-element-registrar.js.map +1 -0
- package/dist/registration/smart-tags.d.ts +16 -0
- package/dist/registration/smart-tags.d.ts.map +1 -0
- package/dist/registration/smart-tags.js +30 -0
- package/dist/registration/smart-tags.js.map +1 -0
- package/dist/rendering/bindings/binding-resolver.d.ts +90 -0
- package/dist/rendering/bindings/binding-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/binding-resolver.interface.d.ts +31 -0
- package/dist/rendering/bindings/binding-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/binding-resolver.interface.js +2 -0
- package/dist/rendering/bindings/binding-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/binding-resolver.js +232 -0
- package/dist/rendering/bindings/binding-resolver.js.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.d.ts +55 -0
- package/dist/rendering/bindings/expresion-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.interface.d.ts +25 -0
- package/dist/rendering/bindings/expresion-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.interface.js +2 -0
- package/dist/rendering/bindings/expresion-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/expresion-resolver.js +175 -0
- package/dist/rendering/bindings/expresion-resolver.js.map +1 -0
- package/dist/rendering/bindings/expression-resolver.d.ts +48 -0
- package/dist/rendering/bindings/expression-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/expression-resolver.interface.d.ts +25 -0
- package/dist/rendering/bindings/expression-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/expression-resolver.interface.js +2 -0
- package/dist/rendering/bindings/expression-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/expression-resolver.js +169 -0
- package/dist/rendering/bindings/expression-resolver.js.map +1 -0
- package/dist/rendering/bindings/property-extractor.d.ts +36 -0
- package/dist/rendering/bindings/property-extractor.d.ts.map +1 -0
- package/dist/rendering/bindings/property-extractor.interface.d.ts +21 -0
- package/dist/rendering/bindings/property-extractor.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/property-extractor.interface.js +2 -0
- package/dist/rendering/bindings/property-extractor.interface.js.map +1 -0
- package/dist/rendering/bindings/property-extractor.js +69 -0
- package/dist/rendering/bindings/property-extractor.js.map +1 -0
- package/dist/rendering/bindings/rules-resolver.d.ts +29 -0
- package/dist/rendering/bindings/rules-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/rules-resolver.interface.d.ts +16 -0
- package/dist/rendering/bindings/rules-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/rules-resolver.interface.js +2 -0
- package/dist/rendering/bindings/rules-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/rules-resolver.js +69 -0
- package/dist/rendering/bindings/rules-resolver.js.map +1 -0
- package/dist/rendering/bindings/smart-input-store.d.ts +11 -0
- package/dist/rendering/bindings/smart-input-store.d.ts.map +1 -0
- package/dist/rendering/bindings/smart-input-store.interface.d.ts +54 -0
- package/dist/rendering/bindings/smart-input-store.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/smart-input-store.interface.js +5 -0
- package/dist/rendering/bindings/smart-input-store.interface.js.map +1 -0
- package/dist/rendering/bindings/smart-input-store.js +92 -0
- package/dist/rendering/bindings/smart-input-store.js.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.d.ts +28 -0
- package/dist/rendering/bindings/static-binding-resolver.d.ts.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.d.ts +15 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.js +2 -0
- package/dist/rendering/bindings/static-binding-resolver.interface.js.map +1 -0
- package/dist/rendering/bindings/static-binding-resolver.js +65 -0
- package/dist/rendering/bindings/static-binding-resolver.js.map +1 -0
- package/dist/rendering/dom/browser-dom-adapter.d.ts +30 -0
- package/dist/rendering/dom/browser-dom-adapter.d.ts.map +1 -0
- package/dist/rendering/dom/browser-dom-adapter.js +40 -0
- package/dist/rendering/dom/browser-dom-adapter.js.map +1 -0
- package/dist/rendering/dom/dom-adapter.interface.d.ts +39 -0
- package/dist/rendering/dom/dom-adapter.interface.d.ts.map +1 -0
- package/dist/rendering/dom/dom-adapter.interface.js +2 -0
- package/dist/rendering/dom/dom-adapter.interface.js.map +1 -0
- package/dist/rendering/dom/index.d.ts +9 -0
- package/dist/rendering/dom/index.d.ts.map +1 -0
- package/dist/rendering/dom/index.js +8 -0
- package/dist/rendering/dom/index.js.map +1 -0
- package/dist/rendering/dom/node-types.d.ts +21 -0
- package/dist/rendering/dom/node-types.d.ts.map +1 -0
- package/dist/rendering/dom/node-types.js +21 -0
- package/dist/rendering/dom/node-types.js.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.d.ts +31 -0
- package/dist/rendering/dom-context/dom-context-factory.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.d.ts +14 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.js +2 -0
- package/dist/rendering/dom-context/dom-context-factory.interface.js.map +1 -0
- package/dist/rendering/dom-context/dom-context-factory.js +20 -0
- package/dist/rendering/dom-context/dom-context-factory.js.map +1 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.d.ts +55 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.js +90 -0
- package/dist/rendering/dom-context/dom-context-host-resolver.js.map +1 -0
- package/dist/rendering/dom-context/dom-context.d.ts +168 -0
- package/dist/rendering/dom-context/dom-context.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context.interface.d.ts +156 -0
- package/dist/rendering/dom-context/dom-context.interface.d.ts.map +1 -0
- package/dist/rendering/dom-context/dom-context.interface.js +17 -0
- package/dist/rendering/dom-context/dom-context.interface.js.map +1 -0
- package/dist/rendering/dom-context/dom-context.js +225 -0
- package/dist/rendering/dom-context/dom-context.js.map +1 -0
- package/dist/rendering/dom-context/host-resolver.interface.d.ts +47 -0
- package/dist/rendering/dom-context/host-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/dom-context/host-resolver.interface.js +2 -0
- package/dist/rendering/dom-context/host-resolver.interface.js.map +1 -0
- package/dist/rendering/dom-context/index.d.ts +5 -0
- package/dist/rendering/dom-context/index.d.ts.map +1 -0
- package/dist/rendering/dom-context/index.js +4 -0
- package/dist/rendering/dom-context/index.js.map +1 -0
- package/dist/rendering/errors/error-render-options.interface.d.ts +29 -0
- package/dist/rendering/errors/error-render-options.interface.d.ts.map +1 -0
- package/dist/rendering/errors/error-render-options.interface.js +2 -0
- package/dist/rendering/errors/error-render-options.interface.js.map +1 -0
- package/dist/rendering/errors/error-renderer.d.ts +71 -0
- package/dist/rendering/errors/error-renderer.d.ts.map +1 -0
- package/dist/rendering/errors/error-renderer.interface.d.ts +29 -0
- package/dist/rendering/errors/error-renderer.interface.d.ts.map +1 -0
- package/dist/rendering/errors/error-renderer.interface.js +2 -0
- package/dist/rendering/errors/error-renderer.interface.js.map +1 -0
- package/dist/rendering/errors/error-renderer.js +127 -0
- package/dist/rendering/errors/error-renderer.js.map +1 -0
- package/dist/rendering/expression-parser/dependency-extractor.d.ts +36 -0
- package/dist/rendering/expression-parser/dependency-extractor.d.ts.map +1 -0
- package/dist/rendering/expression-parser/dependency-extractor.js +83 -0
- package/dist/rendering/expression-parser/dependency-extractor.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.d.ts +54 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.js +92 -0
- package/dist/rendering/expression-parser/evaluators/ast.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/base.d.ts +20 -0
- package/dist/rendering/expression-parser/evaluators/base.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/base.js +2 -0
- package/dist/rendering/expression-parser/evaluators/base.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.js +55 -0
- package/dist/rendering/expression-parser/evaluators/binary.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.d.ts +38 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.js +62 -0
- package/dist/rendering/expression-parser/evaluators/call.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.js +38 -0
- package/dist/rendering/expression-parser/evaluators/conditional.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.d.ts +28 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.js +33 -0
- package/dist/rendering/expression-parser/evaluators/identifier.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/index.d.ts +10 -0
- package/dist/rendering/expression-parser/evaluators/index.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/index.js +9 -0
- package/dist/rendering/expression-parser/evaluators/index.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.d.ts +27 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.js +29 -0
- package/dist/rendering/expression-parser/evaluators/literal.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.js +39 -0
- package/dist/rendering/expression-parser/evaluators/member.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.d.ts +29 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.d.ts.map +1 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.js +44 -0
- package/dist/rendering/expression-parser/evaluators/unary.evaluator.js.map +1 -0
- package/dist/rendering/expression-parser/expression-cache.d.ts +65 -0
- package/dist/rendering/expression-parser/expression-cache.d.ts.map +1 -0
- package/dist/rendering/expression-parser/expression-cache.js +79 -0
- package/dist/rendering/expression-parser/expression-cache.js.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.factory.d.ts +105 -0
- package/dist/rendering/expression-parser/expression-parser.factory.d.ts.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.factory.js +113 -0
- package/dist/rendering/expression-parser/expression-parser.factory.js.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.service.d.ts +30 -0
- package/dist/rendering/expression-parser/expression-parser.service.d.ts.map +1 -0
- package/dist/rendering/expression-parser/expression-parser.service.js +96 -0
- package/dist/rendering/expression-parser/expression-parser.service.js.map +1 -0
- package/dist/rendering/expression-parser/host-projector.d.ts +80 -0
- package/dist/rendering/expression-parser/host-projector.d.ts.map +1 -0
- package/dist/rendering/expression-parser/host-projector.js +97 -0
- package/dist/rendering/expression-parser/host-projector.js.map +1 -0
- package/dist/rendering/expression-parser/index.d.ts +6 -0
- package/dist/rendering/expression-parser/index.d.ts.map +1 -0
- package/dist/rendering/expression-parser/index.js +15 -0
- package/dist/rendering/expression-parser/index.js.map +1 -0
- package/dist/rendering/expression-parser/interfaces.d.ts +41 -0
- package/dist/rendering/expression-parser/interfaces.d.ts.map +1 -0
- package/dist/rendering/expression-parser/interfaces.js +2 -0
- package/dist/rendering/expression-parser/interfaces.js.map +1 -0
- package/dist/rendering/expression-parser/parser.d.ts +135 -0
- package/dist/rendering/expression-parser/parser.d.ts.map +1 -0
- package/dist/rendering/expression-parser/parser.js +345 -0
- package/dist/rendering/expression-parser/parser.js.map +1 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.d.ts +23 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.d.ts.map +1 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.js +2 -0
- package/dist/rendering/expression-parser/safe-method-validator.interface.js.map +1 -0
- package/dist/rendering/expression-parser/safe-methods.d.ts +29 -0
- package/dist/rendering/expression-parser/safe-methods.d.ts.map +1 -0
- package/dist/rendering/expression-parser/safe-methods.js +136 -0
- package/dist/rendering/expression-parser/safe-methods.js.map +1 -0
- package/dist/rendering/expression-parser/tokenizer.d.ts +68 -0
- package/dist/rendering/expression-parser/tokenizer.d.ts.map +1 -0
- package/dist/rendering/expression-parser/tokenizer.js +282 -0
- package/dist/rendering/expression-parser/tokenizer.js.map +1 -0
- package/dist/rendering/expression-parser/types.d.ts +234 -0
- package/dist/rendering/expression-parser/types.d.ts.map +1 -0
- package/dist/rendering/expression-parser/types.js +33 -0
- package/dist/rendering/expression-parser/types.js.map +1 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.d.ts +54 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.d.ts.map +1 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.js +2 -0
- package/dist/rendering/host-projection/host-projection-registry.interface.js.map +1 -0
- package/dist/rendering/host-projection/host-projection.registry.d.ts +67 -0
- package/dist/rendering/host-projection/host-projection.registry.d.ts.map +1 -0
- package/dist/rendering/host-projection/host-projection.registry.js +96 -0
- package/dist/rendering/host-projection/host-projection.registry.js.map +1 -0
- package/dist/rendering/host-projection/index.d.ts +3 -0
- package/dist/rendering/host-projection/index.d.ts.map +1 -0
- package/dist/rendering/host-projection/index.js +2 -0
- package/dist/rendering/host-projection/index.js.map +1 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.d.ts +55 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.d.ts.map +1 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.js +90 -0
- package/dist/rendering/host-resolver/dom-context-host-resolver.js.map +1 -0
- package/dist/rendering/host-resolver/host-resolver.interface.d.ts +47 -0
- package/dist/rendering/host-resolver/host-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/host-resolver/host-resolver.interface.js +2 -0
- package/dist/rendering/host-resolver/host-resolver.interface.js.map +1 -0
- package/dist/rendering/host-resolver/index.d.ts +3 -0
- package/dist/rendering/host-resolver/index.d.ts.map +1 -0
- package/dist/rendering/host-resolver/index.js +2 -0
- package/dist/rendering/host-resolver/index.js.map +1 -0
- package/dist/rendering/index.d.ts +34 -0
- package/dist/rendering/index.d.ts.map +1 -0
- package/dist/rendering/index.js +27 -0
- package/dist/rendering/index.js.map +1 -0
- package/dist/rendering/inputs/smart-input-store.d.ts +11 -0
- package/dist/rendering/inputs/smart-input-store.d.ts.map +1 -0
- package/dist/rendering/inputs/smart-input-store.interface.d.ts +54 -0
- package/dist/rendering/inputs/smart-input-store.interface.d.ts.map +1 -0
- package/dist/rendering/inputs/smart-input-store.interface.js +5 -0
- package/dist/rendering/inputs/smart-input-store.interface.js.map +1 -0
- package/dist/rendering/inputs/smart-input-store.js +92 -0
- package/dist/rendering/inputs/smart-input-store.js.map +1 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.d.ts +94 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.d.ts.map +1 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.js +142 -0
- package/dist/rendering/lifecycle/lifecycle-coordinator.js.map +1 -0
- package/dist/rendering/lifecycle/mount-context.interface.d.ts +50 -0
- package/dist/rendering/lifecycle/mount-context.interface.d.ts.map +1 -0
- package/dist/rendering/lifecycle/mount-context.interface.js +2 -0
- package/dist/rendering/lifecycle/mount-context.interface.js.map +1 -0
- package/dist/rendering/lifecycle/mount-session.d.ts +49 -0
- package/dist/rendering/lifecycle/mount-session.d.ts.map +1 -0
- package/dist/rendering/lifecycle/mount-session.js +71 -0
- package/dist/rendering/lifecycle/mount-session.js.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.d.ts +55 -0
- package/dist/rendering/managed-host/host-style-migrator.d.ts.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.d.ts +42 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.js +2 -0
- package/dist/rendering/managed-host/host-style-migrator.interface.js.map +1 -0
- package/dist/rendering/managed-host/host-style-migrator.js +105 -0
- package/dist/rendering/managed-host/host-style-migrator.js.map +1 -0
- package/dist/rendering/managed-host/index.d.ts +18 -0
- package/dist/rendering/managed-host/index.d.ts.map +1 -0
- package/dist/rendering/managed-host/index.js +14 -0
- package/dist/rendering/managed-host/index.js.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.d.ts +60 -0
- package/dist/rendering/managed-host/input-attribute-policy.d.ts.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.d.ts +43 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.js +2 -0
- package/dist/rendering/managed-host/input-attribute-policy.interface.js.map +1 -0
- package/dist/rendering/managed-host/input-attribute-policy.js +114 -0
- package/dist/rendering/managed-host/input-attribute-policy.js.map +1 -0
- package/dist/rendering/managed-host/managed-element-registry.d.ts +35 -0
- package/dist/rendering/managed-host/managed-element-registry.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-element-registry.js +103 -0
- package/dist/rendering/managed-host/managed-element-registry.js.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.d.ts +27 -0
- package/dist/rendering/managed-host/managed-element-resolver.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.d.ts +36 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.js +2 -0
- package/dist/rendering/managed-host/managed-element-resolver.interface.js.map +1 -0
- package/dist/rendering/managed-host/managed-element-resolver.js +31 -0
- package/dist/rendering/managed-host/managed-element-resolver.js.map +1 -0
- package/dist/rendering/managed-host/managed-host-context.interface.d.ts +31 -0
- package/dist/rendering/managed-host/managed-host-context.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/managed-host-context.interface.js +2 -0
- package/dist/rendering/managed-host/managed-host-context.interface.js.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.d.ts +43 -0
- package/dist/rendering/managed-host/outlet-resolver.d.ts.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.d.ts +28 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.d.ts.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.js +2 -0
- package/dist/rendering/managed-host/outlet-resolver.interface.js.map +1 -0
- package/dist/rendering/managed-host/outlet-resolver.js +59 -0
- package/dist/rendering/managed-host/outlet-resolver.js.map +1 -0
- package/dist/rendering/pipeline/error-renderer.d.ts +107 -0
- package/dist/rendering/pipeline/error-renderer.d.ts.map +1 -0
- package/dist/rendering/pipeline/error-renderer.js +127 -0
- package/dist/rendering/pipeline/error-renderer.js.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.d.ts +87 -0
- package/dist/rendering/pipeline/render-pipeline.d.ts.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.interface.d.ts +54 -0
- package/dist/rendering/pipeline/render-pipeline.interface.d.ts.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.interface.js +2 -0
- package/dist/rendering/pipeline/render-pipeline.interface.js.map +1 -0
- package/dist/rendering/pipeline/render-pipeline.js +201 -0
- package/dist/rendering/pipeline/render-pipeline.js.map +1 -0
- package/dist/rendering/refs/get-component-host.d.ts +25 -0
- package/dist/rendering/refs/get-component-host.d.ts.map +1 -0
- package/dist/rendering/refs/get-component-host.js +27 -0
- package/dist/rendering/refs/get-component-host.js.map +1 -0
- package/dist/rendering/refs/host-ref-registry.d.ts +43 -0
- package/dist/rendering/refs/host-ref-registry.d.ts.map +1 -0
- package/dist/rendering/refs/host-ref-registry.js +38 -0
- package/dist/rendering/refs/host-ref-registry.js.map +1 -0
- package/dist/rendering/refs/ref-resolver.d.ts +44 -0
- package/dist/rendering/refs/ref-resolver.d.ts.map +1 -0
- package/dist/rendering/refs/ref-resolver.js +54 -0
- package/dist/rendering/refs/ref-resolver.js.map +1 -0
- package/dist/rendering/render-engine-facade.d.ts +80 -0
- package/dist/rendering/render-engine-facade.d.ts.map +1 -0
- package/dist/rendering/render-engine-facade.js +90 -0
- package/dist/rendering/render-engine-facade.js.map +1 -0
- package/dist/rendering/render-engine-factory.d.ts +158 -0
- package/dist/rendering/render-engine-factory.d.ts.map +1 -0
- package/dist/rendering/render-engine-factory.js +225 -0
- package/dist/rendering/render-engine-factory.js.map +1 -0
- package/dist/rendering/render-engine.d.ts +200 -0
- package/dist/rendering/render-engine.d.ts.map +1 -0
- package/dist/rendering/render-engine.js +205 -0
- package/dist/rendering/render-engine.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.d.ts +91 -0
- package/dist/rendering/skeleton/skeleton-renderer.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.d.ts +33 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.js +2 -0
- package/dist/rendering/skeleton/skeleton-renderer.interface.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-renderer.js +188 -0
- package/dist/rendering/skeleton/skeleton-renderer.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.d.ts +51 -0
- package/dist/rendering/skeleton/skeleton-validator.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.d.ts +23 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.d.ts.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.js +2 -0
- package/dist/rendering/skeleton/skeleton-validator.interface.js.map +1 -0
- package/dist/rendering/skeleton/skeleton-validator.js +215 -0
- package/dist/rendering/skeleton/skeleton-validator.js.map +1 -0
- package/dist/rendering/slots/index.d.ts +2 -0
- package/dist/rendering/slots/index.d.ts.map +1 -0
- package/dist/rendering/slots/index.js +2 -0
- package/dist/rendering/slots/index.js.map +1 -0
- package/dist/rendering/slots/slot-content.registry.d.ts +58 -0
- package/dist/rendering/slots/slot-content.registry.d.ts.map +1 -0
- package/dist/rendering/slots/slot-content.registry.js +77 -0
- package/dist/rendering/slots/slot-content.registry.js.map +1 -0
- package/dist/rendering/styles/shared-styles-registry.d.ts +68 -0
- package/dist/rendering/styles/shared-styles-registry.d.ts.map +1 -0
- package/dist/rendering/styles/shared-styles-registry.js +55 -0
- package/dist/rendering/styles/shared-styles-registry.js.map +1 -0
- package/dist/rendering/support/error-render-options.interface.d.ts +29 -0
- package/dist/rendering/support/error-render-options.interface.d.ts.map +1 -0
- package/dist/rendering/support/error-render-options.interface.js +2 -0
- package/dist/rendering/support/error-render-options.interface.js.map +1 -0
- package/dist/rendering/support/error-renderer.d.ts +56 -0
- package/dist/rendering/support/error-renderer.d.ts.map +1 -0
- package/dist/rendering/support/error-renderer.interface.d.ts +29 -0
- package/dist/rendering/support/error-renderer.interface.d.ts.map +1 -0
- package/dist/rendering/support/error-renderer.interface.js +2 -0
- package/dist/rendering/support/error-renderer.interface.js.map +1 -0
- package/dist/rendering/support/error-renderer.js +92 -0
- package/dist/rendering/support/error-renderer.js.map +1 -0
- package/dist/rendering/support/safe-methods.d.ts +46 -0
- package/dist/rendering/support/safe-methods.d.ts.map +1 -0
- package/dist/rendering/support/safe-methods.js +138 -0
- package/dist/rendering/support/safe-methods.js.map +1 -0
- package/dist/rendering/support/smart-input-store.d.ts +11 -0
- package/dist/rendering/support/smart-input-store.d.ts.map +1 -0
- package/dist/rendering/support/smart-input-store.interface.d.ts +54 -0
- package/dist/rendering/support/smart-input-store.interface.d.ts.map +1 -0
- package/dist/rendering/support/smart-input-store.interface.js +5 -0
- package/dist/rendering/support/smart-input-store.interface.js.map +1 -0
- package/dist/rendering/support/smart-input-store.js +92 -0
- package/dist/rendering/support/smart-input-store.js.map +1 -0
- package/dist/rendering/templates/compiled-template.interface.d.ts +34 -0
- package/dist/rendering/templates/compiled-template.interface.d.ts.map +1 -0
- package/dist/rendering/templates/compiled-template.interface.js +2 -0
- package/dist/rendering/templates/compiled-template.interface.js.map +1 -0
- package/dist/rendering/templates/composite-token-extractor.d.ts +10 -0
- package/dist/rendering/templates/composite-token-extractor.d.ts.map +1 -0
- package/dist/rendering/templates/composite-token-extractor.js +16 -0
- package/dist/rendering/templates/composite-token-extractor.js.map +1 -0
- package/dist/rendering/templates/delimited-token-extractor.d.ts +12 -0
- package/dist/rendering/templates/delimited-token-extractor.d.ts.map +1 -0
- package/dist/rendering/templates/delimited-token-extractor.js +44 -0
- package/dist/rendering/templates/delimited-token-extractor.js.map +1 -0
- package/dist/rendering/templates/host-projector.interface.d.ts +25 -0
- package/dist/rendering/templates/host-projector.interface.d.ts.map +1 -0
- package/dist/rendering/templates/host-projector.interface.js +2 -0
- package/dist/rendering/templates/host-projector.interface.js.map +1 -0
- package/dist/rendering/templates/html-aware-token-extractor.d.ts +56 -0
- package/dist/rendering/templates/html-aware-token-extractor.d.ts.map +1 -0
- package/dist/rendering/templates/html-aware-token-extractor.js +78 -0
- package/dist/rendering/templates/html-aware-token-extractor.js.map +1 -0
- package/dist/rendering/templates/html-fragment-parser.interface.d.ts +19 -0
- package/dist/rendering/templates/html-fragment-parser.interface.d.ts.map +1 -0
- package/dist/rendering/templates/html-fragment-parser.interface.js +2 -0
- package/dist/rendering/templates/html-fragment-parser.interface.js.map +1 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.d.ts +33 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.d.ts.map +1 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.js +2 -0
- package/dist/rendering/templates/interpolable-content-selector.interface.js.map +1 -0
- package/dist/rendering/templates/parse5-fragment-parser.d.ts +31 -0
- package/dist/rendering/templates/parse5-fragment-parser.d.ts.map +1 -0
- package/dist/rendering/templates/parse5-fragment-parser.js +36 -0
- package/dist/rendering/templates/parse5-fragment-parser.js.map +1 -0
- package/dist/rendering/templates/safe-content-selector.d.ts +50 -0
- package/dist/rendering/templates/safe-content-selector.d.ts.map +1 -0
- package/dist/rendering/templates/safe-content-selector.js +138 -0
- package/dist/rendering/templates/safe-content-selector.js.map +1 -0
- package/dist/rendering/templates/simple-template-analyzer.d.ts +29 -0
- package/dist/rendering/templates/simple-template-analyzer.d.ts.map +1 -0
- package/dist/rendering/templates/simple-template-analyzer.js +59 -0
- package/dist/rendering/templates/simple-template-analyzer.js.map +1 -0
- package/dist/rendering/templates/template-analyzer.d.ts +60 -0
- package/dist/rendering/templates/template-analyzer.d.ts.map +1 -0
- package/dist/rendering/templates/template-analyzer.interface.d.ts +15 -0
- package/dist/rendering/templates/template-analyzer.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-analyzer.interface.js +2 -0
- package/dist/rendering/templates/template-analyzer.interface.js.map +1 -0
- package/dist/rendering/templates/template-analyzer.js +74 -0
- package/dist/rendering/templates/template-analyzer.js.map +1 -0
- package/dist/rendering/templates/template-compilation-cache.d.ts +96 -0
- package/dist/rendering/templates/template-compilation-cache.d.ts.map +1 -0
- package/dist/rendering/templates/template-compilation-cache.js +125 -0
- package/dist/rendering/templates/template-compilation-cache.js.map +1 -0
- package/dist/rendering/templates/template-compiler.d.ts +76 -0
- package/dist/rendering/templates/template-compiler.d.ts.map +1 -0
- package/dist/rendering/templates/template-compiler.interface.d.ts +35 -0
- package/dist/rendering/templates/template-compiler.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-compiler.interface.js +2 -0
- package/dist/rendering/templates/template-compiler.interface.js.map +1 -0
- package/dist/rendering/templates/template-compiler.js +136 -0
- package/dist/rendering/templates/template-compiler.js.map +1 -0
- package/dist/rendering/templates/template-provider.d.ts +112 -0
- package/dist/rendering/templates/template-provider.d.ts.map +1 -0
- package/dist/rendering/templates/template-provider.factory.d.ts +35 -0
- package/dist/rendering/templates/template-provider.factory.d.ts.map +1 -0
- package/dist/rendering/templates/template-provider.factory.js +42 -0
- package/dist/rendering/templates/template-provider.factory.js.map +1 -0
- package/dist/rendering/templates/template-provider.interface.d.ts +32 -0
- package/dist/rendering/templates/template-provider.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-provider.interface.js +2 -0
- package/dist/rendering/templates/template-provider.interface.js.map +1 -0
- package/dist/rendering/templates/template-provider.js +104 -0
- package/dist/rendering/templates/template-provider.js.map +1 -0
- package/dist/rendering/templates/template-token.interface.d.ts +38 -0
- package/dist/rendering/templates/template-token.interface.d.ts.map +1 -0
- package/dist/rendering/templates/template-token.interface.js +2 -0
- package/dist/rendering/templates/template-token.interface.js.map +1 -0
- package/dist/types/interfaces.d.ts +204 -0
- package/dist/types/interfaces.d.ts.map +1 -0
- package/dist/types/interfaces.js +2 -0
- package/dist/types/interfaces.js.map +1 -0
- package/dist/utils/dom-utils.d.ts +71 -0
- package/dist/utils/dom-utils.d.ts.map +1 -0
- package/dist/utils/dom-utils.js +119 -0
- package/dist/utils/dom-utils.js.map +1 -0
- package/dist/utils/object-registry.d.ts +71 -0
- package/dist/utils/object-registry.d.ts.map +1 -0
- package/dist/utils/object-registry.js +126 -0
- package/dist/utils/object-registry.js.map +1 -0
- package/package.json +79 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { ICompiledTemplate } from "./compiled-template.interface.js";
|
|
2
|
+
import { ITemplateAnalyzer } from "./template-analyzer.js";
|
|
3
|
+
/**
|
|
4
|
+
* Implements the responsibility of caching compiled templates.
|
|
5
|
+
*
|
|
6
|
+
* @description
|
|
7
|
+
* Caches compiled templates to avoid re-parsing.
|
|
8
|
+
* Templates are indexed by a cache key that includes both componentId and template content hash
|
|
9
|
+
* to prevent staleness when constants or rules change.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const cache = new TemplateCompilationCache();
|
|
14
|
+
* const analyzer = new TemplateAnalyzer();
|
|
15
|
+
*
|
|
16
|
+
* // First call: compiles and caches
|
|
17
|
+
* const compiled1 = cache.getOrCompile('my-counter', '<div>{{count}}</div>', analyzer);
|
|
18
|
+
*
|
|
19
|
+
* // Second call with same template: returns cached version
|
|
20
|
+
* const compiled2 = cache.getOrCompile('my-counter', '<div>{{count}}</div>', analyzer);
|
|
21
|
+
*
|
|
22
|
+
* // Different resolved template (e.g., constants changed): new compilation
|
|
23
|
+
* const compiled3 = cache.getOrCompile('my-counter', '<div class="new-class">{{count}}</div>', analyzer);
|
|
24
|
+
*
|
|
25
|
+
* // compiled1 === compiled2 (same reference)
|
|
26
|
+
* // compiled1 !== compiled3 (different template)
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare class TemplateCompilationCache {
|
|
30
|
+
private cache;
|
|
31
|
+
/**
|
|
32
|
+
* Generates a cache key from componentId and template content.
|
|
33
|
+
*
|
|
34
|
+
* @description
|
|
35
|
+
* Uses SHA-1 hash of template to ensure different resolved templates
|
|
36
|
+
* (due to different constants/rules) produce different cache keys.
|
|
37
|
+
*
|
|
38
|
+
* @param componentId - Component selector (tag name)
|
|
39
|
+
* @param template - Resolved template string (after static binding resolution)
|
|
40
|
+
* @returns Cache key combining componentId and template hash
|
|
41
|
+
*/
|
|
42
|
+
private generateCacheKey;
|
|
43
|
+
/**
|
|
44
|
+
* Gets cached compiled template or compiles and caches it.
|
|
45
|
+
*
|
|
46
|
+
* @param componentId - Component selector (tag name)
|
|
47
|
+
* @param template - HTML template string (should already be resolved of [[...]] and [[RULES.*]])
|
|
48
|
+
* @param analyzer - Template analyzer instance
|
|
49
|
+
* @returns Compiled template (cached or newly compiled)
|
|
50
|
+
* @throws Error if any parameter is null or undefined
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const cache = new TemplateCompilationCache();
|
|
55
|
+
* const analyzer = new TemplateAnalyzer();
|
|
56
|
+
*
|
|
57
|
+
* const compiled = cache.getOrCompile(
|
|
58
|
+
* 'my-counter',
|
|
59
|
+
* '<div>{{count}}</div>',
|
|
60
|
+
* analyzer
|
|
61
|
+
* );
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
getOrCompile(componentId: string, template: string, analyzer: ITemplateAnalyzer): ICompiledTemplate;
|
|
65
|
+
/**
|
|
66
|
+
* Checks if a template is cached.
|
|
67
|
+
*
|
|
68
|
+
* @param componentId - Component selector (tag name)
|
|
69
|
+
* @param template - Template string to check
|
|
70
|
+
* @returns true if cached, false otherwise
|
|
71
|
+
* @throws Error if parameters are null or undefined
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* if (cache.has('my-counter', '<div>{{count}}</div>')) {
|
|
76
|
+
* console.log('Template is cached');
|
|
77
|
+
* }
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
has(componentId: string, template: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Clears all cached templates.
|
|
83
|
+
*
|
|
84
|
+
* @description
|
|
85
|
+
* Used for testing to ensure test isolation.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* afterEach(() => {
|
|
90
|
+
* cache.clear();
|
|
91
|
+
* });
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
clear(): void;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=template-compilation-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-compilation-cache.d.ts","sourceRoot":"","sources":["../../../src/rendering/templates/template-compilation-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,KAAK,CAAwC;IAErD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,gBAAgB;IAQxB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CACV,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,iBAAiB,GAC1B,iBAAiB;IAgBpB;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOnD;;;;;;;;;;;;OAYG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { createHash } from "crypto";
|
|
2
|
+
/**
|
|
3
|
+
* Implements the responsibility of caching compiled templates.
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Caches compiled templates to avoid re-parsing.
|
|
7
|
+
* Templates are indexed by a cache key that includes both componentId and template content hash
|
|
8
|
+
* to prevent staleness when constants or rules change.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const cache = new TemplateCompilationCache();
|
|
13
|
+
* const analyzer = new TemplateAnalyzer();
|
|
14
|
+
*
|
|
15
|
+
* // First call: compiles and caches
|
|
16
|
+
* const compiled1 = cache.getOrCompile('my-counter', '<div>{{count}}</div>', analyzer);
|
|
17
|
+
*
|
|
18
|
+
* // Second call with same template: returns cached version
|
|
19
|
+
* const compiled2 = cache.getOrCompile('my-counter', '<div>{{count}}</div>', analyzer);
|
|
20
|
+
*
|
|
21
|
+
* // Different resolved template (e.g., constants changed): new compilation
|
|
22
|
+
* const compiled3 = cache.getOrCompile('my-counter', '<div class="new-class">{{count}}</div>', analyzer);
|
|
23
|
+
*
|
|
24
|
+
* // compiled1 === compiled2 (same reference)
|
|
25
|
+
* // compiled1 !== compiled3 (different template)
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export class TemplateCompilationCache {
|
|
29
|
+
cache = new Map();
|
|
30
|
+
/**
|
|
31
|
+
* Generates a cache key from componentId and template content.
|
|
32
|
+
*
|
|
33
|
+
* @description
|
|
34
|
+
* Uses SHA-1 hash of template to ensure different resolved templates
|
|
35
|
+
* (due to different constants/rules) produce different cache keys.
|
|
36
|
+
*
|
|
37
|
+
* @param componentId - Component selector (tag name)
|
|
38
|
+
* @param template - Resolved template string (after static binding resolution)
|
|
39
|
+
* @returns Cache key combining componentId and template hash
|
|
40
|
+
*/
|
|
41
|
+
generateCacheKey(componentId, template) {
|
|
42
|
+
const hash = createHash("sha1")
|
|
43
|
+
.update(template)
|
|
44
|
+
.digest("hex")
|
|
45
|
+
.substring(0, 8);
|
|
46
|
+
return `${componentId}:${hash}`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Gets cached compiled template or compiles and caches it.
|
|
50
|
+
*
|
|
51
|
+
* @param componentId - Component selector (tag name)
|
|
52
|
+
* @param template - HTML template string (should already be resolved of [[...]] and [[RULES.*]])
|
|
53
|
+
* @param analyzer - Template analyzer instance
|
|
54
|
+
* @returns Compiled template (cached or newly compiled)
|
|
55
|
+
* @throws Error if any parameter is null or undefined
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const cache = new TemplateCompilationCache();
|
|
60
|
+
* const analyzer = new TemplateAnalyzer();
|
|
61
|
+
*
|
|
62
|
+
* const compiled = cache.getOrCompile(
|
|
63
|
+
* 'my-counter',
|
|
64
|
+
* '<div>{{count}}</div>',
|
|
65
|
+
* analyzer
|
|
66
|
+
* );
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
getOrCompile(componentId, template, analyzer) {
|
|
70
|
+
if (!componentId)
|
|
71
|
+
throw new Error("ComponentId is required");
|
|
72
|
+
if (!template)
|
|
73
|
+
throw new Error("Template is required");
|
|
74
|
+
if (!analyzer)
|
|
75
|
+
throw new Error("Analyzer is required");
|
|
76
|
+
const cacheKey = this.generateCacheKey(componentId, template);
|
|
77
|
+
const cached = this.cache.get(cacheKey);
|
|
78
|
+
if (cached) {
|
|
79
|
+
return cached;
|
|
80
|
+
}
|
|
81
|
+
const compiled = analyzer.analyze(template);
|
|
82
|
+
this.cache.set(cacheKey, compiled);
|
|
83
|
+
return compiled;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Checks if a template is cached.
|
|
87
|
+
*
|
|
88
|
+
* @param componentId - Component selector (tag name)
|
|
89
|
+
* @param template - Template string to check
|
|
90
|
+
* @returns true if cached, false otherwise
|
|
91
|
+
* @throws Error if parameters are null or undefined
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* if (cache.has('my-counter', '<div>{{count}}</div>')) {
|
|
96
|
+
* console.log('Template is cached');
|
|
97
|
+
* }
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
has(componentId, template) {
|
|
101
|
+
if (!componentId)
|
|
102
|
+
throw new Error("ComponentId is required");
|
|
103
|
+
if (!template)
|
|
104
|
+
throw new Error("Template is required");
|
|
105
|
+
const cacheKey = this.generateCacheKey(componentId, template);
|
|
106
|
+
return this.cache.has(cacheKey);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Clears all cached templates.
|
|
110
|
+
*
|
|
111
|
+
* @description
|
|
112
|
+
* Used for testing to ensure test isolation.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* afterEach(() => {
|
|
117
|
+
* cache.clear();
|
|
118
|
+
* });
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
clear() {
|
|
122
|
+
this.cache.clear();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=template-compilation-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-compilation-cache.js","sourceRoot":"","sources":["../../../src/rendering/templates/template-compilation-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAIpC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,wBAAwB;IAC3B,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAErD;;;;;;;;;;OAUG;IACK,gBAAgB,CAAC,WAAmB,EAAE,QAAgB;QAC5D,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC;aAC5B,MAAM,CAAC,QAAQ,CAAC;aAChB,MAAM,CAAC,KAAK,CAAC;aACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACnB,OAAO,GAAG,WAAW,IAAI,IAAI,EAAE,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY,CACV,WAAmB,EACnB,QAAgB,EAChB,QAA2B;QAE3B,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,GAAG,CAAC,WAAmB,EAAE,QAAgB;QACvC,IAAI,CAAC,WAAW;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { SmartComponent } from "../../core/smart-component.js";
|
|
2
|
+
import { IDomContext } from "../dom-context/dom-context.interface.js";
|
|
3
|
+
import { ITemplateCompiler } from "./template-compiler.interface.js";
|
|
4
|
+
import { IDomAdapter } from "../dom/dom-adapter.interface.js";
|
|
5
|
+
import type { IManagedElementRegistry } from "../managed-host/managed-element-registry.js";
|
|
6
|
+
import type { IComponentMetadataRegistry } from "../../core/component-metadata-registry.interface.js";
|
|
7
|
+
import { ComponentMetadata } from "../../core/component-metadata.js";
|
|
8
|
+
import { IBindingResolver } from "../bindings/binding-resolver.js";
|
|
9
|
+
/**
|
|
10
|
+
* Implements the responsibility of compiling template HTML with reactive bindings.
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* Transforms template strings into live DOM elements with reactive state bindings.
|
|
14
|
+
* Creates subscriptions for property changes. Content projection is handled
|
|
15
|
+
* natively by the browser via Shadow DOM <slot> elements.
|
|
16
|
+
*
|
|
17
|
+
* @architecture
|
|
18
|
+
* Compilation Process:
|
|
19
|
+
* 1. Parse template HTML into DOM element using IDomAdapter
|
|
20
|
+
* 2. Bind reactive properties to DOM updates
|
|
21
|
+
*/
|
|
22
|
+
export declare class TemplateCompiler implements ITemplateCompiler {
|
|
23
|
+
private readonly domAdapter;
|
|
24
|
+
private readonly bindingResolver;
|
|
25
|
+
private readonly metadataSource;
|
|
26
|
+
private readonly managedRegistry?;
|
|
27
|
+
/**
|
|
28
|
+
* Framework built-in elements that manage their own child binding scope.
|
|
29
|
+
* The BindingResolver must not recurse into these — their children serve
|
|
30
|
+
* as templates compiled separately with a different reactive context.
|
|
31
|
+
*/
|
|
32
|
+
private static readonly TEMPLATE_BOUNDARY_ELEMENTS;
|
|
33
|
+
/**
|
|
34
|
+
* Initializes a new instance of TemplateCompiler.
|
|
35
|
+
*
|
|
36
|
+
* @param domAdapter - Adapter for DOM element creation
|
|
37
|
+
* @param bindingResolver - Resolver for attribute/text bindings with input cleanup
|
|
38
|
+
* @param metadataSource - Read-only source for component metadata lookup
|
|
39
|
+
* @param managedRegistry - Registry for managed element tracking
|
|
40
|
+
* @throws Error if domAdapter or bindingResolver is null or undefined
|
|
41
|
+
*/
|
|
42
|
+
constructor(domAdapter: IDomAdapter, bindingResolver: IBindingResolver, metadataSource: IComponentMetadataRegistry, managedRegistry?: IManagedElementRegistry | undefined);
|
|
43
|
+
/**
|
|
44
|
+
* Compiles template source into a reactive DOM element
|
|
45
|
+
*
|
|
46
|
+
* @param templateSource - HTML template string
|
|
47
|
+
* @param component - Component instance for property access
|
|
48
|
+
* @param domContext - DOM context for subscription management
|
|
49
|
+
* @param metadata - Optional component metadata for selector and configuration
|
|
50
|
+
* @returns Promise resolving to compiled HTMLElement
|
|
51
|
+
* @throws Error if any parameter is null or undefined
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* ```typescript
|
|
55
|
+
* const compiler = new TemplateCompiler();
|
|
56
|
+
* const element = await compiler.compile(
|
|
57
|
+
* '<div>{{message}}</div>',
|
|
58
|
+
* myComponent,
|
|
59
|
+
* domContext,
|
|
60
|
+
* metadata
|
|
61
|
+
* );
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
compile<T extends SmartComponent>(templateSource: string, component: T, domContext: IDomContext, metadata?: ComponentMetadata): Promise<HTMLElement>;
|
|
65
|
+
/**
|
|
66
|
+
* Registers nested custom elements that are SmartComponents as managed.
|
|
67
|
+
*
|
|
68
|
+
* All registered SmartComponents found in the template are marked as managed.
|
|
69
|
+
* The binding resolver stops recursing into their children because each
|
|
70
|
+
* nested component renders inside its own Shadow DOM scope.
|
|
71
|
+
*
|
|
72
|
+
* @param rootElement - Root element to scan for nested components
|
|
73
|
+
*/
|
|
74
|
+
private registerNestedManagedElements;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=template-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-compiler.d.ts","sourceRoot":"","sources":["../../../src/rendering/templates/template-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAEnE;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IAkBtD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;IApBnC;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAA0B;IAE5E;;;;;;;;OAQG;gBAEgB,UAAU,EAAE,WAAW,EACvB,eAAe,EAAE,gBAAgB,EACjC,cAAc,EAAE,0BAA0B,EAC1C,eAAe,CAAC,EAAE,uBAAuB,YAAA;IAS5D;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,OAAO,CAAC,CAAC,SAAS,cAAc,EACpC,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,CAAC,EACZ,UAAU,EAAE,WAAW,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAsDvB;;;;;;;;OAQG;IACH,OAAO,CAAC,6BAA6B;CAgBtC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { SmartComponent } from "../../core/smart-component.js";
|
|
2
|
+
import { IDomContext } from "../dom-context/dom-context.interface.js";
|
|
3
|
+
import { ComponentMetadata } from "../../core/component-metadata.js";
|
|
4
|
+
/**
|
|
5
|
+
* Defines the responsibility of compiling template HTML strings into live DOM elements.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* Defines the contract for compiling template HTML strings into live DOM elements
|
|
9
|
+
* with reactive bindings and host projection applied.
|
|
10
|
+
*/
|
|
11
|
+
export interface ITemplateCompiler {
|
|
12
|
+
/**
|
|
13
|
+
* Compiles a template string into a reactive DOM element.
|
|
14
|
+
*
|
|
15
|
+
* @param templateSource - Preprocessed template HTML string
|
|
16
|
+
* @param component - Component instance for binding context
|
|
17
|
+
* @param domContext - DOM context for managing subscriptions and element references
|
|
18
|
+
* @param metadata - Optional component metadata for selector and configuration
|
|
19
|
+
* @returns Promise resolving to compiled HTMLElement ready for insertion
|
|
20
|
+
* @throws Error if template has no root element or compilation fails
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* const compiler = new TemplateCompiler();
|
|
25
|
+
* const element = await compiler.compile(
|
|
26
|
+
* '<div>{{message}}</div>',
|
|
27
|
+
* myComponent,
|
|
28
|
+
* domContext,
|
|
29
|
+
* metadata
|
|
30
|
+
* );
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
compile(templateSource: string, component: SmartComponent, domContext: IDomContext, metadata?: ComponentMetadata): Promise<HTMLElement>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=template-compiler.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-compiler.interface.d.ts","sourceRoot":"","sources":["../../../src/rendering/templates/template-compiler.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CACL,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,cAAc,EACzB,UAAU,EAAE,WAAW,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,WAAW,CAAC,CAAC;CACzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-compiler.interface.js","sourceRoot":"","sources":["../../../src/rendering/templates/template-compiler.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Implements the responsibility of compiling template HTML with reactive bindings.
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Transforms template strings into live DOM elements with reactive state bindings.
|
|
6
|
+
* Creates subscriptions for property changes. Content projection is handled
|
|
7
|
+
* natively by the browser via Shadow DOM <slot> elements.
|
|
8
|
+
*
|
|
9
|
+
* @architecture
|
|
10
|
+
* Compilation Process:
|
|
11
|
+
* 1. Parse template HTML into DOM element using IDomAdapter
|
|
12
|
+
* 2. Bind reactive properties to DOM updates
|
|
13
|
+
*/
|
|
14
|
+
export class TemplateCompiler {
|
|
15
|
+
domAdapter;
|
|
16
|
+
bindingResolver;
|
|
17
|
+
metadataSource;
|
|
18
|
+
managedRegistry;
|
|
19
|
+
/**
|
|
20
|
+
* Framework built-in elements that manage their own child binding scope.
|
|
21
|
+
* The BindingResolver must not recurse into these — their children serve
|
|
22
|
+
* as templates compiled separately with a different reactive context.
|
|
23
|
+
*/
|
|
24
|
+
static TEMPLATE_BOUNDARY_ELEMENTS = new Set(["smart-for"]);
|
|
25
|
+
/**
|
|
26
|
+
* Initializes a new instance of TemplateCompiler.
|
|
27
|
+
*
|
|
28
|
+
* @param domAdapter - Adapter for DOM element creation
|
|
29
|
+
* @param bindingResolver - Resolver for attribute/text bindings with input cleanup
|
|
30
|
+
* @param metadataSource - Read-only source for component metadata lookup
|
|
31
|
+
* @param managedRegistry - Registry for managed element tracking
|
|
32
|
+
* @throws Error if domAdapter or bindingResolver is null or undefined
|
|
33
|
+
*/
|
|
34
|
+
constructor(domAdapter, bindingResolver, metadataSource, managedRegistry) {
|
|
35
|
+
this.domAdapter = domAdapter;
|
|
36
|
+
this.bindingResolver = bindingResolver;
|
|
37
|
+
this.metadataSource = metadataSource;
|
|
38
|
+
this.managedRegistry = managedRegistry;
|
|
39
|
+
if (!domAdapter) {
|
|
40
|
+
throw new Error("Dom adapter is required");
|
|
41
|
+
}
|
|
42
|
+
if (!bindingResolver) {
|
|
43
|
+
throw new Error("Binding resolver is required");
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Compiles template source into a reactive DOM element
|
|
48
|
+
*
|
|
49
|
+
* @param templateSource - HTML template string
|
|
50
|
+
* @param component - Component instance for property access
|
|
51
|
+
* @param domContext - DOM context for subscription management
|
|
52
|
+
* @param metadata - Optional component metadata for selector and configuration
|
|
53
|
+
* @returns Promise resolving to compiled HTMLElement
|
|
54
|
+
* @throws Error if any parameter is null or undefined
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const compiler = new TemplateCompiler();
|
|
59
|
+
* const element = await compiler.compile(
|
|
60
|
+
* '<div>{{message}}</div>',
|
|
61
|
+
* myComponent,
|
|
62
|
+
* domContext,
|
|
63
|
+
* metadata
|
|
64
|
+
* );
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
async compile(templateSource, component, domContext, metadata) {
|
|
68
|
+
if (!templateSource)
|
|
69
|
+
throw new Error("Template source is required");
|
|
70
|
+
if (!component)
|
|
71
|
+
throw new Error("Component is required");
|
|
72
|
+
if (!domContext)
|
|
73
|
+
throw new Error("DOM context is required");
|
|
74
|
+
// Use provided metadata or fallback to registry lookup
|
|
75
|
+
const resolvedMetadata = metadata && typeof metadata === "object" && "selector" in metadata
|
|
76
|
+
? metadata
|
|
77
|
+
: this.metadataSource.get(component.constructor.name.toLowerCase());
|
|
78
|
+
const selector = resolvedMetadata?.selector || component.constructor.name.toLowerCase();
|
|
79
|
+
const template = this.domAdapter.createTemplateElement();
|
|
80
|
+
template.innerHTML = templateSource.trim();
|
|
81
|
+
let rootElement;
|
|
82
|
+
if (template.content.children.length === 1) {
|
|
83
|
+
rootElement = template.content.firstElementChild;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
const wrapper = this.domAdapter.createElement("div");
|
|
87
|
+
wrapper.className = selector;
|
|
88
|
+
while (template.content.firstChild) {
|
|
89
|
+
wrapper.appendChild(template.content.firstChild);
|
|
90
|
+
}
|
|
91
|
+
rootElement = wrapper;
|
|
92
|
+
}
|
|
93
|
+
if (!rootElement.classList.contains(selector)) {
|
|
94
|
+
rootElement.classList.add(selector);
|
|
95
|
+
}
|
|
96
|
+
// Register nested component elements as managed BEFORE binding so resolver can detect them
|
|
97
|
+
this.registerNestedManagedElements(rootElement);
|
|
98
|
+
// Use BindingResolver to compile all bindings (handles recursion internally)
|
|
99
|
+
this.bindingResolver.bindElement(rootElement, component, domContext);
|
|
100
|
+
// Pre-capture templates for nested smart-for elements AFTER binding (so the items
|
|
101
|
+
// attribute is already resolved) but BEFORE DOM insertion. Uses a data attribute
|
|
102
|
+
// because elements in <template> content fragments are NOT upgraded to Custom
|
|
103
|
+
// Elements — instance methods like setPresetTemplate() do not exist on them.
|
|
104
|
+
// This prevents a browser Custom Elements ordering race where an inner smart-for's
|
|
105
|
+
// connectedCallback fires before the outer's, clearing its innerHTML and corrupting
|
|
106
|
+
// the outer's template.
|
|
107
|
+
const nestedSmartFors = rootElement.querySelectorAll("smart-for");
|
|
108
|
+
for (let i = 0; i < nestedSmartFors.length; i++) {
|
|
109
|
+
const sf = nestedSmartFors[i];
|
|
110
|
+
sf.setAttribute("data-preset-template", sf.innerHTML);
|
|
111
|
+
}
|
|
112
|
+
return rootElement;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Registers nested custom elements that are SmartComponents as managed.
|
|
116
|
+
*
|
|
117
|
+
* All registered SmartComponents found in the template are marked as managed.
|
|
118
|
+
* The binding resolver stops recursing into their children because each
|
|
119
|
+
* nested component renders inside its own Shadow DOM scope.
|
|
120
|
+
*
|
|
121
|
+
* @param rootElement - Root element to scan for nested components
|
|
122
|
+
*/
|
|
123
|
+
registerNestedManagedElements(rootElement) {
|
|
124
|
+
const allElements = rootElement.getElementsByTagName("*");
|
|
125
|
+
for (let i = 0; i < allElements.length; i++) {
|
|
126
|
+
const element = allElements[i];
|
|
127
|
+
const tagName = element.tagName.toLowerCase();
|
|
128
|
+
if (tagName.includes("-") &&
|
|
129
|
+
(this.metadataSource.has(tagName) ||
|
|
130
|
+
TemplateCompiler.TEMPLATE_BOUNDARY_ELEMENTS.has(tagName))) {
|
|
131
|
+
this.managedRegistry?.register(element, tagName);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=template-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-compiler.js","sourceRoot":"","sources":["../../../src/rendering/templates/template-compiler.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAgB;IAkBR;IACA;IACA;IACA;IApBnB;;;;OAIG;IACK,MAAM,CAAU,0BAA0B,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5E;;;;;;;;OAQG;IACH,YACmB,UAAuB,EACvB,eAAiC,EACjC,cAA0C,EAC1C,eAAyC;QAHzC,eAAU,GAAV,UAAU,CAAa;QACvB,oBAAe,GAAf,eAAe,CAAkB;QACjC,mBAAc,GAAd,cAAc,CAA4B;QAC1C,oBAAe,GAAf,eAAe,CAA0B;QAE1D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,OAAO,CACX,cAAsB,EACtB,SAAY,EACZ,UAAuB,EACvB,QAA4B;QAE5B,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE5D,uDAAuD;QACvD,MAAM,gBAAgB,GACpB,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,UAAU,IAAI,QAAQ;YAChE,CAAC,CAAE,QAA8B;YACjC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,MAAM,QAAQ,GACZ,gBAAgB,EAAE,QAAQ,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACzD,QAAQ,CAAC,SAAS,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,WAAwB,CAAC;QAC7B,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3C,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAgC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrD,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC;YAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;YACD,WAAW,GAAG,OAAO,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9C,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QAED,2FAA2F;QAC3F,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAEhD,6EAA6E;QAC7E,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QAErE,kFAAkF;QAClF,kFAAkF;QAClF,8EAA8E;QAC9E,6EAA6E;QAC7E,mFAAmF;QACnF,oFAAoF;QACpF,wBAAwB;QACxB,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAgB,CAAC;YAC7C,EAAE,CAAC,YAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACK,6BAA6B,CAAC,WAAwB;QAC5D,MAAM,WAAW,GAAG,WAAW,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAE1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAE9C,IACE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrB,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;oBAC/B,gBAAgB,CAAC,0BAA0B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAC3D,CAAC;gBACD,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { SmartComponent } from "../../core/smart-component.js";
|
|
2
|
+
import { RenderOptions } from "../render-engine.js";
|
|
3
|
+
import type { IComponentMetadataRegistry } from "../../core/component-metadata-registry.interface.js";
|
|
4
|
+
import { IStaticBindingResolver } from "../bindings/static-binding-resolver.interface.js";
|
|
5
|
+
import { IRulesResolver } from "../bindings/rules-resolver.interface.js";
|
|
6
|
+
/**
|
|
7
|
+
* Implements the responsibility of handling template sourcing and static preprocessing.
|
|
8
|
+
*
|
|
9
|
+
* @description
|
|
10
|
+
* Responsible for retrieving component templates from @SmartRender decorator metadata
|
|
11
|
+
* and preprocessing static bindings like [[CONSTANT]] and [[RULES.field]] before reactive compilation.
|
|
12
|
+
* Content projection is handled natively by Shadow DOM <slot> elements.
|
|
13
|
+
*
|
|
14
|
+
* @architecture
|
|
15
|
+
* Template Processing Pipeline:
|
|
16
|
+
* 1. Load template from metadata.template (already in bundle)
|
|
17
|
+
* 2. Preprocess [[CONSTANT]] bindings (static, replaced once)
|
|
18
|
+
* 3. Preprocess [[RULES.field]] bindings (converted to HTML validation attributes)
|
|
19
|
+
* 4. Return preprocessed template for reactive {{binding}} compilation
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Defines the responsibility of retrieving component templates from metadata and preprocessing.
|
|
23
|
+
*
|
|
24
|
+
* @description
|
|
25
|
+
* Defines the contract for retrieving component templates from metadata and preprocessing
|
|
26
|
+
* static bindings like [[CONSTANT]] before reactive compilation.
|
|
27
|
+
*/
|
|
28
|
+
export interface ITemplateProvider {
|
|
29
|
+
/**
|
|
30
|
+
* Retrieves and preprocesses the template source for a component.
|
|
31
|
+
*
|
|
32
|
+
* @param component - The component instance
|
|
33
|
+
* @param options - Render options containing host element for host projection content capture
|
|
34
|
+
* @returns Promise resolving to preprocessed template HTML string
|
|
35
|
+
* @throws Error if no template found in component metadata
|
|
36
|
+
*/
|
|
37
|
+
getSource(component: SmartComponent, options: RenderOptions<SmartComponent>): Promise<string>;
|
|
38
|
+
}
|
|
39
|
+
export declare class TemplateProvider implements ITemplateProvider {
|
|
40
|
+
/**
|
|
41
|
+
* Static binding resolver for [[CONSTANT]] preprocessing
|
|
42
|
+
*/
|
|
43
|
+
private readonly staticBindingResolver;
|
|
44
|
+
/**
|
|
45
|
+
* Rules resolver for [[RULES.field]] preprocessing
|
|
46
|
+
*/
|
|
47
|
+
private readonly rulesResolver;
|
|
48
|
+
/**
|
|
49
|
+
* Read-only metadata source for component metadata lookup
|
|
50
|
+
*/
|
|
51
|
+
private readonly metadataSource;
|
|
52
|
+
/**
|
|
53
|
+
* Initializes a new instance of TemplateProvider.
|
|
54
|
+
*
|
|
55
|
+
* @param staticBindingResolver - Resolver for static constant bindings
|
|
56
|
+
* @param rulesResolver - Resolver for validation rules bindings
|
|
57
|
+
* @param metadataSource - Read-only source for component metadata lookup
|
|
58
|
+
* @throws Error if any dependency is null or undefined
|
|
59
|
+
*/
|
|
60
|
+
constructor(staticBindingResolver: IStaticBindingResolver, rulesResolver: IRulesResolver, metadataSource?: IComponentMetadataRegistry);
|
|
61
|
+
/**
|
|
62
|
+
* Retrieves and preprocesses the template source for a component
|
|
63
|
+
*
|
|
64
|
+
* @description
|
|
65
|
+
* Gets template HTML from component metadata and resolves static constants and rules.
|
|
66
|
+
*
|
|
67
|
+
* @param component - Component instance
|
|
68
|
+
* @param options - Render options with hostElement
|
|
69
|
+
* @returns Promise<string> - Template HTML with [[CONSTANT]] and [[RULES.field]] bindings resolved
|
|
70
|
+
* @throws Error if no template found in metadata
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* // Component with constants and rules
|
|
75
|
+
* @SmartRender({
|
|
76
|
+
* selector: 'login-form',
|
|
77
|
+
* constants: {
|
|
78
|
+
* Styles: { INPUT: 'form-control' },
|
|
79
|
+
* Events: { SUBMIT: 'login-submit' }
|
|
80
|
+
* },
|
|
81
|
+
* template: `
|
|
82
|
+
* <form>
|
|
83
|
+
* <input [[RULES.username]] class="[[Styles.INPUT]]" placeholder="Username" />
|
|
84
|
+
* <input [[RULES.password]] class="[[Styles.INPUT]]" type="password" placeholder="Password" />
|
|
85
|
+
* <button event="[[Events.SUBMIT]]">Login</button>
|
|
86
|
+
* </form>
|
|
87
|
+
* `
|
|
88
|
+
* })
|
|
89
|
+
* class LoginForm extends SmartComponent {
|
|
90
|
+
* rules = {
|
|
91
|
+
* username: { required: true, minlength: 3 },
|
|
92
|
+
* password: { required: true, minlength: 8 }
|
|
93
|
+
* };
|
|
94
|
+
* }
|
|
95
|
+
*
|
|
96
|
+
* // After getSource():
|
|
97
|
+
* // `<form>
|
|
98
|
+
* // <input required minlength="3" class="form-control" placeholder="Username" />
|
|
99
|
+
* // <input required minlength="8" class="form-control" type="password" placeholder="Password" />
|
|
100
|
+
* // <button event="login-submit">Login</button>
|
|
101
|
+
* // </form>`
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
getSource(component: SmartComponent, options: RenderOptions<SmartComponent>): Promise<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Type guard — returns true when a component has validation rules (duck-typing).
|
|
107
|
+
* Not all components are forms; rules are only present when injected via ctx.rules()
|
|
108
|
+
* or assigned explicitly. Avoids polluting the SmartComponent base class.
|
|
109
|
+
*/
|
|
110
|
+
private hasRules;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=template-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-provider.d.ts","sourceRoot":"","sources":["../../../src/rendering/templates/template-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE;;;;;;;;;;;;;;GAcG;AAEH;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,SAAS,CACP,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAyB;IAE/D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAiB;IAE/C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAyC;IAExE;;;;;;;OAOG;gBAED,qBAAqB,EAAE,sBAAsB,EAC7C,aAAa,EAAE,cAAc,EAC7B,cAAc,CAAC,EAAE,0BAA0B;IAW7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACG,SAAS,CACb,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,GACrC,OAAO,CAAC,MAAM,CAAC;IAkClB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;CAMjB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ITemplateProvider } from "./template-provider.js";
|
|
2
|
+
import type { IComponentMetadataRegistry } from "../../core/component-metadata-registry.interface.js";
|
|
3
|
+
/**
|
|
4
|
+
* Factory for creating TemplateProvider instances.
|
|
5
|
+
* Implements the Factory Pattern for centralized object creation.
|
|
6
|
+
*
|
|
7
|
+
* @description
|
|
8
|
+
* Provides a centralized way to create TemplateProvider instances with their dependencies.
|
|
9
|
+
* Ensures consistent dependency injection and allows for easy testing and mocking.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const provider = TemplateProviderFactory.createDefault(metadataSource);
|
|
14
|
+
* const template = await provider.getSource(component, options);
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare class TemplateProviderFactory {
|
|
18
|
+
/**
|
|
19
|
+
* Creates a TemplateProvider with default dependencies.
|
|
20
|
+
*
|
|
21
|
+
* @param metadataSource - Optional metadata source for component metadata lookup
|
|
22
|
+
* @returns A fully configured TemplateProvider instance
|
|
23
|
+
*/
|
|
24
|
+
static createDefault(metadataSource?: IComponentMetadataRegistry): ITemplateProvider;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a TemplateProvider with custom dependencies.
|
|
27
|
+
*
|
|
28
|
+
* @param staticBindingResolver - Custom static binding resolver implementation
|
|
29
|
+
* @param rulesResolver - Custom rules resolver implementation
|
|
30
|
+
* @param metadataSource - Optional metadata source for component metadata lookup
|
|
31
|
+
* @returns A TemplateProvider instance with custom dependencies
|
|
32
|
+
*/
|
|
33
|
+
static createWithDependencies(staticBindingResolver: import("../bindings/static-binding-resolver.interface.js").IStaticBindingResolver, rulesResolver: import("../bindings/rules-resolver.interface.js").IRulesResolver, metadataSource?: IComponentMetadataRegistry): ITemplateProvider;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=template-provider.factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-provider.factory.d.ts","sourceRoot":"","sources":["../../../src/rendering/templates/template-provider.factory.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AAEtG;;;;;;;;;;;;;GAaG;AACH,qBAAa,uBAAuB;IAClC;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAClB,cAAc,CAAC,EAAE,0BAA0B,GAC1C,iBAAiB;IAWpB;;;;;;;OAOG;IACH,MAAM,CAAC,sBAAsB,CAC3B,qBAAqB,EAAE,OAAO,kDAAkD,EAAE,sBAAsB,EACxG,aAAa,EAAE,OAAO,yCAAyC,EAAE,cAAc,EAC/E,cAAc,CAAC,EAAE,0BAA0B,GAC1C,iBAAiB;CAOrB"}
|