solid-ui 2.4.14-46ae8b5d → 2.4.14-alpha
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/LICENSE.md +0 -0
- package/README.md +0 -0
- package/lib/acl/access-controller.d.ts +0 -0
- package/lib/acl/access-controller.d.ts.map +0 -0
- package/lib/acl/access-controller.js +334 -441
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.d.ts +1 -1
- package/lib/acl/access-groups.d.ts.map +1 -1
- package/lib/acl/access-groups.js +347 -492
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.d.ts +0 -0
- package/lib/acl/acl-control.d.ts.map +0 -0
- package/lib/acl/acl-control.js +168 -198
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.d.ts +1 -1
- package/lib/acl/acl.d.ts.map +1 -1
- package/lib/acl/acl.js +444 -459
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.d.ts +0 -0
- package/lib/acl/add-agent-buttons.d.ts.map +0 -0
- package/lib/acl/add-agent-buttons.js +318 -515
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.d.ts +0 -0
- package/lib/acl/index.d.ts.map +0 -0
- package/lib/acl/index.js +27 -35
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.d.ts +0 -0
- package/lib/acl/styles.d.ts.map +0 -0
- package/lib/acl/styles.js +84 -90
- package/lib/acl/styles.js.map +1 -1
- package/lib/acl/types.d.ts +0 -0
- package/lib/acl/types.d.ts.map +0 -0
- package/lib/acl/types.js +5 -4
- package/lib/acl/types.js.map +1 -1
- package/lib/authn/authSession.d.ts +0 -0
- package/lib/authn/authSession.d.ts.map +0 -0
- package/lib/authn/authSession.js +14 -21
- package/lib/authn/authSession.js.map +1 -1
- package/lib/authn/authn.d.ts +0 -0
- package/lib/authn/authn.d.ts.map +0 -0
- package/lib/authn/authn.js +1391 -1935
- package/lib/authn/authn.js.map +1 -1
- package/lib/authn/config-default.js +0 -0
- package/lib/authn/config-default.js.map +0 -0
- package/lib/authn/index.d.ts +0 -0
- package/lib/authn/index.d.ts.map +0 -0
- package/lib/authn/index.js +26 -37
- package/lib/authn/index.js.map +1 -1
- package/lib/authn/signup.js +0 -0
- package/lib/authn/signup.js.map +0 -0
- package/lib/authn/types.d.ts +0 -0
- package/lib/authn/types.d.ts.map +0 -0
- package/lib/authn/types.js +1 -4
- package/lib/authn/types.js.map +1 -1
- package/lib/chat/bookmarks.js +0 -0
- package/lib/chat/bookmarks.js.map +0 -0
- package/lib/chat/dateFolder.js +0 -0
- package/lib/chat/dateFolder.js.map +0 -0
- package/lib/chat/infinite.js +0 -0
- package/lib/chat/infinite.js.map +0 -0
- package/lib/chat/message.js +0 -0
- package/lib/chat/message.js.map +0 -0
- package/lib/chat/messageTools.js +0 -0
- package/lib/chat/messageTools.js.map +0 -0
- package/lib/chat/thread.js +0 -0
- package/lib/chat/thread.js.map +0 -0
- package/lib/create/create.d.ts +0 -0
- package/lib/create/create.d.ts.map +0 -0
- package/lib/create/create.js +209 -214
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.d.ts +0 -0
- package/lib/create/index.d.ts.map +0 -0
- package/lib/create/index.js +4 -10
- package/lib/create/index.js.map +1 -1
- package/lib/create/types.d.ts +0 -0
- package/lib/create/types.d.ts.map +0 -0
- package/lib/create/types.js +1 -4
- package/lib/create/types.js.map +1 -1
- package/lib/debug.d.ts +0 -0
- package/lib/debug.d.ts.map +0 -0
- package/lib/debug.js +30 -28
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +0 -0
- package/lib/folders.js.map +0 -0
- package/lib/footer/index.d.ts +0 -0
- package/lib/footer/index.d.ts.map +0 -0
- package/lib/footer/index.js +109 -126
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.d.ts +0 -0
- package/lib/footer/styleMap.d.ts.map +0 -0
- package/lib/footer/styleMap.js +7 -11
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.d.ts +0 -0
- package/lib/header/empty-profile.d.ts.map +0 -0
- package/lib/header/empty-profile.js +2 -6
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.d.ts +0 -0
- package/lib/header/index.d.ts.map +0 -0
- package/lib/header/index.js +285 -361
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.d.ts +0 -0
- package/lib/header/styleMap.d.ts.map +0 -0
- package/lib/header/styleMap.js +116 -132
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.d.ts +0 -0
- package/lib/iconBase.d.ts.map +0 -0
- package/lib/iconBase.js +23 -30
- package/lib/iconBase.js.map +1 -1
- package/lib/icons/solid_logo.d.ts +0 -0
- package/lib/icons/solid_logo.d.ts.map +0 -0
- package/lib/icons/solid_logo.js +0 -0
- package/lib/icons/solid_logo.js.map +1 -1
- package/lib/index.d.ts +0 -0
- package/lib/index.d.ts.map +0 -0
- package/lib/index.js +103 -207
- package/lib/index.js.map +1 -1
- package/lib/jss/index.d.ts +0 -0
- package/lib/jss/index.d.ts.map +0 -0
- package/lib/jss/index.js +21 -30
- package/lib/jss/index.js.map +1 -1
- package/lib/log.d.ts +0 -0
- package/lib/log.d.ts.map +0 -0
- package/lib/log.js +83 -131
- package/lib/log.js.map +1 -1
- package/lib/logic.d.ts +0 -0
- package/lib/logic.d.ts.map +0 -0
- package/lib/logic.js +82 -69
- package/lib/logic.js.map +1 -1
- package/lib/matrix/index.d.ts +0 -0
- package/lib/matrix/index.d.ts.map +0 -0
- package/lib/matrix/index.js +4 -10
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.d.ts +0 -0
- package/lib/matrix/matrix.d.ts.map +0 -0
- package/lib/matrix/matrix.js +210 -237
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/matrix/types.d.ts +0 -0
- package/lib/matrix/types.d.ts.map +0 -0
- package/lib/matrix/types.js +1 -4
- package/lib/matrix/types.js.map +1 -1
- package/lib/media/index.d.ts +0 -0
- package/lib/media/index.d.ts.map +0 -0
- package/lib/media/index.js +5 -11
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.d.ts +0 -0
- package/lib/media/media-capture.d.ts.map +0 -0
- package/lib/media/media-capture.js +187 -181
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +0 -0
- package/lib/messageArea.js.map +0 -0
- package/lib/noun_Camera_1618446_000000.js +0 -0
- package/lib/noun_Camera_1618446_000000.js.map +0 -0
- package/lib/ns.js +0 -0
- package/lib/ns.js.map +0 -0
- package/lib/pad.d.ts +0 -0
- package/lib/pad.d.ts.map +0 -0
- package/lib/pad.js +794 -954
- package/lib/pad.js.map +1 -1
- package/lib/participation.d.ts +0 -0
- package/lib/participation.d.ts.map +0 -0
- package/lib/participation.js +170 -199
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +0 -0
- package/lib/preferences.js.map +0 -0
- package/lib/stories/decorators.js +0 -0
- package/lib/stories/decorators.js.map +0 -0
- package/lib/style.js +0 -0
- package/lib/style.js.map +0 -0
- package/lib/table.js +0 -0
- package/lib/table.js.map +0 -0
- package/lib/tabs.d.ts +0 -0
- package/lib/tabs.d.ts.map +0 -0
- package/lib/tabs.js +235 -342
- package/lib/tabs.js.map +1 -1
- package/lib/typings.d.js +0 -0
- package/lib/typings.d.js.map +0 -0
- package/lib/utils/headerFooterHelpers.d.ts +0 -0
- package/lib/utils/headerFooterHelpers.d.ts.map +0 -0
- package/lib/utils/headerFooterHelpers.js +130 -155
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +0 -0
- package/lib/utils/index.js.map +0 -0
- package/lib/utils/label.d.ts +0 -0
- package/lib/utils/label.d.ts.map +0 -0
- package/lib/utils/label.js +121 -113
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.d.ts +0 -0
- package/lib/versionInfo.d.ts.map +0 -0
- package/lib/versionInfo.js +23 -28
- package/lib/versionInfo.js.map +1 -1
- package/lib/webpack-bundle.js +9 -9
- package/lib/webpack-bundle.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.d.ts +0 -0
- package/lib/widgets/buttons/iconLinks.d.ts.map +0 -0
- package/lib/widgets/buttons/iconLinks.js +19 -30
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.d.ts +0 -0
- package/lib/widgets/buttons.d.ts.map +0 -0
- package/lib/widgets/buttons.js +935 -1113
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +0 -0
- package/lib/widgets/dragAndDrop.js.map +0 -0
- package/lib/widgets/error.d.ts +0 -0
- package/lib/widgets/error.d.ts.map +0 -0
- package/lib/widgets/error.js +18 -24
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +234 -325
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompleteField.js +246 -276
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +317 -497
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/language.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/language.js +159 -212
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.d.ts +0 -0
- package/lib/widgets/forms/autocomplete/publicData.d.ts.map +0 -0
- package/lib/widgets/forms/autocomplete/publicData.js +485 -718
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.d.ts +0 -0
- package/lib/widgets/forms/basic.d.ts.map +0 -0
- package/lib/widgets/forms/basic.js +208 -239
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.d.ts +0 -0
- package/lib/widgets/forms/comment.d.ts.map +0 -0
- package/lib/widgets/forms/comment.js +48 -48
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.d.ts +0 -0
- package/lib/widgets/forms/fieldFunction.d.ts.map +0 -0
- package/lib/widgets/forms/fieldFunction.js +31 -50
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.d.ts +0 -0
- package/lib/widgets/forms/fieldParams.d.ts.map +0 -0
- package/lib/widgets/forms/fieldParams.js +102 -81
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.d.ts +0 -0
- package/lib/widgets/forms/formStyle.d.ts.map +0 -0
- package/lib/widgets/forms/formStyle.js +52 -50
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +0 -0
- package/lib/widgets/forms.js.map +0 -0
- package/lib/widgets/index.js +0 -0
- package/lib/widgets/index.js.map +0 -0
- package/lib/widgets/peoplePicker.js +0 -0
- package/lib/widgets/peoplePicker.js.map +0 -0
- package/lib/widgets/widgetHelpers.d.ts +0 -0
- package/lib/widgets/widgetHelpers.d.ts.map +0 -0
- package/lib/widgets/widgetHelpers.js +18 -30
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +5 -4
|
@@ -1,29 +1,61 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
9
13
|
});
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
22
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
23
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
24
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
25
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
26
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
27
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
31
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
32
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
33
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
34
|
+
function step(op) {
|
|
35
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
36
|
+
while (_) try {
|
|
37
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
38
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
39
|
+
switch (op[0]) {
|
|
40
|
+
case 0: case 1: t = op; break;
|
|
41
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
42
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
43
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
44
|
+
default:
|
|
45
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
46
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
47
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
48
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
49
|
+
if (t[2]) _.ops.pop();
|
|
50
|
+
_.trys.pop(); continue;
|
|
51
|
+
}
|
|
52
|
+
op = body.call(thisArg, _);
|
|
53
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
54
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
58
|
+
exports.cameraButton = exports.cameraCaptureControl = void 0;
|
|
27
59
|
/// /////////////////////////////////////////////
|
|
28
60
|
//
|
|
29
61
|
// Media input widget
|
|
@@ -38,16 +70,16 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
38
70
|
// or access cemra roll (etc) OR to access solid cloud storage of favorite photo almbums.
|
|
39
71
|
// (Especially latest taken ones)
|
|
40
72
|
//
|
|
41
|
-
|
|
73
|
+
var debug = __importStar(require("../debug"));
|
|
42
74
|
/** @module mediaCapture */
|
|
43
|
-
var
|
|
44
|
-
|
|
45
|
-
var
|
|
46
|
-
|
|
75
|
+
var iconBase_1 = require("../iconBase");
|
|
76
|
+
var widgets = __importStar(require("../widgets"));
|
|
77
|
+
var cameraIcon = iconBase_1.icons.iconBase + 'noun_Camera_1618446_000000.svg'; // Get it from github
|
|
78
|
+
var retakeIcon = iconBase_1.icons.iconBase + 'noun_479395.svg'; // Get it from github
|
|
47
79
|
var canvasWidth = '640';
|
|
48
80
|
var canvasHeight = '480';
|
|
49
|
-
var controlStyle = "border-radius: 0.5em; margin: 0.8em; width: ".concat(canvasWidth, "; height:").concat(canvasHeight, ";");
|
|
50
|
-
|
|
81
|
+
var controlStyle = "border-radius: 0.5em; margin: 0.8em; width: ".concat(canvasWidth, "; height:").concat(canvasHeight, ";");
|
|
82
|
+
// const controlStyle = 'border-radius: 0.5em; margin: 0.8em; width: 320; height:240;'
|
|
51
83
|
var contentType = 'image/png';
|
|
52
84
|
/** A control to capture a picture using camera
|
|
53
85
|
* @param {Docuemnt} dom - The Document object
|
|
@@ -55,124 +87,114 @@ var contentType = 'image/png';
|
|
|
55
87
|
* @param {NamedNode} getImageDoc() - NN of the image file to be created
|
|
56
88
|
* @param {function} doneCallback - Called when a picture has been taken
|
|
57
89
|
*/
|
|
58
|
-
|
|
59
90
|
function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
.appendChild(widgets.button(dom, retakeIcon, 'Retake'));
|
|
74
|
-
retakeButton.addEventListener('click', function (_event) {
|
|
75
|
-
retake();
|
|
76
|
-
});
|
|
77
|
-
retakeButton.style.visibility = 'collapse'; // Hide for now
|
|
78
|
-
|
|
79
|
-
var shutterButton = buttons.appendChild(dom.createElement('td')) // Trigger capture button
|
|
80
|
-
.appendChild(widgets.button(dom, _iconBase.icons.iconBase + 'noun_10636.svg', 'Snap'));
|
|
81
|
-
shutterButton.addEventListener('click', grabCanvas);
|
|
82
|
-
shutterButton.style.visibility = 'collapse'; // Hide for now
|
|
83
|
-
|
|
84
|
-
var sendButton = buttons.appendChild(dom.createElement('td')) // Confirm and save button
|
|
85
|
-
.appendChild(widgets.continueButton(dom)); // @@ or send icon??
|
|
86
|
-
|
|
87
|
-
sendButton.addEventListener('click', function (_event) {
|
|
88
|
-
saveBlob(imageBlob, destination);
|
|
89
|
-
});
|
|
90
|
-
sendButton.style.visibility = 'collapse'; // Hide for now
|
|
91
|
-
|
|
92
|
-
function displayPlayer() {
|
|
93
|
-
player = main.appendChild(dom.createElement('video'));
|
|
94
|
-
player.setAttribute('controls', '1');
|
|
95
|
-
player.setAttribute('autoplay', '1');
|
|
96
|
-
player.setAttribute('style', controlStyle);
|
|
97
|
-
|
|
98
|
-
if (!navigator.mediaDevices) {
|
|
99
|
-
throw new Error('navigator.mediaDevices not available');
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
|
|
103
|
-
player.srcObject = stream;
|
|
104
|
-
shutterButton.style.visibility = 'visible'; // Enable
|
|
105
|
-
|
|
106
|
-
sendButton.style.visibility = 'collapse';
|
|
107
|
-
retakeButton.style.visibility = 'collapse';
|
|
91
|
+
var div = dom.createElement('div');
|
|
92
|
+
var destination, imageBlob, player, canvas;
|
|
93
|
+
var table = div.appendChild(dom.createElement('table'));
|
|
94
|
+
var mainTR = table.appendChild(dom.createElement('tr'));
|
|
95
|
+
var main = mainTR.appendChild(dom.createElement('td'));
|
|
96
|
+
main.setAttribute('colspan', '4');
|
|
97
|
+
var buttons = table.appendChild(dom.createElement('tr'));
|
|
98
|
+
buttons
|
|
99
|
+
.appendChild(dom.createElement('td')) // Cancel button
|
|
100
|
+
.appendChild(widgets.cancelButton(dom))
|
|
101
|
+
.addEventListener('click', function (_event) {
|
|
102
|
+
stopVideo();
|
|
103
|
+
doneCallback(null);
|
|
108
104
|
});
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
function grabCanvas() {
|
|
121
|
-
// Draw the video frame to the canvas.
|
|
122
|
-
canvas = dom.createElement('canvas');
|
|
123
|
-
canvas.setAttribute('width', canvasWidth);
|
|
124
|
-
canvas.setAttribute('height', canvasHeight);
|
|
125
|
-
canvas.setAttribute('style', controlStyle);
|
|
126
|
-
main.appendChild(canvas);
|
|
127
|
-
var context = canvas.getContext('2d');
|
|
128
|
-
context.drawImage(player, 0, 0, canvas.width, canvas.height);
|
|
129
|
-
player.parentNode.removeChild(player);
|
|
130
|
-
canvas.toBlob(function (blob) {
|
|
131
|
-
var msg = "got blob type ".concat(blob.type, " size ").concat(blob.size);
|
|
132
|
-
debug.log(msg);
|
|
133
|
-
destination = getImageDoc();
|
|
134
|
-
imageBlob = blob; // save for review
|
|
135
|
-
|
|
136
|
-
reviewImage(); // alert(msg)
|
|
137
|
-
}, contentType); // toBlob
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
function reviewImage() {
|
|
141
|
-
sendButton.style.visibility = 'visible';
|
|
142
|
-
retakeButton.style.visibility = 'visible';
|
|
105
|
+
var retakeButton = buttons
|
|
106
|
+
.appendChild(dom.createElement('td')) // Retake button
|
|
107
|
+
.appendChild(widgets.button(dom, retakeIcon, 'Retake'));
|
|
108
|
+
retakeButton.addEventListener('click', function (_event) {
|
|
109
|
+
retake();
|
|
110
|
+
});
|
|
111
|
+
retakeButton.style.visibility = 'collapse'; // Hide for now
|
|
112
|
+
var shutterButton = buttons
|
|
113
|
+
.appendChild(dom.createElement('td')) // Trigger capture button
|
|
114
|
+
.appendChild(widgets.button(dom, iconBase_1.icons.iconBase + 'noun_10636.svg', 'Snap'));
|
|
115
|
+
shutterButton.addEventListener('click', grabCanvas);
|
|
143
116
|
shutterButton.style.visibility = 'collapse'; // Hide for now
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return track.stop();
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
function saveBlob(blob, destination) {
|
|
155
|
-
var contentType = blob.type; // if (!confirm('Save picture to ' + destination + ' ?')) return
|
|
156
|
-
|
|
157
|
-
debug.log('Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination) // @@ TODO Remove casting
|
|
158
|
-
;
|
|
159
|
-
store.fetcher.webOperation('PUT', destination.uri, {
|
|
160
|
-
data: blob,
|
|
161
|
-
contentType: contentType
|
|
162
|
-
}).then(function (_resp) {
|
|
163
|
-
debug.log('ok saved ' + destination);
|
|
164
|
-
stopVideo();
|
|
165
|
-
doneCallback(destination);
|
|
166
|
-
}, function (err) {
|
|
167
|
-
stopVideo();
|
|
168
|
-
alert(err);
|
|
117
|
+
var sendButton = buttons
|
|
118
|
+
.appendChild(dom.createElement('td')) // Confirm and save button
|
|
119
|
+
.appendChild(widgets.continueButton(dom)); // @@ or send icon??
|
|
120
|
+
sendButton.addEventListener('click', function (_event) {
|
|
121
|
+
saveBlob(imageBlob, destination);
|
|
169
122
|
});
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
123
|
+
sendButton.style.visibility = 'collapse'; // Hide for now
|
|
124
|
+
function displayPlayer() {
|
|
125
|
+
player = main.appendChild(dom.createElement('video'));
|
|
126
|
+
player.setAttribute('controls', '1');
|
|
127
|
+
player.setAttribute('autoplay', '1');
|
|
128
|
+
player.setAttribute('style', controlStyle);
|
|
129
|
+
if (!navigator.mediaDevices) {
|
|
130
|
+
throw new Error('navigator.mediaDevices not available');
|
|
131
|
+
}
|
|
132
|
+
navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
|
|
133
|
+
player.srcObject = stream;
|
|
134
|
+
shutterButton.style.visibility = 'visible'; // Enable
|
|
135
|
+
sendButton.style.visibility = 'collapse';
|
|
136
|
+
retakeButton.style.visibility = 'collapse';
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
var constraints = {
|
|
140
|
+
video: true
|
|
141
|
+
};
|
|
142
|
+
function retake() {
|
|
143
|
+
main.removeChild(canvas);
|
|
144
|
+
displayPlayer(); // Make new one as old one is stuck black
|
|
145
|
+
}
|
|
146
|
+
function grabCanvas() {
|
|
147
|
+
// Draw the video frame to the canvas.
|
|
148
|
+
canvas = dom.createElement('canvas');
|
|
149
|
+
canvas.setAttribute('width', canvasWidth);
|
|
150
|
+
canvas.setAttribute('height', canvasHeight);
|
|
151
|
+
canvas.setAttribute('style', controlStyle);
|
|
152
|
+
main.appendChild(canvas);
|
|
153
|
+
var context = canvas.getContext('2d');
|
|
154
|
+
context.drawImage(player, 0, 0, canvas.width, canvas.height);
|
|
155
|
+
player.parentNode.removeChild(player);
|
|
156
|
+
canvas.toBlob(function (blob) {
|
|
157
|
+
var msg = "got blob type ".concat(blob.type, " size ").concat(blob.size);
|
|
158
|
+
debug.log(msg);
|
|
159
|
+
destination = getImageDoc();
|
|
160
|
+
imageBlob = blob; // save for review
|
|
161
|
+
reviewImage();
|
|
162
|
+
// alert(msg)
|
|
163
|
+
}, contentType); // toBlob
|
|
164
|
+
}
|
|
165
|
+
function reviewImage() {
|
|
166
|
+
sendButton.style.visibility = 'visible';
|
|
167
|
+
retakeButton.style.visibility = 'visible';
|
|
168
|
+
shutterButton.style.visibility = 'collapse'; // Hide for now
|
|
169
|
+
}
|
|
170
|
+
function stopVideo() {
|
|
171
|
+
if (player && player.srcObject) {
|
|
172
|
+
player.srcObject.getVideoTracks().forEach(function (track) { return track.stop(); });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function saveBlob(blob, destination) {
|
|
176
|
+
var contentType = blob.type;
|
|
177
|
+
// if (!confirm('Save picture to ' + destination + ' ?')) return
|
|
178
|
+
debug.log('Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination);
|
|
179
|
+
store.fetcher
|
|
180
|
+
.webOperation('PUT', destination.uri, {
|
|
181
|
+
data: blob,
|
|
182
|
+
contentType: contentType
|
|
183
|
+
})
|
|
184
|
+
.then(function (_resp) {
|
|
185
|
+
debug.log('ok saved ' + destination);
|
|
186
|
+
stopVideo();
|
|
187
|
+
doneCallback(destination);
|
|
188
|
+
}, function (err) {
|
|
189
|
+
stopVideo();
|
|
190
|
+
alert(err);
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
// Attach the video stream to the video element and autoplay.
|
|
194
|
+
displayPlayer();
|
|
195
|
+
return div;
|
|
175
196
|
}
|
|
197
|
+
exports.cameraCaptureControl = cameraCaptureControl;
|
|
176
198
|
/** A button to capture a picture using camera
|
|
177
199
|
* @param {Docuemnt} dom - The Document object
|
|
178
200
|
* @param {IndexedForumla} store - The quadstore to store data in
|
|
@@ -182,43 +204,27 @@ function cameraCaptureControl(dom, store, getImageDoc, doneCallback) {
|
|
|
182
204
|
*
|
|
183
205
|
* This expacts the buttton to a large control when it is pressed
|
|
184
206
|
*/
|
|
185
|
-
|
|
186
|
-
|
|
187
207
|
function cameraButton(dom, store, getImageDoc, doneCallback) {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return _context.stop();
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}, _callee);
|
|
212
|
-
}));
|
|
213
|
-
return _restoreButton.apply(this, arguments);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
div.appendChild(but);
|
|
217
|
-
but.addEventListener('click', function (_event) {
|
|
218
|
-
div.removeChild(but);
|
|
219
|
-
control = cameraCaptureControl(dom, store, getImageDoc, restoreButton);
|
|
220
|
-
div.appendChild(control);
|
|
221
|
-
});
|
|
222
|
-
return div;
|
|
208
|
+
var div = dom.createElement('div');
|
|
209
|
+
var but = widgets.button(dom, cameraIcon, 'Take picture');
|
|
210
|
+
var control;
|
|
211
|
+
function restoreButton(imageDoc) {
|
|
212
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
213
|
+
return __generator(this, function (_a) {
|
|
214
|
+
div.removeChild(control);
|
|
215
|
+
div.appendChild(but);
|
|
216
|
+
doneCallback(imageDoc);
|
|
217
|
+
return [2 /*return*/];
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
div.appendChild(but);
|
|
222
|
+
but.addEventListener('click', function (_event) {
|
|
223
|
+
div.removeChild(but);
|
|
224
|
+
control = cameraCaptureControl(dom, store, getImageDoc, restoreButton);
|
|
225
|
+
div.appendChild(control);
|
|
226
|
+
});
|
|
227
|
+
return div;
|
|
223
228
|
}
|
|
229
|
+
exports.cameraButton = cameraButton;
|
|
224
230
|
//# sourceMappingURL=media-capture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/media/media-capture.ts"],"names":["cameraIcon","icons","iconBase","retakeIcon","canvasWidth","canvasHeight","controlStyle","contentType","cameraCaptureControl","dom","store","getImageDoc","doneCallback","div","createElement","destination","imageBlob","player","canvas","table","appendChild","mainTR","main","setAttribute","buttons","widgets","cancelButton","addEventListener","_event","stopVideo","retakeButton","button","retake","style","visibility","shutterButton","grabCanvas","sendButton","continueButton","saveBlob","displayPlayer","navigator","mediaDevices","Error","getUserMedia","constraints","then","stream","srcObject","video","removeChild","context","getContext","drawImage","width","height","parentNode","toBlob","blob","msg","type","size","debug","log","reviewImage","getVideoTracks","forEach","track","stop","fetcher","webOperation","uri","data","_resp","err","alert","cameraButton","but","control","restoreButton","imageDoc"],"mappings":";;;;;;;;;;;;;;;;AAcA;;AAIA;;AACA;;;;;;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AAMA,IAAMA,UAAU,GAAGC,gBAAMC,QAAN,GAAiB,gCAApC,C,CAAqE;;AACrE,IAAMC,UAAU,GAAGF,gBAAMC,QAAN,GAAiB,iBAApC,C,CAAsD;;AAEtD,IAAME,WAAW,GAAG,KAApB;AACA,IAAMC,YAAY,GAAG,KAArB;AAEA,IAAMC,YAAY,yDAAkDF,WAAlD,sBAAyEC,YAAzE,MAAlB,C,CACA;;AACA,IAAME,WAAW,GAAG,WAApB;AAEA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,oBAAT,CACLC,GADK,EAELC,KAFK,EAGLC,WAHK,EAILC,YAJK,EAKL;AACA,MAAMC,GAAG,GAAGJ,GAAG,CAACK,aAAJ,CAAkB,KAAlB,CAAZ;AACA,MAAIC,WAAJ,EAAiBC,SAAjB,EAA4BC,MAA5B,EAAoCC,MAApC;AAEA,MAAMC,KAAK,GAAGN,GAAG,CAACO,WAAJ,CAAgBX,GAAG,CAACK,aAAJ,CAAkB,OAAlB,CAAhB,CAAd;AACA,MAAMO,MAAM,GAAGF,KAAK,CAACC,WAAN,CAAkBX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CAAlB,CAAf;AACA,MAAMQ,IAAI,GAAGD,MAAM,CAACD,WAAP,CAAmBX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CAAnB,CAAb;AACAQ,EAAAA,IAAI,CAACC,YAAL,CAAkB,SAAlB,EAA6B,GAA7B;AAEA,MAAMC,OAAO,GAAGL,KAAK,CAACC,WAAN,CAAkBX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CAAlB,CAAhB;AAEAU,EAAAA,OAAO,CACJJ,WADH,CACeX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CADf,EACwC;AADxC,GAEGM,WAFH,CAEeK,OAAO,CAACC,YAAR,CAAqBjB,GAArB,CAFf,EAGGkB,gBAHH,CAGoB,OAHpB,EAG6B,UAAAC,MAAM,EAAI;AACnCC,IAAAA,SAAS;AACTjB,IAAAA,YAAY,CAAC,IAAD,CAAZ;AACD,GANH;AAQA,MAAMkB,YAAY,GAAGN,OAAO,CACzBJ,WADkB,CACNX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CADM,EACmB;AADnB,GAElBM,WAFkB,CAENK,OAAO,CAACM,MAAR,CAAetB,GAAf,EAAoBN,UAApB,EAAgC,QAAhC,CAFM,CAArB;AAGA2B,EAAAA,YAAY,CAACH,gBAAb,CAA8B,OAA9B,EAAuC,UAAAC,MAAM,EAAI;AAC/CI,IAAAA,MAAM;AACP,GAFD;AAGAF,EAAAA,YAAY,CAACG,KAAb,CAAmBC,UAAnB,GAAgC,UAAhC,CAzBA,CAyB2C;;AAE3C,MAAMC,aAAa,GAAGX,OAAO,CAC1BJ,WADmB,CACPX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CADO,EACkB;AADlB,GAEnBM,WAFmB,CAGlBK,OAAO,CAACM,MAAR,CAAetB,GAAf,EAAoBR,gBAAMC,QAAN,GAAiB,gBAArC,EAAuD,MAAvD,CAHkB,CAAtB;AAKAiC,EAAAA,aAAa,CAACR,gBAAd,CAA+B,OAA/B,EAAwCS,UAAxC;AACAD,EAAAA,aAAa,CAACF,KAAd,CAAoBC,UAApB,GAAiC,UAAjC,CAjCA,CAiC4C;;AAE5C,MAAMG,UAAU,GAAGb,OAAO,CACvBJ,WADgB,CACJX,GAAG,CAACK,aAAJ,CAAkB,IAAlB,CADI,EACqB;AADrB,GAEhBM,WAFgB,CAEJK,OAAO,CAACa,cAAR,CAAuB7B,GAAvB,CAFI,CAAnB,CAnCA,CAqC4C;;AAC5C4B,EAAAA,UAAU,CAACV,gBAAX,CAA4B,OAA5B,EAAqC,UAAAC,MAAM,EAAI;AAC7CW,IAAAA,QAAQ,CAACvB,SAAD,EAAYD,WAAZ,CAAR;AACD,GAFD;AAGAsB,EAAAA,UAAU,CAACJ,KAAX,CAAiBC,UAAjB,GAA8B,UAA9B,CAzCA,CAyCyC;;AAEzC,WAASM,aAAT,GAA0B;AACxBvB,IAAAA,MAAM,GAAGK,IAAI,CAACF,WAAL,CAAiBX,GAAG,CAACK,aAAJ,CAAkB,OAAlB,CAAjB,CAAT;AACAG,IAAAA,MAAM,CAACM,YAAP,CAAoB,UAApB,EAAgC,GAAhC;AACAN,IAAAA,MAAM,CAACM,YAAP,CAAoB,UAApB,EAAgC,GAAhC;AACAN,IAAAA,MAAM,CAACM,YAAP,CAAoB,OAApB,EAA6BjB,YAA7B;;AACA,QAAI,CAACmC,SAAS,CAACC,YAAf,EAA6B;AAC3B,YAAM,IAAIC,KAAJ,CAAU,sCAAV,CAAN;AACD;;AACDF,IAAAA,SAAS,CAACC,YAAV,CAAuBE,YAAvB,CAAoCC,WAApC,EAAiDC,IAAjD,CAAsD,UAAAC,MAAM,EAAI;AAC9D9B,MAAAA,MAAM,CAAC+B,SAAP,GAAmBD,MAAnB;AACAZ,MAAAA,aAAa,CAACF,KAAd,CAAoBC,UAApB,GAAiC,SAAjC,CAF8D,CAEnB;;AAC3CG,MAAAA,UAAU,CAACJ,KAAX,CAAiBC,UAAjB,GAA8B,UAA9B;AACAJ,MAAAA,YAAY,CAACG,KAAb,CAAmBC,UAAnB,GAAgC,UAAhC;AACD,KALD;AAMD;;AAED,MAAMW,WAAW,GAAG;AAClBI,IAAAA,KAAK,EAAE;AADW,GAApB;;AAIA,WAASjB,MAAT,GAAmB;AACjBV,IAAAA,IAAI,CAAC4B,WAAL,CAAiBhC,MAAjB;AACAsB,IAAAA,aAAa,GAFI,CAED;AACjB;;AAED,WAASJ,UAAT,GAAuB;AACrB;AACAlB,IAAAA,MAAM,GAAGT,GAAG,CAACK,aAAJ,CAAkB,QAAlB,CAAT;AACAI,IAAAA,MAAM,CAACK,YAAP,CAAoB,OAApB,EAA6BnB,WAA7B;AACAc,IAAAA,MAAM,CAACK,YAAP,CAAoB,QAApB,EAA8BlB,YAA9B;AACAa,IAAAA,MAAM,CAACK,YAAP,CAAoB,OAApB,EAA6BjB,YAA7B;AACAgB,IAAAA,IAAI,CAACF,WAAL,CAAiBF,MAAjB;AAEA,QAAMiC,OAAO,GAAGjC,MAAM,CAACkC,UAAP,CAAkB,IAAlB,CAAhB;AACAD,IAAAA,OAAO,CAACE,SAAR,CAAkBpC,MAAlB,EAA0B,CAA1B,EAA6B,CAA7B,EAAgCC,MAAM,CAACoC,KAAvC,EAA8CpC,MAAM,CAACqC,MAArD;AAEAtC,IAAAA,MAAM,CAACuC,UAAP,CAAkBN,WAAlB,CAA8BjC,MAA9B;AAEAC,IAAAA,MAAM,CAACuC,MAAP,CAAc,UAAAC,IAAI,EAAI;AACpB,UAAMC,GAAG,2BAAoBD,IAAI,CAACE,IAAzB,mBAAsCF,IAAI,CAACG,IAA3C,CAAT;AACAC,MAAAA,KAAK,CAACC,GAAN,CAAUJ,GAAV;AACA5C,MAAAA,WAAW,GAAGJ,WAAW,EAAzB;AACAK,MAAAA,SAAS,GAAG0C,IAAZ,CAJoB,CAIH;;AACjBM,MAAAA,WAAW,GALS,CAMpB;AACD,KAPD,EAOGzD,WAPH,EAbqB,CAoBL;AACjB;;AAED,WAASyD,WAAT,GAAwB;AACtB3B,IAAAA,UAAU,CAACJ,KAAX,CAAiBC,UAAjB,GAA8B,SAA9B;AACAJ,IAAAA,YAAY,CAACG,KAAb,CAAmBC,UAAnB,GAAgC,SAAhC;AACAC,IAAAA,aAAa,CAACF,KAAd,CAAoBC,UAApB,GAAiC,UAAjC,CAHsB,CAGsB;AAC7C;;AAED,WAASL,SAAT,GAAsB;AACpB,QAAIZ,MAAM,IAAIA,MAAM,CAAC+B,SAArB,EAAgC;AAC9B/B,MAAAA,MAAM,CAAC+B,SAAP,CAAiBiB,cAAjB,GAAkCC,OAAlC,CAA0C,UAAAC,KAAK;AAAA,eAAIA,KAAK,CAACC,IAAN,EAAJ;AAAA,OAA/C;AACD;AACF;;AACD,WAAS7B,QAAT,CAAmBmB,IAAnB,EAAyB3C,WAAzB,EAAsC;AACpC,QAAMR,WAAW,GAAGmD,IAAI,CAACE,IAAzB,CADoC,CAEpC;;AACAE,IAAAA,KAAK,CAACC,GAAN,CACE,aAAaL,IAAI,CAACG,IAAlB,GAAyB,YAAzB,GAAwCtD,WAAxC,GAAsD,MAAtD,GAA+DQ,WADjE,EAGA;AAHA;AAIEL,IAAAA,KAAD,CAAe2D,OAAf,CACEC,YADF,CACe,KADf,EACsBvD,WAAW,CAACwD,GADlC,EACuC;AACpCC,MAAAA,IAAI,EAAEd,IAD8B;AAEpCnD,MAAAA,WAAW,EAAEA;AAFuB,KADvC,EAKEuC,IALF,CAMG,UAAA2B,KAAK,EAAI;AACPX,MAAAA,KAAK,CAACC,GAAN,CAAU,cAAchD,WAAxB;AACAc,MAAAA,SAAS;AACTjB,MAAAA,YAAY,CAACG,WAAD,CAAZ;AACD,KAVJ,EAWG,UAAA2D,GAAG,EAAI;AACL7C,MAAAA,SAAS;AACT8C,MAAAA,KAAK,CAACD,GAAD,CAAL;AACD,KAdJ;AAgBF,GA7HD,CA+HA;;;AACAlC,EAAAA,aAAa;AACb,SAAO3B,GAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEO,SAAS+D,YAAT,CACLnE,GADK,EAELC,KAFK,EAGLC,WAHK,EAILC,YAJK,EAKQ;AACb,MAAMC,GAAG,GAAGJ,GAAG,CAACK,aAAJ,CAAkB,KAAlB,CAAZ;AACA,MAAM+D,GAAG,GAAGpD,OAAO,CAACM,MAAR,CAAetB,GAAf,EAAoBT,UAApB,EAAgC,cAAhC,CAAZ;AACA,MAAI8E,OAAJ;;AAHa,WAIEC,aAJF;AAAA;AAAA;;AAAA;AAAA,mGAIb,iBAA8BC,QAA9B;AAAA;AAAA;AAAA;AAAA;AACEnE,cAAAA,GAAG,CAACqC,WAAJ,CAAgB4B,OAAhB;AACAjE,cAAAA,GAAG,CAACO,WAAJ,CAAgByD,GAAhB;AACAjE,cAAAA,YAAY,CAACoE,QAAD,CAAZ;;AAHF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAJa;AAAA;AAAA;;AASbnE,EAAAA,GAAG,CAACO,WAAJ,CAAgByD,GAAhB;AACAA,EAAAA,GAAG,CAAClD,gBAAJ,CAAqB,OAArB,EAA8B,UAAAC,MAAM,EAAI;AACtCf,IAAAA,GAAG,CAACqC,WAAJ,CAAgB2B,GAAhB;AACAC,IAAAA,OAAO,GAAGtE,oBAAoB,CAC5BC,GAD4B,EAE5BC,KAF4B,EAG5BC,WAH4B,EAI5BoE,aAJ4B,CAA9B;AAMAlE,IAAAA,GAAG,CAACO,WAAJ,CAAgB0D,OAAhB;AACD,GATD;AAUA,SAAOjE,GAAP;AACD","sourcesContent":["/// /////////////////////////////////////////////\n//\n// Media input widget\n//\n//\n// Workflow:\n// The HTML5 functionality (on mobille) is to prompt for either\n// a realtime camera capture , OR a selection from images already ont the device\n// (eg camera roll).\n//\n// The solid alternative is to either take a phtoto\n// or access cemra roll (etc) OR to access solid cloud storage of favorite photo almbums.\n// (Especially latest taken ones)\n//\nimport * as debug from '../debug'\n\n/** @module mediaCapture */\n\nimport { icons } from '../iconBase'\nimport * as widgets from '../widgets'\nimport { IndexedFormula, NamedNode } from 'rdflib'\n\nconst cameraIcon = icons.iconBase + 'noun_Camera_1618446_000000.svg' // Get it from github\nconst retakeIcon = icons.iconBase + 'noun_479395.svg' // Get it from github\n\nconst canvasWidth = '640'\nconst canvasHeight = '480'\n\nconst controlStyle = `border-radius: 0.5em; margin: 0.8em; width: ${canvasWidth}; height:${canvasHeight};`\n// const controlStyle = 'border-radius: 0.5em; margin: 0.8em; width: 320; height:240;'\nconst contentType = 'image/png'\n\n/** A control to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {NamedNode} getImageDoc() - NN of the image file to be created\n * @param {function} doneCallback - Called when a picture has been taken\n */\nexport function cameraCaptureControl (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n) {\n const div = dom.createElement('div')\n let destination, imageBlob, player, canvas\n\n const table = div.appendChild(dom.createElement('table'))\n const mainTR = table.appendChild(dom.createElement('tr'))\n const main = mainTR.appendChild(dom.createElement('td'))\n main.setAttribute('colspan', '4')\n\n const buttons = table.appendChild(dom.createElement('tr'))\n\n buttons\n .appendChild(dom.createElement('td')) // Cancel button\n .appendChild(widgets.cancelButton(dom))\n .addEventListener('click', _event => {\n stopVideo()\n doneCallback(null)\n })\n\n const retakeButton = buttons\n .appendChild(dom.createElement('td')) // Retake button\n .appendChild(widgets.button(dom, retakeIcon, 'Retake'))\n retakeButton.addEventListener('click', _event => {\n retake()\n })\n retakeButton.style.visibility = 'collapse' // Hide for now\n\n const shutterButton = buttons\n .appendChild(dom.createElement('td')) // Trigger capture button\n .appendChild(\n widgets.button(dom, icons.iconBase + 'noun_10636.svg', 'Snap')\n )\n shutterButton.addEventListener('click', grabCanvas)\n shutterButton.style.visibility = 'collapse' // Hide for now\n\n const sendButton = buttons\n .appendChild(dom.createElement('td')) // Confirm and save button\n .appendChild(widgets.continueButton(dom)) // @@ or send icon??\n sendButton.addEventListener('click', _event => {\n saveBlob(imageBlob, destination)\n })\n sendButton.style.visibility = 'collapse' // Hide for now\n\n function displayPlayer () {\n player = main.appendChild(dom.createElement('video'))\n player.setAttribute('controls', '1')\n player.setAttribute('autoplay', '1')\n player.setAttribute('style', controlStyle)\n if (!navigator.mediaDevices) {\n throw new Error('navigator.mediaDevices not available')\n }\n navigator.mediaDevices.getUserMedia(constraints).then(stream => {\n player.srcObject = stream\n shutterButton.style.visibility = 'visible' // Enable\n sendButton.style.visibility = 'collapse'\n retakeButton.style.visibility = 'collapse'\n })\n }\n\n const constraints = {\n video: true\n }\n\n function retake () {\n main.removeChild(canvas)\n displayPlayer() // Make new one as old one is stuck black\n }\n\n function grabCanvas () {\n // Draw the video frame to the canvas.\n canvas = dom.createElement('canvas')\n canvas.setAttribute('width', canvasWidth)\n canvas.setAttribute('height', canvasHeight)\n canvas.setAttribute('style', controlStyle)\n main.appendChild(canvas)\n\n const context = canvas.getContext('2d')\n context.drawImage(player, 0, 0, canvas.width, canvas.height)\n\n player.parentNode.removeChild(player)\n\n canvas.toBlob(blob => {\n const msg = `got blob type ${blob.type} size ${blob.size}`\n debug.log(msg)\n destination = getImageDoc()\n imageBlob = blob // save for review\n reviewImage()\n // alert(msg)\n }, contentType) // toBlob\n }\n\n function reviewImage () {\n sendButton.style.visibility = 'visible'\n retakeButton.style.visibility = 'visible'\n shutterButton.style.visibility = 'collapse' // Hide for now\n }\n\n function stopVideo () {\n if (player && player.srcObject) {\n player.srcObject.getVideoTracks().forEach(track => track.stop())\n }\n }\n function saveBlob (blob, destination) {\n const contentType = blob.type\n // if (!confirm('Save picture to ' + destination + ' ?')) return\n debug.log(\n 'Putting ' + blob.size + ' bytes of ' + contentType + ' to ' + destination\n )\n // @@ TODO Remove casting\n ;(store as any).fetcher\n .webOperation('PUT', destination.uri, {\n data: blob,\n contentType: contentType\n })\n .then(\n _resp => {\n debug.log('ok saved ' + destination)\n stopVideo()\n doneCallback(destination)\n },\n err => {\n stopVideo()\n alert(err)\n }\n )\n }\n\n // Attach the video stream to the video element and autoplay.\n displayPlayer()\n return div\n}\n\n/** A button to capture a picture using camera\n * @param {Docuemnt} dom - The Document object\n * @param {IndexedForumla} store - The quadstore to store data in\n * @param {fuunction} getImageDoc - returns NN of the image file to be created\n * @param {function<Node>} doneCallback - called with the image taken\n * @returns {DomElement} - A div element with the buton in it\n *\n * This expacts the buttton to a large control when it is pressed\n */\n\nexport function cameraButton (\n dom: HTMLDocument,\n store: IndexedFormula,\n getImageDoc: () => NamedNode,\n doneCallback: (imageDoc) => Promise<void>\n): HTMLElement {\n const div = dom.createElement('div')\n const but = widgets.button(dom, cameraIcon, 'Take picture')\n let control\n async function restoreButton (imageDoc) {\n div.removeChild(control)\n div.appendChild(but)\n doneCallback(imageDoc)\n }\n div.appendChild(but)\n but.addEventListener('click', _event => {\n div.removeChild(but)\n control = cameraCaptureControl(\n dom,\n store,\n getImageDoc,\n restoreButton\n )\n div.appendChild(control)\n })\n return div\n}\n"],"file":"media-capture.js"}
|
|
1
|
+
{"version":3,"file":"media-capture.js","sourceRoot":"","sources":["../../src/media/media-capture.ts"],"names":[],"mappings":"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"}
|
package/lib/messageArea.js
CHANGED
|
File without changes
|
package/lib/messageArea.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/lib/ns.js
CHANGED
|
File without changes
|
package/lib/ns.js.map
CHANGED
|
File without changes
|
package/lib/pad.d.ts
CHANGED
|
File without changes
|
package/lib/pad.d.ts.map
CHANGED
|
File without changes
|