jake-compoenents 1.0.0
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/.babelrc +3 -0
- package/LICENSE +201 -0
- package/README.md +5 -0
- package/dist/components/controls/audio-recorder/audio-recorder.js +107 -0
- package/dist/components/controls/button/button.css +67 -0
- package/dist/components/controls/button/button.js +29 -0
- package/dist/components/controls/select/select.css +15 -0
- package/dist/components/controls/select/select.js +32 -0
- package/dist/components/layout/grid/grid.css +15 -0
- package/dist/components/layout/grid/grid.js +166 -0
- package/dist/components/layout/modal/modal.css +27 -0
- package/dist/components/layout/modal/modal.js +56 -0
- package/dist/components/layout/tabs/tab/tab.js +32 -0
- package/dist/components/layout/tabs/tabmenu/tabmenu.js +19 -0
- package/dist/components/layout/tile/tile.css +29 -0
- package/dist/components/layout/tile/tile.js +32 -0
- package/dist/services/io.service.js +100 -0
- package/dist/services/pagination.service.js +18 -0
- package/dist/state/actions/set-active-image.js +13 -0
- package/dist/state/actions/set-active-tab.js +13 -0
- package/dist/state/actions/set-assets.js +13 -0
- package/dist/state/actions/set-batch-size.js +13 -0
- package/dist/state/actions/set-directories.js +13 -0
- package/dist/state/actions/set-offset.js +13 -0
- package/dist/state/middleware/logger.js +19 -0
- package/dist/state/reducers/album.js +43 -0
- package/dist/state/reducers/navigation.js +40 -0
- package/dist/style.css +224 -0
- package/jake-compoenents-1.0.0.tgz +0 -0
- package/package.json +26 -0
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _pagination = require("../../../services/pagination.service");
|
|
11
|
+
var _setAssets = require("../../../state/actions/set-assets");
|
|
12
|
+
var _setBatchSize = require("../../../state/actions/set-batch-size");
|
|
13
|
+
var _setOffset = require("../../../state/actions/set-offset");
|
|
14
|
+
var _tile = _interopRequireDefault(require("../tile/tile"));
|
|
15
|
+
var _button = _interopRequireDefault(require("../../controls/button/button"));
|
|
16
|
+
var _select = _interopRequireDefault(require("../../controls/select/select"));
|
|
17
|
+
require("./grid.css");
|
|
18
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
20
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
21
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
26
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
27
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
28
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
29
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
30
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
31
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
32
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
33
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
34
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
35
|
+
var Grid = function Grid(props) {
|
|
36
|
+
var gridSizeOptions = [25, 50, 100, 200];
|
|
37
|
+
var _useState = (0, _react.useState)({
|
|
38
|
+
start: 0,
|
|
39
|
+
end: 0
|
|
40
|
+
}),
|
|
41
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
42
|
+
range = _useState2[0],
|
|
43
|
+
setRange = _useState2[1];
|
|
44
|
+
var _useState3 = (0, _react.useState)([]),
|
|
45
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
46
|
+
tiles = _useState4[0],
|
|
47
|
+
setTiles = _useState4[1];
|
|
48
|
+
var fetchContent = /*#__PURE__*/function () {
|
|
49
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
50
|
+
return _regenerator().w(function (_context) {
|
|
51
|
+
while (1) switch (_context.n) {
|
|
52
|
+
case 0:
|
|
53
|
+
_context.n = 1;
|
|
54
|
+
return props.fetchContentCallback(props.activeTab.category).then(function (res) {
|
|
55
|
+
props.dispatch((0, _setAssets.setAssets)(_objectSpread({
|
|
56
|
+
files: res.files
|
|
57
|
+
}, props.activeTab)));
|
|
58
|
+
});
|
|
59
|
+
case 1:
|
|
60
|
+
return _context.a(2);
|
|
61
|
+
}
|
|
62
|
+
}, _callee);
|
|
63
|
+
}));
|
|
64
|
+
return function fetchContent() {
|
|
65
|
+
return _ref.apply(this, arguments);
|
|
66
|
+
};
|
|
67
|
+
}();
|
|
68
|
+
var updateOffset = function updateOffset(offset) {
|
|
69
|
+
props.dispatch((0, _setOffset.setOffset)(offset));
|
|
70
|
+
};
|
|
71
|
+
var loadNewTiles = function loadNewTiles(direction) {
|
|
72
|
+
(0, _pagination.paginate)({
|
|
73
|
+
direction: direction,
|
|
74
|
+
batchSize: props.batchSize,
|
|
75
|
+
files: props.directories[props.activeTab.category],
|
|
76
|
+
offset: props.activeTab.offset,
|
|
77
|
+
updateOffset: updateOffset
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
var updateGridSize = function updateGridSize(val) {
|
|
81
|
+
var batchSize;
|
|
82
|
+
if (val === 'all') {
|
|
83
|
+
batchSize = -1;
|
|
84
|
+
} else {
|
|
85
|
+
batchSize = val;
|
|
86
|
+
}
|
|
87
|
+
props.dispatch((0, _setBatchSize.setBatchSize)(batchSize));
|
|
88
|
+
};
|
|
89
|
+
(0, _react.useEffect)(function () {
|
|
90
|
+
var category = props.activeTab.category;
|
|
91
|
+
var dir = props.directories[category];
|
|
92
|
+
if (!dir || dir.length === 0) {
|
|
93
|
+
fetchContent();
|
|
94
|
+
}
|
|
95
|
+
}, [props.activeTab]);
|
|
96
|
+
(0, _react.useEffect)(function () {
|
|
97
|
+
var category = props.activeTab.category;
|
|
98
|
+
var start = props.activeTab.offset * props.batchSize;
|
|
99
|
+
var end = props.batchSize === -1 || Number(start) + Number(props.batchSize) > props.directories[category].length ? props.directories[category].length : Number(start) + Number(props.batchSize);
|
|
100
|
+
setRange({
|
|
101
|
+
start: start,
|
|
102
|
+
end: end
|
|
103
|
+
});
|
|
104
|
+
var dir = props.directories[category].slice(start, end);
|
|
105
|
+
if (dir && dir.length > 0) {
|
|
106
|
+
var tilesMeta = props.buildTileMetaCallback(category, dir);
|
|
107
|
+
setTiles(tilesMeta);
|
|
108
|
+
} else {
|
|
109
|
+
setTiles([]);
|
|
110
|
+
}
|
|
111
|
+
}, [props.directories, props.activeTab, props.batchSize]);
|
|
112
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
113
|
+
className: "grid",
|
|
114
|
+
id: "grid"
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
116
|
+
className: "row grid__row grid__controls"
|
|
117
|
+
}, /*#__PURE__*/_react["default"].createElement(_select["default"], {
|
|
118
|
+
id: "gridsize",
|
|
119
|
+
initialValue: props.batchSize,
|
|
120
|
+
opts: gridSizeOptions,
|
|
121
|
+
callbackFn: function callbackFn(e) {
|
|
122
|
+
return updateGridSize(e);
|
|
123
|
+
}
|
|
124
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
125
|
+
className: "text-centered"
|
|
126
|
+
}, range.start + 1, " - ", range.end, " of ", props.directories[props.activeTab.category].length), /*#__PURE__*/_react["default"].createElement("div", {
|
|
127
|
+
className: "grid__controls--nav"
|
|
128
|
+
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
129
|
+
id: "prev",
|
|
130
|
+
label: "Previous",
|
|
131
|
+
type: "nav",
|
|
132
|
+
className: ['button__nav', 'button__nav-prev', 'btn--secondary'],
|
|
133
|
+
text: '<',
|
|
134
|
+
disabled: props.activeTab.offset === 0,
|
|
135
|
+
onClickHandler: function onClickHandler() {
|
|
136
|
+
return loadNewTiles('prev');
|
|
137
|
+
}
|
|
138
|
+
}), /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
139
|
+
id: "next",
|
|
140
|
+
label: "Next",
|
|
141
|
+
type: "nav",
|
|
142
|
+
className: ['button__nav', 'button__nav-next', 'btn--secondary'],
|
|
143
|
+
text: '>',
|
|
144
|
+
disabled: (props.activeTab.offset + 1) * props.batchSize >= props.directories[props.activeTab.category].length,
|
|
145
|
+
onClickHandler: function onClickHandler() {
|
|
146
|
+
return loadNewTiles('next');
|
|
147
|
+
}
|
|
148
|
+
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
149
|
+
className: "grid__tiles"
|
|
150
|
+
}, tiles.map(function (image, key) {
|
|
151
|
+
return /*#__PURE__*/_react["default"].createElement(_tile["default"], {
|
|
152
|
+
id: "tile_".concat(key),
|
|
153
|
+
name: image.name,
|
|
154
|
+
url: image.url,
|
|
155
|
+
key: key,
|
|
156
|
+
tabIndex: key + 1
|
|
157
|
+
});
|
|
158
|
+
})));
|
|
159
|
+
};
|
|
160
|
+
var _default = exports["default"] = (0, _reactRedux.connect)(function (state) {
|
|
161
|
+
return {
|
|
162
|
+
activeTab: state.navigation.activeTab,
|
|
163
|
+
batchSize: state.navigation.batchSize,
|
|
164
|
+
directories: state.album.directories
|
|
165
|
+
};
|
|
166
|
+
})(Grid);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.modal-backdrop {
|
|
2
|
+
z-index: 999;
|
|
3
|
+
position: fixed;
|
|
4
|
+
top: 0;
|
|
5
|
+
left: 0;
|
|
6
|
+
height: 100vh;
|
|
7
|
+
width: 100vw;
|
|
8
|
+
background-color: rgba(0, 0, 0, 0.5);
|
|
9
|
+
backdrop-filter: blur(7px);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.modal-content {
|
|
13
|
+
z-index: 1000;
|
|
14
|
+
position: fixed;
|
|
15
|
+
top: 50%;
|
|
16
|
+
left: 50%;
|
|
17
|
+
transform: translate(-50%, -50%);
|
|
18
|
+
width: 100%;
|
|
19
|
+
padding: var(--space-8);
|
|
20
|
+
text-align: center;
|
|
21
|
+
|
|
22
|
+
img {
|
|
23
|
+
border-radius: var(--radius-md);
|
|
24
|
+
margin: var(--space-10) auto;
|
|
25
|
+
max-height: 85vh; max-width: 85vw;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactRedux = require("react-redux");
|
|
10
|
+
var _setActiveImage = require("../../../state/actions/set-active-image");
|
|
11
|
+
var _button = _interopRequireDefault(require("../../controls/button/button"));
|
|
12
|
+
require("./modal.css");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
15
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
18
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
20
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
21
|
+
var Modal = function Modal(props) {
|
|
22
|
+
var _useState = (0, _react.useState)(''),
|
|
23
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
24
|
+
source = _useState2[0],
|
|
25
|
+
setSource = _useState2[1];
|
|
26
|
+
var closeModal = function closeModal() {
|
|
27
|
+
props.dispatch((0, _setActiveImage.setActiveImage)(null));
|
|
28
|
+
};
|
|
29
|
+
(0, _react.useEffect)(function () {
|
|
30
|
+
setSource("".concat(props.activeImage.source, "/").concat(props.activeImage.name));
|
|
31
|
+
}, []);
|
|
32
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
33
|
+
className: "modal-backdrop",
|
|
34
|
+
onClick: function onClick() {
|
|
35
|
+
return closeModal();
|
|
36
|
+
}
|
|
37
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
38
|
+
className: "modal-content"
|
|
39
|
+
}, /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
40
|
+
id: "modal-close__".concat(props.activeImage.id),
|
|
41
|
+
type: "close",
|
|
42
|
+
onClickHandler: closeModal
|
|
43
|
+
}), /*#__PURE__*/_react["default"].createElement("img", {
|
|
44
|
+
className: "modal-image",
|
|
45
|
+
src: props.activeImage.url,
|
|
46
|
+
alt: "Modal"
|
|
47
|
+
}), "\uD83D\uDCF7 Click ", /*#__PURE__*/_react["default"].createElement("a", {
|
|
48
|
+
href: source,
|
|
49
|
+
target: "_blank"
|
|
50
|
+
}, "here"), " for the full-resolution version."));
|
|
51
|
+
};
|
|
52
|
+
var _default = exports["default"] = (0, _reactRedux.connect)(function (state) {
|
|
53
|
+
return {
|
|
54
|
+
activeImage: state.album.activeImage
|
|
55
|
+
};
|
|
56
|
+
})(Modal);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactRedux = require("react-redux");
|
|
9
|
+
var _setActiveTab = require("../../../../state/actions/set-active-tab");
|
|
10
|
+
var _button = _interopRequireDefault(require("../../../controls/button/button"));
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
var Tab = function Tab(props) {
|
|
13
|
+
var changeTab = function changeTab() {
|
|
14
|
+
props.dispatch((0, _setActiveTab.setActiveTab)({
|
|
15
|
+
index: props.index,
|
|
16
|
+
category: props.category,
|
|
17
|
+
offset: 0
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
return /*#__PURE__*/_react["default"].createElement(_button["default"], {
|
|
21
|
+
type: "tab",
|
|
22
|
+
id: props.category.replace(/[-_]/g, ''),
|
|
23
|
+
text: props.category.replace(/[-_]/g, ' '),
|
|
24
|
+
className: props.index === props.activeTab.index ? ['active'] : [],
|
|
25
|
+
onClickHandler: changeTab
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var _default = exports["default"] = (0, _reactRedux.connect)(function (state) {
|
|
29
|
+
return {
|
|
30
|
+
activeTab: state.navigation.activeTab
|
|
31
|
+
};
|
|
32
|
+
})(Tab);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _tab = _interopRequireDefault(require("../tab/tab"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var TabMenu = function TabMenu(props) {
|
|
11
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, props.tabs.map(function (tab, index) {
|
|
12
|
+
return /*#__PURE__*/_react["default"].createElement(_tab["default"], {
|
|
13
|
+
category: tab,
|
|
14
|
+
index: index,
|
|
15
|
+
key: index
|
|
16
|
+
});
|
|
17
|
+
}), /*#__PURE__*/_react["default"].createElement("hr", null));
|
|
18
|
+
};
|
|
19
|
+
var _default = exports["default"] = TabMenu;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--tile__max-width__screen-sm: 25%;
|
|
3
|
+
--tile__max-width__screen-md: 20%;
|
|
4
|
+
--tile__max-width__screen-lg: 15%;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.tile {
|
|
8
|
+
display: inline-block;
|
|
9
|
+
border-radius: var(--radius-md);
|
|
10
|
+
|
|
11
|
+
@media screen and (min-width: 0px) {
|
|
12
|
+
margin: var(--space-2);
|
|
13
|
+
width: var(--tile__max-width__screen-sm);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@media screen and (min-width: 768px) {
|
|
17
|
+
margin: var(--space-4);
|
|
18
|
+
max-width: var(--tile__max-width__screen-md);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
@media screen and (min-width: 1280px) {
|
|
22
|
+
margin: var(--space-5);
|
|
23
|
+
max-width: var(--tile__max-width__screen-lg);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.tile:hover {
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactRedux = require("react-redux");
|
|
9
|
+
var _setActiveImage = require("../../../state/actions/set-active-image");
|
|
10
|
+
require("./tile.css");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
var Tile = function Tile(props) {
|
|
13
|
+
var maximizeImage = function maximizeImage() {
|
|
14
|
+
props.dispatch((0, _setActiveImage.setActiveImage)({
|
|
15
|
+
id: props.id,
|
|
16
|
+
name: props.name,
|
|
17
|
+
url: props.url
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
return /*#__PURE__*/_react["default"].createElement("img", {
|
|
21
|
+
id: props.id,
|
|
22
|
+
tabIndex: props.tabIndex,
|
|
23
|
+
className: "tile",
|
|
24
|
+
src: props.url,
|
|
25
|
+
onClick: function onClick() {
|
|
26
|
+
return maximizeImage();
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var _default = exports["default"] = (0, _reactRedux.connect)(function () {
|
|
31
|
+
return {};
|
|
32
|
+
})(Tile);
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.IOService = void 0;
|
|
7
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
8
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
9
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
10
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
|
+
var handleAudioPlayback = /*#__PURE__*/function () {
|
|
12
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(data) {
|
|
13
|
+
var df, blob, url, audio;
|
|
14
|
+
return _regenerator().w(function (_context) {
|
|
15
|
+
while (1) switch (_context.n) {
|
|
16
|
+
case 0:
|
|
17
|
+
df = document.createDocumentFragment();
|
|
18
|
+
blob = data.blob ? data.blob : new Blob([Uint8Array.from(atob(data.audio), function (c) {
|
|
19
|
+
return c.charCodeAt(0);
|
|
20
|
+
})]);
|
|
21
|
+
url = URL.createObjectURL(blob);
|
|
22
|
+
audio = new Audio(url);
|
|
23
|
+
df.appendChild(audio); // keep in fragment until finished playing
|
|
24
|
+
audio.addEventListener("ended", function () {
|
|
25
|
+
df.removeChild(audio);
|
|
26
|
+
});
|
|
27
|
+
audio.play()["catch"](function (error) {
|
|
28
|
+
return console.error('Error playing audio:', error);
|
|
29
|
+
});
|
|
30
|
+
return _context.a(2, audio);
|
|
31
|
+
}
|
|
32
|
+
}, _callee);
|
|
33
|
+
}));
|
|
34
|
+
return function handleAudioPlayback(_x) {
|
|
35
|
+
return _ref.apply(this, arguments);
|
|
36
|
+
};
|
|
37
|
+
}();
|
|
38
|
+
var startRecordingAudio = /*#__PURE__*/function () {
|
|
39
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(audioChunksRef, mediaRecorderRef) {
|
|
40
|
+
return _regenerator().w(function (_context2) {
|
|
41
|
+
while (1) switch (_context2.n) {
|
|
42
|
+
case 0:
|
|
43
|
+
return _context2.a(2, navigator.mediaDevices.getUserMedia({
|
|
44
|
+
audio: true
|
|
45
|
+
}).then(function (stream) {
|
|
46
|
+
var defaultMimeType = 'audio/webm;codecs=opus';
|
|
47
|
+
var mimeType = window.MediaRecorder && MediaRecorder.isTypeSupported && MediaRecorder.isTypeSupported(defaultMimeType) ? defaultMimeType : undefined;
|
|
48
|
+
mediaRecorderRef.current = new MediaRecorder(stream, mimeType ? {
|
|
49
|
+
mimeType: mimeType
|
|
50
|
+
} : undefined);
|
|
51
|
+
if (!mediaRecorderRef.current) {
|
|
52
|
+
throw new Error("MediaRecorder is not supported in this browser.");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Reset audio chunks
|
|
56
|
+
audioChunksRef.current = [];
|
|
57
|
+
|
|
58
|
+
// Add data collection
|
|
59
|
+
mediaRecorderRef.current.ondataavailable = function (event) {
|
|
60
|
+
if (event.data.size > 0) {
|
|
61
|
+
audioChunksRef.current.push(event.data);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
mediaRecorderRef.current.start(500);
|
|
65
|
+
})["catch"](function (error) {
|
|
66
|
+
console.error("Error accessing media devices:", error);
|
|
67
|
+
throw error;
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
}, _callee2);
|
|
71
|
+
}));
|
|
72
|
+
return function startRecordingAudio(_x2, _x3) {
|
|
73
|
+
return _ref2.apply(this, arguments);
|
|
74
|
+
};
|
|
75
|
+
}();
|
|
76
|
+
var stopRecordingAudio = function stopRecordingAudio(mediaRecorderRef, audioChunksRef) {
|
|
77
|
+
return new Promise(function (resolve) {
|
|
78
|
+
var onStop = function onStop() {
|
|
79
|
+
var chunks = audioChunksRef.current || [];
|
|
80
|
+
var type = mediaRecorderRef.current.mimeType || 'audio/webm;codecs=opus';
|
|
81
|
+
var blob = new Blob(chunks, {
|
|
82
|
+
type: type
|
|
83
|
+
});
|
|
84
|
+
mediaRecorderRef.current.stream.getTracks().forEach(function (track) {
|
|
85
|
+
return track.stop();
|
|
86
|
+
});
|
|
87
|
+
resolve(blob);
|
|
88
|
+
};
|
|
89
|
+
mediaRecorderRef.current.addEventListener('stop', onStop, {
|
|
90
|
+
once: true
|
|
91
|
+
});
|
|
92
|
+
mediaRecorderRef.current.stop();
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
var IOService = exports.IOService = {
|
|
96
|
+
postAudioPrompt: postAudioPrompt,
|
|
97
|
+
postTextPrompt: postTextPrompt,
|
|
98
|
+
startRecordingAudio: startRecordingAudio,
|
|
99
|
+
stopRecordingAudio: stopRecordingAudio
|
|
100
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.paginate = void 0;
|
|
7
|
+
var paginate = exports.paginate = function paginate(props) {
|
|
8
|
+
switch (props.direction) {
|
|
9
|
+
case 'next':
|
|
10
|
+
props.updateOffset(props.offset + 1);
|
|
11
|
+
return;
|
|
12
|
+
case 'prev':
|
|
13
|
+
props.updateOffset(props.offset - 1);
|
|
14
|
+
return;
|
|
15
|
+
default:
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setActiveImage = setActiveImage;
|
|
7
|
+
var _album = require("../reducers/album");
|
|
8
|
+
function setActiveImage(activeImage) {
|
|
9
|
+
return {
|
|
10
|
+
type: _album.SET_ACTIVE_IMAGE,
|
|
11
|
+
activeImage: activeImage
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setActiveTab = setActiveTab;
|
|
7
|
+
var _navigation = require("../reducers/navigation");
|
|
8
|
+
function setActiveTab(activeTab) {
|
|
9
|
+
return {
|
|
10
|
+
type: _navigation.SET_ACTIVE_TAB,
|
|
11
|
+
activeTab: activeTab
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setAssets = setAssets;
|
|
7
|
+
var _album = require("../reducers/album");
|
|
8
|
+
function setAssets(assetMeta) {
|
|
9
|
+
return {
|
|
10
|
+
type: _album.SET_ASSETS,
|
|
11
|
+
assets: assetMeta
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setBatchSize = setBatchSize;
|
|
7
|
+
var _navigation = require("../reducers/navigation");
|
|
8
|
+
function setBatchSize(batchSize) {
|
|
9
|
+
return {
|
|
10
|
+
type: _navigation.SET_BATCH_SIZE,
|
|
11
|
+
batchSize: batchSize
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setDirectories = setDirectories;
|
|
7
|
+
var _album = require("../reducers/album");
|
|
8
|
+
function setDirectories(directories) {
|
|
9
|
+
return {
|
|
10
|
+
type: _album.SET_DIRECTORIES,
|
|
11
|
+
directories: directories
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setOffset = setOffset;
|
|
7
|
+
var _navigation = require("../reducers/navigation");
|
|
8
|
+
function setOffset(offset) {
|
|
9
|
+
return {
|
|
10
|
+
type: _navigation.SET_OFFSET,
|
|
11
|
+
offset: offset
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var logger = function logger(store) {
|
|
8
|
+
return function (next) {
|
|
9
|
+
return function (action) {
|
|
10
|
+
console.group(action.type);
|
|
11
|
+
console.log('Action: ', action);
|
|
12
|
+
var returnValue = next(action);
|
|
13
|
+
console.log('New State: ', store.getState());
|
|
14
|
+
console.groupEnd();
|
|
15
|
+
return returnValue;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
var _default = exports["default"] = logger;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.album = exports.SET_DIRECTORIES = exports.SET_ASSETS = exports.SET_ACTIVE_IMAGE = void 0;
|
|
7
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
8
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
9
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
11
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
12
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
13
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
19
|
+
var SET_ASSETS = exports.SET_ASSETS = 'SET_ASSETS';
|
|
20
|
+
var SET_ACTIVE_IMAGE = exports.SET_ACTIVE_IMAGE = 'SET_ACTIVE_IMAGE';
|
|
21
|
+
var SET_DIRECTORIES = exports.SET_DIRECTORIES = 'SET_DIRECTORIES';
|
|
22
|
+
var album = exports.album = function album(state, action) {
|
|
23
|
+
switch (action.type) {
|
|
24
|
+
case SET_DIRECTORIES:
|
|
25
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
26
|
+
directories: action.directories.reduce(function (acc, dir) {
|
|
27
|
+
acc[dir] = [];
|
|
28
|
+
return acc;
|
|
29
|
+
}, {})
|
|
30
|
+
});
|
|
31
|
+
case SET_ACTIVE_IMAGE:
|
|
32
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
33
|
+
activeImage: _objectSpread({}, action.activeImage)
|
|
34
|
+
});
|
|
35
|
+
case SET_ASSETS:
|
|
36
|
+
var directories = _objectSpread(_objectSpread({}, state.directories), {}, _defineProperty({}, action.assets.category, _toConsumableArray(action.assets.files)));
|
|
37
|
+
return _objectSpread(_objectSpread({}, state), {}, {
|
|
38
|
+
directories: _objectSpread({}, directories)
|
|
39
|
+
});
|
|
40
|
+
default:
|
|
41
|
+
return _objectSpread({}, state);
|
|
42
|
+
}
|
|
43
|
+
};
|