1- import { View } from "tns-core-modules/ui/core/view " ;
1+ import { ViewClass , ViewClassMeta } from "./element-types " ;
22
33export type ViewResolver = ( ) => ViewClass ;
4- export type NgView = ( View & ViewExtensions ) ;
5- export type NgElement = NgView | DetachedElement ;
6- export interface ViewClassMeta {
7- skipAddToDom ?: boolean ;
8- insertChild ?: ( parent : NgView , child : NgView , atIndex : number ) => void ;
9- removeChild ?: ( parent : NgView , child : NgView ) => void ;
10- }
11-
12- export interface ViewExtensions {
13- nodeType : number ;
14- nodeName : string ;
15- templateParent : NgView ;
16- ngCssClasses : Map < string , boolean > ;
17- meta : ViewClassMeta ;
18- }
19-
20- export interface ViewClass {
21- new ( ) : View ;
22- }
23-
24- export class DetachedElement {
25- templateParent : NgView ;
26- meta : { skipAddToDom : true } ;
27- }
28-
29- const defaultViewMeta : ViewClassMeta = {
30- skipAddToDom : false ,
31- } ;
324
335const elementMap = new Map < string , { resolver : ViewResolver , meta ?: ViewClassMeta } > ( ) ;
346const camelCaseSplit = / ( [ a - z 0 - 9 ] ) ( [ A - Z ] ) / g;
7+ const defaultViewMeta : ViewClassMeta = { skipAddToDom : false } ;
358
369export function registerElement (
3710 elementName : string ,
@@ -54,6 +27,7 @@ export function getViewClass(elementName: string): ViewClass {
5427 if ( ! entry ) {
5528 throw new TypeError ( `No known component for element ${ elementName } .` ) ;
5629 }
30+
5731 try {
5832 return entry . resolver ( ) ;
5933 } catch ( e ) {
@@ -62,12 +36,8 @@ export function getViewClass(elementName: string): ViewClass {
6236}
6337
6438export function getViewMeta ( nodeName : string ) : ViewClassMeta {
65- let meta = defaultViewMeta ;
6639 const entry = elementMap . get ( nodeName ) || elementMap . get ( nodeName . toLowerCase ( ) ) ;
67- if ( entry && entry . meta ) {
68- meta = entry . meta ;
69- }
70- return meta ;
40+ return ( entry && entry . meta ) || defaultViewMeta ;
7141}
7242
7343export function isKnownView ( elementName : string ) : boolean {
0 commit comments