@nativescript-community/ui-checkbox 2.0.14 → 2.0.16
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/CHANGELOG.md +8 -0
- package/angular/fesm2022/nativescript-community-ui-checkbox-angular.mjs +2 -3
- package/angular/fesm2022/nativescript-community-ui-checkbox-angular.mjs.map +1 -1
- package/angular/index.d.ts +11 -7
- package/angular/package.json +22 -0
- package/index.android.d.ts +4 -1
- package/index.ios.d.ts +26 -2
- package/package.json +3 -3
- package/angular/esm2022/index.mjs +0 -68
- package/angular/esm2022/nativescript-community-ui-checkbox-angular.mjs +0 -5
- package/blueprint.md +0 -158
- package/tsconfig.json +0 -9
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.0.16](https://github.com/nativescript-community/ui-checkbox/compare/v2.0.15...v2.0.16) (2025-10-07)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @nativescript-community/ui-checkbox
|
|
9
|
+
|
|
10
|
+
## [2.0.15](https://github.com/nativescript-community/ui-checkbox/compare/v2.0.14...v2.0.15) (2025-10-07)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @nativescript-community/ui-checkbox
|
|
13
|
+
|
|
6
14
|
## [2.0.14](https://github.com/nativescript-community/ui-checkbox/compare/v2.0.13...v2.0.14) (2025-10-03)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @nativescript-community/ui-checkbox
|
|
@@ -59,13 +59,12 @@ class CheckBoxModule {
|
|
|
59
59
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckBoxModule, [{
|
|
60
60
|
type: NgModule,
|
|
61
61
|
args: [{
|
|
62
|
-
declarations: [CheckedValueAccessor],
|
|
63
62
|
providers: [],
|
|
64
|
-
imports: [FormsModule],
|
|
63
|
+
imports: [CheckedValueAccessor, FormsModule],
|
|
65
64
|
exports: [FormsModule, CheckedValueAccessor]
|
|
66
65
|
}]
|
|
67
66
|
}], null, null); })();
|
|
68
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CheckBoxModule, {
|
|
67
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CheckBoxModule, { imports: [CheckedValueAccessor, FormsModule], exports: [FormsModule, CheckedValueAccessor] }); })();
|
|
69
68
|
|
|
70
69
|
/**
|
|
71
70
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativescript-community-ui-checkbox-angular.mjs","sources":["../../../../src/checkbox/angular/index.ts","../../../../src/checkbox/angular/nativescript-community-ui-checkbox-angular.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, Inject, NgModule, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseValueAccessor, registerElement } from '@nativescript/angular';\nimport { View } from '@nativescript/core';\nimport { CheckBox } from '@nativescript-community/ui-checkbox';\n\nregisterElement('CheckBox', () => CheckBox);\n\nconst CHECKED_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckedValueAccessor),\n multi: true\n};\n\nexport type CheckableView = { checked: boolean } & View;\n\n/**\n * The accessor for setting checked property and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <CheckBox [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector:\n 'CheckBox[ngModel], CheckBox[formControlName], CheckBox[formControl], checkBox[ngModel], checkBox[formControlName], checkBox[formControl], check-box[ngModel], check-box[formControlName], check-box[formControl]',\n providers: [CHECKED_VALUE_ACCESSOR]\n})\nexport class CheckedValueAccessor extends BaseValueAccessor<CheckableView> {\n constructor(@Inject(ElementRef) elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n @HostListener('checkedChange', ['$event'])\n public checkedChangeListener(event: any) {\n this.onChange(event.value);\n }\n\n public onTouched = () => {};\n\n public writeValue(value: any): void {\n this.view.checked = value;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n\n@NgModule({\n
|
|
1
|
+
{"version":3,"file":"nativescript-community-ui-checkbox-angular.mjs","sources":["../../../../src/checkbox/angular/index.ts","../../../../src/checkbox/angular/nativescript-community-ui-checkbox-angular.ts"],"sourcesContent":["import { Directive, ElementRef, HostListener, Inject, NgModule, forwardRef } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BaseValueAccessor, registerElement } from '@nativescript/angular';\nimport { View } from '@nativescript/core';\nimport { CheckBox } from '@nativescript-community/ui-checkbox';\n\nregisterElement('CheckBox', () => CheckBox);\n\nconst CHECKED_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckedValueAccessor),\n multi: true\n};\n\nexport type CheckableView = { checked: boolean } & View;\n\n/**\n * The accessor for setting checked property and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <CheckBox [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector:\n 'CheckBox[ngModel], CheckBox[formControlName], CheckBox[formControl], checkBox[ngModel], checkBox[formControlName], checkBox[formControl], check-box[ngModel], check-box[formControlName], check-box[formControl]',\n providers: [CHECKED_VALUE_ACCESSOR]\n})\nexport class CheckedValueAccessor extends BaseValueAccessor<CheckableView> {\n constructor(@Inject(ElementRef) elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n @HostListener('checkedChange', ['$event'])\n public checkedChangeListener(event: any) {\n this.onChange(event.value);\n }\n\n public onTouched = () => {};\n\n public writeValue(value: any): void {\n this.view.checked = value;\n }\n\n public registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n}\n\n@NgModule({\n providers: [],\n imports: [CheckedValueAccessor, FormsModule],\n exports: [FormsModule, CheckedValueAccessor]\n})\nexport class CheckBoxModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/angular/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
1
2
|
import { ElementRef } from '@angular/core';
|
|
2
3
|
import { BaseValueAccessor } from '@nativescript/angular';
|
|
3
4
|
import { View } from '@nativescript/core';
|
|
4
|
-
import * as
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import * as i1 from '@angular/forms';
|
|
6
|
+
|
|
7
|
+
type CheckableView = {
|
|
7
8
|
checked: boolean;
|
|
8
9
|
} & View;
|
|
9
10
|
/**
|
|
@@ -15,17 +16,20 @@ export type CheckableView = {
|
|
|
15
16
|
* <CheckBox [(ngModel)]="model.test">
|
|
16
17
|
* ```
|
|
17
18
|
*/
|
|
18
|
-
|
|
19
|
+
declare class CheckedValueAccessor extends BaseValueAccessor<CheckableView> {
|
|
19
20
|
constructor(elementRef: ElementRef);
|
|
20
21
|
checkedChangeListener(event: any): void;
|
|
21
22
|
onTouched: () => void;
|
|
22
23
|
writeValue(value: any): void;
|
|
23
24
|
registerOnTouched(fn: () => void): void;
|
|
24
25
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckedValueAccessor, never>;
|
|
25
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<CheckedValueAccessor, "CheckBox[ngModel], CheckBox[formControlName], CheckBox[formControl], checkBox[ngModel], checkBox[formControlName], checkBox[formControl], check-box[ngModel], check-box[formControlName], check-box[formControl]", never, {}, {}, never, never,
|
|
26
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CheckedValueAccessor, "CheckBox[ngModel], CheckBox[formControlName], CheckBox[formControl], checkBox[ngModel], checkBox[formControlName], checkBox[formControl], check-box[ngModel], check-box[formControlName], check-box[formControl]", never, {}, {}, never, never, true, never>;
|
|
26
27
|
}
|
|
27
|
-
|
|
28
|
+
declare class CheckBoxModule {
|
|
28
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<CheckBoxModule, never>;
|
|
29
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CheckBoxModule, [typeof CheckedValueAccessor
|
|
30
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CheckBoxModule, never, [typeof CheckedValueAccessor, typeof i1.FormsModule], [typeof i1.FormsModule, typeof CheckedValueAccessor]>;
|
|
30
31
|
static ɵinj: i0.ɵɵInjectorDeclaration<CheckBoxModule>;
|
|
31
32
|
}
|
|
33
|
+
|
|
34
|
+
export { CheckBoxModule, CheckedValueAccessor };
|
|
35
|
+
export type { CheckableView };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nativescript-community/ui-checkbox-angular",
|
|
3
|
+
"main": "index.js",
|
|
4
|
+
"module": "fesm2022/nativescript-community-ui-checkbox-angular.mjs",
|
|
5
|
+
"typings": "index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
"./package.json": {
|
|
8
|
+
"default": "./package.json"
|
|
9
|
+
},
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./index.d.ts",
|
|
12
|
+
"default": "./fesm2022/nativescript-community-ui-checkbox-angular.mjs"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"sideEffects": false,
|
|
16
|
+
"dependencies": {
|
|
17
|
+
"tslib": "^2.3.0"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with partial compilation mode, before attempting to publish.\\n')\" && exit 1"
|
|
21
|
+
}
|
|
22
|
+
}
|
package/index.android.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { CheckBoxBase } from './common';
|
|
1
|
+
import { CheckBoxBase, checkedProperty, fillColorProperty, tintColorProperty } from './common';
|
|
2
2
|
export declare class CheckBox extends CheckBoxBase {
|
|
3
|
+
[checkedProperty.setNative]: (value: boolean) => void;
|
|
4
|
+
[fillColorProperty.setNative]: (value: any) => void;
|
|
5
|
+
[tintColorProperty.setNative]: (value: any) => void;
|
|
3
6
|
nativeViewProtected: androidx.appcompat.widget.AppCompatCheckBox;
|
|
4
7
|
checkStyle: string;
|
|
5
8
|
ignoreChange: boolean;
|
package/index.ios.d.ts
CHANGED
|
@@ -1,6 +1,29 @@
|
|
|
1
|
-
import { Color } from '@nativescript/core';
|
|
2
|
-
import { CheckBoxBase } from './common';
|
|
1
|
+
import { Color, Property } from '@nativescript/core';
|
|
2
|
+
import { CheckBoxBase, checkedProperty, fillColorProperty, tintColorProperty } from './common';
|
|
3
|
+
declare const checkBoxBackgroundColorProperty: Property<CheckBox, string>;
|
|
4
|
+
declare const onCheckColorProperty: Property<CheckBox, string>;
|
|
5
|
+
declare const onTintColorProperty: Property<CheckBox, string>;
|
|
6
|
+
declare const onFillColorProperty: Property<CheckBox, string>;
|
|
7
|
+
declare const boxTypeProperty: Property<CheckBox, BEMBoxType>;
|
|
8
|
+
declare const lineWidthProperty: Property<CheckBox, number>;
|
|
9
|
+
declare const onAnimationTypeProperty: Property<CheckBox, number>;
|
|
10
|
+
declare const offAnimationTypeProperty: Property<CheckBox, number>;
|
|
11
|
+
declare const animationDurationProperty: Property<CheckBox, number>;
|
|
12
|
+
declare const hideBoxProperty: Property<CheckBox, boolean>;
|
|
3
13
|
export declare class CheckBox extends CheckBoxBase {
|
|
14
|
+
[fillColorProperty.setNative]: (value: string | Color) => void;
|
|
15
|
+
[onFillColorProperty.setNative]: (value: string | Color) => void;
|
|
16
|
+
[tintColorProperty.setNative]: (value: string | Color) => void;
|
|
17
|
+
[onTintColorProperty.setNative]: (value: string | Color) => void;
|
|
18
|
+
[onCheckColorProperty.setNative]: (value: string | Color) => void;
|
|
19
|
+
[checkBoxBackgroundColorProperty.setNative]: (value: string | Color) => void;
|
|
20
|
+
[boxTypeProperty.setNative]: (value: any) => void;
|
|
21
|
+
[checkedProperty.setNative]: (value: boolean) => void;
|
|
22
|
+
[lineWidthProperty.setNative]: (value: any) => void;
|
|
23
|
+
[hideBoxProperty.setNative]: (value: any) => void;
|
|
24
|
+
[animationDurationProperty.setNative]: (value: any) => void;
|
|
25
|
+
[onAnimationTypeProperty.setNative]: (value: any) => void;
|
|
26
|
+
[offAnimationTypeProperty.setNative]: (value: any) => void;
|
|
4
27
|
boxType: BEMBoxType;
|
|
5
28
|
onCheckColor: Color;
|
|
6
29
|
checkBoxBackgroundColor: Color;
|
|
@@ -14,3 +37,4 @@ export declare class CheckBox extends CheckBoxBase {
|
|
|
14
37
|
disposeNativeView(): void;
|
|
15
38
|
toggle(): void;
|
|
16
39
|
}
|
|
40
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nativescript-community/ui-checkbox",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.16",
|
|
4
4
|
"description": "NativeScript plugin for checkbox.",
|
|
5
5
|
"main": "./index",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"scripts": {
|
|
9
9
|
"build": "npm run tsc && npm run readme",
|
|
10
10
|
"build.all": "npm run build && npm run build.angular",
|
|
11
|
-
"build.angular": "../../node_modules/.bin/ng-packagr -p ../../src/checkbox/angular/ng-package.json -c ../../src/checkbox/angular/tsconfig.json",
|
|
11
|
+
"build.angular": "../../node_modules/.bin/ng-packagr -p ../../src/checkbox/angular/ng-package.json -c ../../src/checkbox/angular/tsconfig.json && rm angular/.npmignore",
|
|
12
12
|
"readme": "../../node_modules/.bin/readme generate -c ../../tools/readme/blueprint.json",
|
|
13
13
|
"tsc": "../../node_modules/.bin/cpy '**/*.d.ts' '../../packages/checkbox' --parents --cwd=../../src/checkbox && ../../node_modules/.bin/tsc -skipLibCheck -d",
|
|
14
14
|
"clean": "../../node_modules/.bin/rimraf ./*.d.ts ./*.js ./*.js.map"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
},
|
|
57
57
|
"license": "ISC",
|
|
58
58
|
"readmeFilename": "README.md",
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "e4df65d370f4fa28172b4eb459373a7a7105fd47"
|
|
60
60
|
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, HostListener, Inject, NgModule, forwardRef } from '@angular/core';
|
|
2
|
-
import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
|
-
import { BaseValueAccessor, registerElement } from '@nativescript/angular';
|
|
4
|
-
import { CheckBox } from '@nativescript-community/ui-checkbox';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
registerElement('CheckBox', () => CheckBox);
|
|
7
|
-
const CHECKED_VALUE_ACCESSOR = {
|
|
8
|
-
provide: NG_VALUE_ACCESSOR,
|
|
9
|
-
useExisting: forwardRef(() => CheckedValueAccessor),
|
|
10
|
-
multi: true
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* The accessor for setting checked property and listening to changes that is used by the
|
|
14
|
-
* {@link NgModel} directives.
|
|
15
|
-
*
|
|
16
|
-
* ### Example
|
|
17
|
-
* ```
|
|
18
|
-
* <CheckBox [(ngModel)]="model.test">
|
|
19
|
-
* ```
|
|
20
|
-
*/
|
|
21
|
-
export class CheckedValueAccessor extends BaseValueAccessor {
|
|
22
|
-
constructor(elementRef) {
|
|
23
|
-
super(elementRef.nativeElement);
|
|
24
|
-
}
|
|
25
|
-
checkedChangeListener(event) {
|
|
26
|
-
this.onChange(event.value);
|
|
27
|
-
}
|
|
28
|
-
onTouched = () => { };
|
|
29
|
-
writeValue(value) {
|
|
30
|
-
this.view.checked = value;
|
|
31
|
-
}
|
|
32
|
-
registerOnTouched(fn) {
|
|
33
|
-
this.onTouched = fn;
|
|
34
|
-
}
|
|
35
|
-
static ɵfac = function CheckedValueAccessor_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckedValueAccessor)(i0.ɵɵdirectiveInject(ElementRef)); };
|
|
36
|
-
static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: CheckedValueAccessor, selectors: [["CheckBox", "ngModel", ""], ["CheckBox", "formControlName", ""], ["CheckBox", "formControl", ""], ["checkBox", "ngModel", ""], ["checkBox", "formControlName", ""], ["checkBox", "formControl", ""], ["check-box", "ngModel", ""], ["check-box", "formControlName", ""], ["check-box", "formControl", ""]], hostBindings: function CheckedValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
|
|
37
|
-
i0.ɵɵlistener("checkedChange", function CheckedValueAccessor_checkedChange_HostBindingHandler($event) { return ctx.checkedChangeListener($event); });
|
|
38
|
-
} }, features: [i0.ɵɵProvidersFeature([CHECKED_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature] });
|
|
39
|
-
}
|
|
40
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckedValueAccessor, [{
|
|
41
|
-
type: Directive,
|
|
42
|
-
args: [{
|
|
43
|
-
selector: 'CheckBox[ngModel], CheckBox[formControlName], CheckBox[formControl], checkBox[ngModel], checkBox[formControlName], checkBox[formControl], check-box[ngModel], check-box[formControlName], check-box[formControl]',
|
|
44
|
-
providers: [CHECKED_VALUE_ACCESSOR]
|
|
45
|
-
}]
|
|
46
|
-
}], () => [{ type: i0.ElementRef, decorators: [{
|
|
47
|
-
type: Inject,
|
|
48
|
-
args: [ElementRef]
|
|
49
|
-
}] }], { checkedChangeListener: [{
|
|
50
|
-
type: HostListener,
|
|
51
|
-
args: ['checkedChange', ['$event']]
|
|
52
|
-
}] }); })();
|
|
53
|
-
export class CheckBoxModule {
|
|
54
|
-
static ɵfac = function CheckBoxModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CheckBoxModule)(); };
|
|
55
|
-
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CheckBoxModule });
|
|
56
|
-
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [FormsModule, FormsModule] });
|
|
57
|
-
}
|
|
58
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CheckBoxModule, [{
|
|
59
|
-
type: NgModule,
|
|
60
|
-
args: [{
|
|
61
|
-
declarations: [CheckedValueAccessor],
|
|
62
|
-
providers: [],
|
|
63
|
-
imports: [FormsModule],
|
|
64
|
-
exports: [FormsModule, CheckedValueAccessor]
|
|
65
|
-
}]
|
|
66
|
-
}], null, null); })();
|
|
67
|
-
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(CheckBoxModule, { declarations: [CheckedValueAccessor], imports: [FormsModule], exports: [FormsModule, CheckedValueAccessor] }); })();
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2hlY2tib3gvYW5ndWxhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRS9ELGVBQWUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFNUMsTUFBTSxzQkFBc0IsR0FBRztJQUMzQixPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDbkQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBSUY7Ozs7Ozs7O0dBUUc7QUFNSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsaUJBQWdDO0lBQ3RFLFlBQWdDLFVBQXNCO1FBQ2xELEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUdNLHFCQUFxQixDQUFDLEtBQVU7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLFNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFckIsVUFBVSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQzlCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxFQUFjO1FBQ25DLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBbEJRLG9CQUFvQix1QkFDVCxVQUFVOzZEQURyQixvQkFBb0I7WUFBcEIsK0dBQUEsaUNBQTZCLElBQVQ7OENBRmxCLENBQUMsc0JBQXNCLENBQUM7O2lGQUUxQixvQkFBb0I7Y0FMaEMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFDSixrTkFBa047Z0JBQ3ROLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3RDOztzQkFFZ0IsTUFBTTt1QkFBQyxVQUFVO3FCQUt2QixxQkFBcUI7a0JBRDNCLFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDOztBQXNCN0MsTUFBTSxPQUFPLGNBQWM7d0dBQWQsY0FBYzs0REFBZCxjQUFjO2dFQUhiLFdBQVcsRUFDWCxXQUFXOztpRkFFWixjQUFjO2NBTjFCLFFBQVE7ZUFBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLENBQUM7YUFDL0M7O3dGQUNZLGNBQWMsbUJBM0JkLG9CQUFvQixhQXdCbkIsV0FBVyxhQUNYLFdBQVcsRUF6Qlosb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgTmdNb2R1bGUsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VWYWx1ZUFjY2Vzc29yLCByZWdpc3RlckVsZW1lbnQgfSBmcm9tICdAbmF0aXZlc2NyaXB0L2FuZ3VsYXInO1xuaW1wb3J0IHsgVmlldyB9IGZyb20gJ0BuYXRpdmVzY3JpcHQvY29yZSc7XG5pbXBvcnQgeyBDaGVja0JveCB9IGZyb20gJ0BuYXRpdmVzY3JpcHQtY29tbXVuaXR5L3VpLWNoZWNrYm94JztcblxucmVnaXN0ZXJFbGVtZW50KCdDaGVja0JveCcsICgpID0+IENoZWNrQm94KTtcblxuY29uc3QgQ0hFQ0tFRF9WQUxVRV9BQ0NFU1NPUiA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2VkVmFsdWVBY2Nlc3NvciksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbmV4cG9ydCB0eXBlIENoZWNrYWJsZVZpZXcgPSB7IGNoZWNrZWQ6IGJvb2xlYW4gfSAmIFZpZXc7XG5cbi8qKlxuICogVGhlIGFjY2Vzc29yIGZvciBzZXR0aW5nIGNoZWNrZWQgcHJvcGVydHkgYW5kIGxpc3RlbmluZyB0byBjaGFuZ2VzIHRoYXQgaXMgdXNlZCBieSB0aGVcbiAqIHtAbGluayBOZ01vZGVsfSBkaXJlY3RpdmVzLlxuICpcbiAqICAjIyMgRXhhbXBsZVxuICogIGBgYFxuICogIDxDaGVja0JveCBbKG5nTW9kZWwpXT1cIm1vZGVsLnRlc3RcIj5cbiAqICBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6XG4gICAgICAgICdDaGVja0JveFtuZ01vZGVsXSwgQ2hlY2tCb3hbZm9ybUNvbnRyb2xOYW1lXSwgQ2hlY2tCb3hbZm9ybUNvbnRyb2xdLCBjaGVja0JveFtuZ01vZGVsXSwgY2hlY2tCb3hbZm9ybUNvbnRyb2xOYW1lXSwgY2hlY2tCb3hbZm9ybUNvbnRyb2xdLCBjaGVjay1ib3hbbmdNb2RlbF0sIGNoZWNrLWJveFtmb3JtQ29udHJvbE5hbWVdLCBjaGVjay1ib3hbZm9ybUNvbnRyb2xdJyxcbiAgICBwcm92aWRlcnM6IFtDSEVDS0VEX1ZBTFVFX0FDQ0VTU09SXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja2VkVmFsdWVBY2Nlc3NvciBleHRlbmRzIEJhc2VWYWx1ZUFjY2Vzc29yPENoZWNrYWJsZVZpZXc+IHtcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KEVsZW1lbnRSZWYpIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGVja2VkQ2hhbmdlJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgY2hlY2tlZENoYW5nZUxpc3RlbmVyKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShldmVudC52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVG91Y2hlZCA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXcuY2hlY2tlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtDaGVja2VkVmFsdWVBY2Nlc3Nvcl0sXG4gICAgcHJvdmlkZXJzOiBbXSxcbiAgICBpbXBvcnRzOiBbRm9ybXNNb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtGb3Jtc01vZHVsZSwgQ2hlY2tlZFZhbHVlQWNjZXNzb3JdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrQm94TW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlc2NyaXB0LWNvbW11bml0eS11aS1jaGVja2JveC1hbmd1bGFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoZWNrYm94L2FuZ3VsYXIvbmF0aXZlc2NyaXB0LWNvbW11bml0eS11aS1jaGVja2JveC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
package/blueprint.md
DELETED
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
{{ load:../../tools/readme/edit-warning.md }}
|
|
2
|
-
{{ template:title }}
|
|
3
|
-
{{ template:badges }}
|
|
4
|
-
{{ template:description }}
|
|
5
|
-
|
|
6
|
-
| <img src="https://github.com/nativescript-community/ui-checkbox/raw/master/images/demo-ios.gif" height="500" /> | <img src="https://github.com/nativescript-community/ui-checkbox/raw/master/images/demo-android.gif" height="500" /> |
|
|
7
|
-
| --- | ----------- |
|
|
8
|
-
| iOS Demo | Android Demo |
|
|
9
|
-
|
|
10
|
-
{{ template:toc }}
|
|
11
|
-
|
|
12
|
-
## Installation
|
|
13
|
-
Run the following command from the root of your project:
|
|
14
|
-
|
|
15
|
-
`ns plugin add {{ pkg.name }}`
|
|
16
|
-
|
|
17
|
-
#### Platform controls used:
|
|
18
|
-
|
|
19
|
-
| Android | iOS |
|
|
20
|
-
| ---------------------------------------------------------------------------------------- | ---------------------------------------------------- |
|
|
21
|
-
| [Android CheckBox](https://developer.android.com/reference/android/widget/CheckBox.html) | [BEMCheckBox](http://cocoapods.org/pods/BEMCheckBox) |
|
|
22
|
-
|
|
23
|
-
## API
|
|
24
|
-
|
|
25
|
-
## Properties
|
|
26
|
-
|
|
27
|
-
- **checked** - boolean
|
|
28
|
-
- **text** - text to use with the checkbox
|
|
29
|
-
- **fillColor** - Color of the checkbox element
|
|
30
|
-
- **boxType** - Either 'square' (default) or 'circle'. It's recommended to use 'circle' for radiobuttons. Note that plugin version 3.0.0 switched the default for iOS to 'square' for alignment with Android. Still want `circle` on iOS and `square` on Android? Just make the `boxType` value conditional.
|
|
31
|
-
|
|
32
|
-
## Events
|
|
33
|
-
|
|
34
|
-
- **checkedChange** - Use a reference to the CheckBox component to grab it's `checked` property when this event fires to see the new value.
|
|
35
|
-
|
|
36
|
-
## API
|
|
37
|
-
|
|
38
|
-
- **toggle()** - Change the checked state of the view to the inverse of its current state.
|
|
39
|
-
|
|
40
|
-
## Css Styling
|
|
41
|
-
|
|
42
|
-
- **color** - set the text label color
|
|
43
|
-
- **font-size** - checkbox is sized to text from here : default 15
|
|
44
|
-
- **border-width** - set the line width of the checkbox element: iOS only
|
|
45
|
-
|
|
46
|
-
## Styling [Android]
|
|
47
|
-
|
|
48
|
-
- **checkStyle** - set to the name of your drawable
|
|
49
|
-
- **checkPadding** - set the padding of the checkbox
|
|
50
|
-
|
|
51
|
-
###
|
|
52
|
-
|
|
53
|
-
```XML
|
|
54
|
-
<Page
|
|
55
|
-
xmlns="http://schemas.nativescript.org/tns.xsd"
|
|
56
|
-
xmlns:CheckBox="@nativescript-community/ui-checkbox" loaded="pageLoaded">
|
|
57
|
-
<ActionBar title="Native Checkbox" />
|
|
58
|
-
<StackLayout>
|
|
59
|
-
<CheckBox:CheckBox checked="{{ checkProp }}" text="{{ myCheckText }}" fillColor="{{ myCheckColor }}" id="myCheckbox" />
|
|
60
|
-
<CheckBox:CheckBox text="CheckBox Label" checked="false" />
|
|
61
|
-
</StackLayout>
|
|
62
|
-
</Page>
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
###
|
|
66
|
-
|
|
67
|
-
```typescript
|
|
68
|
-
|
|
69
|
-
import { CheckBox } from '@nativescript-community/ui-checkbox';
|
|
70
|
-
import { topmost } from '@nativescript/core/ui/frame';
|
|
71
|
-
|
|
72
|
-
public toggleCheck() {
|
|
73
|
-
const checkBox = topmost().getViewById('yourCheckBoxId');
|
|
74
|
-
checkBox.toggle();
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
public getCheckProp() {
|
|
78
|
-
const checkBox = topmost().getViewById('yourCheckBoxId');
|
|
79
|
-
console.log('checked prop value = ' + checkBox.checked);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Angular Usage Sample:
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
import { TNSCheckBoxModule } from '@nativescript-community/ui-checkbox/angular';
|
|
88
|
-
|
|
89
|
-
@NgModule({
|
|
90
|
-
imports: [TNSCheckBoxModule]
|
|
91
|
-
// etc.
|
|
92
|
-
})
|
|
93
|
-
export class YourModule {}
|
|
94
|
-
|
|
95
|
-
// component:
|
|
96
|
-
export class SomeComponent {
|
|
97
|
-
@ViewChild('CB1') FirstCheckBox: ElementRef;
|
|
98
|
-
constructor() {}
|
|
99
|
-
public toggleCheck() {
|
|
100
|
-
this.FirstCheckBox.nativeElement.toggle();
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
public getCheckProp() {
|
|
104
|
-
console.log(
|
|
105
|
-
'checked prop value = ' + this.FirstCheckBox.nativeElement.checked
|
|
106
|
-
);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
```html
|
|
112
|
-
<StackLayout>
|
|
113
|
-
<CheckBox #CB1 text="CheckBox Label" checked="false"></CheckBox>
|
|
114
|
-
<button (tap)="toggleCheck()" text="Toggle it!"></button>
|
|
115
|
-
<button (tap)="getCheckProp()" text="Check Property"></button>
|
|
116
|
-
</StackLayout>
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### NativeScript-Vue Usage Sample
|
|
120
|
-
|
|
121
|
-
In your `main.js` (The file where the root Vue instance is created) register the element
|
|
122
|
-
|
|
123
|
-
```js
|
|
124
|
-
Vue.registerElement(
|
|
125
|
-
'CheckBox',
|
|
126
|
-
() => require('@nativescript-community/ui-checkbox').CheckBox,
|
|
127
|
-
{
|
|
128
|
-
model: {
|
|
129
|
-
prop: 'checked',
|
|
130
|
-
event: 'checkedChange'
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
);
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
And in your template, use it as:
|
|
137
|
-
|
|
138
|
-
```html
|
|
139
|
-
<check-box :checked="isChecked" @checkedChange="isChecked = $event.value" />
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
Use `checked` instead of `v-model`. [See #99](https://github.com/nstudio/nativescript-checkbox/issues/99).
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
## Demos
|
|
146
|
-
This repository includes Angular, Vue.js, and Svelte demos. In order to run these execute the following in your shell:
|
|
147
|
-
```shell
|
|
148
|
-
$ git clone https://github.com/@nativescript-community/ui-checkbox
|
|
149
|
-
$ cd ui-checkbox
|
|
150
|
-
$ npm i
|
|
151
|
-
$ npm run setup
|
|
152
|
-
$ npm run build # && npm run build.angular
|
|
153
|
-
$ cd demo-ng # or demo-vue or demo-svelte
|
|
154
|
-
$ ns run ios|android
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
{{ load:../../tools/readme/demos-and-development.md }}
|
|
158
|
-
{{ load:../../tools/readme/questions.md }}
|
package/tsconfig.json
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "../../tsconfig.json",
|
|
3
|
-
"compilerOptions": {
|
|
4
|
-
"rootDir": "../../src/checkbox",
|
|
5
|
-
"outDir": "./"
|
|
6
|
-
},
|
|
7
|
-
"include": ["../../src/checkbox/**/*", "../../tools/references.d.ts", "../../src/references.d.ts"],
|
|
8
|
-
"exclude": ["../../src/checkbox/angular/**"]
|
|
9
|
-
}
|