@nativescript-community/ui-document-picker 1.1.11 → 1.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,124 +3,77 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [1.1.11](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.10...v1.1.11) (2022-02-16)
7
-
6
+ ## [1.1.13](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.12...v1.1.13) (2023-10-24)
8
7
 
9
- ### Bug Fixes
8
+ **Note:** Version bump only for package @nativescript-community/ui-document-picker
10
9
 
11
- * missing dependency ([203fb9e](https://github.com/nativescript-community/ui-document-picker/commit/203fb9e46c7f6c526ff67c50ff8f60d842bd097e))
10
+ ## [1.1.12](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.11...v1.1.12) (2022-02-18)
12
11
 
12
+ **Note:** Version bump only for package @nativescript-community/ui-document-picker
13
13
 
14
+ ## [1.1.11](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.10...v1.1.11) (2022-02-16)
14
15
 
16
+ ### Bug Fixes
15
17
 
18
+ * missing dependency ([203fb9e](https://github.com/nativescript-community/ui-document-picker/commit/203fb9e46c7f6c526ff67c50ff8f60d842bd097e))
16
19
 
17
20
  ## [1.1.10](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.9...v1.1.10) (2022-02-16)
18
21
 
19
-
20
22
  ### Bug Fixes
21
23
 
22
24
  * **android:** removed unused dependency ([448d753](https://github.com/nativescript-community/ui-document-picker/commit/448d75379ce7c25d6faba64b2a4a320b4f5e058c))
23
25
 
24
-
25
-
26
-
27
-
28
26
  ## [1.1.9](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.8...v1.1.9) (2022-01-29)
29
27
 
30
-
31
28
  ### Bug Fixes
32
29
 
33
30
  * **android:** fixed path on some devices ([97881c8](https://github.com/nativescript-community/ui-document-picker/commit/97881c808dee5fb4f78339e2562482554dbe3bc4))
34
31
  * **android:** remove `MANAGE_EXTERNAL_STORAGE` as it prevents app release ([564a5b3](https://github.com/nativescript-community/ui-document-picker/commit/564a5b3706c9bdd2ba9be963e77b7f03bd5f6eb4))
35
32
 
36
-
37
-
38
-
39
-
40
33
  ## [1.1.8](https://github.com/nativescript-community/ui-document-picker/compare/v13.0.32...v1.1.8) (2021-12-03)
41
34
 
42
-
43
35
  ### Bug Fixes
44
36
 
45
37
  * package version ([9e52a0d](https://github.com/nativescript-community/ui-document-picker/commit/9e52a0ddec67b47a369efbf422731388681e2965))
46
38
 
47
-
48
-
49
-
50
-
51
39
  ## [13.0.32](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.7...v13.0.32) (2021-12-03)
52
40
 
53
41
  **Note:** Version bump only for package @nativescript-community/ui-document-picker
54
42
 
55
-
56
-
57
-
58
-
59
43
  ## [1.1.7](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.6...v1.1.7) (2021-08-25)
60
44
 
61
45
  **Note:** Version bump only for package @nativescript-community/ui-document-picker
62
46
 
63
-
64
-
65
-
66
-
67
47
  ## [1.1.6](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.5...v1.1.6) (2021-06-28)
68
48
 
69
-
70
49
  ### Reverts
71
50
 
72
51
  * Revert "v1.1.6" ([ef0be58](https://github.com/nativescript-community/ui-document-picker/commit/ef0be58589aa75a6be4a85b2837b6f968c341b08))
73
52
 
74
-
75
-
76
-
77
-
78
53
  ## [1.1.5](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.4...v1.1.5) (2021-05-19)
79
54
 
80
55
  **Note:** Version bump only for package @nativescript-community/ui-document-picker
81
56
 
82
-
83
-
84
-
85
-
86
57
  ## [1.1.4](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.3...v1.1.4) (2021-05-04)
87
58
 
88
59
  **Note:** Version bump only for package @nativescript-community/ui-document-picker
89
60
 
90
-
91
-
92
-
93
-
94
61
  ## [1.1.3](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.2...v1.1.3) (2020-11-02)
95
62
 
96
63
  **Note:** Version bump only for package @nativescript-community/ui-document-picker
97
64
 
98
-
99
-
100
-
101
-
102
65
  ## [1.1.2](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.1...v1.1.2) (2020-10-13)
103
66
 
104
67
  **Note:** Version bump only for package @nativescript-community/ui-document-picker
105
68
 
106
-
107
-
108
-
109
-
110
69
  ## [1.1.1](https://github.com/nativescript-community/ui-document-picker/compare/v1.1.0...v1.1.1) (2020-09-17)
111
70
 
112
-
113
71
  ### Bug Fixes
114
72
 
115
73
  * **android:** build fix ([6d6495f](https://github.com/nativescript-community/ui-document-picker/commit/6d6495f8cbbd81f55773d74aae0fa0da0480dc21))
116
74
 
117
-
118
-
119
-
120
-
121
75
  # 1.1.0 (2020-09-06)
122
76
 
123
-
124
77
  ### Features
125
78
 
126
79
  * N7 and new plugin name ([1b9c4ab](https://github.com/nativescript-community/ui-document-picker/commit/1b9c4abf4eb1c64c8cee565f7a4ae08319718e3a))
package/README.md CHANGED
@@ -43,9 +43,15 @@
43
43
  * [Vue](#vue)
44
44
  * [Examples](#examples)
45
45
  * [Demos and Development](#demos-and-development)
46
- * [Setup](#setup)
46
+ * [Repo Setup](#repo-setup)
47
47
  * [Build](#build)
48
48
  * [Demos](#demos)
49
+ * [Contributing](#contributing)
50
+ * [Update repo ](#update-repo-)
51
+ * [Update readme ](#update-readme-)
52
+ * [Update doc ](#update-doc-)
53
+ * [Publish](#publish)
54
+ * [modifying submodules](#modifying-submodules)
49
55
  * [Questions](#questions)
50
56
 
51
57
 
@@ -93,18 +99,18 @@ export function openFilePicker(params: FilePickerOptions): Promise<{ files: stri
93
99
  ## Demos and Development
94
100
 
95
101
 
96
- ### Setup
97
-
98
- To run the demos, you must clone this repo **recursively**.
102
+ ### Repo Setup
99
103
 
104
+ The repo uses submodules. If you did not clone with ` --recursive` then you need to call
100
105
  ```
101
- git clone https://github.com/@nativescript-community/ui-document-picker.git --recursive
106
+ git submodule update --init
102
107
  ```
103
108
 
104
- **Install Dependencies:**
105
- ```bash
106
- npm i # or 'yarn install' or 'pnpm install'
107
- ```
109
+ The package manager used to install and link dependencies must be `pnpm` or `yarn`. `npm` wont work.
110
+
111
+ To develop and test:
112
+ if you use `yarn` then run `yarn`
113
+ if you use `pnpm` then run `pnpm i`
108
114
 
109
115
  **Interactive Menu:**
110
116
 
@@ -113,10 +119,9 @@ To start the interactive menu, run `npm start` (or `yarn start` or `pnpm start`)
113
119
  ### Build
114
120
 
115
121
  ```bash
116
- npm run build
117
-
118
- npm run build.angular # or for Angular
122
+ npm run build.all
119
123
  ```
124
+ WARNING: it seems `yarn build.all` wont always work (not finding binaries in `node_modules/.bin`) which is why the doc explicitly uses `npm run`
120
125
 
121
126
  ### Demos
122
127
 
@@ -125,6 +130,61 @@ npm run demo.[ng|react|svelte|vue].[ios|android]
125
130
 
126
131
  npm run demo.svelte.ios # Example
127
132
  ```
133
+
134
+ Demo setup is a bit special in the sense that if you want to modify/add demos you dont work directly in `demo-[ng|react|svelte|vue]`
135
+ Instead you work in `demo-snippets/[ng|react|svelte|vue]`
136
+ You can start from the `install.ts` of each flavor to see how to register new demos
137
+
138
+
139
+ [](#contributing)
140
+
141
+ ## Contributing
142
+
143
+ ### Update repo
144
+
145
+ You can update the repo files quite easily
146
+
147
+ First update the submodules
148
+
149
+ ```bash
150
+ npm run update
151
+ ```
152
+
153
+ Then commit the changes
154
+ Then update common files
155
+
156
+ ```bash
157
+ npm run sync
158
+ ```
159
+ Then you can run `yarn|pnpm`, commit changed files if any
160
+
161
+ ### Update readme
162
+ ```bash
163
+ npm run readme
164
+ ```
165
+
166
+ ### Update doc
167
+ ```bash
168
+ npm run doc
169
+ ```
170
+
171
+ ### Publish
172
+
173
+ The publishing is completely handled by `lerna` (you can add `-- --bump major` to force a major release)
174
+ Simply run
175
+ ```shell
176
+ npm run publish
177
+ ```
178
+
179
+ ### modifying submodules
180
+
181
+ The repo uses https:// for submodules which means you won't be able to push directly into the submodules.
182
+ One easy solution is t modify `~/.gitconfig` and add
183
+ ```
184
+ [url "ssh://git@github.com/"]
185
+ pushInsteadOf = https://github.com/
186
+ ```
187
+
128
188
 
129
189
  [](#questions)
130
190
 
@@ -1,4 +1,4 @@
1
- import { FilePickerOptions, FolderPickerOptions } from './index.common';
1
+ import { FilePickerOptions, FolderPickerOptions, SaveFileOptions } from './index.common';
2
2
  export { FilePickerOptions };
3
3
  export declare function openFilePicker(params?: FilePickerOptions): Promise<{
4
4
  files: string[];
@@ -20,3 +20,4 @@ export declare function pickFolder(params?: FolderPickerOptions): Promise<{
20
20
  folders: any[];
21
21
  android?: undefined;
22
22
  }>;
23
+ export declare function saveFile(params: SaveFileOptions): Promise<boolean>;
package/index.android.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import { request } from '@nativescript-community/perms';
2
- import { android as androidApp } from '@nativescript/core/application';
3
- import { AndroidApplication, Device } from '@nativescript/core';
2
+ import { AndroidApplication, Application, Device, File, Utils, knownFolders } from '@nativescript/core';
4
3
  import lazy from '@nativescript/core/utils/lazy';
5
4
  let Intent;
6
5
  let FilePath;
@@ -11,13 +10,16 @@ async function callIntent(context, intent, pickerType) {
11
10
  const onEvent = function (e) {
12
11
  if (e.requestCode === pickerType) {
13
12
  resolve(e);
14
- androidApp.off(AndroidApplication.activityResultEvent, onEvent);
13
+ Application.android.off(AndroidApplication.activityResultEvent, onEvent);
15
14
  }
16
15
  };
17
- androidApp.once(AndroidApplication.activityResultEvent, onEvent);
16
+ Application.android.once(AndroidApplication.activityResultEvent, onEvent);
18
17
  context.startActivityForResult(intent, pickerType);
19
18
  });
20
19
  }
20
+ /**
21
+ * Convert to android Array
22
+ */
21
23
  function convertToArray(types) {
22
24
  let mimeTypes;
23
25
  if (types && types.length > 0) {
@@ -52,8 +54,7 @@ function prepareIntent(intent, options) {
52
54
  }
53
55
  }
54
56
  export function openFilePicker(params = {}) {
55
- var _a;
56
- const context = androidApp.foregroundActivity || androidApp.startActivity;
57
+ const context = Application.android.startActivity;
57
58
  const FILE_CODE = 1231;
58
59
  if (!Intent) {
59
60
  Intent = android.content.Intent;
@@ -62,12 +63,13 @@ export function openFilePicker(params = {}) {
62
63
  FilePath = com.nativescript.documentpicker.FilePath;
63
64
  }
64
65
  const intent = new Intent(Intent.ACTION_GET_CONTENT);
66
+ // Convert extensions to mime type
65
67
  let mimeTypes;
66
68
  if (params.extensions) {
67
69
  const singleton = android.webkit.MimeTypeMap.getSingleton();
68
- mimeTypes = (_a = params.extensions) === null || _a === void 0 ? void 0 : _a.map((s) => singleton.getMimeTypeFromExtension(s.replace('.', ''))).filter((s) => !!s);
70
+ mimeTypes = params.extensions?.map((s) => singleton.getMimeTypeFromExtension(s.replace('.', ''))).filter((s) => !!s);
69
71
  }
70
- if (mimeTypes === null || mimeTypes === void 0 ? void 0 : mimeTypes.length) {
72
+ if (mimeTypes?.length) {
71
73
  intent.setType(mimeTypes[0]);
72
74
  if (mimeTypes.length > 1) {
73
75
  intent.putExtra(Intent.EXTRA_MIME_TYPES, convertToArray(mimeTypes.slice(1)));
@@ -81,6 +83,10 @@ export function openFilePicker(params = {}) {
81
83
  prepareIntent(intent, params);
82
84
  return callIntent(context, intent, FILE_CODE).then((result) => {
83
85
  if (result.resultCode === android.app.Activity.RESULT_OK) {
86
+ // The document selected by the user won't be returned in the intent.
87
+ // Instead, a URI to that document will be contained in the return intent
88
+ // provided to this method as a parameter.
89
+ // Pull that URI using resultData.getData().
84
90
  if (result.intent != null) {
85
91
  const uri = result.intent.getData();
86
92
  if (uri) {
@@ -126,12 +132,21 @@ export function openFilePicker(params = {}) {
126
132
  }
127
133
  function updatePersistableUris(context, uri) {
128
134
  const contentResolver = context.getContentResolver();
135
+ // contentResolver.getPersistedUriPermissions()
136
+ // .filter { it.isReadPermission }
137
+ // .filter { it.uri != uri }
138
+ // .forEach {
139
+ // contentResolver.releasePersistableUriPermission(
140
+ // it.uri,
141
+ // Intent.FLAG_GRANT_READ_URI_PERMISSION
142
+ // )
143
+ // }
129
144
  if (contentResolver.takePersistableUriPermission) {
130
145
  contentResolver.takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
131
146
  }
132
147
  }
133
148
  export function pickFolder(params = {}) {
134
- const context = androidApp.foregroundActivity || androidApp.startActivity;
149
+ const context = Application.android.startActivity;
135
150
  const FOLDER_CODE = 1232;
136
151
  if (!Intent) {
137
152
  Intent = android.content.Intent;
@@ -139,12 +154,15 @@ export function pickFolder(params = {}) {
139
154
  const intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
140
155
  prepareIntent(intent, params);
141
156
  return callIntent(context, intent, FOLDER_CODE).then((result) => {
142
- var _a;
143
157
  if (result.resultCode === android.app.Activity.RESULT_OK) {
158
+ // The document selected by the user won't be returned in the intent.
159
+ // Instead, a URI to that document will be contained in the return intent
160
+ // provided to this method as a parameter.
161
+ // Pull that URI using resultData.getData().
144
162
  if (result.intent != null) {
145
163
  const uri = result.intent.getData();
146
164
  if (uri) {
147
- if ((_a = params.permissions) === null || _a === void 0 ? void 0 : _a.persistable) {
165
+ if (params.permissions?.persistable) {
148
166
  updatePersistableUris(context, uri);
149
167
  }
150
168
  return {
@@ -187,4 +205,55 @@ export function pickFolder(params = {}) {
187
205
  }
188
206
  });
189
207
  }
208
+ export async function saveFile(params) {
209
+ // const tempFile = knownFolders.temp().getFile(params.name);
210
+ // if (typeof params.data === 'string') {
211
+ // await tempFile.writeText(params.data);
212
+ // } else {
213
+ // await tempFile.write(params.data);
214
+ // }
215
+ const context = Application.android.startActivity;
216
+ const FILE_CODE = 1233;
217
+ if (!Intent) {
218
+ Intent = android.content.Intent;
219
+ }
220
+ if (!FilePath) {
221
+ FilePath = com.nativescript.documentpicker.FilePath;
222
+ }
223
+ const intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
224
+ intent.putExtra(Intent.EXTRA_TITLE, params.name);
225
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
226
+ if (params.mimeType) {
227
+ intent.setType(params.mimeType);
228
+ }
229
+ else {
230
+ intent.setType('*/*');
231
+ }
232
+ prepareIntent(intent, params);
233
+ return callIntent(context, intent, FILE_CODE).then((result) => {
234
+ if (result.resultCode === android.app.Activity.RESULT_OK) {
235
+ if (result.intent != null) {
236
+ const uri = result.intent.getData();
237
+ const filePath = sdkVersion() >= 30 ? uri.toString() : FilePath.getPath(context, uri);
238
+ console.log('uri', filePath, params.data);
239
+ if (typeof params.data === 'string') {
240
+ return File.fromPath(filePath)
241
+ .writeText(params.data)
242
+ .then(() => true);
243
+ // await tempFile.writeText(params.data);
244
+ }
245
+ else {
246
+ return File.fromPath(filePath)
247
+ .write(params.data)
248
+ .then(() => true);
249
+ // await tempFile.write(params.data);
250
+ }
251
+ }
252
+ return false;
253
+ }
254
+ else {
255
+ return false;
256
+ }
257
+ });
258
+ }
190
259
  //# sourceMappingURL=index.android.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"../src/","sources":["index.android.ts"],"names":[],"mappings":"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"}
package/index.common.d.ts CHANGED
@@ -14,3 +14,8 @@ export interface FilePickerOptions extends CommonPickerOptions {
14
14
  }
15
15
  export interface FolderPickerOptions extends CommonPickerOptions {
16
16
  }
17
+ export interface SaveFileOptions extends Pick<CommonPickerOptions, 'permissions'> {
18
+ name: string;
19
+ data: any;
20
+ mimeType?: string;
21
+ }
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { FilePickerOptions, FolderPickerOptions } from './index.common';
1
+ import { FilePickerOptions, FolderPickerOptions, SaveFileOptions } from './index.common';
2
2
 
3
3
  export { FilePickerOptions, FolderPickerOptions };
4
4
  export function openFilePicker(params?: FilePickerOptions): Promise<{ files: string[]; ios?; android? }>;
5
5
  export function pickFolder(params?: FolderPickerOptions): Promise<{ folders: string[]; ios?; android? }>;
6
+ export function saveFile(params: SaveFileOptions): Promise<boolean>;
package/index.ios.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import { FolderPickerOptions } from '.';
2
- import { FilePickerOptions } from './index.common';
2
+ import { FilePickerOptions, SaveFileOptions } from './index.common';
3
3
  export { FilePickerOptions };
4
- export declare function openFilePicker(params: FilePickerOptions): Promise<unknown>;
4
+ export declare function openFilePicker(params?: FilePickerOptions): Promise<unknown>;
5
5
  export declare function pickFolder(params?: FolderPickerOptions): Promise<{
6
6
  folders: any[];
7
7
  }>;
8
+ export declare function saveFile(params: SaveFileOptions): Promise<unknown>;
package/index.ios.js CHANGED
@@ -1,13 +1,15 @@
1
- import { Utils } from '@nativescript/core';
1
+ import { Utils, knownFolders } from '@nativescript/core';
2
2
  var DocumentPickerDelegate = /** @class */ (function (_super) {
3
3
  __extends(DocumentPickerDelegate, _super);
4
4
  function DocumentPickerDelegate() {
5
5
  return _super !== null && _super.apply(this, arguments) || this;
6
6
  }
7
- DocumentPickerDelegate.initWithResolveReject = function (resolve, reject) {
7
+ DocumentPickerDelegate.initWithResolveReject = function (resolve, reject, booleanResult) {
8
+ if (booleanResult === void 0) { booleanResult = false; }
8
9
  var delegate = DocumentPickerDelegate.new();
9
10
  delegate._resolve = resolve;
10
11
  delegate._reject = reject;
12
+ delegate._booleanResult = booleanResult;
11
13
  return delegate;
12
14
  };
13
15
  DocumentPickerDelegate.prototype.cleanup = function (controller) {
@@ -17,43 +19,61 @@ var DocumentPickerDelegate = /** @class */ (function (_super) {
17
19
  delegate = null;
18
20
  };
19
21
  DocumentPickerDelegate.prototype.documentPickerDidPickDocumentAtURL = function (controller, url) {
20
- this._resolve({
21
- files: [url.absoluteString],
22
- ios: url
23
- });
22
+ this._resolve(this._booleanResult
23
+ ? true
24
+ : {
25
+ files: [url.absoluteString],
26
+ ios: url
27
+ });
24
28
  this.cleanup(controller);
25
29
  };
26
30
  DocumentPickerDelegate.prototype.documentPickerDidPickDocumentsAtURLs = function (controller, urls) {
27
- var output = [];
28
- for (var i = 0; i < urls.count; i++) {
29
- output.push(urls[i].absoluteString);
31
+ if (this._booleanResult) {
32
+ this._resolve(true);
33
+ }
34
+ else {
35
+ var output = [];
36
+ for (var i = 0; i < urls.count; i++) {
37
+ output.push(urls[i].absoluteString);
38
+ }
39
+ this._resolve({
40
+ files: output,
41
+ ios: urls
42
+ });
30
43
  }
31
- this._resolve({
32
- files: output,
33
- ios: urls
34
- });
35
44
  this.cleanup(controller);
36
45
  };
37
46
  DocumentPickerDelegate.prototype.documentPickerWasCancelled = function (controller) {
38
- this._resolve({
39
- files: []
40
- });
47
+ this._resolve(this._booleanResult
48
+ ? false
49
+ : {
50
+ files: []
51
+ });
41
52
  this.cleanup(controller);
42
53
  };
43
54
  DocumentPickerDelegate.ObjCProtocols = [UIDocumentPickerDelegate];
44
55
  return DocumentPickerDelegate;
45
56
  }(NSObject));
57
+ // Reference to delegate instance to avoid delegate issue
58
+ // https://github.com/nativescript-community/ui-document-picker/issues/10
46
59
  let delegate;
47
- export function openFilePicker(params) {
60
+ export function openFilePicker(params = {}) {
61
+ // const options = params;
48
62
  let documentTypes;
49
63
  if (params.extensions && params.extensions.length > 0) {
50
64
  documentTypes = Utils.ios.collections.jsArrayToNSArray(params.extensions);
51
65
  }
66
+ else {
67
+ documentTypes = Utils.ios.collections.jsArrayToNSArray([UTTypeContent.identifier]);
68
+ }
52
69
  return new Promise((resolve, reject) => {
53
- const controller = UIDocumentPickerViewController.alloc().initWithDocumentTypesInMode(documentTypes, params.pickerMode !== undefined ? params.pickerMode : 0);
70
+ const controller = UIDocumentPickerViewController.alloc().initWithDocumentTypesInMode(documentTypes, params.pickerMode !== undefined ? params.pickerMode : 0 /* UIDocumentPickerMode.Import */);
54
71
  delegate = DocumentPickerDelegate.initWithResolveReject(resolve, reject);
55
72
  controller.delegate = delegate;
73
+ // if (options.multipleSelection) {
56
74
  controller.allowsMultipleSelection = !!params.multipleSelection;
75
+ // }
76
+ // this.presentViewController(controller);
57
77
  const app = UIApplication.sharedApplication;
58
78
  const window = app.keyWindow || (app.windows.count > 0 && app.windows[0]);
59
79
  const visibleVC = Utils.ios.getVisibleViewController(window.rootViewController);
@@ -65,4 +85,24 @@ export async function pickFolder(params = {}) {
65
85
  folders: []
66
86
  };
67
87
  }
88
+ export async function saveFile(params) {
89
+ return new Promise(async (resolve, reject) => {
90
+ const tempFile = knownFolders.temp().getFile(params.name);
91
+ if (typeof params.data === 'string') {
92
+ await tempFile.writeText(params.data);
93
+ }
94
+ else {
95
+ await tempFile.write(params.data);
96
+ }
97
+ const controller = UIDocumentPickerViewController.alloc().initForExportingURLsAsCopy([NSURL.URLWithString(tempFile.path)], true);
98
+ delegate = DocumentPickerDelegate.initWithResolveReject(resolve, reject, true);
99
+ controller.delegate = delegate;
100
+ controller.shouldShowFileExtensions = true;
101
+ // this.presentViewController(controller);
102
+ const app = UIApplication.sharedApplication;
103
+ const window = app.keyWindow || (app.windows.count > 0 && app.windows[0]);
104
+ const visibleVC = Utils.ios.getVisibleViewController(window.rootViewController);
105
+ visibleVC.presentViewControllerAnimatedCompletion(controller, true, null);
106
+ });
107
+ }
68
108
  //# sourceMappingURL=index.ios.js.map
package/index.ios.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"../src/","sources":["index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuD3C,IAAI,QAAQ,CAAC;AACb,MAAM,UAAU,cAAc,CAAC,MAAyB;IAEpD,IAAI,aAAa,CAAC;IAElB,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACnD,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC7E;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,UAAU,GAAG,8BAA8B,CAAC,KAAK,EAAE,CAAC,2BAA2B,CACjF,aAAa,EACb,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAA4B,CACpF,CAAC;QACF,QAAQ,GAAG,sBAAsB,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAQ,CAAC;QAChF,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAG/B,UAAU,CAAC,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAIhE,MAAM,GAAG,GAAG,aAAa,CAAC,iBAAiB,CAAC;QAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,wBAAwB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAChF,SAAS,CAAC,uCAAuC,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACP,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAA8B,EAAE;IAC7D,OAAO;QACH,OAAO,EAAE,EAAE;KACd,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"../src/","sources":["index.ios.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nativescript-community/ui-document-picker",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "description": "A NativeScript plugin that allows you to select files from the device.",
5
5
  "main": "index",
6
6
  "typings": "index.d.ts",
@@ -39,7 +39,7 @@
39
39
  "license": "Apache-2.0",
40
40
  "readmeFilename": "README.md",
41
41
  "dependencies": {
42
- "@nativescript-community/perms": "2.2.2"
42
+ "@nativescript-community/perms": "^2.3.0"
43
43
  },
44
- "gitHead": "a2f9a14ebc9433d513887ceb4a788458eb97dfb8"
44
+ "gitHead": "19f4bdb19beb7ba53a6a8091942939e3fe189c19"
45
45
  }
package/references.d.ts CHANGED
@@ -1 +1,3 @@
1
1
  /// <reference path="./typings/android.d.ts" />
2
+ /// <reference path="../../node_modules/@nativescript/types-ios/lib/ios/objc-x86_64/objc!UIKit.d.ts" />
3
+ /// <reference path="../../node_modules/@nativescript/types-ios/lib/ios/objc-x86_64/objc!UniformTypeIdentifiers.d.ts" />