ember-native 1.1.0 → 1.2.0

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.
@@ -1,8 +1,11 @@
1
1
  import Service from '@ember/service';
2
- import Router from '@ember/routing/router';
2
+ import type NativeRouter from './native-router.ts';
3
+ import type Router from '@ember/routing/router';
4
+ import type { Transition } from 'router_js';
3
5
  export default class HistoryService extends Service {
4
6
  router: Router;
5
- stack: any[];
7
+ nativeRouter: NativeRouter;
8
+ stack: Transition[];
6
9
  setup(): void;
7
10
  back: () => boolean;
8
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/services/history.ts"],"names":[],"mappings":"AAAA,OAAO,OAAoB,MAAM,gBAAgB,CAAC;AAClD,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAI3C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACxC,MAAM,EAAG,MAAM,CAAC;IAChB,KAAK,EAAE,GAAG,EAAE,CAAM;IAE3B,KAAK;IAYL,IAAI,gBAkBF;CACH"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/services/history.ts"],"names":[],"mappings":"AAAA,OAAO,OAAoB,MAAM,gBAAgB,CAAC;AAGlD,OAAO,KAAK,YAAY,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACxC,MAAM,EAAG,MAAM,CAAC;IACc,YAAY,EAAG,YAAY,CAAC;IAC1D,KAAK,EAAE,UAAU,EAAE,CAAM;IAElC,KAAK;IAYL,IAAI,gBA4BF;CACH"}
@@ -7,6 +7,9 @@ export default class NativeRouter extends Service {
7
7
  transitionTo(name: string, model: any, queryParams?: Record<string, any>, transition?: {
8
8
  transition: NavigationTransition;
9
9
  animated: boolean;
10
+ }, backTransition?: {
11
+ transition: NavigationTransition;
12
+ animated: boolean;
10
13
  }): Transition;
11
14
  }
12
15
  //# sourceMappingURL=native-router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"native-router.d.ts","sourceRoot":"","sources":["../../src/services/native-router.ts"],"names":[],"mappings":"AAAA,OAAO,OAAoB,MAAM,gBAAgB,CAAC;AAClD,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IACtC,MAAM,EAAG,MAAM,CAAC;IAEzB,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;CAYvE"}
