feat: Scoped Packages (#7911)

* chore: move tns-core-modules to nativescript-core

* chore: preparing compat generate script

* chore: add missing definitions

* chore: no need for http-request to be private

* chore: packages chore

* test: generate tests for tns-core-modules

* chore: add anroid module for consistency

* chore: add .npmignore

* chore: added privateModulesWhitelist

* chore(webpack): added bundle-entry-points

* chore: scripts

* chore: tests changed to use @ns/core

* test: add scoped-packages test project

* test: fix types

* test: update test project

* chore: build scripts

* chore: update build script

* chore: npm scripts cleanup

* chore: make the compat pgk work with old wp config

* test: generate diff friendly tests

* chore: create barrel exports

* chore: move files after rebase

* chore: typedoc config

* chore: compat mode

* chore: review of barrels

* chore: remove tns-core-modules import after rebase

* chore: dev workflow setup

* chore: update developer-workflow

* docs: experiment with API extractor

* chore: api-extractor and barrel exports

* chore: api-extractor configs

* chore: generate d.ts rollup with api-extractor

* refactor: move methods inside Frame

* chore: fic tests to use Frame static methods

* refactor: create Builder class

* refactor: use Builder class in tests

* refactor: include Style in ui barrel

* chore: separate compat build script

* chore: fix tslint errors

* chore: update NATIVESCRIPT_CORE_ARGS

* chore: fix compat pack

* chore: fix ui-test-app build with linked modules

* chore: Application, ApplicationSettings, Connectivity and Http

* chore: export Trace, Profiling and Utils

* refactor: Static create methods for ImageSource

* chore: fix deprecated usages of ImageSource

* chore: move Span and FormattedString to ui

* chore: add events-args and ImageSource to index files

* chore: check for CLI >= 6.2 when building for IOS

* chore: update travis build

* chore: copy Pod file to compat package

* chore: update error msg ui-tests-app

* refactor: Apply suggestions from code review

Co-Authored-By: Martin Yankov <m.i.yankov@gmail.com>

* chore: typings and refs

* chore: add missing d.ts files for public API

* chore: adress code review FB

* chore: update api-report

* chore: dev-workflow for other apps

* chore: api update

* chore: update api-report
This commit is contained in:
Alexander Vakrilov
2019-10-17 00:45:33 +03:00
committed by GitHub
parent 6c7139477e
commit cc97a16800
880 changed files with 9090 additions and 2104 deletions

View File

@ -0,0 +1,195 @@
// Types.
import { View } from "../core/view";
import { Color } from "../../color";
import { Page } from "../page";
import { isIOS } from "../../platform";
import { Frame as FrameDef } from "../frame";
import { LoginOptions } from "./dialogs";
import { isObject, isString } from "../../utils/types";
export const STRING = "string";
export const PROMPT = "Prompt";
export const CONFIRM = "Confirm";
export const ALERT = "Alert";
export const LOGIN = "Login";
export const OK = "OK";
export const CANCEL = "Cancel";
/**
* Defines the input type for prompt dialog.
*/
export module inputType {
/**
* Plain text input type.
*/
export const text: string = "text";
/**
* Password input type.
*/
export const password: string = "password";
/**
* Email input type.
*/
export const email: string = "email";
/**
* Number input type
*/
export const number: string = "number";
/**
* Decimal input type
*/
export const decimal: string = "decimal";
/**
* Phone input type
*/
export const phone: string = "phone";
}
/**
* Defines the capitalization type for prompt dialog.
*/
export module capitalizationType {
/**
* No automatic capitalization.
*/
export const none: string = "none";
/**
* Capitalizes every character.
*/
export const all: string = "all";
/**
* Capitalize the first word of each sentence.
*/
export const sentences: string = "sentences";
/**
* Capitalize the first letter of every word.
*/
export const words: string = "words";
}
let Frame: typeof FrameDef;
export function getCurrentPage(): Page {
if (!Frame) {
Frame = require("../frame").Frame;
}
let topmostFrame = Frame.topmost();
if (topmostFrame) {
return topmostFrame.currentPage;
}
return undefined;
}
function applySelectors<T extends View>(view: T, callback: (view: T) => void) {
let currentPage = getCurrentPage();
if (currentPage) {
let styleScope = currentPage._styleScope;
if (styleScope) {
view._inheritStyleScope(styleScope);
view.onLoaded();
callback(view);
view.onUnloaded();
}
}
}
let button: View;
let label: View;
let textField: View;
export function getButtonColors(): { color: Color, backgroundColor: Color } {
if (!button) {
const Button = require("../button").Button;
button = new Button;
if (isIOS) {
button._setupUI({});
}
}
let buttonColor: Color;
let buttonBackgroundColor: Color;
applySelectors(button, (btn) => {
buttonColor = btn.color;
buttonBackgroundColor = <Color>btn.backgroundColor;
});
return { color: buttonColor, backgroundColor: buttonBackgroundColor };
}
export function getLabelColor(): Color {
if (!label) {
const Label = require("../label").Label;
label = new Label;
if (isIOS) {
label._setupUI({});
}
}
let labelColor: Color;
applySelectors(label, (lbl) => {
labelColor = lbl.color;
});
return labelColor;
}
export function getTextFieldColor(): Color {
if (!textField) {
const TextField = require("../text-field").TextField;
textField = new TextField();
if (isIOS) {
textField._setupUI({});
}
}
let textFieldColor: Color;
applySelectors(textField, (tf) => {
textFieldColor = tf.color;
});
return textFieldColor;
}
export function isDialogOptions(arg): boolean {
return arg && (arg.message || arg.title);
}
export function parseLoginOptions(args: any[]): LoginOptions {
// Handle options object first
if (args.length === 1 && isObject(args[0])) {
return args[0];
}
let options: LoginOptions = { title: LOGIN, okButtonText: OK, cancelButtonText: CANCEL };
if (isString(args[0])) {
options.message = args[0];
}
if (isString(args[1])) {
options.userNameHint = args[1];
}
if (isString(args[2])) {
options.passwordHint = args[2];
}
if (isString(args[3])) {
options.userName = args[3];
}
if (isString(args[4])) {
options.password = args[4];
}
return options;
}