├── .github
├── issue_template.md
└── pull_request_template.md
├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── assets
├── demo-android.gif
└── demo-ios.gif
├── demo
├── app
│ ├── App_Resources
│ │ ├── Android
│ │ │ ├── app.gradle
│ │ │ └── src
│ │ │ │ └── main
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── res
│ │ │ │ ├── drawable-hdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-ldpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-nodpi
│ │ │ │ └── splash_screen.xml
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── background.png
│ │ │ │ ├── icon.png
│ │ │ │ └── logo.png
│ │ │ │ ├── values-v21
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ │ └── values
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ └── iOS
│ │ │ ├── Assets.xcassets
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── icon-29.png
│ │ │ │ ├── icon-29@2x.png
│ │ │ │ ├── icon-29@3x.png
│ │ │ │ ├── icon-40.png
│ │ │ │ ├── icon-40@2x.png
│ │ │ │ ├── icon-40@3x.png
│ │ │ │ ├── icon-50.png
│ │ │ │ ├── icon-50@2x.png
│ │ │ │ ├── icon-57.png
│ │ │ │ ├── icon-57@2x.png
│ │ │ │ ├── icon-60@2x.png
│ │ │ │ ├── icon-60@3x.png
│ │ │ │ ├── icon-72.png
│ │ │ │ ├── icon-72@2x.png
│ │ │ │ ├── icon-76.png
│ │ │ │ ├── icon-76@2x.png
│ │ │ │ └── icon-83.5@2x.png
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.launchimage
│ │ │ │ ├── Contents.json
│ │ │ │ ├── Default-568h@2x.png
│ │ │ │ ├── Default-667h@2x.png
│ │ │ │ ├── Default-736h@3x.png
│ │ │ │ ├── Default-Landscape.png
│ │ │ │ ├── Default-Landscape@2x.png
│ │ │ │ ├── Default-Landscape@3x.png
│ │ │ │ ├── Default-Portrait.png
│ │ │ │ ├── Default-Portrait@2x.png
│ │ │ │ ├── Default.png
│ │ │ │ └── Default@2x.png
│ │ │ ├── LaunchScreen.AspectFill.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── LaunchScreen-AspectFill.png
│ │ │ │ └── LaunchScreen-AspectFill@2x.png
│ │ │ └── LaunchScreen.Center.imageset
│ │ │ │ ├── Contents.json
│ │ │ │ ├── LaunchScreen-Center.png
│ │ │ │ └── LaunchScreen-Center@2x.png
│ │ │ ├── Info.plist
│ │ │ ├── LaunchScreen.storyboard
│ │ │ └── build.xcconfig
│ ├── app.css
│ ├── app.ts
│ ├── main-page.ts
│ ├── main-page.xml
│ ├── main-view-model.ts
│ ├── package.json
│ └── tests
│ │ └── tests.js
├── karma.conf.js
├── package.json
├── references.d.ts
└── tsconfig.json
├── publish
├── pack.sh
├── package.json
└── publish.sh
├── src
├── .npmignore
├── index.d.ts
├── package.json
├── platforms
│ ├── android
│ │ └── include.gradle
│ └── ios
│ │ └── Podfile
├── rad-imagepicker.android.ts
├── rad-imagepicker.common.ts
├── rad-imagepicker.ios.ts
├── references.d.ts
├── scripts
│ └── build-native.js
├── tsconfig.json
└── typings
│ ├── android.d.ts
│ ├── objc!ImagePicker.d.ts
│ └── objc!Lightbox.d.ts
└── tslint.json
/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | ### Make sure to check the demo app(s) for sample usage
2 |
3 | ### Make sure to check the existing issues in this repository
4 |
5 | ### If the demo apps cannot help and there is no issue for your problem, tell us about it
6 | Please, ensure your title is less than 63 characters long and starts with a capital
7 | letter.
8 |
9 | ### Which platform(s) does your issue occur on?
10 | - iOS/Android/Both
11 | - iOS/Android versions
12 | - emulator or device. What type of device?
13 |
14 | ### Please, provide the following version numbers that your issue occurs with:
15 |
16 | - CLI: (run `tns --version` to fetch it)
17 | - Cross-platform modules: (check the 'version' attribute in the
18 | `node_modules/tns-core-modules/package.json` file in your project)
19 | - Runtime(s): (look for the `"tns-android"` and `"tns-ios"` properties in the `package.json` file of your project)
20 | - Plugin(s): (look for the version numbers in the `package.json` file of your
21 | project and paste your dependencies and devDependencies here)
22 |
23 | ### Please, tell us how to recreate the issue in as much detail as possible.
24 | Describe the steps to reproduce it.
25 |
26 | ### Is there any code involved?
27 | - provide a code example to recreate the problem
28 | - (EVEN BETTER) provide a .zip with application or refer to a repository with application where the problem is reproducible.
29 |
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 | ## PR Checklist
11 |
12 | - [ ] The PR title follows our guidelines: https://github.com/NativeScript/NativeScript/blob/master/CONTRIBUTING.md#commit-messages.
13 | - [ ] There is an issue for the bug/feature this PR is for. To avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it.
14 | - [ ] All existing tests are passing
15 | - [ ] Tests for the changes are included
16 |
17 | ## What is the current behavior?
18 |
19 |
20 | ## What is the new behavior?
21 |
22 |
23 | Fixes/Implements/Closes #[Issue Number].
24 |
25 |
26 |
27 |
36 |
37 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vscode
2 | .idea
3 | .DS_Store
4 | *.esm.json
5 | *.js
6 | *.js.map
7 | *.log
8 | src/*.d.ts
9 | !src/index.d.ts
10 | !src/references.d.ts
11 | !src/scripts/*.js
12 | !seed-tests/*.js
13 | seed-tests/seed-copy/**/*.*
14 | seed-tests/seed-copy-new-git-repo/**/*.*
15 | !demo/karma.conf.js
16 | !demo/app/tests/*.js
17 | demo/*.d.ts
18 | !demo/references.d.ts
19 | demo/lib
20 | demo/platforms
21 | node_modules
22 | publish/src
23 | publish/package
24 | demo/report/report.html
25 | demo/report/stats.json
26 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | matrix:
2 | include:
3 | - stage: "Lint"
4 | language: node_js
5 | os: linux
6 | node_js: "6"
7 | script: cd src && npm run ci.tslint && cd ../demo && npm run ci.tslint
8 | - stage: "WebPack, Build and Test"
9 | os: osx
10 | env:
11 | - WebPack="iOS"
12 | osx_image: xcode9.2
13 | language: node_js
14 | node_js: "6"
15 | jdk: oraclejdk8
16 | script: cd demo && npm run build.plugin && npm i && tns build ios --bundle --env.uglify
17 | - language: android
18 | os: linux
19 | env:
20 | - WebPack="Android"
21 | jdk: oraclejdk8
22 | before_install: nvm install 6.10.3
23 | script: cd demo && npm run build.plugin && npm i && tns build android --bundle --env.uglify --env.snapshot
24 | - language: android
25 | env:
26 | - BuildAndroid="26"
27 | os: linux
28 | jdk: oraclejdk8
29 | before_install: nvm install stable
30 | script:
31 | - cd src && npm i && npm run tsc && cd ../demo && tns build android
32 | - os: osx
33 | env:
34 | - BuildiOS="11"
35 | - Xcode="9.2"
36 | osx_image: xcode9.2
37 | language: node_js
38 | node_js: "6"
39 | jdk: oraclejdk8
40 | script:
41 | - cd src && npm i && npm run tsc && cd ../demo && tns build ios
42 | - os: linux
43 | language: android
44 | dist: precise
45 | sudo: required
46 | jdk: oraclejdk8
47 | before_script:
48 | - echo no | android create avd --force -n test -t android-21 -b armeabi-v7a
49 | - emulator -avd test -no-audio -no-window &
50 | - android-wait-for-emulator
51 | before_install:
52 | - nvm install 6
53 | script: cd src && npm run test.android
54 | - os: osx
55 | language: node_js
56 | node_js: "6"
57 | jdk: oraclejdk8
58 | osx_image: xcode9.2
59 | script: cd src && npm run test.ios
60 |
61 | android:
62 | components:
63 | - tools
64 | - platform-tools
65 | - build-tools-26.0.1
66 | - android-26
67 | - android-23
68 | - extra-android-m2repository
69 | - sys-img-armeabi-v7a-android-21
70 |
71 | install:
72 | - echo no | npm install -g nativescript
73 | - tns usage-reporting disable
74 | - tns error-reporting disable
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright (c) 2015-2018 Telerik EAD
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # NativeScript Rad Imagepicker Plugin  
2 |
3 | NativeScript plugin for whatsapp style image picking.
4 | This Plugin uses [PixImagePicker](https://github.com/akshay2211/PixImagePicker) for Android and [ImagePicker](https://github.com/hyperoslo/ImagePicker) for iOS
5 |
6 |
7 |
8 | ## Installation
9 |
10 | ```javascript
11 | tns plugin add @nstudio/nativescript-rad-imagepicker
12 | ```
13 |
14 | ## Usage
15 |
16 | ```javascript
17 | const RadImagepicker = require('@nstudio/nativescript-rad-imagepicker').RadImagepicker;
18 | const PickerOptions = require('@nstudio/nativescript-rad-imagepicker').PickerOptions;
19 | const radImagepicker = new RadImagepicker();
20 | radImagepicker.pick(opts).then((selectedImages) => {
21 | if (selectedImages) {
22 | // Do something with selected images
23 | // currently
24 | // the image will be of type nativescript image source
25 | // tns-core-modules/image-source
26 | }
27 | });
28 | ```
29 |
30 | ## API
31 |
32 | Following picker options are available
33 | ```javascript
34 | PickerOptions {
35 | doneButtonTitle?: string; // only affects ios
36 | noImagesTitle?: string; // only affects ios
37 | allowVideoSelection?: boolean; // only affects ios
38 | imageLimit?: number;
39 | }
40 | ```
41 |
42 | Picker api
43 | ```javascript
44 | pick(options: PickerOptions): Promise>;
45 | ```
46 |
47 | When the promise resolves, you will get array of imageSource
48 |
49 | ### Theming
50 |
51 | #### Android
52 | Add desired colors in `app/App_Resources/Android/src/main/res/values/colors.xml`
53 | ```xml
54 | #272734
55 | #075e54
56 | #80075e54
57 | ```
58 |
59 | ### Permissions
60 |
61 | ### Android
62 |
63 | Make sure these lines are in your Manifest.xml
64 |
65 | ```xml
66 |
67 |
68 |
69 |
70 | ```
71 |
72 | ### iOS
73 |
74 | Add these to info.plist, you can add more descriptive message here
75 | ```xml
76 | NSCameraUsageDescription
77 | This app uses your camera
78 | NSPhotoLibraryUsageDescription
79 | This app uses your photo library
80 | ```
81 |
82 | ----
83 |
84 | Made With ♥️ for {N} Community by [nStudio](https://nstudio.io)
85 |
86 | Special Thanks to [Richard Smith](https://github.com/dicksmith) and [Osei Fortune](https://github.com/triniwiz) :)
87 |
88 | ## License
89 |
90 | Apache License Version 2.0, January 2004
91 |
--------------------------------------------------------------------------------
/assets/demo-android.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/assets/demo-android.gif
--------------------------------------------------------------------------------
/assets/demo-ios.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/assets/demo-ios.gif
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/app.gradle:
--------------------------------------------------------------------------------
1 | // Add your native dependencies here:
2 |
3 | // Uncomment to add recyclerview-v7 dependency
4 | //dependencies {
5 | // compile 'com.android.support:recyclerview-v7:+'
6 | //}
7 |
8 | android {
9 | defaultConfig {
10 | generatedDensities = []
11 | applicationId = "org.nativescript.demo"
12 | }
13 | aaptOptions {
14 | additionalParameters "--no-version-vectors"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
29 |
30 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 | -
3 |
4 |
5 | -
6 |
7 |
8 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values-v21/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3d5afe
4 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
14 |
15 |
16 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #F5F5F5
4 | #757575
5 | #33B5E5
6 | #272734
7 | #075e54
8 | #80075e54
9 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/Android/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
18 |
19 |
21 |
22 |
23 |
31 |
32 |
34 |
35 |
36 |
42 |
43 |
45 |
46 |
49 |
50 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "29x29",
5 | "idiom" : "iphone",
6 | "filename" : "icon-29.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "29x29",
11 | "idiom" : "iphone",
12 | "filename" : "icon-29@2x.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "icon-29@3x.png",
19 | "scale" : "3x"
20 | },
21 | {
22 | "size" : "40x40",
23 | "idiom" : "iphone",
24 | "filename" : "icon-40@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "icon-40@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "57x57",
35 | "idiom" : "iphone",
36 | "filename" : "icon-57.png",
37 | "scale" : "1x"
38 | },
39 | {
40 | "size" : "57x57",
41 | "idiom" : "iphone",
42 | "filename" : "icon-57@2x.png",
43 | "scale" : "2x"
44 | },
45 | {
46 | "size" : "60x60",
47 | "idiom" : "iphone",
48 | "filename" : "icon-60@2x.png",
49 | "scale" : "2x"
50 | },
51 | {
52 | "size" : "60x60",
53 | "idiom" : "iphone",
54 | "filename" : "icon-60@3x.png",
55 | "scale" : "3x"
56 | },
57 | {
58 | "size" : "29x29",
59 | "idiom" : "ipad",
60 | "filename" : "icon-29.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "29x29",
65 | "idiom" : "ipad",
66 | "filename" : "icon-29@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "40x40",
71 | "idiom" : "ipad",
72 | "filename" : "icon-40.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "40x40",
77 | "idiom" : "ipad",
78 | "filename" : "icon-40@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "50x50",
83 | "idiom" : "ipad",
84 | "filename" : "icon-50.png",
85 | "scale" : "1x"
86 | },
87 | {
88 | "size" : "50x50",
89 | "idiom" : "ipad",
90 | "filename" : "icon-50@2x.png",
91 | "scale" : "2x"
92 | },
93 | {
94 | "size" : "72x72",
95 | "idiom" : "ipad",
96 | "filename" : "icon-72.png",
97 | "scale" : "1x"
98 | },
99 | {
100 | "size" : "72x72",
101 | "idiom" : "ipad",
102 | "filename" : "icon-72@2x.png",
103 | "scale" : "2x"
104 | },
105 | {
106 | "size" : "76x76",
107 | "idiom" : "ipad",
108 | "filename" : "icon-76.png",
109 | "scale" : "1x"
110 | },
111 | {
112 | "size" : "76x76",
113 | "idiom" : "ipad",
114 | "filename" : "icon-76@2x.png",
115 | "scale" : "2x"
116 | },
117 | {
118 | "size" : "83.5x83.5",
119 | "idiom" : "ipad",
120 | "filename" : "icon-83.5@2x.png",
121 | "scale" : "2x"
122 | }
123 | ],
124 | "info" : {
125 | "version" : 1,
126 | "author" : "xcode"
127 | }
128 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "extent" : "full-screen",
5 | "idiom" : "iphone",
6 | "subtype" : "736h",
7 | "filename" : "Default-736h@3x.png",
8 | "minimum-system-version" : "8.0",
9 | "orientation" : "portrait",
10 | "scale" : "3x"
11 | },
12 | {
13 | "extent" : "full-screen",
14 | "idiom" : "iphone",
15 | "subtype" : "736h",
16 | "filename" : "Default-Landscape@3x.png",
17 | "minimum-system-version" : "8.0",
18 | "orientation" : "landscape",
19 | "scale" : "3x"
20 | },
21 | {
22 | "extent" : "full-screen",
23 | "idiom" : "iphone",
24 | "subtype" : "667h",
25 | "filename" : "Default-667h@2x.png",
26 | "minimum-system-version" : "8.0",
27 | "orientation" : "portrait",
28 | "scale" : "2x"
29 | },
30 | {
31 | "orientation" : "portrait",
32 | "idiom" : "iphone",
33 | "filename" : "Default@2x.png",
34 | "extent" : "full-screen",
35 | "minimum-system-version" : "7.0",
36 | "scale" : "2x"
37 | },
38 | {
39 | "extent" : "full-screen",
40 | "idiom" : "iphone",
41 | "subtype" : "retina4",
42 | "filename" : "Default-568h@2x.png",
43 | "minimum-system-version" : "7.0",
44 | "orientation" : "portrait",
45 | "scale" : "2x"
46 | },
47 | {
48 | "orientation" : "portrait",
49 | "idiom" : "ipad",
50 | "filename" : "Default-Portrait.png",
51 | "extent" : "full-screen",
52 | "minimum-system-version" : "7.0",
53 | "scale" : "1x"
54 | },
55 | {
56 | "orientation" : "landscape",
57 | "idiom" : "ipad",
58 | "filename" : "Default-Landscape.png",
59 | "extent" : "full-screen",
60 | "minimum-system-version" : "7.0",
61 | "scale" : "1x"
62 | },
63 | {
64 | "orientation" : "portrait",
65 | "idiom" : "ipad",
66 | "filename" : "Default-Portrait@2x.png",
67 | "extent" : "full-screen",
68 | "minimum-system-version" : "7.0",
69 | "scale" : "2x"
70 | },
71 | {
72 | "orientation" : "landscape",
73 | "idiom" : "ipad",
74 | "filename" : "Default-Landscape@2x.png",
75 | "extent" : "full-screen",
76 | "minimum-system-version" : "7.0",
77 | "scale" : "2x"
78 | },
79 | {
80 | "orientation" : "portrait",
81 | "idiom" : "iphone",
82 | "filename" : "Default.png",
83 | "extent" : "full-screen",
84 | "scale" : "1x"
85 | },
86 | {
87 | "orientation" : "portrait",
88 | "idiom" : "iphone",
89 | "filename" : "Default@2x.png",
90 | "extent" : "full-screen",
91 | "scale" : "2x"
92 | },
93 | {
94 | "orientation" : "portrait",
95 | "idiom" : "iphone",
96 | "filename" : "Default-568h@2x.png",
97 | "extent" : "full-screen",
98 | "subtype" : "retina4",
99 | "scale" : "2x"
100 | },
101 | {
102 | "orientation" : "portrait",
103 | "idiom" : "ipad",
104 | "extent" : "to-status-bar",
105 | "scale" : "1x"
106 | },
107 | {
108 | "orientation" : "portrait",
109 | "idiom" : "ipad",
110 | "filename" : "Default-Portrait.png",
111 | "extent" : "full-screen",
112 | "scale" : "1x"
113 | },
114 | {
115 | "orientation" : "landscape",
116 | "idiom" : "ipad",
117 | "extent" : "to-status-bar",
118 | "scale" : "1x"
119 | },
120 | {
121 | "orientation" : "landscape",
122 | "idiom" : "ipad",
123 | "filename" : "Default-Landscape.png",
124 | "extent" : "full-screen",
125 | "scale" : "1x"
126 | },
127 | {
128 | "orientation" : "portrait",
129 | "idiom" : "ipad",
130 | "extent" : "to-status-bar",
131 | "scale" : "2x"
132 | },
133 | {
134 | "orientation" : "portrait",
135 | "idiom" : "ipad",
136 | "filename" : "Default-Portrait@2x.png",
137 | "extent" : "full-screen",
138 | "scale" : "2x"
139 | },
140 | {
141 | "orientation" : "landscape",
142 | "idiom" : "ipad",
143 | "extent" : "to-status-bar",
144 | "scale" : "2x"
145 | },
146 | {
147 | "orientation" : "landscape",
148 | "idiom" : "ipad",
149 | "filename" : "Default-Landscape@2x.png",
150 | "extent" : "full-screen",
151 | "scale" : "2x"
152 | }
153 | ],
154 | "info" : {
155 | "version" : 1,
156 | "author" : "xcode"
157 | }
158 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchScreen-AspectFill.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchScreen-AspectFill@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchScreen-Center.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchScreen-Center@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nstudio/nativescript-rad-imagepicker/5346ea55671ca9f128625d634355806abea7ebbe/demo/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | ${PRODUCT_NAME}
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIRequiresFullScreen
28 |
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationLandscapeLeft
37 | UIInterfaceOrientationLandscapeRight
38 |
39 | UISupportedInterfaceOrientations~ipad
40 |
41 | UIInterfaceOrientationPortrait
42 | UIInterfaceOrientationPortraitUpsideDown
43 | UIInterfaceOrientationLandscapeLeft
44 | UIInterfaceOrientationLandscapeRight
45 |
46 | NSLocationWhenInUseUsageDescription
47 | This app uses your location
48 | NSCameraUsageDescription
49 | This app uses your camera
50 | NSPhotoLibraryUsageDescription
51 | This app uses your photo library
52 |
53 |
54 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/demo/app/App_Resources/iOS/build.xcconfig:
--------------------------------------------------------------------------------
1 | // You can add custom settings here
2 | // for example you can uncomment the following line to force distribution code signing
3 | // CODE_SIGN_IDENTITY = iPhone Distribution
4 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
5 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
6 |
--------------------------------------------------------------------------------
/demo/app/app.css:
--------------------------------------------------------------------------------
1 | @import '~nativescript-theme-core/css/forest.css';
2 |
--------------------------------------------------------------------------------
/demo/app/app.ts:
--------------------------------------------------------------------------------
1 | import * as application from 'tns-core-modules/application';
2 | application.start({ moduleName: "main-page" });
3 |
--------------------------------------------------------------------------------
/demo/app/main-page.ts:
--------------------------------------------------------------------------------
1 | import * as observable from 'tns-core-modules/data/observable';
2 | import * as pages from 'tns-core-modules/ui/page';
3 | import {HelloWorldModel} from './main-view-model';
4 |
5 | // Event handler for Page 'loaded' event attached in main-page.xml
6 | export function pageLoaded(args: observable.EventData) {
7 | // Get the event sender
8 | let page = args.object;
9 | page.bindingContext = new HelloWorldModel();
10 | }
11 |
--------------------------------------------------------------------------------
/demo/app/main-page.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/demo/app/main-view-model.ts:
--------------------------------------------------------------------------------
1 | import { PickerOptions, RadImagepicker } from "@nstudio/nativescript-rad-imagepicker";
2 | import { Observable } from "tns-core-modules/data/observable";
3 | import { ObservableArray } from "tns-core-modules/data/observable-array";
4 | import { screen } from "tns-core-modules/platform";
5 | import { topmost } from "tns-core-modules/ui/frame";
6 | import { Repeater } from "tns-core-modules/ui/repeater";
7 |
8 | export class HelloWorldModel extends Observable {
9 | public images = new ObservableArray([]);
10 | private radImagepicker: RadImagepicker;
11 | public imageWidth;
12 | public hideHint = false;
13 |
14 | constructor() {
15 | super();
16 |
17 | if (screen.mainScreen.widthDIPs >= 350) {
18 | this.imageWidth = screen.mainScreen.widthDIPs / 4;
19 | } else {
20 | this.imageWidth = screen.mainScreen.widthDIPs / 3;
21 | }
22 | this.radImagepicker = new RadImagepicker();
23 | }
24 |
25 | pickImage() {
26 | const opts: PickerOptions = {
27 | doneButtonTitle: "Finish",
28 | allowVideoSelection: false,
29 | noImagesTitle: "No images here :(",
30 | imageLimit: 5
31 | };
32 |
33 | this.radImagepicker.pick(opts).then(selectedImages => {
34 | if (selectedImages) {
35 | this.images.length = 0;
36 | for (let i = 0; i < selectedImages.length; i++) {
37 | this.images.push({
38 | source: selectedImages[i]
39 | });
40 | }
41 |
42 | const repeaterView: Repeater = topmost().getViewById("repeaterView");
43 | repeaterView.items = this.images;
44 |
45 | ( topmost().getViewById('hint')).visibility = 'collapse';
46 | } else {
47 | console.log('User pressed cancel');
48 | }
49 | });
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/demo/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tns-template-hello-world-ts",
3 | "main": "app.js",
4 | "version": "1.6.0",
5 | "author": {
6 | "name": "Telerik",
7 | "email": "support@telerik.com"
8 | },
9 | "description": "Nativescript hello-world-ts project template",
10 | "license": "Apache-2.0",
11 | "keywords": [
12 | "telerik",
13 | "mobile",
14 | "nativescript",
15 | "{N}",
16 | "tns",
17 | "appbuilder",
18 | "template"
19 | ],
20 | "repository": {
21 | "type": "git",
22 | "url": "git+ssh://git@github.com/NativeScript/template-hello-world-ts.git"
23 | },
24 | "bugs": {
25 | "url": "https://github.com/NativeScript/template-hello-world-ts/issues"
26 | },
27 | "homepage": "https://github.com/NativeScript/template-hello-world-ts",
28 | "android": {
29 | "v8Flags": "--expose_gc",
30 | "requireModules": ["nativescript-rad-imagepicker"]
31 | },
32 | "devDependencies": {
33 | "nativescript-dev-typescript": "^0.3.0"
34 | },
35 | "_id": "tns-template-hello-world-ts@1.6.0",
36 | "_shasum": "a567c2b9a56024818c06596dab9629d155c5b8a8",
37 | "_resolved": "https://registry.npmjs.org/tns-template-hello-world-ts/-/tns-template-hello-world-ts-1.6.0.tgz",
38 | "_from": "tns-template-hello-world-ts@latest",
39 | "scripts": {
40 | "build.plugin": "cd ../src && npm run build",
41 | "ci.tslint": "npm i && tslint --config '../tslint.json' 'app/**/*.ts' --exclude '**/node_modules/**'"
42 | },
43 | "_npmVersion": "2.14.7",
44 | "_nodeVersion": "4.2.2",
45 | "_npmUser": {
46 | "name": "enchev",
47 | "email": "vladimir.enchev@gmail.com"
48 | },
49 | "dist": {
50 | "shasum": "a567c2b9a56024818c06596dab9629d155c5b8a8",
51 | "tarball": "http://registry.npmjs.org/tns-template-hello-world-ts/-/tns-template-hello-world-ts-1.6.0.tgz"
52 | },
53 | "maintainers": [
54 | {
55 | "name": "enchev",
56 | "email": "vladimir.enchev@gmail.com"
57 | },
58 | {
59 | "name": "erjangavalji",
60 | "email": "erjan.gavalji@gmail.com"
61 | },
62 | {
63 | "name": "fatme",
64 | "email": "hfatme@gmail.com"
65 | },
66 | {
67 | "name": "hdeshev",
68 | "email": "hristo@deshev.com"
69 | },
70 | {
71 | "name": "kerezov",
72 | "email": "d.kerezov@gmail.com"
73 | },
74 | {
75 | "name": "ligaz",
76 | "email": "stefan.dobrev@gmail.com"
77 | },
78 | {
79 | "name": "nsndeck",
80 | "email": "nedyalko.nikolov@telerik.com"
81 | },
82 | {
83 | "name": "rosen-vladimirov",
84 | "email": "rosen.vladimirov.91@gmail.com"
85 | },
86 | {
87 | "name": "sdobrev",
88 | "email": "stefan.dobrev@gmail.com"
89 | },
90 | {
91 | "name": "tailsu",
92 | "email": "tailsu@gmail.com"
93 | },
94 | {
95 | "name": "teobugslayer",
96 | "email": "teobugslayer@gmail.com"
97 | },
98 | {
99 | "name": "valio.stoychev",
100 | "email": "valio.stoychev@gmail.com"
101 | }
102 | ],
103 | "_npmOperationalInternal": {
104 | "host": "packages-5-east.internal.npmjs.com",
105 | "tmp": "tmp/tns-template-hello-world-ts-1.6.0.tgz_1455717516189_0.6427943941671401"
106 | },
107 | "directories": {},
108 | "readme": "ERROR: No README data found!"
109 | }
110 |
--------------------------------------------------------------------------------
/demo/app/tests/tests.js:
--------------------------------------------------------------------------------
1 | var RadImagepicker = require("nativescript-rad-imagepicker").RadImagepicker;
2 | var radImagepicker = new RadImagepicker();
3 |
4 | describe("greet function", function() {
5 | it("exists", function() {
6 | expect(radImagepicker.greet).toBeDefined();
7 | });
8 |
9 | it("returns a string", function() {
10 | expect(radImagepicker.greet()).toEqual("Hello, NS");
11 | });
12 | });
--------------------------------------------------------------------------------
/demo/karma.conf.js:
--------------------------------------------------------------------------------
1 | module.exports = function(config) {
2 | config.set({
3 |
4 | // base path that will be used to resolve all patterns (eg. files, exclude)
5 | basePath: '',
6 |
7 |
8 | // frameworks to use
9 | // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
10 | frameworks: ['jasmine'],
11 |
12 |
13 | // list of files / patterns to load in the browser
14 | files: [
15 | 'app/**/*.js'
16 | ],
17 |
18 |
19 | // list of files to exclude
20 | exclude: [
21 | ],
22 |
23 |
24 | // preprocess matching files before serving them to the browser
25 | // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
26 | preprocessors: {
27 | },
28 |
29 |
30 | // test results reporter to use
31 | // possible values: 'dots', 'progress'
32 | // available reporters: https://npmjs.org/browse/keyword/karma-reporter
33 | reporters: ['progress'],
34 |
35 |
36 | // web server port
37 | port: 9876,
38 |
39 |
40 | // enable / disable colors in the output (reporters and logs)
41 | colors: true,
42 |
43 |
44 | // level of logging
45 | // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
46 | logLevel: config.LOG_INFO,
47 |
48 |
49 | // enable / disable watching file and executing tests whenever any file changes
50 | autoWatch: true,
51 |
52 |
53 | // start these browsers
54 | // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
55 | browsers: [],
56 |
57 | customLaunchers: {
58 | android: {
59 | base: 'NS',
60 | platform: 'android'
61 | },
62 | ios: {
63 | base: 'NS',
64 | platform: 'ios'
65 | },
66 | ios_simulator: {
67 | base: 'NS',
68 | platform: 'ios',
69 | arguments: ['--emulator']
70 | }
71 | },
72 |
73 | // Continuous Integration mode
74 | // if true, Karma captures browsers, runs the tests and exits
75 | singleRun: true
76 | });
77 | };
78 |
--------------------------------------------------------------------------------
/demo/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "nativescript": {
3 | "id": "org.nativescript.demo",
4 | "tns-android": {
5 | "version": "4.1.3"
6 | },
7 | "tns-ios": {
8 | "version": "4.1.1"
9 | }
10 | },
11 | "dependencies": {
12 | "@nstudio/nativescript-rad-imagepicker": "file:../src",
13 | "nativescript-theme-core": "^1.0.4",
14 | "nativescript-unit-test-runner": "^0.3.4",
15 | "tns-core-modules": "^4.1.0"
16 | },
17 | "devDependencies": {
18 | "awesome-typescript-loader": "~5.0.0",
19 | "babel-traverse": "6.26.0",
20 | "babel-types": "6.26.0",
21 | "babylon": "6.18.0",
22 | "clean-webpack-plugin": "~0.1.19",
23 | "copy-webpack-plugin": "~4.5.1",
24 | "css-loader": "~0.28.7",
25 | "extract-text-webpack-plugin": "~3.0.2",
26 | "filewalker": "0.1.2",
27 | "jasmine-core": "^2.5.2",
28 | "karma": "^1.3.0",
29 | "karma-jasmine": "^1.0.2",
30 | "karma-nativescript-launcher": "^0.4.0",
31 | "lazy": "1.0.11",
32 | "nativescript-css-loader": "~0.26.0",
33 | "nativescript-dev-typescript": "^0.7.0",
34 | "nativescript-dev-webpack": "^0.12.0",
35 | "nativescript-worker-loader": "~0.8.1",
36 | "raw-loader": "~0.5.1",
37 | "resolve-url-loader": "~2.3.0",
38 | "tns-platform-declarations": "^4.1.0",
39 | "tslint": "~5.4.3",
40 | "typescript": "~2.7.2",
41 | "webpack": "~4.5.0",
42 | "webpack-bundle-analyzer": "^2.9.1",
43 | "uglifyjs-webpack-plugin": "~1.2.4",
44 | "webpack-cli": "~2.0.14",
45 | "webpack-sources": "~1.1.0"
46 | },
47 | "scripts": {
48 | "build.plugin": "cd ../src && npm run build",
49 | "ci.tslint": "npm i && tslint --config '../tslint.json' 'app/**/*.ts' --exclude '**/node_modules/**'"
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/demo/references.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 |
--------------------------------------------------------------------------------
/demo/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "commonjs",
5 | "declaration": false,
6 | "removeComments": true,
7 | "noLib": false,
8 | "emitDecoratorMetadata": true,
9 | "experimentalDecorators": true,
10 | "lib": [
11 | "es6",
12 | "dom"
13 | ],
14 | "pretty": true,
15 | "allowUnreachableCode": false,
16 | "allowUnusedLabels": false,
17 | "noEmitHelpers": true,
18 | "noEmitOnError": false,
19 | "noImplicitAny": false,
20 | "noImplicitReturns": true,
21 | "noImplicitUseStrict": false,
22 | "noFallthroughCasesInSwitch": true,
23 | "baseUrl": ".",
24 | "paths": {
25 | "*": [
26 | "./node_modules/*"
27 | ],
28 | "~/*": [
29 | "app/*"
30 | ]
31 | }
32 | },
33 | "include": [
34 | "../src",
35 | "**/*"
36 | ],
37 | "exclude": [
38 | "../src/node_modules",
39 | "node_modules",
40 | "platforms"
41 | ],
42 | "compileOnSave": false
43 | }
--------------------------------------------------------------------------------
/publish/pack.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | SOURCE_DIR=../src;
4 | TO_SOURCE_DIR=src;
5 | PACK_DIR=package;
6 | ROOT_DIR=..;
7 | PUBLISH=--publish
8 |
9 | install(){
10 | npm i
11 | }
12 |
13 | pack() {
14 |
15 | echo 'Clearing /src and /package...'
16 | node_modules/.bin/rimraf "$TO_SOURCE_DIR"
17 | node_modules/.bin/rimraf "$PACK_DIR"
18 |
19 | # copy src
20 | echo 'Copying src...'
21 | node_modules/.bin/ncp "$SOURCE_DIR" "$TO_SOURCE_DIR"
22 |
23 | # copy README & LICENSE to src
24 | echo 'Copying README and LICENSE to /src...'
25 | node_modules/.bin/ncp "$ROOT_DIR"/LICENSE "$TO_SOURCE_DIR"/LICENSE
26 | node_modules/.bin/ncp "$ROOT_DIR"/README.md "$TO_SOURCE_DIR"/README.md
27 |
28 | # compile package and copy files required by npm
29 | echo 'Building /src...'
30 | cd "$TO_SOURCE_DIR"
31 | node_modules/.bin/tsc
32 | cd ..
33 |
34 | echo 'Creating package...'
35 | # create package dir
36 | mkdir "$PACK_DIR"
37 |
38 | # create the package
39 | cd "$PACK_DIR"
40 | npm pack ../"$TO_SOURCE_DIR"
41 |
42 | # delete source directory used to create the package
43 | cd ..
44 | node_modules/.bin/rimraf "$TO_SOURCE_DIR"
45 | }
46 |
47 | install && pack
--------------------------------------------------------------------------------
/publish/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "nativescript-publish",
3 | "version": "1.0.0",
4 | "description": "Publish helper",
5 | "devDependencies": {
6 | "ncp": "^2.0.0",
7 | "rimraf": "^2.5.0"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/publish/publish.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | PACK_DIR=package;
4 |
5 | publish() {
6 | cd $PACK_DIR
7 | echo 'Publishing to npm...'
8 | npm publish *.tgz
9 | }
10 |
11 | ./pack.sh && publish
--------------------------------------------------------------------------------
/src/.npmignore:
--------------------------------------------------------------------------------
1 | *.map
2 | *.ts
3 | !*.d.ts
4 | tsconfig.json
5 | scripts/*
6 | platforms/android/*
7 | !platforms/android/include.gradle
8 | !platforms/android/*.aar
9 | !platforms/android/*.jar
--------------------------------------------------------------------------------
/src/index.d.ts:
--------------------------------------------------------------------------------
1 | import { Common } from './rad-imagepicker.common';
2 | export interface PickerOptions {
3 | doneButtonTitle?: string;
4 | noImagesTitle?: string;
5 | allowVideoSelection?: boolean;
6 | imageLimit?: number;
7 | }
8 |
9 | export declare class RadImagepicker extends Common {
10 | pick(options?: PickerOptions): Promise>;
11 | }
12 |
--------------------------------------------------------------------------------
/src/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@nstudio/nativescript-rad-imagepicker",
3 | "version": "2.0.4",
4 | "description": "Whatsapp style imagepicker for NativeScript apps",
5 | "main": "rad-imagepicker",
6 | "typings": "index.d.ts",
7 | "nativescript": {
8 | "platforms": {
9 | "android": "4.0.0",
10 | "ios": "4.0.0"
11 | }
12 | },
13 | "scripts": {
14 | "tsc": "tsc -skipLibCheck",
15 | "build": "npm i && tsc && npm run build.native",
16 | "build.native": "node scripts/build-native.js",
17 | "postclone": "npm i && node scripts/postclone.js && cd ../demo && npm i && cd ../src && npm run plugin.link",
18 | "test.android": "npm i && npm run tsc && npm run tslint && cd ../demo && tns build android && tns test android --justlaunch",
19 | "test.ios": "npm i && npm run tsc && npm run tslint && cd ../demo && tns build ios && tns test ios --justlaunch",
20 | "tslint": "cd .. && tslint \"**/*.ts\" --config tslint.json --exclude \"**/node_modules/**\"",
21 | "plugin.link": "npm link && cd ../demo && npm link nativescript-rad-imagepicker && cd ../src",
22 | "plugin.tscwatch": "npm run tsc -- -w",
23 | "demo.ios": "npm i && npm run tsc && cd ../demo && tns run ios --syncAllFiles",
24 | "demo.android": "npm i && npm run tsc && cd ../demo && tns run android --syncAllFiles",
25 | "demo.reset": "cd ../demo && rimraf platforms",
26 | "plugin.prepare": "npm run build && cd ../demo && tns plugin remove nativescript-rad-imagepicker && tns plugin add ../src",
27 | "clean": "cd ../demo && rimraf hooks node_modules platforms && cd ../src && rimraf node_modules && npm run plugin.link",
28 | "ci.tslint": "npm i && tslint '**/*.ts' --config '../tslint.json' --exclude '**/node_modules/**'",
29 | "prepack": "npm run build.native"
30 | },
31 | "keywords": [
32 | "NativeScript",
33 | "JavaScript",
34 | "Android",
35 | "iOS",
36 | "ImagePicker",
37 | "WhatsAppPicker"
38 | ],
39 | "author": "MultiShiv19 (https://shiv19.com)",
40 | "repository": {
41 | "url": "git+https://github.com/nstudio/nativescript-rad-imagepicker.git",
42 | "type": "git"
43 | },
44 | "bugs": {
45 | "url": "https://github.com/nstudio/nativescript-rad-imagepicker/issues"
46 | },
47 | "license": "Apache-2.0",
48 | "homepage": "https://github.com/nstudio/nativescript-rad-imagepicker",
49 | "devDependencies": {
50 | "tns-core-modules": "^4.0.0",
51 | "tns-platform-declarations": "^4.0.0",
52 | "typescript": "~2.7.2",
53 | "prompt": "^1.0.0",
54 | "rimraf": "^2.5.0",
55 | "tslint": "^5.0.0",
56 | "semver": "^5.5.0"
57 | },
58 | "dependencies": {
59 | "nativescript-permissions": "~1.2.3"
60 | },
61 | "bootstrapper": "nativescript-plugin-seed"
62 | }
63 |
--------------------------------------------------------------------------------
/src/platforms/android/include.gradle:
--------------------------------------------------------------------------------
1 | android {
2 |
3 | }
4 |
5 | repositories {
6 | jcenter()
7 | maven { url "https://dl.bintray.com/fxn769/android_projects/" }
8 | maven { url "https://dl.bintray.com/wonderkiln/maven/" }
9 | maven { url "https://mvnrepository.com/artifact/com.github.bumptech.glide/glide" }
10 | }
11 |
12 | def supportLibraryVersion = '27.1.1'
13 | dependencies {
14 | compile 'com.android.support:appcompat-v7:' + supportLibraryVersion
15 | compile 'com.android.support:design:' + supportLibraryVersion
16 | compile 'com.android.support:exifinterface:' + supportLibraryVersion
17 | compile 'com.wonderkiln:camerakit:0.13.1:@aar'
18 | compile group: 'com.github.bumptech.glide', name: 'glide', version: '4.7.1'
19 | compile 'com.fxn769:pix:1.0.8:@aar'
20 | compile 'com.android.support:recyclerview-v7:' + supportLibraryVersion
21 | }
--------------------------------------------------------------------------------
/src/platforms/ios/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '9.0'
2 | pod 'ImagePicker', :git => 'https://github.com/shiv19/ImagePicker'
3 | pod 'Lightbox', :git => 'https://github.com/shiv19/Lightbox'
--------------------------------------------------------------------------------
/src/rad-imagepicker.android.ts:
--------------------------------------------------------------------------------
1 | import { Common, PickerOptions } from './rad-imagepicker.common';
2 | import * as app from "tns-core-modules/application";
3 | import * as frame from "tns-core-modules/ui/frame";
4 | import * as permissions from "nativescript-permissions";
5 | import * as imageSource from "tns-core-modules/image-source";
6 |
7 | declare var com: any;
8 | const Pix = com.fxn.pix.Pix;
9 |
10 | export class RadImagepicker extends Common {
11 |
12 | constructor() {
13 | super();
14 | }
15 |
16 | private authorize() {
17 | if ((android).os.Build.VERSION.SDK_INT >= 23) {
18 | return permissions.requestPermission([
19 | (android).Manifest.permission.READ_EXTERNAL_STORAGE,
20 | (android).Manifest.permission.WRITE_EXTERNAL_STORAGE,
21 | (android).Manifest.permission.CAMERA
22 | ]);
23 | } else {
24 | return Promise.resolve();
25 | }
26 | }
27 |
28 | pick(options: PickerOptions): Promise> {
29 | return new Promise((resolve, reject) => {
30 | this.authorize()
31 | .then(() => {
32 | const onResult = function(args) {
33 | const requestCode = args.requestCode;
34 | const resultCode = args.resultCode;
35 | const data = args.intent;
36 | switch (requestCode) {
37 | case (100): {
38 | if (resultCode == android.app.Activity.RESULT_OK) {
39 | const returnValue = data.getStringArrayListExtra(Pix.IMAGE_RESULTS);
40 | const imgArray = returnValue.toArray();
41 | const images = [];
42 | for (let i = 0; i < imgArray.length; i++ ) {
43 | images.push(imageSource.fromFile(imgArray[i].toString()));
44 | }
45 | resolve(images);
46 | } else if (resultCode == android.app.Activity.RESULT_CANCELED) {
47 | resolve();
48 | }
49 | }
50 | break;
51 | }
52 | }
53 | app.android.on(app.AndroidApplication.activityResultEvent, onResult);
54 |
55 | let activity = frame.topmost().android.activity;
56 | let i = new android.content.Intent(activity, com.fxn.pix.Pix.class);
57 | i.putExtra("selection", options.imageLimit);
58 |
59 | activity.startActivityForResult(i, 100);
60 | })
61 | .catch(() => {
62 | reject("Permissions not satisfied");
63 | });
64 | });
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/rad-imagepicker.common.ts:
--------------------------------------------------------------------------------
1 | import { Observable } from 'tns-core-modules/data/observable';
2 |
3 | export class Common extends Observable {
4 | constructor() {
5 | super();
6 | }
7 | }
8 |
9 | export interface PickerOptions {
10 | doneButtonTitle?: string;
11 | noImagesTitle?: string;
12 | allowVideoSelection?: boolean;
13 | imageLimit?: number;
14 | }
15 |
--------------------------------------------------------------------------------
/src/rad-imagepicker.ios.ts:
--------------------------------------------------------------------------------
1 | import { Common, PickerOptions } from './rad-imagepicker.common';
2 | import * as frame from "tns-core-modules/ui/frame";
3 | import * as imageSource from "tns-core-modules/image-source";
4 |
5 | let imagePickerController;
6 | declare var NSDocumentDirectory;
7 | declare var NSUserDomainMask;
8 |
9 | function createImageSourceFromUIImage(image, i) {
10 | const paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
11 | NSUserDomainMask, true);
12 | const documentsDirectory = paths.objectAtIndex(0)
13 | const documentsDirectoryNSString = NSString.stringWithString(documentsDirectory);
14 | const ms = new Date().getMilliseconds();
15 | const path = documentsDirectoryNSString.stringByAppendingPathComponent(`status${i}-${ms}.jpeg`);
16 | const data = UIImagePNGRepresentation(image);
17 | data.writeToFileAtomically(path, true);
18 |
19 | return imageSource.fromFile(path);
20 | }
21 |
22 | export class RadImagepicker extends Common {
23 |
24 | constructor() {
25 | super();
26 | }
27 |
28 | pick(options: PickerOptions): Promise> {
29 | return new Promise((resolve, reject) => {
30 | const viewController = frame.topmost().currentPage.ios;
31 |
32 | imagePickerController = ImagePickerController.new();
33 |
34 | const config = Configuration.new();
35 |
36 | if (options) {
37 | if (options.doneButtonTitle) {
38 | config.doneButtonTitle = options.doneButtonTitle;
39 | }
40 | if (options.noImagesTitle) {
41 | config.noImagesTitle = options.noImagesTitle;
42 | }
43 | if (options.allowVideoSelection !== undefined) {
44 | config.allowVideoSelection = options.allowVideoSelection;
45 | }
46 | }
47 |
48 | imagePickerController.initWithConfiguration(config);
49 | if (options && options.imageLimit > 0) {
50 | imagePickerController.imageLimit = options.imageLimit;
51 | }
52 |
53 | imagePickerController.delegate = ImagePickerDelegateImpl.new().initWithCallback((selectedImages) => {
54 | imagePickerController = null;
55 | resolve(selectedImages);
56 | });
57 | viewController.presentViewControllerAnimatedCompletion(imagePickerController, true, null);
58 | });
59 | }
60 | }
61 |
62 | export class ImagePickerDelegateImpl extends NSObject implements ImagePickerDelegate {
63 | public static ObjCProtocols = [ImagePickerDelegate];
64 | static new(): ImagePickerDelegateImpl {
65 | return super.new();
66 | }
67 | private _callback: (images?) => void;
68 |
69 | public initWithCallback(callback: (images?) => void): ImagePickerDelegateImpl {
70 | this._callback = callback;
71 | return this;
72 | }
73 |
74 | cancelButtonDidPress(imagePicker: ImagePickerController): void {
75 | this._callback();
76 | const viewController = frame.topmost().currentPage.ios;
77 | viewController.dismissViewControllerAnimatedCompletion(true, null);
78 | }
79 |
80 | doneButtonDidPressImages(imagePicker: ImagePickerController, images: NSArray): void {
81 | let selectedImages = [];
82 | for (let i = 0; i < images.count; i++) {
83 | selectedImages.push(createImageSourceFromUIImage(images[i], i));
84 | }
85 | this._callback(selectedImages);
86 | const viewController = frame.topmost().currentPage.ios;
87 | viewController.dismissViewControllerAnimatedCompletion(true, null);
88 | }
89 |
90 | wrapperDidPressImages(imagePicker: ImagePickerController, images: NSArray): void {
91 | const viewController = frame.topmost().currentPage.ios;
92 | if (images.count < 1) {
93 | viewController.dismissViewControllerAnimatedCompletion(true, null);
94 | } else {
95 | let lightboxImages = [];
96 |
97 | for (let i = 0; i < images.count; i++) {
98 | const lb = new LightboxImage({
99 | image: images[i],
100 | text: null,
101 | videoURL: null
102 | });
103 | lightboxImages.push(lb);
104 | }
105 |
106 | let lightbox = new ( LightboxController)({
107 | images: lightboxImages,
108 | startIndex: 0
109 | });
110 |
111 | imagePickerController.presentViewControllerAnimatedCompletion(lightbox, true, null);
112 | }
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/src/references.d.ts:
--------------------------------------------------------------------------------
1 | ///
2 | ///
3 | ///
4 | ///
5 | ///
6 |
--------------------------------------------------------------------------------
/src/scripts/build-native.js:
--------------------------------------------------------------------------------
1 | const { exec } = require('child_process');
2 | const semver = require('semver');
3 |
4 | exec('tns --version', (err, stdout, stderr) => {
5 | if (err) {
6 | // node couldn't execute the command
7 | console.log(`tns --version err: ${err}`);
8 | return;
9 | }
10 |
11 | const tnsVersion = semver.major(stdout);
12 |
13 | // execute 'tns plugin build' for {N} version > 4. This command builds .aar in platforms/android folder.
14 | if (tnsVersion >= 4) {
15 | console.log(`executing 'tns plugin build'`);
16 | exec('tns plugin build', (err, stdout, stderr) => {
17 | if (err) {
18 | // node couldn't execute the command
19 | console.log(`${err}`);
20 | return;
21 | }
22 | });
23 | }
24 | });
25 |
--------------------------------------------------------------------------------
/src/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "module": "commonjs",
5 | "declaration": true,
6 | "removeComments": true,
7 | "noLib": false,
8 | "emitDecoratorMetadata": true,
9 | "experimentalDecorators": true,
10 | "lib": ["es6", "dom"],
11 | "sourceMap": true,
12 | "pretty": true,
13 | "allowUnreachableCode": false,
14 | "allowUnusedLabels": false,
15 | "noEmitHelpers": true,
16 | "noEmitOnError": false,
17 | "noImplicitAny": false,
18 | "noImplicitReturns": true,
19 | "noImplicitUseStrict": false,
20 | "noFallthroughCasesInSwitch": true
21 | },
22 | "exclude": [
23 | "node_modules"
24 | ],
25 | "compileOnSave": false
26 | }
27 |
--------------------------------------------------------------------------------
/src/typings/android.d.ts:
--------------------------------------------------------------------------------
1 | import androidcontentContext = android.content.Context;
2 | import androidviewViewGroup = android.view.ViewGroup;
3 | import androidviewView = android.view.View;
4 | ///
5 | ///
6 | ///
7 | ///
8 | ///
9 | ///
10 | declare module com {
11 | export module fxn {
12 | export module adapters {
13 | export class InstantImageAdapter {
14 | public addImageList(param0): void;
15 | public getItemList();
16 | public clearList(): void;
17 | public getItemViewType(param0: number): number;
18 | public addOnSelectionListener(param0: com.fxn.interfaces.OnSelectionListener): void;
19 | public constructor(param0: androidcontentContext);
20 | public onCreateViewHolder(param0: androidviewViewGroup, param1: number);
21 | public onBindViewHolder(param0, param1: number): void;
22 | public addImage(param0: com.fxn.modals.Img): com.fxn.adapters.InstantImageAdapter;
23 | public select(param0: boolean, param1: number): void;
24 | public getItemCount(): number;
25 | }
26 | export module InstantImageAdapter {
27 | export class Holder {
28 | public onClick(param0: androidviewView): void;
29 | public onLongClick(param0: androidviewView): boolean;
30 | }
31 | export class HolderNone {
32 | }
33 | }
34 | }
35 | }
36 | }
37 |
38 | ///
39 | ///
40 | ///
41 | ///
42 | ///
43 | ///
44 | declare module com {
45 | export module fxn {
46 | export module adapters {
47 | export class MainImageAdapter {
48 | public static HEADER: number;
49 | public static ITEM: number;
50 | public static SPAN_COUNT: number;
51 | public getHeaderPositionForItem(param0: number): number;
52 | public clearList(): void;
53 | public addImage(param0: com.fxn.modals.Img): com.fxn.adapters.MainImageAdapter;
54 | public select(param0: boolean, param1: number): void;
55 | public getItemCount(): number;
56 | public bindHeaderData(param0: androidviewView, param1: number): void;
57 | public isHeader(param0: number): boolean;
58 | public getHeaderLayout(param0: number): number;
59 | public addImageList(param0): void;
60 | public getItemList();
61 | public getSectionMonthYearText(param0: number): string;
62 | public getItemViewType(param0: number): number;
63 | public getItemId(param0: number): number;
64 | public addOnSelectionListener(param0: com.fxn.interfaces.OnSelectionListener): void;
65 | public getSectionText(param0: number): string;
66 | public constructor(param0: androidcontentContext);
67 | public onCreateViewHolder(param0: androidviewViewGroup, param1: number);
68 | public onBindViewHolder(param0, param1: number): void;
69 | }
70 | export module MainImageAdapter {
71 | export class HeaderHolder {
72 | }
73 | export class Holder {
74 | public onClick(param0: androidviewView): void;
75 | public onLongClick(param0: androidviewView): boolean;
76 | }
77 | }
78 | }
79 | }
80 | }
81 |
82 | ///
83 | ///
84 | declare module com {
85 | export module fxn {
86 | export module interfaces {
87 | export class OnSelectionListener {
88 | /**
89 | * Constructs a new instance of the com.fxn.interfaces.OnSelectionListener interface with the provided implementation.
90 | */
91 | public constructor(implementation: {
92 | OnClick(param0: com.fxn.modals.Img, param1: androidviewView, param2: number): void;
93 | OnLongClick(param0: com.fxn.modals.Img, param1: androidviewView, param2: number): void;
94 | });
95 | public OnLongClick(param0: com.fxn.modals.Img, param1: androidviewView, param2: number): void;
96 | public OnClick(param0: com.fxn.modals.Img, param1: androidviewView, param2: number): void;
97 | }
98 | }
99 | }
100 | }
101 |
102 | declare module com {
103 | export module fxn {
104 | export module interfaces {
105 | export class SectionIndexer {
106 | /**
107 | * Constructs a new instance of the com.fxn.interfaces.SectionIndexer interface with the provided implementation.
108 | */
109 | public constructor(implementation: {
110 | getSectionText(param0: number): string;
111 | });
112 | public getSectionText(param0: number): string;
113 | }
114 | }
115 | }
116 | }
117 |
118 | import javalangBoolean = java.lang.Boolean;
119 | ///
120 | declare module com {
121 | export module fxn {
122 | export module interfaces {
123 | export class WorkFinish {
124 | /**
125 | * Constructs a new instance of the com.fxn.interfaces.WorkFinish interface with the provided implementation.
126 | */
127 | public constructor(implementation: {
128 | onWorkFinish(param0: javalangBoolean): void;
129 | });
130 | public onWorkFinish(param0: javalangBoolean): void;
131 | }
132 | }
133 | }
134 | }
135 |
136 | ///
137 | ///
138 | declare module com {
139 | export module fxn {
140 | export module modals {
141 | export class Img {
142 | public setHeaderDate(param0: string): void;
143 | public getPosition(): number;
144 | public getUrl(): string;
145 | public setScrollerDate(param0: string): void;
146 | public getScrollerDate(): string;
147 | public constructor(param0: string, param1: string, param2: string, param3: string);
148 | public getContentUrl(): string;
149 | public getSelected(): javalangBoolean;
150 | public getHeaderDate(): string;
151 | public setSelected(param0: javalangBoolean): void;
152 | public setPosition(param0: number): void;
153 | public setContentUrl(param0: string): void;
154 | public setUrl(param0: string): void;
155 | }
156 | }
157 | }
158 | }
159 |
160 | declare module com {
161 | export module fxn {
162 | export module pix {
163 | export class BuildConfig {
164 | public static DEBUG: boolean;
165 | public static APPLICATION_ID: string;
166 | public static BUILD_TYPE: string;
167 | public static FLAVOR: string;
168 | public static VERSION_CODE: number;
169 | public static VERSION_NAME: string;
170 | public constructor();
171 | }
172 | }
173 | }
174 | }
175 |
176 | import androidsupportv4appFragment = android.support.v4.app.Fragment;
177 | import androidsupportv4appFragmentActivity = android.support.v4.app.FragmentActivity;
178 | import androidosBundle = android.os.Bundle;
179 | import androidviewMotionEvent = android.view.MotionEvent;
180 | ///
181 | ///
182 | ///
183 | ///
184 | ///
185 | declare module com {
186 | export module fxn {
187 | export module pix {
188 | export class Pix {
189 | public static IMAGE_RESULTS: string;
190 | public static TOPBAR_HEIGHT: number;
191 | public static start(param0: androidsupportv4appFragment, param1: number, param2: number): void;
192 | public onCreate(param0: androidosBundle): void;
193 | public onBackPressed(): void;
194 | public onResume(): void;
195 | public onTouch(param0: androidviewView, param1: androidviewMotionEvent): boolean;
196 | public onPause(): void;
197 | public returnObjects(): void;
198 | public static start(param0: androidsupportv4appFragmentActivity, param1: number, param2: number): void;
199 | public static start(param0: androidsupportv4appFragmentActivity, param1: number): void;
200 | public static start(param0: androidsupportv4appFragment, param1: number): void;
201 | public constructor();
202 | }
203 | }
204 | }
205 | }
206 |
207 | import androidnetUri = android.net.Uri;
208 | ///
209 | declare module com {
210 | export module fxn {
211 | export module utility {
212 | export class Constants {
213 | public static sScrollbarAnimDuration: number;
214 | public static PROJECTION: native.Array;
215 | public static URI: androidnetUri;
216 | public static ORDERBY: string;
217 | public constructor();
218 | }
219 | }
220 | }
221 | }
222 |
223 | import androidgraphicsCanvas = android.graphics.Canvas;
224 | ///
225 | ///
226 | ///
227 | ///
228 | declare module com {
229 | export module fxn {
230 | export module utility {
231 | export class HeaderItemDecoration {
232 | public onDrawOver(param0: androidgraphicsCanvas, param1, param2): void;
233 | public constructor(param0: androidcontentContext, param1, param2: com.fxn.utility.HeaderItemDecoration.StickyHeaderInterface);
234 | }
235 | export module HeaderItemDecoration {
236 | export class StickyHeaderInterface {
237 | /**
238 | * Constructs a new instance of the com.fxn.utility.HeaderItemDecoration$StickyHeaderInterface interface with the provided implementation.
239 | */
240 | public constructor(implementation: {
241 | getHeaderPositionForItem(param0: number): number;
242 | getHeaderLayout(param0: number): number;
243 | bindHeaderData(param0: androidviewView, param1: number): void;
244 | isHeader(param0: number): boolean;
245 | });
246 | public isHeader(param0: number): boolean;
247 | public getHeaderPositionForItem(param0: number): number;
248 | public getHeaderLayout(param0: number): number;
249 | public bindHeaderData(param0: androidviewView, param1: number): void;
250 | }
251 | }
252 | }
253 | }
254 | }
255 |
256 | import androiddatabaseCursor = android.database.Cursor;
257 | ///
258 | ///
259 | ///
260 | declare module com {
261 | export module fxn {
262 | export module utility {
263 | export class ImageFetcher {
264 | public doInBackground(param0: native.Array);
265 | public constructor(param0: androidcontentContext);
266 | }
267 | }
268 | }
269 | }
270 |
271 | ///
272 | ///
273 | ///
274 | declare module com {
275 | export module fxn {
276 | export module utility {
277 | export abstract class PermUtil {
278 | public static REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS: number;
279 | public static checkForCamara_WritePermissions(param0: androidsupportv4appFragment, param1: com.fxn.interfaces.WorkFinish): void;
280 | public constructor();
281 | public static checkForCamara_WritePermissions(param0: androidsupportv4appFragmentActivity, param1: com.fxn.interfaces.WorkFinish): void;
282 | }
283 | }
284 | }
285 | }
286 |
287 | ///
288 | declare module com {
289 | export module fxn {
290 | export module utility {
291 | export class RegexUtil {
292 | public checkGif(param0: string): boolean;
293 | public constructor();
294 | }
295 | }
296 | }
297 | }
298 |
299 | import androidsupportv7appAppCompatActivity = android.support.v7.app.AppCompatActivity;
300 | import androidappActivity = android.app.Activity;
301 | import javautilCalendar = java.util.Calendar;
302 | import androidviewViewPropertyAnimator = android.view.ViewPropertyAnimator;
303 | import javaioFile = java.io.File;
304 | import androidgraphicsBitmap = android.graphics.Bitmap;
305 | import javautilList = java.util.List;
306 | import javalangLong = java.lang.Long;
307 | ///
308 | ///
309 | ///
310 | ///
311 | ///
312 | ///
313 | ///
314 | ///
315 | ///
316 | ///
317 | ///
318 | ///
319 | declare module com {
320 | export module fxn {
321 | export module utility {
322 | export class Utility {
323 | public static HEIGHT: number;
324 | public static WIDTH: number;
325 | public static manipulateVisibility(param0: androidsupportv7appAppCompatActivity, param1: number, param2, param3, param4: androidviewView, param5: androidviewView, param6: androidviewView, param7: androidviewView, param8: boolean): void;
326 | public static getSoftButtonsBarSizePort(param0: androidappActivity): number;
327 | public static getValueInRange(param0: number, param1: number, param2: number): number;
328 | public static getExifCorrectedBitmap(param0: javaioFile): androidgraphicsBitmap;
329 | public static showStatusBar(param0: androidsupportv7appAppCompatActivity): void;
330 | public static convertPixelsToDp(param0: number, param1: androidcontentContext): number;
331 | public static vibe(param0: androidcontentContext, param1: number): void;
332 | public static isViewVisible(param0: androidviewView): boolean;
333 | public static getCursor(param0: androidcontentContext): androiddatabaseCursor;
334 | public constructor();
335 | public static hideStatusBar(param0: androidsupportv7appAppCompatActivity): void;
336 | public static cancelAnimation(param0: androidviewViewPropertyAnimator): void;
337 | public static setupStatusBarHidden(param0: androidsupportv7appAppCompatActivity): void;
338 | public getPathDir(param0: javalangLong): string;
339 | public static showScrollbar(param0: androidviewView, param1: androidcontentContext): androidviewViewPropertyAnimator;
340 | public getImagesFromGallary(param0: androidcontentContext);
341 | public static getScaledBitmap(param0: number, param1: androidgraphicsBitmap): androidgraphicsBitmap;
342 | public static getScreenSize(param0: androidappActivity): void;
343 | public static isNull(param0: androidviewView): boolean;
344 | public static writeImage(param0: native.Array): javaioFile;
345 | public static getDateDifference(param0: androidcontentContext, param1: javautilCalendar): string;
346 | public static convertDpToPixel(param0: number, param1: androidcontentContext): number;
347 | }
348 | }
349 | }
350 | }
351 |
352 | ///
353 | declare module com {
354 | export module fxn {
355 | export module utility {
356 | export module ui {
357 | export class FastScrollStateChangeListener {
358 | /**
359 | * Constructs a new instance of the com.fxn.utility.ui.FastScrollStateChangeListener interface with the provided implementation.
360 | */
361 | public constructor(implementation: {
362 | onFastScrollStart(param0: com.fxn.pix.Pix): void;
363 | onFastScrollStop(param0: com.fxn.pix.Pix): void;
364 | });
365 | public onFastScrollStart(param0: com.fxn.pix.Pix): void;
366 | public onFastScrollStop(param0: com.fxn.pix.Pix): void;
367 | }
368 | }
369 | }
370 | }
371 | }
372 |
373 |
--------------------------------------------------------------------------------
/src/typings/objc!ImagePicker.d.ts:
--------------------------------------------------------------------------------
1 |
2 | declare class BottomContainerView extends UIView {
3 |
4 | static alloc(): BottomContainerView; // inherited from NSObject
5 |
6 | static appearance(): BottomContainerView; // inherited from UIAppearance
7 |
8 | static appearanceForTraitCollection(trait: UITraitCollection): BottomContainerView; // inherited from UIAppearance
9 |
10 | static appearanceForTraitCollectionWhenContainedIn(trait: UITraitCollection, ContainerClass: typeof NSObject): BottomContainerView; // inherited from UIAppearance
11 |
12 | static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(trait: UITraitCollection, containerTypes: NSArray): BottomContainerView; // inherited from UIAppearance
13 |
14 | static appearanceWhenContainedIn(ContainerClass: typeof NSObject): BottomContainerView; // inherited from UIAppearance
15 |
16 | static appearanceWhenContainedInInstancesOfClasses(containerTypes: NSArray): BottomContainerView; // inherited from UIAppearance
17 |
18 | static new(): BottomContainerView; // inherited from NSObject
19 | }
20 |
21 | declare class Configuration extends NSObject {
22 |
23 | static alloc(): Configuration; // inherited from NSObject
24 |
25 | static new(): Configuration; // inherited from NSObject
26 |
27 | OKButtonTitle: string;
28 |
29 | allowMultiplePhotoSelection: boolean;
30 |
31 | allowPinchToZoom: boolean;
32 |
33 | allowVideoSelection: boolean;
34 |
35 | allowVolumeButtonsToTakePicture: boolean;
36 |
37 | allowedOrientations: UIInterfaceOrientationMask;
38 |
39 | backgroundColor: UIColor;
40 |
41 | bottomContainerColor: UIColor;
42 |
43 | canRotateCamera: boolean;
44 |
45 | cancelButtonTitle: string;
46 |
47 | cellSpacing: number;
48 |
49 | collapseCollectionViewWhileShot: boolean;
50 |
51 | doneButton: UIFont;
52 |
53 | doneButtonTitle: string;
54 |
55 | flashButton: UIFont;
56 |
57 | flashButtonAlwaysHidden: boolean;
58 |
59 | gallerySeparatorColor: UIColor;
60 |
61 | indicatorHeight: number;
62 |
63 | indicatorView: UIView;
64 |
65 | indicatorWidth: number;
66 |
67 | mainColor: UIColor;
68 |
69 | managesAudioSession: boolean;
70 |
71 | noCameraColor: UIColor;
72 |
73 | noCameraFont: UIFont;
74 |
75 | noCameraTitle: string;
76 |
77 | noImagesColor: UIColor;
78 |
79 | noImagesFont: UIFont;
80 |
81 | noImagesTitle: string;
82 |
83 | numberLabelFont: UIFont;
84 |
85 | recordLocation: boolean;
86 |
87 | requestPermissionMessage: string;
88 |
89 | requestPermissionTitle: string;
90 |
91 | readonly rotationTransform: CGAffineTransform;
92 |
93 | settingsColor: UIColor;
94 |
95 | settingsFont: UIFont;
96 |
97 | settingsTitle: string;
98 |
99 | showsImageCountLabel: boolean;
100 |
101 | useLowResolutionPreviewImage: boolean;
102 | }
103 |
104 | declare class ImageGalleryView extends UIView implements UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {
105 |
106 | static alloc(): ImageGalleryView; // inherited from NSObject
107 |
108 | static appearance(): ImageGalleryView; // inherited from UIAppearance
109 |
110 | static appearanceForTraitCollection(trait: UITraitCollection): ImageGalleryView; // inherited from UIAppearance
111 |
112 | static appearanceForTraitCollectionWhenContainedIn(trait: UITraitCollection, ContainerClass: typeof NSObject): ImageGalleryView; // inherited from UIAppearance
113 |
114 | static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(trait: UITraitCollection, containerTypes: NSArray): ImageGalleryView; // inherited from UIAppearance
115 |
116 | static appearanceWhenContainedIn(ContainerClass: typeof NSObject): ImageGalleryView; // inherited from UIAppearance
117 |
118 | static appearanceWhenContainedInInstancesOfClasses(containerTypes: NSArray): ImageGalleryView; // inherited from UIAppearance
119 |
120 | static new(): ImageGalleryView; // inherited from NSObject
121 |
122 | readonly debugDescription: string; // inherited from NSObjectProtocol
123 |
124 | readonly description: string; // inherited from NSObjectProtocol
125 |
126 | readonly hash: number; // inherited from NSObjectProtocol
127 |
128 | readonly isProxy: boolean; // inherited from NSObjectProtocol
129 |
130 | readonly superclass: typeof NSObject; // inherited from NSObjectProtocol
131 |
132 | readonly // inherited from NSObjectProtocol
133 |
134 | class(): typeof NSObject;
135 |
136 | collectionViewCanFocusItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): boolean;
137 |
138 | collectionViewCanMoveItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): boolean;
139 |
140 | collectionViewCanPerformActionForItemAtIndexPathWithSender(collectionView: UICollectionView, action: string, indexPath: NSIndexPath, sender: any): boolean;
141 |
142 | collectionViewCellForItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): UICollectionViewCell;
143 |
144 | collectionViewDidDeselectItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): void;
145 |
146 | collectionViewDidEndDisplayingCellForItemAtIndexPath(collectionView: UICollectionView, cell: UICollectionViewCell, indexPath: NSIndexPath): void;
147 |
148 | collectionViewDidEndDisplayingSupplementaryViewForElementOfKindAtIndexPath(collectionView: UICollectionView, view: UICollectionReusableView, elementKind: string, indexPath: NSIndexPath): void;
149 |
150 | collectionViewDidHighlightItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): void;
151 |
152 | collectionViewDidSelectItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): void;
153 |
154 | collectionViewDidUnhighlightItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): void;
155 |
156 | collectionViewDidUpdateFocusInContextWithAnimationCoordinator(collectionView: UICollectionView, context: UICollectionViewFocusUpdateContext, coordinator: UIFocusAnimationCoordinator): void;
157 |
158 | collectionViewIndexPathForIndexTitleAtIndex(collectionView: UICollectionView, title: string, index: number): NSIndexPath;
159 |
160 | collectionViewLayoutInsetForSectionAtIndex(collectionView: UICollectionView, collectionViewLayout: UICollectionViewLayout, section: number): UIEdgeInsets;
161 |
162 | collectionViewLayoutMinimumInteritemSpacingForSectionAtIndex(collectionView: UICollectionView, collectionViewLayout: UICollectionViewLayout, section: number): number;
163 |
164 | collectionViewLayoutMinimumLineSpacingForSectionAtIndex(collectionView: UICollectionView, collectionViewLayout: UICollectionViewLayout, section: number): number;
165 |
166 | collectionViewLayoutReferenceSizeForFooterInSection(collectionView: UICollectionView, collectionViewLayout: UICollectionViewLayout, section: number): CGSize;
167 |
168 | collectionViewLayoutReferenceSizeForHeaderInSection(collectionView: UICollectionView, collectionViewLayout: UICollectionViewLayout, section: number): CGSize;
169 |
170 | collectionViewLayoutSizeForItemAtIndexPath(collectionView: UICollectionView, collectionViewLayout: UICollectionViewLayout, indexPath: NSIndexPath): CGSize;
171 |
172 | collectionViewMoveItemAtIndexPathToIndexPath(collectionView: UICollectionView, sourceIndexPath: NSIndexPath, destinationIndexPath: NSIndexPath): void;
173 |
174 | collectionViewNumberOfItemsInSection(collectionView: UICollectionView, section: number): number;
175 |
176 | collectionViewPerformActionForItemAtIndexPathWithSender(collectionView: UICollectionView, action: string, indexPath: NSIndexPath, sender: any): void;
177 |
178 | collectionViewShouldDeselectItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): boolean;
179 |
180 | collectionViewShouldHighlightItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): boolean;
181 |
182 | collectionViewShouldSelectItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): boolean;
183 |
184 | collectionViewShouldShowMenuForItemAtIndexPath(collectionView: UICollectionView, indexPath: NSIndexPath): boolean;
185 |
186 | collectionViewShouldSpringLoadItemAtIndexPathWithContext(collectionView: UICollectionView, indexPath: NSIndexPath, context: UISpringLoadedInteractionContext): boolean;
187 |
188 | collectionViewShouldUpdateFocusInContext(collectionView: UICollectionView, context: UICollectionViewFocusUpdateContext): boolean;
189 |
190 | collectionViewTargetContentOffsetForProposedContentOffset(collectionView: UICollectionView, proposedContentOffset: CGPoint): CGPoint;
191 |
192 | collectionViewTargetIndexPathForMoveFromItemAtIndexPathToProposedIndexPath(collectionView: UICollectionView, originalIndexPath: NSIndexPath, proposedIndexPath: NSIndexPath): NSIndexPath;
193 |
194 | collectionViewTransitionLayoutForOldLayoutNewLayout(collectionView: UICollectionView, fromLayout: UICollectionViewLayout, toLayout: UICollectionViewLayout): UICollectionViewTransitionLayout;
195 |
196 | collectionViewViewForSupplementaryElementOfKindAtIndexPath(collectionView: UICollectionView, kind: string, indexPath: NSIndexPath): UICollectionReusableView;
197 |
198 | collectionViewWillDisplayCellForItemAtIndexPath(collectionView: UICollectionView, cell: UICollectionViewCell, indexPath: NSIndexPath): void;
199 |
200 | collectionViewWillDisplaySupplementaryViewForElementKindAtIndexPath(collectionView: UICollectionView, view: UICollectionReusableView, elementKind: string, indexPath: NSIndexPath): void;
201 |
202 | conformsToProtocol(aProtocol: any /* Protocol */): boolean;
203 |
204 | indexPathForPreferredFocusedViewInCollectionView(collectionView: UICollectionView): NSIndexPath;
205 |
206 | indexTitlesForCollectionView(collectionView: UICollectionView): NSArray;
207 |
208 | isEqual(object: any): boolean;
209 |
210 | isKindOfClass(aClass: typeof NSObject): boolean;
211 |
212 | isMemberOfClass(aClass: typeof NSObject): boolean;
213 |
214 | numberOfSectionsInCollectionView(collectionView: UICollectionView): number;
215 |
216 | performSelector(aSelector: string): any;
217 |
218 | performSelectorWithObject(aSelector: string, object: any): any;
219 |
220 | performSelectorWithObjectWithObject(aSelector: string, object1: any, object2: any): any;
221 |
222 | respondsToSelector(aSelector: string): boolean;
223 |
224 | retainCount(): number;
225 |
226 | scrollViewDidChangeAdjustedContentInset(scrollView: UIScrollView): void;
227 |
228 | scrollViewDidEndDecelerating(scrollView: UIScrollView): void;
229 |
230 | scrollViewDidEndDraggingWillDecelerate(scrollView: UIScrollView, decelerate: boolean): void;
231 |
232 | scrollViewDidEndScrollingAnimation(scrollView: UIScrollView): void;
233 |
234 | scrollViewDidEndZoomingWithViewAtScale(scrollView: UIScrollView, view: UIView, scale: number): void;
235 |
236 | scrollViewDidScroll(scrollView: UIScrollView): void;
237 |
238 | scrollViewDidScrollToTop(scrollView: UIScrollView): void;
239 |
240 | scrollViewDidZoom(scrollView: UIScrollView): void;
241 |
242 | scrollViewShouldScrollToTop(scrollView: UIScrollView): boolean;
243 |
244 | scrollViewWillBeginDecelerating(scrollView: UIScrollView): void;
245 |
246 | scrollViewWillBeginDragging(scrollView: UIScrollView): void;
247 |
248 | scrollViewWillBeginZoomingWithView(scrollView: UIScrollView, view: UIView): void;
249 |
250 | scrollViewWillEndDraggingWithVelocityTargetContentOffset(scrollView: UIScrollView, velocity: CGPoint, targetContentOffset: interop.Pointer | interop.Reference): void;
251 |
252 | self(): this;
253 |
254 | viewForZoomingInScrollView(scrollView: UIScrollView): UIView;
255 | }
256 |
257 | declare class ImagePickerController extends UIViewController {
258 |
259 | static alloc(): ImagePickerController; // inherited from NSObject
260 |
261 | static new(): ImagePickerController; // inherited from NSObject
262 |
263 | delegate: ImagePickerDelegate;
264 |
265 | constructor(o: { configuration: Configuration; });
266 |
267 | handleRotation(note: NSNotification): void;
268 |
269 | initWithConfiguration(configuration: Configuration): this;
270 | }
271 |
272 | interface ImagePickerDelegate extends NSObjectProtocol {
273 |
274 | cancelButtonDidPress(imagePicker: ImagePickerController): void;
275 |
276 | doneButtonDidPressImages(imagePicker: ImagePickerController, images: NSArray): void;
277 |
278 | wrapperDidPressImages(imagePicker: ImagePickerController, images: NSArray): void;
279 | }
280 | declare var ImagePickerDelegate: {
281 |
282 | prototype: ImagePickerDelegate;
283 | };
284 |
285 | declare var ImagePickerVersionNumber: number;
286 |
287 | declare var ImagePickerVersionString: interop.Reference;
288 |
289 | declare class TopView extends UIView {
290 |
291 | static alloc(): TopView; // inherited from NSObject
292 |
293 | static appearance(): TopView; // inherited from UIAppearance
294 |
295 | static appearanceForTraitCollection(trait: UITraitCollection): TopView; // inherited from UIAppearance
296 |
297 | static appearanceForTraitCollectionWhenContainedIn(trait: UITraitCollection, ContainerClass: typeof NSObject): TopView; // inherited from UIAppearance
298 |
299 | static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(trait: UITraitCollection, containerTypes: NSArray): TopView; // inherited from UIAppearance
300 |
301 | static appearanceWhenContainedIn(ContainerClass: typeof NSObject): TopView; // inherited from UIAppearance
302 |
303 | static appearanceWhenContainedInInstancesOfClasses(containerTypes: NSArray): TopView; // inherited from UIAppearance
304 |
305 | static new(): TopView; // inherited from NSObject
306 | }
307 |
--------------------------------------------------------------------------------
/src/typings/objc!Lightbox.d.ts:
--------------------------------------------------------------------------------
1 |
2 | declare class FooterView extends UIView {
3 |
4 | static alloc(): FooterView; // inherited from NSObject
5 |
6 | static appearance(): FooterView; // inherited from UIAppearance
7 |
8 | static appearanceForTraitCollection(trait: UITraitCollection): FooterView; // inherited from UIAppearance
9 |
10 | static appearanceForTraitCollectionWhenContainedIn(trait: UITraitCollection, ContainerClass: typeof NSObject): FooterView; // inherited from UIAppearance
11 |
12 | static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(trait: UITraitCollection, containerTypes: NSArray): FooterView; // inherited from UIAppearance
13 |
14 | static appearanceWhenContainedIn(ContainerClass: typeof NSObject): FooterView; // inherited from UIAppearance
15 |
16 | static appearanceWhenContainedInInstancesOfClasses(containerTypes: NSArray): FooterView; // inherited from UIAppearance
17 |
18 | static new(): FooterView; // inherited from NSObject
19 |
20 | configureLayout(): void;
21 | }
22 |
23 | declare class HeaderView extends UIView {
24 |
25 | static alloc(): HeaderView; // inherited from NSObject
26 |
27 | static appearance(): HeaderView; // inherited from UIAppearance
28 |
29 | static appearanceForTraitCollection(trait: UITraitCollection): HeaderView; // inherited from UIAppearance
30 |
31 | static appearanceForTraitCollectionWhenContainedIn(trait: UITraitCollection, ContainerClass: typeof NSObject): HeaderView; // inherited from UIAppearance
32 |
33 | static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(trait: UITraitCollection, containerTypes: NSArray): HeaderView; // inherited from UIAppearance
34 |
35 | static appearanceWhenContainedIn(ContainerClass: typeof NSObject): HeaderView; // inherited from UIAppearance
36 |
37 | static appearanceWhenContainedInInstancesOfClasses(containerTypes: NSArray): HeaderView; // inherited from UIAppearance
38 |
39 | static new(): HeaderView; // inherited from NSObject
40 |
41 | configureLayout(): void;
42 | }
43 |
44 | declare class InfoLabel extends UILabel {
45 |
46 | static alloc(): InfoLabel; // inherited from NSObject
47 |
48 | static appearance(): InfoLabel; // inherited from UIAppearance
49 |
50 | static appearanceForTraitCollection(trait: UITraitCollection): InfoLabel; // inherited from UIAppearance
51 |
52 | static appearanceForTraitCollectionWhenContainedIn(trait: UITraitCollection, ContainerClass: typeof NSObject): InfoLabel; // inherited from UIAppearance
53 |
54 | static appearanceForTraitCollectionWhenContainedInInstancesOfClasses(trait: UITraitCollection, containerTypes: NSArray): InfoLabel; // inherited from UIAppearance
55 |
56 | static appearanceWhenContainedIn(ContainerClass: typeof NSObject): InfoLabel; // inherited from UIAppearance
57 |
58 | static appearanceWhenContainedInInstancesOfClasses(containerTypes: NSArray): InfoLabel; // inherited from UIAppearance
59 |
60 | static new(): InfoLabel; // inherited from NSObject
61 |
62 | configureLayout(): void;
63 | }
64 |
65 | declare class LightboxConfig extends NSObject {
66 |
67 | static alloc(): LightboxConfig; // inherited from NSObject
68 |
69 | static new(): LightboxConfig; // inherited from NSObject
70 |
71 | static setHandleVideo(value: (p1: UIViewController, p2: NSURL) => void): void;
72 |
73 | static setHideStatusBar(value: boolean): void;
74 |
75 | static setLoadImage(value: (p1: UIImageView, p2: NSURL, p3: (p1: UIImage) => void) => void): void;
76 |
77 | static setMakeLoadingIndicator(value: () => UIView): void;
78 |
79 | static handleVideo: (p1: UIViewController, p2: NSURL) => void;
80 |
81 | static hideStatusBar: boolean;
82 |
83 | static loadImage: (p1: UIImageView, p2: NSURL, p3: (p1: UIImage) => void) => void;
84 |
85 | static makeLoadingIndicator: () => UIView;
86 | }
87 |
88 | declare class LightboxController extends UIViewController implements UIScrollViewDelegate {
89 |
90 | static alloc(): LightboxController; // inherited from NSObject
91 |
92 | static new(): LightboxController; // inherited from NSObject
93 |
94 | readonly currentPage: number;
95 |
96 | dismissalDelegate: LightboxControllerDismissalDelegate;
97 |
98 | dynamicBackground: boolean;
99 |
100 | readonly footerView: FooterView;
101 |
102 | readonly headerView: HeaderView;
103 |
104 | imageTouchDelegate: LightboxControllerTouchDelegate;
105 |
106 | images: NSArray;
107 |
108 | readonly numberOfPages: number;
109 |
110 | readonly overlayView: UIView;
111 |
112 | pageDelegate: LightboxControllerPageDelegate;
113 |
114 | readonly presented: boolean;
115 |
116 | readonly seen: boolean;
117 |
118 | spacing: number;
119 |
120 | readonly debugDescription: string; // inherited from NSObjectProtocol
121 |
122 | readonly description: string; // inherited from NSObjectProtocol
123 |
124 | readonly hash: number; // inherited from NSObjectProtocol
125 |
126 | readonly isProxy: boolean; // inherited from NSObjectProtocol
127 |
128 | readonly superclass: typeof NSObject; // inherited from NSObjectProtocol
129 |
130 | readonly // inherited from NSObjectProtocol
131 |
132 | constructor(o: { images: NSArray; startIndex: number; });
133 |
134 | class(): typeof NSObject;
135 |
136 | configureLayout(size: CGSize): void;
137 |
138 | conformsToProtocol(aProtocol: any /* Protocol */): boolean;
139 |
140 | footerViewDidExpand(footerView: FooterView, expanded: boolean): void;
141 |
142 | goToAnimated(page: number, animated: boolean): void;
143 |
144 | initWithImagesStartIndex(images: NSArray, index: number): this;
145 |
146 | isEqual(object: any): boolean;
147 |
148 | isKindOfClass(aClass: typeof NSObject): boolean;
149 |
150 | isMemberOfClass(aClass: typeof NSObject): boolean;
151 |
152 | next(animated: boolean): void;
153 |
154 | performSelector(aSelector: string): any;
155 |
156 | performSelectorWithObject(aSelector: string, object: any): any;
157 |
158 | performSelectorWithObjectWithObject(aSelector: string, object1: any, object2: any): any;
159 |
160 | previous(animated: boolean): void;
161 |
162 | respondsToSelector(aSelector: string): boolean;
163 |
164 | retainCount(): number;
165 |
166 | scrollViewDidChangeAdjustedContentInset(scrollView: UIScrollView): void;
167 |
168 | scrollViewDidEndDecelerating(scrollView: UIScrollView): void;
169 |
170 | scrollViewDidEndDraggingWillDecelerate(scrollView: UIScrollView, decelerate: boolean): void;
171 |
172 | scrollViewDidEndScrollingAnimation(scrollView: UIScrollView): void;
173 |
174 | scrollViewDidEndZoomingWithViewAtScale(scrollView: UIScrollView, view: UIView, scale: number): void;
175 |
176 | scrollViewDidScroll(scrollView: UIScrollView): void;
177 |
178 | scrollViewDidScrollToTop(scrollView: UIScrollView): void;
179 |
180 | scrollViewDidZoom(scrollView: UIScrollView): void;
181 |
182 | scrollViewShouldScrollToTop(scrollView: UIScrollView): boolean;
183 |
184 | scrollViewWillBeginDecelerating(scrollView: UIScrollView): void;
185 |
186 | scrollViewWillBeginDragging(scrollView: UIScrollView): void;
187 |
188 | scrollViewWillBeginZoomingWithView(scrollView: UIScrollView, view: UIView): void;
189 |
190 | scrollViewWillEndDraggingWithVelocityTargetContentOffset(scrollView: UIScrollView, velocity: CGPoint, targetContentOffset: interop.Pointer | interop.Reference): void;
191 |
192 | self(): this;
193 |
194 | viewForZoomingInScrollView(scrollView: UIScrollView): UIView;
195 | }
196 |
197 | interface LightboxControllerDismissalDelegate {
198 |
199 | lightboxControllerWillDismiss(controller: LightboxController): void;
200 | }
201 | declare var LightboxControllerDismissalDelegate: {
202 |
203 | prototype: LightboxControllerDismissalDelegate;
204 | };
205 |
206 | interface LightboxControllerPageDelegate {
207 |
208 | lightboxControllerDidMoveToPage(controller: LightboxController, page: number): void;
209 | }
210 | declare var LightboxControllerPageDelegate: {
211 |
212 | prototype: LightboxControllerPageDelegate;
213 | };
214 |
215 | interface LightboxControllerTouchDelegate {
216 |
217 | lightboxControllerDidTouchAt(controller: LightboxController, image: LightboxImage, index: number): void;
218 | }
219 | declare var LightboxControllerTouchDelegate: {
220 |
221 | prototype: LightboxControllerTouchDelegate;
222 | };
223 |
224 | declare class LightboxImage extends NSObject {
225 |
226 | static alloc(): LightboxImage; // inherited from NSObject
227 |
228 | static new(): LightboxImage; // inherited from NSObject
229 |
230 | readonly image: UIImage;
231 |
232 | readonly imageClosure: () => UIImage;
233 |
234 | readonly imageURL: NSURL;
235 |
236 | text: string;
237 |
238 | readonly videoURL: NSURL;
239 |
240 | constructor(o: { image: UIImage; text: string; videoURL: NSURL; });
241 |
242 | addImageToCompletion(imageView: UIImageView, completion: (p1: UIImage) => void): void;
243 |
244 | initWithImageClosureTextVideoURL(imageClosure: () => UIImage, text: string, videoURL: NSURL): this;
245 |
246 | initWithImageTextVideoURL(image: UIImage, text: string, videoURL: NSURL): this;
247 |
248 | initWithImageURLTextVideoURL(imageURL: NSURL, text: string, videoURL: NSURL): this;
249 | }
250 |
251 | declare var LightboxVersionNumber: number;
252 |
253 | declare var LightboxVersionString: interop.Reference;
254 |
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "rules": {
3 | "class-name": true,
4 | "comment-format": [
5 | true,
6 | "check-space"
7 | ],
8 | "indent": [
9 | true,
10 | "spaces"
11 | ],
12 | "no-duplicate-variable": true,
13 | "no-eval": true,
14 | "no-internal-module": true,
15 | "no-trailing-whitespace": true,
16 | "no-var-keyword": true,
17 | "one-line": [
18 | true,
19 | "check-open-brace",
20 | "check-whitespace"
21 | ],
22 | "quotemark": [
23 | false,
24 | "double"
25 | ],
26 | "semicolon": [
27 | true,
28 | "always"
29 | ],
30 | "triple-equals": [
31 | true,
32 | "allow-null-check"
33 | ],
34 | "typedef-whitespace": [
35 | true,
36 | {
37 | "call-signature": "nospace",
38 | "index-signature": "nospace",
39 | "parameter": "nospace",
40 | "property-declaration": "nospace",
41 | "variable-declaration": "nospace"
42 | }
43 | ],
44 | "variable-name": [
45 | true,
46 | "ban-keywords"
47 | ],
48 | "whitespace": [
49 | true,
50 | "check-branch",
51 | "check-decl",
52 | "check-operator",
53 | "check-separator",
54 | "check-type"
55 | ]
56 | }
57 | }
--------------------------------------------------------------------------------