1
+ {"version":3,"file":"native-router.d.ts","sourceRoot":"","sources":["../../src/services/native-router.ts"],"names":[],"mappings":"AAAA,OAAO,OAAoB,MAAM,gBAAgB,CAAC;AAClD,OAAO,MAAM,MAAM,uBAAuB,CAAC;AAE3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IACtC,MAAM,EAAG,MAAM,CAAC;IAEzB,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,UAAU,CAAC,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,EACpE,cAAc,CAAC,EAAE;QAAE,UAAU,EAAE,oBAAoB,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;CAY3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"InspectorSupport.js","sources":["../../src/components/InspectorSupport.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport ViewNode from '../dom/nodes/ViewNode.ts';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\nimport type PageElement from '../dom/native/PageElement.ts';\n\nconst ref = modifier(function setRef(element: any, [context, key]: any) {\n // console.log('ref', element, context, key);\n context[key] = element;\n});\n\ninterface InspectorSupportInterface {\n Blocks: {\n default: [];\n };\n}\n\nexport default class InspectorSupport extends Component<InspectorSupportInterface> {\n declare highlight: NativeElementNode;\n declare tooltip: NativeElementNode;\n declare page: PageElement;\n declare ownerDocument: DocumentNode;\n setupInspector = () => {\n let i = setInterval(() => {\n const viewInspection =\n globalThis.EmberInspector?.viewDebug?.viewInspection;\n if (viewInspection && this.tooltip) {\n this.tooltip.querySelector = () => {\n return {\n style: {},\n };\n };\n viewInspection._showTooltip = () => {};\n const _showHighlight = viewInspection._showHighlight;\n viewInspection._hideHighlight = () => {\n this.highlight.setAttribute('visibility', 'collapse');\n };\n viewInspection._showHighlight = (node: ViewNode, rect: any) => {\n _showHighlight.call(this, node, rect);\n this.highlight.setAttribute('visibility', 'visible');\n const style = this.highlight.style as any;\n style.width = (style.width as any).value;\n style.height = (style.height as any).value;\n const pos = this.page.nativeView.getLocationInWindow() || {\n x: 0,\n y: 0,\n };\n this.highlight.setAttribute(\n 'left',\n Number(style.left!.replace('px', '')) - pos.x,\n );\n this.highlight.setAttribute(\n 'top',\n Number(style.top!.replace('px', '')) - pos.y,\n );\n };\n viewInspection.highlight = this.highlight;\n viewInspection.tooltip = this.tooltip;\n const id = viewInspection.id;\n\n viewInspection.highlight.id = `ember-inspector-highlight-${id}`;\n viewInspection.tooltip.id = `ember-inspector-tooltip-${id}`;\n clearInterval(i);\n }\n }, 1000);\n };\n\n setupHighlight = modifier(\n function setupHighlight(\n this: InspectorSupport,\n element: NativeElementNode,\n ) {\n this.highlight = element;\n this.highlight.setAttribute('visibility', 'collapse');\n this.ownerDocument = element.ownerDocument!;\n }.bind(this),\n );\n setupTooltip = modifier(\n function setupTooltip(this: InspectorSupport, element: NativeElementNode) {\n this.tooltip = element;\n this.tooltip.setAttribute('visibility', 'collapse');\n }.bind(this),\n );\n <template>\n <absolute-layout {{ref this 'page'}}>\n <html-view {{this.setupHighlight}} />\n <html-view {{this.setupTooltip}} zIndex='99' />\n {{(this.setupInspector)}}\n <content-view left='0' top='0' width='100%' height='100%'>\n <frame>\n {{yield}}\n </frame>\n </content-view>\n </absolute-layout>\n </template>\n}\n"],"names":["ref","modifier","setRef","element","context","key","InspectorSupport","Component","constructor","args","_defineProperty","setupInspector","i","setInterval","viewInspection","globalThis","EmberInspector","viewDebug","tooltip","querySelector","style","_showTooltip","_showHighlight","_hideHighlight","highlight","setAttribute","node","rect","call","width","value","height","pos","page","nativeView","getLocationInWindow","x","y","Number","left","replace","top","id","clearInterval","setupHighlight","ownerDocument","bind","setupTooltip","_InspectorSupport","template_608aa7273d324022acb6052f1e6d9030","strictMode","scope"],"mappings":"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"}
1
+ {"version":3,"file":"InspectorSupport.js","sources":["../../src/components/InspectorSupport.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport ViewNode from '../dom/nodes/ViewNode.ts';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\nimport type PageElement from '../dom/native/PageElement.ts';\n\nconst ref = modifier(function setRef(element: any, [context, key]: any) {\n // console.log('ref', element, context, key);\n context[key] = element;\n});\n\ninterface InspectorSupportInterface {\n Blocks: {\n default: [];\n };\n}\n\nexport default class InspectorSupport extends Component<InspectorSupportInterface> {\n declare highlight: NativeElementNode;\n declare tooltip: NativeElementNode;\n declare page: PageElement;\n declare ownerDocument: DocumentNode;\n setupInspector = () => {\n let i = setInterval(() => {\n const viewInspection =\n globalThis.EmberInspector?.viewDebug?.viewInspection;\n if (viewInspection && this.tooltip) {\n this.tooltip.querySelector = () => {\n return {\n style: {},\n };\n };\n viewInspection._showTooltip = () => {};\n const _showHighlight = viewInspection._showHighlight;\n viewInspection._hideHighlight = () => {\n this.highlight.setAttribute('visibility', 'collapse');\n };\n viewInspection._showHighlight = (node: ViewNode, rect: any) => {\n _showHighlight.call(this, node, rect);\n this.highlight.setAttribute('visibility', 'visible');\n const style = this.highlight.style as any;\n style.width = (style.width as any).value;\n style.height = (style.height as any).value;\n const pos = this.page.nativeView.getLocationInWindow() || {\n x: 0,\n y: 0,\n };\n this.highlight.setAttribute(\n 'left',\n Number(style.left!.replace('px', '')) - pos.x,\n );\n this.highlight.setAttribute(\n 'top',\n Number(style.top!.replace('px', '')) - pos.y,\n );\n };\n viewInspection.highlight = this.highlight;\n viewInspection.tooltip = this.tooltip;\n const id = viewInspection.id;\n\n viewInspection.highlight.id = `ember-inspector-highlight-${id}`;\n viewInspection.tooltip.id = `ember-inspector-tooltip-${id}`;\n clearInterval(i);\n }\n }, 1000);\n };\n\n setupHighlight = modifier(\n function setupHighlight(\n this: InspectorSupport,\n element: NativeElementNode,\n ) {\n this.highlight = element;\n this.highlight.setAttribute('visibility', 'collapse');\n this.ownerDocument = element.ownerDocument!;\n }.bind(this),\n );\n setupTooltip = modifier(\n function setupTooltip(this: InspectorSupport, element: NativeElementNode) {\n this.tooltip = element;\n this.tooltip.setAttribute('visibility', 'collapse');\n }.bind(this),\n );\n <template>\n <absolute-layout {{ref this 'page'}}>\n <html-view {{this.setupHighlight}} />\n <html-view {{this.setupTooltip}} zIndex='99' />\n {{(this.setupInspector)}}\n <content-view left='0' top='0' width='100%' height='100%'>\n <frame>\n {{yield}}\n </frame>\n </content-view>\n </absolute-layout>\n </template>\n}\n"],"names":["ref","modifier","setRef","element","context","key","InspectorSupport","Component","constructor","args","_defineProperty","setupInspector","i","setInterval","viewInspection","globalThis","EmberInspector","viewDebug","tooltip","querySelector","style","_showTooltip","_showHighlight","_hideHighlight","highlight","setAttribute","node","rect","call","width","value","height","pos","page","nativeView","getLocationInWindow","x","y","Number","left","replace","top","id","clearInterval","setupHighlight","ownerDocument","bind","setupTooltip","_InspectorSupport","template_f05f9bcb64c24d2aaf8869d2a3cf6084","strictMode","scope"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.js","sources":["../../src/components/ListView.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport type {\n ListView as NativeListView,\n StackLayout,\n} from '@nativescript/core';\nimport { tracked } from '@glimmer/tracking';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\n\ninterface ListViewInterface<T> {\n Element: NativeElementNode<NativeListView>;\n Args: {\n items: T[];\n };\n Blocks: {\n item: [T | null];\n };\n}\n\ntype Ref<T> = {\n index: number;\n item: T | null;\n element: NativeElementNode<any>;\n};\n\nexport default class ListView<T> extends Component<ListViewInterface<T>> {\n @tracked elementRefs: Ref<T>[] = [];\n\n get items(): Ref<T>[] {\n return this.elementRefs.map(({ element, index }) => {\n return {\n index,\n item: this.args.items[index] || null,\n element,\n };\n });\n }\n\n cleanup(listView: NativeElementNode<NativeListView>) {\n for (const elementRef of this.elementRefs) {\n const n = elementRef.element.nativeView.nativeViewProtected;\n if (!n || !n.getWindowToken()) {\n elementRef.element.parentNode!.removeChild(elementRef.element);\n ((listView.nativeView as any)._realizedItems as any).delete(\n elementRef.element.nativeView,\n );\n }\n }\n this.elementRefs = this.elementRefs.filter(\n (e) => !!e.element.nativeView.nativeViewProtected?.getWindowToken(),\n ) as Ref<T>[];\n }\n\n setupListView = modifier(\n function setupListView(\n this: ListView<T>,\n listView: NativeElementNode<NativeListView>,\n ) {\n const listViewComponent = this;\n function _getDefaultItemContent(index: number) {\n listViewComponent.cleanup(listView);\n const sl = DocumentNode.createElement('stack-layout');\n listViewComponent.elementRefs.push({\n element: sl,\n item: null,\n index,\n });\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n return sl.nativeView;\n }\n (listView.nativeView as any)._getDefaultItemContent =\n _getDefaultItemContent;\n (listView.nativeView as any)._prepareItem = (\n stackLayout: StackLayout,\n index: number,\n ) => {\n const ref = listViewComponent.elementRefs.find(\n (e) => e.element.nativeView === stackLayout,\n )!;\n ref.index = index;\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n };\n }.bind(this),\n );\n\n <template>\n <list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n </template>\n}\n"],"names":["ListView","_class","_ListView","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","modifier","setupListView","listView","listViewComponent","_getDefaultItemContent","index","cleanup","sl","DocumentNode","createElement","elementRefs","push","element","item","nativeView","_prepareItem","stackLayout","ref","find","e","bind","items","map","elementRef","n","nativeViewProtected","getWindowToken","parentNode","removeChild","_realizedItems","delete","filter","setComponentTemplate","template_38fbe8699a7f466486f94c0a31076021","strictMode","_applyDecoratedDescriptor","prototype","tracked"],"mappings":"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"}
1
+ {"version":3,"file":"ListView.js","sources":["../../src/components/ListView.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport type {\n ListView as NativeListView,\n StackLayout,\n} from '@nativescript/core';\nimport { tracked } from '@glimmer/tracking';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\n\ninterface ListViewInterface<T> {\n Element: NativeElementNode<NativeListView>;\n Args: {\n items: T[];\n };\n Blocks: {\n item: [T | null];\n };\n}\n\ntype Ref<T> = {\n index: number;\n item: T | null;\n element: NativeElementNode<any>;\n};\n\nexport default class ListView<T> extends Component<ListViewInterface<T>> {\n @tracked elementRefs: Ref<T>[] = [];\n\n get items(): Ref<T>[] {\n return this.elementRefs.map(({ element, index }) => {\n return {\n index,\n item: this.args.items[index] || null,\n element,\n };\n });\n }\n\n cleanup(listView: NativeElementNode<NativeListView>) {\n for (const elementRef of this.elementRefs) {\n const n = elementRef.element.nativeView.nativeViewProtected;\n if (!n || !n.getWindowToken()) {\n elementRef.element.parentNode!.removeChild(elementRef.element);\n ((listView.nativeView as any)._realizedItems as any).delete(\n elementRef.element.nativeView,\n );\n }\n }\n this.elementRefs = this.elementRefs.filter(\n (e) => !!e.element.nativeView.nativeViewProtected?.getWindowToken(),\n ) as Ref<T>[];\n }\n\n setupListView = modifier(\n function setupListView(\n this: ListView<T>,\n listView: NativeElementNode<NativeListView>,\n ) {\n const listViewComponent = this;\n function _getDefaultItemContent(index: number) {\n listViewComponent.cleanup(listView);\n const sl = DocumentNode.createElement('stack-layout');\n listViewComponent.elementRefs.push({\n element: sl,\n item: null,\n index,\n });\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n return sl.nativeView;\n }\n (listView.nativeView as any)._getDefaultItemContent =\n _getDefaultItemContent;\n (listView.nativeView as any)._prepareItem = (\n stackLayout: StackLayout,\n index: number,\n ) => {\n const ref = listViewComponent.elementRefs.find(\n (e) => e.element.nativeView === stackLayout,\n )!;\n ref.index = index;\n listViewComponent.elementRefs = [...listViewComponent.elementRefs];\n };\n }.bind(this),\n );\n\n <template>\n <list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n </template>\n}\n"],"names":["ListView","_class","_ListView","Component","constructor","args","_initializerDefineProperty","_descriptor","_defineProperty","modifier","setupListView","listView","listViewComponent","_getDefaultItemContent","index","cleanup","sl","DocumentNode","createElement","elementRefs","push","element","item","nativeView","_prepareItem","stackLayout","ref","find","e","bind","items","map","elementRef","n","nativeViewProtected","getWindowToken","parentNode","removeChild","_realizedItems","delete","filter","setComponentTemplate","template_18054a99d8cd4a289efc154ee47ecb70","strictMode","_applyDecoratedDescriptor","prototype","tracked"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadListView.js","sources":["../../src/components/RadListView.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport { tracked } from '@glimmer/tracking';\nimport {\n RadListView as NativeRadListView,\n ListViewViewType,\n} from 'nativescript-ui-listview';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\nimport type { StackLayout } from '@nativescript/core';\n\nclass TrackedMap extends Map<any, any> {\n @tracked counter = 0;\n set(key: any, value: any): this {\n this.counter += 1;\n super.set(key, value);\n return this;\n }\n\n get(key: any): any {\n if (this.counter === 0) return null;\n return super.get(key);\n }\n\n entries(): any {\n if (this.counter === 0) return super.entries();\n return super.entries();\n }\n}\n\ninterface RadListViewInterface<T> {\n Element: NativeElementNode<NativeRadListView>;\n Args: {\n items: T[];\n };\n Blocks: {\n header: [];\n footer: [];\n item: [T];\n };\n}\n\nexport default class RadListView<T = any> extends Component<\n RadListViewInterface<T>\n> {\n elementRefs: TrackedMap = new TrackedMap();\n @tracked private listView: NativeElementNode<NativeRadListView> | undefined;\n private declare headerElement: NativeElementNode<StackLayout>;\n private declare footerElement: NativeElementNode<StackLayout>;\n\n get items() {\n return [...this.elementRefs.entries()].map(([element, item]) => {\n return {\n item,\n element,\n };\n });\n }\n\n setupListView = modifier(\n function setupListView(\n this: RadListView,\n listView: NativeElementNode<NativeRadListView>,\n ) {\n this.listView = listView;\n const listViewComponent = this;\n function _getDefaultItemContent() {\n const sl = DocumentNode.createElement('stack-layout');\n Object.defineProperty(sl.nativeView, 'parent', {\n get() {\n return this._parent;\n },\n set(v: any) {\n this._parent = v;\n Object.defineProperty(v, 'bindingContext', {\n get() {\n return listViewComponent.elementRefs.get(sl);\n },\n set(v: any) {\n listViewComponent.elementRefs.set(sl, v);\n },\n });\n },\n });\n return sl.nativeView;\n }\n listView.nativeView.itemViewLoader = (type) => {\n switch (type) {\n case ListViewViewType.ItemView:\n return _getDefaultItemContent();\n case ListViewViewType.HeaderView:\n return this.headerElement.nativeView;\n case ListViewViewType.FooterView:\n return this.footerElement.nativeView;\n }\n return DocumentNode.createElement('stack-layout').nativeView;\n };\n }.bind(this),\n );\n\n setupHeader = () => {\n this.headerElement = DocumentNode.createElement('stack-layout');\n };\n\n setupFooter = () => {\n this.footerElement = DocumentNode.createElement('stack-layout');\n };\n\n <template>\n <rad-list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#if this.listView}}\n {{#if (has-block 'header')}}\n {{this.setupHeader}}\n {{#in-element this.headerElement}}\n {{yield to='header'}}\n {{/in-element}}\n {{/if}}\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n {{#if (has-block 'footer')}}\n {{this.setupFooter}}\n {{#in-element this.footerElement}}\n {{yield to='footer'}}\n {{/in-element}}\n {{/if}}\n {{/if}}\n </template>\n}\n"],"names":["TrackedMap","_class","Map","constructor","args","_initializerDefineProperty","_descriptor","set","key","value","counter","get","entries","_applyDecoratedDescriptor","prototype","tracked","RadListView","_class2","_RadListView","Component","_defineProperty","_descriptor2","modifier","setupListView","listView","listViewComponent","_getDefaultItemContent","sl","DocumentNode","createElement","Object","defineProperty","nativeView","_parent","v","elementRefs","itemViewLoader","type","ListViewViewType","ItemView","HeaderView","headerElement","FooterView","footerElement","bind","setupHeader","setupFooter","items","map","element","item","setComponentTemplate","template_a0ea8e67c6a8420d829021d11396c894","strictMode"],"mappings":"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"}
1
+ {"version":3,"file":"RadListView.js","sources":["../../src/components/RadListView.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { modifier } from 'ember-modifier';\nimport { tracked } from '@glimmer/tracking';\nimport {\n RadListView as NativeRadListView,\n ListViewViewType,\n} from 'nativescript-ui-listview';\nimport NativeElementNode from '../dom/native/NativeElementNode.ts';\nimport DocumentNode from '../dom/nodes/DocumentNode.ts';\nimport type { StackLayout } from '@nativescript/core';\n\nclass TrackedMap extends Map<any, any> {\n @tracked counter = 0;\n set(key: any, value: any): this {\n this.counter += 1;\n super.set(key, value);\n return this;\n }\n\n get(key: any): any {\n if (this.counter === 0) return null;\n return super.get(key);\n }\n\n entries(): any {\n if (this.counter === 0) return super.entries();\n return super.entries();\n }\n}\n\ninterface RadListViewInterface<T> {\n Element: NativeElementNode<NativeRadListView>;\n Args: {\n items: T[];\n };\n Blocks: {\n header: [];\n footer: [];\n item: [T];\n };\n}\n\nexport default class RadListView<T = any> extends Component<\n RadListViewInterface<T>\n> {\n elementRefs: TrackedMap = new TrackedMap();\n @tracked private listView: NativeElementNode<NativeRadListView> | undefined;\n private declare headerElement: NativeElementNode<StackLayout>;\n private declare footerElement: NativeElementNode<StackLayout>;\n\n get items() {\n return [...this.elementRefs.entries()].map(([element, item]) => {\n return {\n item,\n element,\n };\n });\n }\n\n setupListView = modifier(\n function setupListView(\n this: RadListView,\n listView: NativeElementNode<NativeRadListView>,\n ) {\n this.listView = listView;\n const listViewComponent = this;\n function _getDefaultItemContent() {\n const sl = DocumentNode.createElement('stack-layout');\n Object.defineProperty(sl.nativeView, 'parent', {\n get() {\n return this._parent;\n },\n set(v: any) {\n this._parent = v;\n Object.defineProperty(v, 'bindingContext', {\n get() {\n return listViewComponent.elementRefs.get(sl);\n },\n set(v: any) {\n listViewComponent.elementRefs.set(sl, v);\n },\n });\n },\n });\n return sl.nativeView;\n }\n listView.nativeView.itemViewLoader = (type) => {\n switch (type) {\n case ListViewViewType.ItemView:\n return _getDefaultItemContent();\n case ListViewViewType.HeaderView:\n return this.headerElement.nativeView;\n case ListViewViewType.FooterView:\n return this.footerElement.nativeView;\n }\n return DocumentNode.createElement('stack-layout').nativeView;\n };\n }.bind(this),\n );\n\n setupHeader = () => {\n this.headerElement = DocumentNode.createElement('stack-layout');\n };\n\n setupFooter = () => {\n this.footerElement = DocumentNode.createElement('stack-layout');\n };\n\n <template>\n <rad-list-view {{this.setupListView}} items={{@items}} ...attributes />\n {{#if this.listView}}\n {{#if (has-block 'header')}}\n {{this.setupHeader}}\n {{#in-element this.headerElement}}\n {{yield to='header'}}\n {{/in-element}}\n {{/if}}\n {{#each this.items as |item|}}\n {{#in-element item.element}}\n {{yield item.item to='item'}}\n {{/in-element}}\n {{/each}}\n {{#if (has-block 'footer')}}\n {{this.setupFooter}}\n {{#in-element this.footerElement}}\n {{yield to='footer'}}\n {{/in-element}}\n {{/if}}\n {{/if}}\n </template>\n}\n"],"names":["TrackedMap","_class","Map","constructor","args","_initializerDefineProperty","_descriptor","set","key","value","counter","get","entries","_applyDecoratedDescriptor","prototype","tracked","RadListView","_class2","_RadListView","Component","_defineProperty","_descriptor2","modifier","setupListView","listView","listViewComponent","_getDefaultItemContent","sl","DocumentNode","createElement","Object","defineProperty","nativeView","_parent","v","elementRefs","itemViewLoader","type","ListViewViewType","ItemView","HeaderView","headerElement","FooterView","footerElement","bind","setupHeader","setupFooter","items","map","element","item","setComponentTemplate","template_89435e2558654849a018a3d8fa335f7f","strictMode"],"mappings":"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"}
@@ -3,25 +3,27 @@ import Service, { service } from '@ember/service';
3
3
  import { Application } from '@nativescript/core';
4
4
  import { tracked } from '@glimmer/tracking';
5
5
 
6
- var _class, _descriptor, _descriptor2;
7
- let HistoryService = (_class = class HistoryService extends Service {
6
+ var _dec, _class, _descriptor, _descriptor2, _descriptor3;
7
+ let HistoryService = (_dec = service('ember-native/native-router'), _class = class HistoryService extends Service {
8
8
  constructor(...args) {
9
9
  super(...args);
10
10
  _initializerDefineProperty(this, "router", _descriptor, this);
11
- _initializerDefineProperty(this, "stack", _descriptor2, this);
11
+ _initializerDefineProperty(this, "nativeRouter", _descriptor2, this);
12
+ _initializerDefineProperty(this, "stack", _descriptor3, this);
12
13
  _defineProperty(this, "back", () => {
13
14
  const h = this.stack.pop();
14
- if (h) {
15
+ if (h && h.from) {
16
+ const from = h.from;
15
17
  this.stack = [...this.stack];
16
18
  let transition;
17
- if (h.params.model) {
18
- transition = this.router.transitionTo(h.name, h.params.model, {
19
- queryParams: h.queryParams
20
- });
19
+ if (from.params?.['model']) {
20
+ transition = this.router.transitionTo(from.name, from.params?.['model'], {
21
+ queryParams: from.queryParams
22
+ }, h.data['transition']);
21
23
  } else {
22
- transition = this.router.transitionTo(h.name, {
23
- queryParams: h.queryParams
24
- });
24
+ transition = this.router.transitionTo(from.name, {
25
+ queryParams: from.queryParams
26
+ }, h.data['transition']);
25
27
  }
26
28
  transition.data['isBack'] = true;
27
29
  return true;
@@ -35,7 +37,7 @@ let HistoryService = (_class = class HistoryService extends Service {
35
37
  });
36
38
  this.router.on('routeDidChange', transition => {
37
39
  if (transition.from && !transition.data['isBack']) {
38
- this.stack.push(transition.from);
40
+ this.stack.push(transition);
39
41
  this.stack = [...this.stack];
40
42
  }
41
43
  });
@@ -45,7 +47,12 @@ let HistoryService = (_class = class HistoryService extends Service {
45
47
  enumerable: true,
46
48
  writable: true,
47
49
  initializer: null
48
- }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "stack", [tracked], {
50
+ }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "nativeRouter", [_dec], {
51
+ configurable: true,
52
+ enumerable: true,
53
+ writable: true,
54
+ initializer: null
55
+ }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "stack", [tracked], {
49
56
  configurable: true,
50
57
  enumerable: true,
51
58
  writable: true,
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sources":["../../src/services/history.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport Router from '@ember/routing/router';\nimport { Application } from '@nativescript/core';\nimport { tracked } from '@glimmer/tracking';\n\nexport default class HistoryService extends Service {\n @service router!: Router;\n @tracked stack: any[] = [];\n\n setup() {\n Application.android?.on('activityBackPressed', (args) => {\n args.cancel = this.back();\n });\n this.router.on('routeDidChange', (transition) => {\n if (transition.from && !transition.data['isBack']) {\n this.stack.push(transition.from);\n this.stack = [...this.stack];\n }\n });\n }\n\n back = () => {\n const h = this.stack.pop();\n if (h) {\n this.stack = [...this.stack];\n let transition;\n if (h.params.model) {\n transition = this.router.transitionTo(h.name, h.params.model, {\n queryParams: h.queryParams,\n });\n } else {\n transition = this.router.transitionTo(h.name, {\n queryParams: h.queryParams,\n });\n }\n transition.data['isBack'] = true;\n return true;\n }\n return false;\n };\n}\n"],"names":["HistoryService","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_defineProperty","back","h","stack","pop","transition","params","model","router","transitionTo","name","queryParams","data","setup","Application","android","on","cancel","from","push","_applyDecoratedDescriptor","prototype","service","tracked"],"mappings":";;;;;;AAKqBA,IAAAA,cAAc,IAAAC,MAAA,GAApB,MAAMD,cAAc,SAASE,OAAO,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAAC,IAAAA,0BAAA,iBAAAC,WAAA,EAAA,IAAA,CAAA;AAAAD,IAAAA,0BAAA,gBAAAE,YAAA,EAAA,IAAA,CAAA;AAAAC,IAAAA,eAAA,eAgB3CC,MAAM;MACX,MAAMC,CAAC,GAAG,IAAI,CAACC,KAAK,CAACC,GAAG,EAAE;AAC1B,MAAA,IAAIF,CAAC,EAAE;QACL,IAAI,CAACC,KAAK,GAAG,CAAC,GAAG,IAAI,CAACA,KAAK,CAAC;AAC5B,QAAA,IAAIE,UAAU;AACd,QAAA,IAAIH,CAAC,CAACI,MAAM,CAACC,KAAK,EAAE;AAClBF,UAAAA,UAAU,GAAG,IAAI,CAACG,MAAM,CAACC,YAAY,CAACP,CAAC,CAACQ,IAAI,EAAER,CAAC,CAACI,MAAM,CAACC,KAAK,EAAE;YAC5DI,WAAW,EAAET,CAAC,CAACS;AACjB,WAAC,CAAC;AACJ,SAAC,MAAM;UACLN,UAAU,GAAG,IAAI,CAACG,MAAM,CAACC,YAAY,CAACP,CAAC,CAACQ,IAAI,EAAE;YAC5CC,WAAW,EAAET,CAAC,CAACS;AACjB,WAAC,CAAC;AACJ;AACAN,QAAAA,UAAU,CAACO,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI;AAChC,QAAA,OAAO,IAAI;AACb;AACA,MAAA,OAAO,KAAK;KACb,CAAA;AAAA;AA9BDC,EAAAA,KAAKA,GAAG;IACNC,WAAW,CAACC,OAAO,EAAEC,EAAE,CAAC,qBAAqB,EAAGpB,IAAI,IAAK;AACvDA,MAAAA,IAAI,CAACqB,MAAM,GAAG,IAAI,CAAChB,IAAI,EAAE;AAC3B,KAAC,CAAC;IACF,IAAI,CAACO,MAAM,CAACQ,EAAE,CAAC,gBAAgB,EAAGX,UAAU,IAAK;MAC/C,IAAIA,UAAU,CAACa,IAAI,IAAI,CAACb,UAAU,CAACO,IAAI,CAAC,QAAQ,CAAC,EAAE;QACjD,IAAI,CAACT,KAAK,CAACgB,IAAI,CAACd,UAAU,CAACa,IAAI,CAAC;QAChC,IAAI,CAACf,KAAK,GAAG,CAAC,GAAG,IAAI,CAACA,KAAK,CAAC;AAC9B;AACF,KAAC,CAAC;AACJ;AAqBF,CAAA,EAAAL,WAAA,GAAAsB,yBAAA,CAAA3B,MAAA,CAAA4B,SAAA,EAAA,QAAA,EAAA,CAlCGC,OAAAA,CAAAA,EAAAA;EAAAA,YAAAA,EAAAA,IAAAA;EAAAA,UAAAA,EAAAA,IAAAA;EAAAA,QAAAA,EAAAA,IAAAA;EAAAA,WAAAA,EAAAA;AAAAA,CAAAA,CAAAA,EAAAA,YAAAA,GAAAA,yBAAAA,CAAAA,MAAAA,CAAAA,SAAAA,YACAC,OAAAA,CAAAA,EAAAA;EAAAA,YAAAA,EAAAA,IAAAA;EAAAA,UAAAA,EAAAA,IAAAA;EAAAA,QAAAA,EAAAA,IAAAA;AAAAA,EAAAA,WAAAA,cAAAA;AAAAA,IAAAA,OAAuB,EAAE;AAAA;AAAA,CAAA,CAAA,EAAA9B,MAAA;;;;"}
1
+ {"version":3,"file":"history.js","sources":["../../src/services/history.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport { Application } from '@nativescript/core';\nimport { tracked } from '@glimmer/tracking';\nimport type NativeRouter from './native-router.ts';\nimport type Router from '@ember/routing/router';\nimport type { Transition } from 'router_js';\n\nexport default class HistoryService extends Service {\n @service router!: Router;\n @service('ember-native/native-router') nativeRouter!: NativeRouter;\n @tracked stack: Transition[] = [];\n\n setup() {\n Application.android?.on('activityBackPressed', (args) => {\n args.cancel = this.back();\n });\n this.router.on('routeDidChange', (transition) => {\n if (transition.from && !transition.data['isBack']) {\n this.stack.push(transition);\n this.stack = [...this.stack];\n }\n });\n }\n\n back = () => {\n const h = this.stack.pop();\n if (h && h.from) {\n const from = h.from;\n this.stack = [...this.stack];\n let transition;\n if (from.params?.['model']) {\n transition = this.router.transitionTo(\n from.name,\n from.params?.['model'],\n {\n queryParams: from.queryParams,\n },\n h.data['transition'],\n );\n } else {\n transition = this.router.transitionTo(\n from.name,\n {\n queryParams: from.queryParams,\n },\n h.data['transition'],\n );\n }\n transition.data['isBack'] = true;\n return true;\n }\n return false;\n };\n}\n"],"names":["HistoryService","_dec","service","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","_descriptor2","_descriptor3","_defineProperty","back","h","stack","pop","from","transition","params","router","transitionTo","name","queryParams","data","setup","Application","android","on","cancel","push","_applyDecoratedDescriptor","prototype","tracked"],"mappings":"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"}
@@ -8,7 +8,7 @@ let NativeRouter = (_class = class NativeRouter extends Service {
8
8
  super(...args);
9
9
  _initializerDefineProperty(this, "router", _descriptor, this);
10
10
  }
11
- transitionTo(name, model, queryParams, transition) {
11
+ transitionTo(name, model, queryParams, transition, backTransition) {
12
12
  setNextTransition(transition?.transition, transition?.animated);
13
13
  let t;
14
14
  if (model) {
@@ -20,7 +20,7 @@ let NativeRouter = (_class = class NativeRouter extends Service {
20
20
  queryParams
21
21
  });
22
22
  }
23
- t.data['transition'] = transition;
23
+ t.data['transition'] = backTransition || transition;
24
24
  return t;
25
25
  }
26
26
  }, _descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [service], {
@@ -1 +1 @@
1
- {"version":3,"file":"native-router.js","sources":["../../src/services/native-router.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport Router from '@ember/routing/router';\nimport { setNextTransition } from '../dom/native/FrameElement.ts';\nimport type { NavigationTransition } from '@nativescript/core';\nimport type { Transition } from 'router_js';\n\nexport default class NativeRouter extends Service {\n @service router!: Router;\n\n transitionTo(\n name: string,\n model: any,\n queryParams?: Record<string, any>,\n transition?: { transition: NavigationTransition; animated: boolean },\n ) {\n setNextTransition(transition?.transition, transition?.animated);\n let t: Transition;\n if (model) {\n t = this.router.transitionTo(name, model, { queryParams });\n } else {\n t = this.router.transitionTo(name, { queryParams });\n }\n t.data['transition'] = transition;\n return t;\n }\n}\n"],"names":["NativeRouter","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","transitionTo","name","model","queryParams","transition","setNextTransition","animated","t","router","data","_applyDecoratedDescriptor","prototype","service"],"mappings":";;;;;AAMqBA,IAAAA,YAAY,IAAAC,MAAA,GAAlB,MAAMD,YAAY,SAASE,OAAO,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAAC,IAAAA,0BAAA,iBAAAC,WAAA,EAAA,IAAA,CAAA;AAAA;EAGhDC,YAAYA,CACVC,IAAY,EACZC,KAAU,EACVC,WAAiC,EACjCC,UAAoE,EACpE;IACAC,iBAAiB,CAACD,UAAU,EAAEA,UAAU,EAAEA,UAAU,EAAEE,QAAQ,CAAC;AAC/D,IAAA,IAAIC,CAAa;AACjB,IAAA,IAAIL,KAAK,EAAE;MACTK,CAAC,GAAG,IAAI,CAACC,MAAM,CAACR,YAAY,CAACC,IAAI,EAAEC,KAAK,EAAE;AAAEC,QAAAA;AAAY,OAAC,CAAC;AAC5D,KAAC,MAAM;MACLI,CAAC,GAAG,IAAI,CAACC,MAAM,CAACR,YAAY,CAACC,IAAI,EAAE;AAAEE,QAAAA;AAAY,OAAC,CAAC;AACrD;AACAI,IAAAA,CAAC,CAACE,IAAI,CAAC,YAAY,CAAC,GAAGL,UAAU;AACjC,IAAA,OAAOG,CAAC;AACV;AACF,CAAA,EAAAR,WAAA,GAAAW,yBAAA,CAAAhB,MAAA,CAAAiB,SAAA,EAAA,QAAA,EAAA,CAlBGC,OAAAA,CAAAA,EAAAA;EAAAA,YAAAA,EAAAA,IAAAA;EAAAA,UAAAA,EAAAA,IAAAA;EAAAA,QAAAA,EAAAA,IAAAA;EAAAA,WAAAA,EAAAA;AAAAA,CAAAA,CAAAA,EAAAA,MAAAA;;;;"}
1
+ {"version":3,"file":"native-router.js","sources":["../../src/services/native-router.ts"],"sourcesContent":["import Service, { service } from '@ember/service';\nimport Router from '@ember/routing/router';\nimport { setNextTransition } from '../dom/native/FrameElement.ts';\nimport type { NavigationTransition } from '@nativescript/core';\nimport type { Transition } from 'router_js';\n\nexport default class NativeRouter extends Service {\n @service router!: Router;\n\n transitionTo(\n name: string,\n model: any,\n queryParams?: Record<string, any>,\n transition?: { transition: NavigationTransition; animated: boolean },\n backTransition?: { transition: NavigationTransition; animated: boolean },\n ) {\n setNextTransition(transition?.transition, transition?.animated);\n let t: Transition;\n if (model) {\n t = this.router.transitionTo(name, model, { queryParams });\n } else {\n t = this.router.transitionTo(name, { queryParams });\n }\n t.data['transition'] = backTransition || transition;\n return t;\n }\n}\n"],"names":["NativeRouter","_class","Service","constructor","args","_initializerDefineProperty","_descriptor","transitionTo","name","model","queryParams","transition","backTransition","setNextTransition","animated","t","router","data","_applyDecoratedDescriptor","prototype","service"],"mappings":";;;;;AAMqBA,IAAAA,YAAY,IAAAC,MAAA,GAAlB,MAAMD,YAAY,SAASE,OAAO,CAAC;AAAAC,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;AAAAC,IAAAA,0BAAA,iBAAAC,WAAA,EAAA,IAAA,CAAA;AAAA;EAGhDC,YAAYA,CACVC,IAAY,EACZC,KAAU,EACVC,WAAiC,EACjCC,UAAoE,EACpEC,cAAwE,EACxE;IACAC,iBAAiB,CAACF,UAAU,EAAEA,UAAU,EAAEA,UAAU,EAAEG,QAAQ,CAAC;AAC/D,IAAA,IAAIC,CAAa;AACjB,IAAA,IAAIN,KAAK,EAAE;MACTM,CAAC,GAAG,IAAI,CAACC,MAAM,CAACT,YAAY,CAACC,IAAI,EAAEC,KAAK,EAAE;AAAEC,QAAAA;AAAY,OAAC,CAAC;AAC5D,KAAC,MAAM;MACLK,CAAC,GAAG,IAAI,CAACC,MAAM,CAACT,YAAY,CAACC,IAAI,EAAE;AAAEE,QAAAA;AAAY,OAAC,CAAC;AACrD;IACAK,CAAC,CAACE,IAAI,CAAC,YAAY,CAAC,GAAGL,cAAc,IAAID,UAAU;AACnD,IAAA,OAAOI,CAAC;AACV;AACF,CAAA,EAAAT,WAAA,GAAAY,yBAAA,CAAAjB,MAAA,CAAAkB,SAAA,EAAA,QAAA,EAAA,CAnBGC,OAAAA,CAAAA,EAAAA;EAAAA,YAAAA,EAAAA,IAAAA;EAAAA,UAAAA,EAAAA,IAAAA;EAAAA,QAAAA,EAAAA,IAAAA;EAAAA,WAAAA,EAAAA;AAAAA,CAAAA,CAAAA,EAAAA,MAAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ember-native",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "the Ember framework with Nativescript",
5
5
  "keywords": [
6
6
  "ember-addon"