UNPKG

4.95 kBJavaScriptView Raw
1import { isArray, isPresent } from '../util/util';
2import { ViewController, isViewController } from './view-controller';
3/**
4 * @param {?} linker
5 * @param {?} nameOrPageOrView
6 * @param {?=} params
7 * @return {?}
8 */
9export function getComponent(linker, nameOrPageOrView, params) {
10 if (typeof nameOrPageOrView === 'function') {
11 return Promise.resolve(new ViewController(nameOrPageOrView, params));
12 }
13 if (typeof nameOrPageOrView === 'string') {
14 return linker.getComponentFromName(nameOrPageOrView).then(function (component) {
15 var /** @type {?} */ vc = new ViewController(component, params);
16 vc.id = nameOrPageOrView;
17 return vc;
18 });
19 }
20 return Promise.resolve(null);
21}
22/**
23 * @param {?} linker
24 * @param {?} nameOrPageOrView
25 * @param {?} params
26 * @return {?}
27 */
28export function convertToView(linker, nameOrPageOrView, params) {
29 if (nameOrPageOrView) {
30 if (isViewController(nameOrPageOrView)) {
31 // is already a ViewController
32 return Promise.resolve(/** @type {?} */ (nameOrPageOrView));
33 }
34 return getComponent(linker, nameOrPageOrView, params);
35 }
36 return Promise.resolve(null);
37}
38/**
39 * @param {?} linker
40 * @param {?} pages
41 * @return {?}
42 */
43export function convertToViews(linker, pages) {
44 var /** @type {?} */ views = [];
45 if (isArray(pages)) {
46 for (var /** @type {?} */ i = 0; i < pages.length; i++) {
47 var /** @type {?} */ page = pages[i];
48 if (page) {
49 if (isViewController(page)) {
50 views.push(page);
51 }
52 else if (page.page) {
53 views.push(convertToView(linker, page.page, page.params));
54 }
55 else {
56 views.push(convertToView(linker, page, null));
57 }
58 }
59 }
60 }
61 return Promise.all(views);
62}
63var /** @type {?} */ portalZindex = 9999;
64/**
65 * @param {?} nav
66 * @param {?} enteringView
67 * @param {?} leavingView
68 * @param {?} direction
69 * @param {?} renderer
70 * @return {?}
71 */
72export function setZIndex(nav, enteringView, leavingView, direction, renderer) {
73 if (enteringView) {
74 if (nav._isPortal) {
75 if (direction === DIRECTION_FORWARD) {
76 enteringView._setZIndex(nav._zIndexOffset + portalZindex, renderer);
77 }
78 portalZindex++;
79 return;
80 }
81 leavingView = leavingView || nav.getPrevious(enteringView);
82 if (leavingView && isPresent(leavingView._zIndex)) {
83 if (direction === DIRECTION_BACK) {
84 enteringView._setZIndex(leavingView._zIndex - 1, renderer);
85 }
86 else {
87 enteringView._setZIndex(leavingView._zIndex + 1, renderer);
88 }
89 }
90 else {
91 enteringView._setZIndex(INIT_ZINDEX + nav._zIndexOffset, renderer);
92 }
93 }
94}
95/**
96 * @param {?} nav
97 * @return {?}
98 */
99export function isTabs(nav) {
100 // Tabs (ion-tabs)
101 return !!nav && !!nav.getSelected;
102}
103/**
104 * @param {?} nav
105 * @return {?}
106 */
107export function isTab(nav) {
108 // Tab (ion-tab)
109 return !!nav && isPresent(nav._tabId);
110}
111/**
112 * @param {?} nav
113 * @return {?}
114 */
115export function isNav(nav) {
116 // Nav (ion-nav), Tab (ion-tab), Portal (ion-portal)
117 return !!nav && !!nav.push && nav.getType() === 'nav';
118}
119/**
120 * @param {?} navId
121 * @param {?} type
122 * @param {?} secondaryId
123 * @param {?} link
124 * @return {?}
125 */
126export function linkToSegment(navId, type, secondaryId, link) {
127 var /** @type {?} */ segment = (Object.assign({}, link));
128 segment.navId = navId;
129 segment.type = type;
130 segment.secondaryId = secondaryId;
131 return segment;
132}
133/**
134 * @hidden
135 */
136var DeepLinkMetadata = (function () {
137 function DeepLinkMetadata() {
138 }
139 return DeepLinkMetadata;
140}());
141export { DeepLinkMetadata };
142function DeepLinkMetadata_tsickle_Closure_declarations() {
143 /** @type {?} */
144 DeepLinkMetadata.prototype.component;
145 /** @type {?} */
146 DeepLinkMetadata.prototype.loadChildren;
147 /** @type {?} */
148 DeepLinkMetadata.prototype.name;
149 /** @type {?} */
150 DeepLinkMetadata.prototype.segment;
151 /** @type {?} */
152 DeepLinkMetadata.prototype.defaultHistory;
153 /** @type {?} */
154 DeepLinkMetadata.prototype.priority;
155}
156/**
157 * @hidden
158 */
159export var DeepLinkMetadataFactory;
160export var /** @type {?} */ STATE_NEW = 1;
161export var /** @type {?} */ STATE_INITIALIZED = 2;
162export var /** @type {?} */ STATE_ATTACHED = 3;
163export var /** @type {?} */ STATE_DESTROYED = 4;
164export var /** @type {?} */ INIT_ZINDEX = 100;
165export var /** @type {?} */ DIRECTION_BACK = 'back';
166export var /** @type {?} */ DIRECTION_FORWARD = 'forward';
167export var /** @type {?} */ DIRECTION_SWITCH = 'switch';
168export var /** @type {?} */ NAV = 'nav';
169export var /** @type {?} */ TABS = 'tabs';
170//# sourceMappingURL=nav-util.js.map
\No newline at end of file