expo-snowui 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/LICENSE.txt +674 -0
- package/README.md +16 -0
- package/lib/module/component/snow-break.js +15 -0
- package/lib/module/component/snow-break.js.map +1 -0
- package/lib/module/component/snow-dropdown.js +66 -0
- package/lib/module/component/snow-dropdown.js.map +1 -0
- package/lib/module/component/snow-fill-view.js +40 -0
- package/lib/module/component/snow-fill-view.js.map +1 -0
- package/lib/module/component/snow-grid.js +70 -0
- package/lib/module/component/snow-grid.js.map +1 -0
- package/lib/module/component/snow-header.js +20 -0
- package/lib/module/component/snow-header.js.map +1 -0
- package/lib/module/component/snow-image-button.js +98 -0
- package/lib/module/component/snow-image-button.js.map +1 -0
- package/lib/module/component/snow-image-grid.js +84 -0
- package/lib/module/component/snow-image-grid.js.map +1 -0
- package/lib/module/component/snow-input.js +51 -0
- package/lib/module/component/snow-input.js.map +1 -0
- package/lib/module/component/snow-label.js +20 -0
- package/lib/module/component/snow-label.js.map +1 -0
- package/lib/module/component/snow-modal.js +49 -0
- package/lib/module/component/snow-modal.js.map +1 -0
- package/lib/module/component/snow-range-slider.js +247 -0
- package/lib/module/component/snow-range-slider.js.map +1 -0
- package/lib/module/component/snow-safe-area.js +22 -0
- package/lib/module/component/snow-safe-area.js.map +1 -0
- package/lib/module/component/snow-tabs.js +62 -0
- package/lib/module/component/snow-tabs.js.map +1 -0
- package/lib/module/component/snow-text-button.js +102 -0
- package/lib/module/component/snow-text-button.js.map +1 -0
- package/lib/module/component/snow-text.js +34 -0
- package/lib/module/component/snow-text.js.map +1 -0
- package/lib/module/component/snow-toggle.js +38 -0
- package/lib/module/component/snow-toggle.js.map +1 -0
- package/lib/module/context/snow-focus-context.js +39 -0
- package/lib/module/context/snow-focus-context.js.map +1 -0
- package/lib/module/context/snow-style-context.js +54 -0
- package/lib/module/context/snow-style-context.js.map +1 -0
- package/lib/module/index.js +63 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/snow-app.js +40 -0
- package/lib/module/snow-app.js.map +1 -0
- package/lib/module/snow-style.js +392 -0
- package/lib/module/snow-style.js.map +1 -0
- package/lib/module/snow-ui.js +19 -0
- package/lib/module/snow-ui.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/index.d.ts +42 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +163 -0
- package/src/component/snow-break.js +9 -0
- package/src/component/snow-dropdown.js +64 -0
- package/src/component/snow-fill-view.js +36 -0
- package/src/component/snow-grid.js +74 -0
- package/src/component/snow-header.js +18 -0
- package/src/component/snow-image-button.js +98 -0
- package/src/component/snow-image-grid.js +87 -0
- package/src/component/snow-input.js +47 -0
- package/src/component/snow-label.js +18 -0
- package/src/component/snow-modal.js +46 -0
- package/src/component/snow-range-slider.js +263 -0
- package/src/component/snow-safe-area.js +17 -0
- package/src/component/snow-tabs.js +62 -0
- package/src/component/snow-text-button.js +106 -0
- package/src/component/snow-text.js +31 -0
- package/src/component/snow-toggle.js +32 -0
- package/src/context/snow-focus-context.js +37 -0
- package/src/context/snow-style-context.js +46 -0
- package/src/index.tsx +63 -0
- package/src/snow-app.js +27 -0
- package/src/snow-style.js +399 -0
- package/src/snow-ui.js +16 -0
package/README.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# expo-snowui
|
|
2
|
+
|
|
3
|
+
GUI components and contexts shared by the snowsuite apps
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
```sh
|
|
9
|
+
npm install expo-snowui
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Note that your app needs to use `react-native-tvos` as a dep, not `react-native`.
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
See the example app for how the components work.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export function SnowBreak(props) {
|
|
7
|
+
const {
|
|
8
|
+
SnowStyle
|
|
9
|
+
} = useStyleContext(props);
|
|
10
|
+
return /*#__PURE__*/_jsx(View, {
|
|
11
|
+
style: SnowStyle.component.break
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export default SnowBreak;
|
|
15
|
+
//# sourceMappingURL=snow-break.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","useStyleContext","jsx","_jsx","SnowBreak","props","SnowStyle","style","component","break"],"sourceRoot":"../../../src","sources":["component/snow-break.js"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,SAASC,eAAe,QAAQ,kCAA+B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE/D,OAAO,SAASC,SAASA,CAACC,KAAK,EAAE;EAC7B,MAAM;IAAEC;EAAU,CAAC,GAAGL,eAAe,CAACI,KAAK,CAAC;EAC5C,oBAAOF,IAAA,CAACH,IAAI;IAACO,KAAK,EAAED,SAAS,CAACE,SAAS,CAACC;EAAM,CAAE,CAAC;AACrD;AAEA,eAAeL,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View } from 'react-native';
|
|
4
|
+
import SnowGrid from "./snow-grid.js";
|
|
5
|
+
import SnowTextButton from "./snow-text-button.js";
|
|
6
|
+
import SnowLabel from "./snow-label.js";
|
|
7
|
+
|
|
8
|
+
/* spread props
|
|
9
|
+
nextFocusLeft
|
|
10
|
+
nextFocusRight
|
|
11
|
+
nextFocusUp
|
|
12
|
+
nextFocusDown
|
|
13
|
+
snowStyle
|
|
14
|
+
*/
|
|
15
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
export function SnowDropdown(props) {
|
|
17
|
+
if (!props.options) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (props.valueIndex === undefined || props.valueIndex === null) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const choose = chosenIndex => {
|
|
24
|
+
if (props.onValueChange) {
|
|
25
|
+
props.onValueChange(chosenIndex);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
const renderItem = (item, itemIndex) => {
|
|
29
|
+
let selected = false;
|
|
30
|
+
if (!props.skipDefaultFocus) {
|
|
31
|
+
if (itemIndex === props.valueIndex) {
|
|
32
|
+
selected = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return /*#__PURE__*/_jsx(SnowTextButton, {
|
|
36
|
+
...props,
|
|
37
|
+
fade: selected && props.fade,
|
|
38
|
+
selected: selected,
|
|
39
|
+
title: item.name ? item.name : item,
|
|
40
|
+
onPress: () => {
|
|
41
|
+
choose(item.index ? item.index : itemIndex);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
if (props.title) {
|
|
46
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
47
|
+
children: [/*#__PURE__*/_jsx(SnowLabel, {
|
|
48
|
+
center: true,
|
|
49
|
+
children: props.title
|
|
50
|
+
}), /*#__PURE__*/_jsx(SnowGrid, {
|
|
51
|
+
shouldFocus: props.shouldFocus,
|
|
52
|
+
itemsPerRow: props.itemsPerRow,
|
|
53
|
+
items: props.options,
|
|
54
|
+
renderItem: renderItem
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
return /*#__PURE__*/_jsx(SnowGrid, {
|
|
59
|
+
shouldFocus: props.shouldFocus,
|
|
60
|
+
itemsPerRow: props.itemsPerRow,
|
|
61
|
+
items: props.options,
|
|
62
|
+
renderItem: renderItem
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export default SnowDropdown;
|
|
66
|
+
//# sourceMappingURL=snow-dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","SnowGrid","SnowTextButton","SnowLabel","jsx","_jsx","jsxs","_jsxs","SnowDropdown","props","options","valueIndex","undefined","choose","chosenIndex","onValueChange","renderItem","item","itemIndex","selected","skipDefaultFocus","fade","title","name","onPress","index","children","center","shouldFocus","itemsPerRow","items"],"sourceRoot":"../../../src","sources":["component/snow-dropdown.js"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,OAAOC,QAAQ,MAAM,gBAAa;AAClC,OAAOC,cAAc,MAAM,uBAAoB;AAC/C,OAAOC,SAAS,MAAM,iBAAc;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQA,OAAO,SAASC,YAAYA,CAACC,KAAK,EAAE;EAChC,IAAI,CAACA,KAAK,CAACC,OAAO,EAAE;IAChB,OAAO,IAAI;EACf;EACA,IAAID,KAAK,CAACE,UAAU,KAAKC,SAAS,IAAIH,KAAK,CAACE,UAAU,KAAK,IAAI,EAAE;IAC7D,OAAO,IAAI;EACf;EAEA,MAAME,MAAM,GAAIC,WAAW,IAAK;IAC5B,IAAIL,KAAK,CAACM,aAAa,EAAE;MACrBN,KAAK,CAACM,aAAa,CAACD,WAAW,CAAC;IACpC;EACJ,CAAC;EAED,MAAME,UAAU,GAAGA,CAACC,IAAI,EAAEC,SAAS,KAAK;IACpC,IAAIC,QAAQ,GAAG,KAAK;IACpB,IAAI,CAACV,KAAK,CAACW,gBAAgB,EAAE;MACzB,IAAIF,SAAS,KAAKT,KAAK,CAACE,UAAU,EAAE;QAChCQ,QAAQ,GAAG,IAAI;MACnB;IACJ;IACA,oBAAOd,IAAA,CAACH,cAAc;MAAA,GACdO,KAAK;MACTY,IAAI,EAAEF,QAAQ,IAAIV,KAAK,CAACY,IAAK;MAC7BF,QAAQ,EAAEA,QAAS;MACnBG,KAAK,EAAEL,IAAI,CAACM,IAAI,GAAGN,IAAI,CAACM,IAAI,GAAGN,IAAK;MACpCO,OAAO,EAAEA,CAAA,KAAM;QAAEX,MAAM,CAACI,IAAI,CAACQ,KAAK,GAAGR,IAAI,CAACQ,KAAK,GAAGP,SAAS,CAAC;MAAC;IAAE,CAAE,CAAC;EAC1E,CAAC;EAED,IAAIT,KAAK,CAACa,KAAK,EAAE;IACb,oBAAOf,KAAA,CAACP,IAAI;MAAA0B,QAAA,gBACRrB,IAAA,CAACF,SAAS;QAACwB,MAAM;QAAAD,QAAA,EAAEjB,KAAK,CAACa;MAAK,CAAY,CAAC,eAC3CjB,IAAA,CAACJ,QAAQ;QACL2B,WAAW,EAAEnB,KAAK,CAACmB,WAAY;QAC/BC,WAAW,EAAEpB,KAAK,CAACoB,WAAY;QAC/BC,KAAK,EAAErB,KAAK,CAACC,OAAQ;QACrBM,UAAU,EAAEA;MAAW,CAC1B,CAAC;IAAA,CACA,CAAC;EACX;EACA,oBACIX,IAAA,CAACJ,QAAQ;IACL2B,WAAW,EAAEnB,KAAK,CAACmB,WAAY;IAC/BC,WAAW,EAAEpB,KAAK,CAACoB,WAAY;IAC/BC,KAAK,EAAErB,KAAK,CAACC,OAAQ;IACrBM,UAAU,EAAEA;EAAW,CAC1B,CAAC;AAEV;AAEA,eAAeR,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { ScrollView, View } from 'react-native';
|
|
4
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
export function SnowFillView(props) {
|
|
7
|
+
// FlatList often overflows outside of the viewport without enabling scrolling.
|
|
8
|
+
// This commonly happens when any parent container is not set to flex: 1
|
|
9
|
+
const {
|
|
10
|
+
SnowStyle
|
|
11
|
+
} = useStyleContext(props);
|
|
12
|
+
if (props.scroll) {
|
|
13
|
+
let viewStyle = [SnowStyle.component.fillView.default];
|
|
14
|
+
let scrollStyle = [];
|
|
15
|
+
if (props.flexStart) {
|
|
16
|
+
scrollStyle = [SnowStyle.component.fillView.flexStart];
|
|
17
|
+
}
|
|
18
|
+
if (props.style) {
|
|
19
|
+
viewStyle.push(props.style);
|
|
20
|
+
}
|
|
21
|
+
return /*#__PURE__*/_jsx(ScrollView, {
|
|
22
|
+
style: viewStyle,
|
|
23
|
+
contentContainerStyle: scrollStyle,
|
|
24
|
+
children: props.children
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
let style = [SnowStyle.component.fillView.default];
|
|
28
|
+
if (props.flexStart) {
|
|
29
|
+
style.push(SnowStyle.component.fillView.flexStart);
|
|
30
|
+
}
|
|
31
|
+
if (props.style) {
|
|
32
|
+
style.push(props.style);
|
|
33
|
+
}
|
|
34
|
+
return /*#__PURE__*/_jsx(View, {
|
|
35
|
+
style: style,
|
|
36
|
+
children: props.children
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export default SnowFillView;
|
|
40
|
+
//# sourceMappingURL=snow-fill-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ScrollView","View","useStyleContext","jsx","_jsx","SnowFillView","props","SnowStyle","scroll","viewStyle","component","fillView","default","scrollStyle","flexStart","style","push","contentContainerStyle","children"],"sourceRoot":"../../../src","sources":["component/snow-fill-view.js"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,eAAe,QAAQ,kCAA+B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE/D,OAAO,SAASC,YAAYA,CAACC,KAAK,EAAE;EAChC;EACA;EACA,MAAM;IAAEC;EAAU,CAAC,GAAGL,eAAe,CAACI,KAAK,CAAC;EAC5C,IAAIA,KAAK,CAACE,MAAM,EAAE;IACd,IAAIC,SAAS,GAAG,CAACF,SAAS,CAACG,SAAS,CAACC,QAAQ,CAACC,OAAO,CAAC;IACtD,IAAIC,WAAW,GAAG,EAAE;IACpB,IAAIP,KAAK,CAACQ,SAAS,EAAE;MACjBD,WAAW,GAAG,CAACN,SAAS,CAACG,SAAS,CAACC,QAAQ,CAACG,SAAS,CAAC;IAC1D;IACA,IAAIR,KAAK,CAACS,KAAK,EAAE;MACbN,SAAS,CAACO,IAAI,CAACV,KAAK,CAACS,KAAK,CAAC;IAC/B;IACA,oBAAOX,IAAA,CAACJ,UAAU;MACde,KAAK,EAAEN,SAAU;MACjBQ,qBAAqB,EAAEJ,WAAY;MACnCK,QAAQ,EAAEZ,KAAK,CAACY;IAAS,CAC5B,CAAC;EACN;EAEA,IAAIH,KAAK,GAAG,CAACR,SAAS,CAACG,SAAS,CAACC,QAAQ,CAACC,OAAO,CAAC;EAClD,IAAIN,KAAK,CAACQ,SAAS,EAAE;IACjBC,KAAK,CAACC,IAAI,CAACT,SAAS,CAACG,SAAS,CAACC,QAAQ,CAACG,SAAS,CAAC;EACtD;EACA,IAAIR,KAAK,CAACS,KAAK,EAAE;IACbA,KAAK,CAACC,IAAI,CAACV,KAAK,CAACS,KAAK,CAAC;EAC3B;EACA,oBACIX,IAAA,CAACH,IAAI;IAACc,KAAK,EAAEA,KAAM;IAACG,QAAQ,EAAEZ,KAAK,CAACY;EAAS,CAAE,CAAC;AAExD;AAEA,eAAeb,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View, FlatList } from 'react-native';
|
|
5
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function SnowGrid(props) {
|
|
8
|
+
if (!props.items && !props.children) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
let items = props.items;
|
|
12
|
+
if (!props.items) {
|
|
13
|
+
// Without this, if a ternary `{x?x:null}` nullable component will leave a gap in the grid
|
|
14
|
+
items = React.Children.toArray(props.children);
|
|
15
|
+
}
|
|
16
|
+
items = items.filter(child => child !== null);
|
|
17
|
+
if (!items || !items.length) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
const {
|
|
21
|
+
SnowStyle
|
|
22
|
+
} = useStyleContext(props);
|
|
23
|
+
let itemsPerRow = 5;
|
|
24
|
+
if (props.itemsPerRow) {
|
|
25
|
+
itemsPerRow = props.itemsPerRow;
|
|
26
|
+
}
|
|
27
|
+
let itemStyle = [{
|
|
28
|
+
flexBasis: `${100 / itemsPerRow}%`
|
|
29
|
+
}];
|
|
30
|
+
let gridStyle = [];
|
|
31
|
+
if (props.gridStyle) {
|
|
32
|
+
gridStyle.push(props.gridStyle);
|
|
33
|
+
}
|
|
34
|
+
if (props.short) {
|
|
35
|
+
gridStyle.push(SnowStyle.component.grid.short);
|
|
36
|
+
}
|
|
37
|
+
let renderItem = (item, itemIndex) => {
|
|
38
|
+
return item;
|
|
39
|
+
};
|
|
40
|
+
if (props.renderItem) {
|
|
41
|
+
renderItem = props.renderItem;
|
|
42
|
+
}
|
|
43
|
+
let columnStyle = null;
|
|
44
|
+
if (itemsPerRow > 1) {
|
|
45
|
+
// If you try to style the column when 1 item per row, flat list throws an error
|
|
46
|
+
columnStyle = SnowStyle.component.grid.list;
|
|
47
|
+
}
|
|
48
|
+
return /*#__PURE__*/_jsx(View, {
|
|
49
|
+
style: gridStyle,
|
|
50
|
+
children: /*#__PURE__*/_jsx(FlatList, {
|
|
51
|
+
scrollEnabled: props.scroll === true,
|
|
52
|
+
numColumns: itemsPerRow,
|
|
53
|
+
contentContainerStyle: SnowStyle.component.grid.list,
|
|
54
|
+
columnWrapperStyle: columnStyle,
|
|
55
|
+
data: items,
|
|
56
|
+
renderItem: ({
|
|
57
|
+
item,
|
|
58
|
+
index,
|
|
59
|
+
separators
|
|
60
|
+
}) => {
|
|
61
|
+
return /*#__PURE__*/_jsx(View, {
|
|
62
|
+
style: itemStyle,
|
|
63
|
+
children: renderItem(item, index)
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
export default SnowGrid;
|
|
70
|
+
//# sourceMappingURL=snow-grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","FlatList","useStyleContext","jsx","_jsx","SnowGrid","props","items","children","Children","toArray","filter","child","length","SnowStyle","itemsPerRow","itemStyle","flexBasis","gridStyle","push","short","component","grid","renderItem","item","itemIndex","columnStyle","list","style","scrollEnabled","scroll","numColumns","contentContainerStyle","columnWrapperStyle","data","index","separators"],"sourceRoot":"../../../src","sources":["component/snow-grid.js"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,IAAI,EACJC,QAAQ,QACL,cAAc;AAErB,SAASC,eAAe,QAAQ,kCAA+B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE/D,OAAO,SAASC,QAAQA,CAACC,KAAK,EAAE;EAC5B,IAAI,CAACA,KAAK,CAACC,KAAK,IAAI,CAACD,KAAK,CAACE,QAAQ,EAAE;IACjC,OAAO,IAAI;EACf;EACA,IAAID,KAAK,GAAGD,KAAK,CAACC,KAAK;EACvB,IAAI,CAACD,KAAK,CAACC,KAAK,EAAE;IACd;IACAA,KAAK,GAAGR,KAAK,CAACU,QAAQ,CAACC,OAAO,CAACJ,KAAK,CAACE,QAAQ,CAAC;EAClD;EACAD,KAAK,GAAGA,KAAK,CAACI,MAAM,CAACC,KAAK,IAAIA,KAAK,KAAK,IAAI,CAAC;EAC7C,IAAI,CAACL,KAAK,IAAI,CAACA,KAAK,CAACM,MAAM,EAAE;IACzB,OAAO,IAAI;EACf;EAEA,MAAM;IAAEC;EAAU,CAAC,GAAGZ,eAAe,CAACI,KAAK,CAAC;EAG5C,IAAIS,WAAW,GAAG,CAAC;EACnB,IAAIT,KAAK,CAACS,WAAW,EAAE;IACnBA,WAAW,GAAGT,KAAK,CAACS,WAAW;EACnC;EAEA,IAAIC,SAAS,GAAG,CACZ;IAAEC,SAAS,EAAE,GAAG,GAAG,GAAGF,WAAW;EAAI,CAAC,CACzC;EACD,IAAIG,SAAS,GAAG,EAAE;EAClB,IAAIZ,KAAK,CAACY,SAAS,EAAE;IACjBA,SAAS,CAACC,IAAI,CAACb,KAAK,CAACY,SAAS,CAAC;EACnC;EAEA,IAAIZ,KAAK,CAACc,KAAK,EAAE;IACbF,SAAS,CAACC,IAAI,CAACL,SAAS,CAACO,SAAS,CAACC,IAAI,CAACF,KAAK,CAAC;EAClD;EAEA,IAAIG,UAAU,GAAGA,CAACC,IAAI,EAAEC,SAAS,KAAK;IAClC,OAAOD,IAAI;EACf,CAAC;EACD,IAAIlB,KAAK,CAACiB,UAAU,EAAE;IAClBA,UAAU,GAAGjB,KAAK,CAACiB,UAAU;EACjC;EACA,IAAIG,WAAW,GAAG,IAAI;EACtB,IAAIX,WAAW,GAAG,CAAC,EAAE;IACjB;IACAW,WAAW,GAAGZ,SAAS,CAACO,SAAS,CAACC,IAAI,CAACK,IAAI;EAC/C;EACA,oBACIvB,IAAA,CAACJ,IAAI;IAAC4B,KAAK,EAAEV,SAAU;IAAAV,QAAA,eACnBJ,IAAA,CAACH,QAAQ;MACL4B,aAAa,EAAEvB,KAAK,CAACwB,MAAM,KAAK,IAAK;MACrCC,UAAU,EAAEhB,WAAY;MACxBiB,qBAAqB,EAAElB,SAAS,CAACO,SAAS,CAACC,IAAI,CAACK,IAAK;MACrDM,kBAAkB,EAAEP,WAAY;MAChCQ,IAAI,EAAE3B,KAAM;MACZgB,UAAU,EAAEA,CAAC;QAAEC,IAAI;QAAEW,KAAK;QAAEC;MAAW,CAAC,KAAK;QACzC,oBACIhC,IAAA,CAACJ,IAAI;UAAC4B,KAAK,EAAEZ,SAAU;UAAAR,QAAA,EAClBe,UAAU,CAACC,IAAI,EAAEW,KAAK;QAAC,CACtB,CAAC;MAEf;IAAE,CACL;EAAC,CACC,CAAC;AAEhB;AAEA,eAAe9B,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Text, View } from 'react-native';
|
|
4
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
5
|
+
import SnowText from "./snow-text.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function SnowHeader(props) {
|
|
8
|
+
const {
|
|
9
|
+
SnowStyle
|
|
10
|
+
} = useStyleContext(props);
|
|
11
|
+
return /*#__PURE__*/_jsx(SnowText, {
|
|
12
|
+
skipDefault: true,
|
|
13
|
+
center: props.center,
|
|
14
|
+
noSelect: props.noSelect,
|
|
15
|
+
style: SnowStyle.component.header,
|
|
16
|
+
children: props.children
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export default SnowHeader;
|
|
20
|
+
//# sourceMappingURL=snow-header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Text","View","useStyleContext","SnowText","jsx","_jsx","SnowHeader","props","SnowStyle","skipDefault","center","noSelect","style","component","header","children"],"sourceRoot":"../../../src","sources":["component/snow-header.js"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,OAAOC,QAAQ,MAAM,gBAAa;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElC,OAAO,SAASC,UAAUA,CAACC,KAAK,EAAE;EAC9B,MAAM;IAAEC;EAAU,CAAC,GAAGN,eAAe,CAACK,KAAK,CAAC;EAC5C,oBACIF,IAAA,CAACF,QAAQ;IACLM,WAAW;IACXC,MAAM,EAAEH,KAAK,CAACG,MAAO;IACrBC,QAAQ,EAAEJ,KAAK,CAACI,QAAS;IACzBC,KAAK,EAAEJ,SAAS,CAACK,SAAS,CAACC,MAAO;IAClCC,QAAQ,EAAER,KAAK,CAACQ;EAAS,CAC5B,CAAC;AAEV;AAEA,eAAeT,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { TouchableOpacity, View, Platform } from 'react-native';
|
|
5
|
+
import SnowText from "./snow-text.js";
|
|
6
|
+
import { Image } from 'expo-image';
|
|
7
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
8
|
+
|
|
9
|
+
/* spread props
|
|
10
|
+
nextFocusLeft
|
|
11
|
+
nextFocusRight
|
|
12
|
+
nextFocusUp
|
|
13
|
+
nextFocusDown
|
|
14
|
+
onPress
|
|
15
|
+
onLongPress
|
|
16
|
+
*/
|
|
17
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
|
+
export function SnowImageButton(props) {
|
|
19
|
+
const {
|
|
20
|
+
SnowStyle
|
|
21
|
+
} = useStyleContext(props);
|
|
22
|
+
const [focused, setFocused] = React.useState(false);
|
|
23
|
+
const touchRef = React.useRef(null);
|
|
24
|
+
React.useEffect(() => {
|
|
25
|
+
if (props.shouldFocus) {
|
|
26
|
+
touchRef.current.focus();
|
|
27
|
+
}
|
|
28
|
+
}, []);
|
|
29
|
+
let fontStyle = [SnowStyle.component.imageButton.text];
|
|
30
|
+
let title = props.title;
|
|
31
|
+
if (title && title.length > 20) {
|
|
32
|
+
fontStyle.push(SnowStyle.component.imageButton.smallText);
|
|
33
|
+
}
|
|
34
|
+
if (title && title.length > 40) {
|
|
35
|
+
title = title.substring(0, 40) + '...';
|
|
36
|
+
}
|
|
37
|
+
const wrapperStyle = [SnowStyle.component.imageButton.wrapper];
|
|
38
|
+
const imageStyle = [SnowStyle.component.imageButton.image];
|
|
39
|
+
if (props.wide) {
|
|
40
|
+
wrapperStyle.push(SnowStyle.component.imageButton.wrapperWide);
|
|
41
|
+
imageStyle.push(SnowStyle.component.imageButton.imageWide);
|
|
42
|
+
}
|
|
43
|
+
if (props.square) {
|
|
44
|
+
wrapperStyle.push(SnowStyle.component.imageButton.wrapperSquare);
|
|
45
|
+
imageStyle.push(SnowStyle.component.imageButton.imageSquare);
|
|
46
|
+
}
|
|
47
|
+
let textWrapperStyle = [SnowStyle.component.imageButton.textWrapper];
|
|
48
|
+
if (props.dull) {
|
|
49
|
+
textWrapperStyle.push(SnowStyle.component.imageButton.dull);
|
|
50
|
+
}
|
|
51
|
+
if (props.selected) {
|
|
52
|
+
wrapperStyle.push(SnowStyle.component.imageButton.selected);
|
|
53
|
+
textWrapperStyle.push(SnowStyle.component.imageButton.selected);
|
|
54
|
+
}
|
|
55
|
+
if (focused && Platform.isTV) {
|
|
56
|
+
wrapperStyle.push(SnowStyle.component.imageButton.focused);
|
|
57
|
+
textWrapperStyle.push(SnowStyle.component.imageButton.focused);
|
|
58
|
+
}
|
|
59
|
+
let imageSource = null;
|
|
60
|
+
if (props.imageUrl) {
|
|
61
|
+
imageSource = {
|
|
62
|
+
uri: props.imageUrl
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (props.imageSource) {
|
|
66
|
+
imageSource = props.imageSource;
|
|
67
|
+
}
|
|
68
|
+
return /*#__PURE__*/_jsx(View, {
|
|
69
|
+
children: /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
70
|
+
...props,
|
|
71
|
+
ref: touchRef,
|
|
72
|
+
activeOpacity: 1.0,
|
|
73
|
+
onFocus: () => {
|
|
74
|
+
setFocused(true);
|
|
75
|
+
},
|
|
76
|
+
onBlur: () => {
|
|
77
|
+
setFocused(false);
|
|
78
|
+
},
|
|
79
|
+
style: wrapperStyle,
|
|
80
|
+
focusable: true,
|
|
81
|
+
hasTVPreferredFocus: props.shouldFocus,
|
|
82
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
83
|
+
style: imageStyle,
|
|
84
|
+
contentFit: "contain",
|
|
85
|
+
source: imageSource,
|
|
86
|
+
placeholder: props.placeholder
|
|
87
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
88
|
+
style: textWrapperStyle,
|
|
89
|
+
children: /*#__PURE__*/_jsx(SnowText, {
|
|
90
|
+
style: fontStyle,
|
|
91
|
+
children: title
|
|
92
|
+
})
|
|
93
|
+
})]
|
|
94
|
+
})
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
export default SnowImageButton;
|
|
98
|
+
//# sourceMappingURL=snow-image-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","TouchableOpacity","View","Platform","SnowText","Image","useStyleContext","jsx","_jsx","jsxs","_jsxs","SnowImageButton","props","SnowStyle","focused","setFocused","useState","touchRef","useRef","useEffect","shouldFocus","current","focus","fontStyle","component","imageButton","text","title","length","push","smallText","substring","wrapperStyle","wrapper","imageStyle","image","wide","wrapperWide","imageWide","square","wrapperSquare","imageSquare","textWrapperStyle","textWrapper","dull","selected","isTV","imageSource","imageUrl","uri","children","ref","activeOpacity","onFocus","onBlur","style","focusable","hasTVPreferredFocus","contentFit","source","placeholder"],"sourceRoot":"../../../src","sources":["component/snow-image-button.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import SnowGrid from "./snow-grid.js";
|
|
6
|
+
import SnowImageButton from "./snow-image-button.js";
|
|
7
|
+
import SnowLabel from "./snow-label.js";
|
|
8
|
+
|
|
9
|
+
/* spread props
|
|
10
|
+
snowStyle
|
|
11
|
+
nextFocusLeft
|
|
12
|
+
nextFocusRight
|
|
13
|
+
nextFocusUp
|
|
14
|
+
nextFocusDown
|
|
15
|
+
*/
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
export function SnowImageGrid(props) {
|
|
18
|
+
if (!props.items || !props.items.length) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const [toggledItems, setToggledItems] = React.useState({});
|
|
22
|
+
const itemsPerRow = props.itemsPerRow || 5;
|
|
23
|
+
const renderItem = (item, itemIndex) => {
|
|
24
|
+
let imageUrl = null;
|
|
25
|
+
if (props.getItemImageUrl) {
|
|
26
|
+
imageUrl = props.getItemImageUrl(item);
|
|
27
|
+
}
|
|
28
|
+
let imageSource = null;
|
|
29
|
+
if (props.getItemImageSource) {
|
|
30
|
+
imageSource = props.getItemImageSource(item);
|
|
31
|
+
}
|
|
32
|
+
const itemName = props.getItemName(item);
|
|
33
|
+
let toggled = toggledItems.hasOwnProperty(item.id);
|
|
34
|
+
let isDull = false;
|
|
35
|
+
if (!props.disableToggle) {
|
|
36
|
+
if (props.getItemToggleStatus && props.getItemToggleStatus(item)) {
|
|
37
|
+
isDull = true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return /*#__PURE__*/_jsx(SnowImageButton, {
|
|
41
|
+
...props,
|
|
42
|
+
wide: props.wideImage,
|
|
43
|
+
dull: isDull,
|
|
44
|
+
imageUrl: imageUrl,
|
|
45
|
+
imageSource: imageSource,
|
|
46
|
+
onPress: () => {
|
|
47
|
+
if (props.onPress) {
|
|
48
|
+
props.onPress(item);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
onLongPress: () => {
|
|
52
|
+
if (props.onLongPress) {
|
|
53
|
+
props.onLongPress(item);
|
|
54
|
+
}
|
|
55
|
+
if (props.longPressToggle) {
|
|
56
|
+
setToggledItems(prev => {
|
|
57
|
+
let result = {
|
|
58
|
+
...prev
|
|
59
|
+
};
|
|
60
|
+
if (toggled) {
|
|
61
|
+
delete result[item.id];
|
|
62
|
+
} else {
|
|
63
|
+
result[item.id] = true;
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
title: itemName
|
|
70
|
+
});
|
|
71
|
+
};
|
|
72
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
73
|
+
children: [props.title ? /*#__PURE__*/_jsxs(SnowLabel, {
|
|
74
|
+
children: [props.title, " (", props.items.length, ")"]
|
|
75
|
+
}) : null, /*#__PURE__*/_jsx(SnowGrid, {
|
|
76
|
+
shouldFocus: props.shouldFocus,
|
|
77
|
+
items: props.items,
|
|
78
|
+
renderItem: renderItem,
|
|
79
|
+
itemsPerRow: itemsPerRow
|
|
80
|
+
})]
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
export default SnowImageGrid;
|
|
84
|
+
//# sourceMappingURL=snow-image-grid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","SnowGrid","SnowImageButton","SnowLabel","jsx","_jsx","jsxs","_jsxs","SnowImageGrid","props","items","length","toggledItems","setToggledItems","useState","itemsPerRow","renderItem","item","itemIndex","imageUrl","getItemImageUrl","imageSource","getItemImageSource","itemName","getItemName","toggled","hasOwnProperty","id","isDull","disableToggle","getItemToggleStatus","wide","wideImage","dull","onPress","onLongPress","longPressToggle","prev","result","title","children","shouldFocus"],"sourceRoot":"../../../src","sources":["component/snow-image-grid.js"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { TextInput } from 'react-native';
|
|
5
|
+
import { useDebouncedCallback } from 'use-debounce';
|
|
6
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
7
|
+
|
|
8
|
+
/* spreadble props
|
|
9
|
+
secureTextEntry
|
|
10
|
+
nextFocusLeft
|
|
11
|
+
nextFocusRight
|
|
12
|
+
nextFocusUp
|
|
13
|
+
nextFocusDown
|
|
14
|
+
*/
|
|
15
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
|
+
export function SnowInput(props) {
|
|
17
|
+
const {
|
|
18
|
+
SnowStyle,
|
|
19
|
+
SnowConfig
|
|
20
|
+
} = useStyleContext(props);
|
|
21
|
+
let textStyle = [SnowStyle.component.input.text];
|
|
22
|
+
if (props.short) {
|
|
23
|
+
textStyle.push(SnowStyle.component.input.small);
|
|
24
|
+
}
|
|
25
|
+
let onDebounce = null;
|
|
26
|
+
if (props.onDebounce) {
|
|
27
|
+
onDebounce = useDebouncedCallback(props.onDebounce, SnowConfig.inputDebounceMilliseconds);
|
|
28
|
+
}
|
|
29
|
+
return /*#__PURE__*/_jsx(TextInput, {
|
|
30
|
+
...props,
|
|
31
|
+
style: textStyle,
|
|
32
|
+
focusable: true,
|
|
33
|
+
editable: true,
|
|
34
|
+
onChangeText: val => {
|
|
35
|
+
if (props.onValueChange) {
|
|
36
|
+
props.onValueChange(val);
|
|
37
|
+
}
|
|
38
|
+
if (onDebounce) {
|
|
39
|
+
onDebounce(val);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
onSubmitEditing: () => {
|
|
43
|
+
if (props.onSubmit) {
|
|
44
|
+
props.onSubmit();
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
value: props.value
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
export default SnowInput;
|
|
51
|
+
//# sourceMappingURL=snow-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","TextInput","useDebouncedCallback","useStyleContext","jsx","_jsx","SnowInput","props","SnowStyle","SnowConfig","textStyle","component","input","text","short","push","small","onDebounce","inputDebounceMilliseconds","style","focusable","editable","onChangeText","val","onValueChange","onSubmitEditing","onSubmit","value"],"sourceRoot":"../../../src","sources":["component/snow-input.js"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,oBAAoB,QAAQ,cAAc;AACnD,SAASC,eAAe,QAAQ,kCAA+B;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AANA,SAAAC,GAAA,IAAAC,IAAA;AAQA,OAAO,SAASC,SAASA,CAACC,KAAK,EAAE;EAC7B,MAAM;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAGN,eAAe,CAACI,KAAK,CAAC;EACxD,IAAIG,SAAS,GAAG,CAACF,SAAS,CAACG,SAAS,CAACC,KAAK,CAACC,IAAI,CAAC;EAChD,IAAIN,KAAK,CAACO,KAAK,EAAE;IACbJ,SAAS,CAACK,IAAI,CAACP,SAAS,CAACG,SAAS,CAACC,KAAK,CAACI,KAAK,CAAC;EACnD;EAEA,IAAIC,UAAU,GAAG,IAAI;EACrB,IAAIV,KAAK,CAACU,UAAU,EAAE;IAClBA,UAAU,GAAGf,oBAAoB,CAACK,KAAK,CAACU,UAAU,EAAER,UAAU,CAACS,yBAAyB,CAAC;EAC7F;EACA,oBAAOb,IAAA,CAACJ,SAAS;IAAA,GACTM,KAAK;IACTY,KAAK,EAAET,SAAU;IACjBU,SAAS,EAAE,IAAK;IAChBC,QAAQ,EAAE,IAAK;IACfC,YAAY,EAAGC,GAAG,IAAK;MACnB,IAAIhB,KAAK,CAACiB,aAAa,EAAE;QACrBjB,KAAK,CAACiB,aAAa,CAACD,GAAG,CAAC;MAC5B;MACA,IAAIN,UAAU,EAAE;QACZA,UAAU,CAACM,GAAG,CAAC;MACnB;IACJ,CAAE;IACFE,eAAe,EAAEA,CAAA,KAAM;MACnB,IAAIlB,KAAK,CAACmB,QAAQ,EAAE;QAChBnB,KAAK,CAACmB,QAAQ,CAAC,CAAC;MACpB;IACJ,CAAE;IACFC,KAAK,EAAEpB,KAAK,CAACoB;EAAM,CACtB,CAAC;AACN;AAEA,eAAerB,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { View, Text } from 'react-native';
|
|
4
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
5
|
+
import SnowText from "./snow-text.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function SnowLabel(props) {
|
|
8
|
+
const {
|
|
9
|
+
SnowStyle
|
|
10
|
+
} = useStyleContext(props);
|
|
11
|
+
return /*#__PURE__*/_jsx(SnowText, {
|
|
12
|
+
skipDefault: true,
|
|
13
|
+
center: props.center,
|
|
14
|
+
noSelect: props.noSelect,
|
|
15
|
+
style: SnowStyle.component.label,
|
|
16
|
+
children: props.children
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export default SnowLabel;
|
|
20
|
+
//# sourceMappingURL=snow-label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","Text","useStyleContext","SnowText","jsx","_jsx","SnowLabel","props","SnowStyle","skipDefault","center","noSelect","style","component","label","children"],"sourceRoot":"../../../src","sources":["component/snow-label.js"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,eAAe,QAAQ,kCAA+B;AAC/D,OAAOC,QAAQ,MAAM,gBAAa;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAElC,OAAO,SAASC,SAASA,CAACC,KAAK,EAAE;EAC7B,MAAM;IAAEC;EAAU,CAAC,GAAGN,eAAe,CAACK,KAAK,CAAC;EAC5C,oBACIF,IAAA,CAACF,QAAQ;IACLM,WAAW;IACXC,MAAM,EAAEH,KAAK,CAACG,MAAO;IACrBC,QAAQ,EAAEJ,KAAK,CAACI,QAAS;IACzBC,KAAK,EAAEJ,SAAS,CAACK,SAAS,CAACC,KAAM;IACjCC,QAAQ,EAAER,KAAK,CAACQ;EAAS,CAC5B,CAAC;AAEV;AAEA,eAAeT,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Modal } from 'react-native';
|
|
4
|
+
import SnowFillView from "./snow-fill-view.js";
|
|
5
|
+
import { useStyleContext } from "../context/snow-style-context.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export function SnowModal(props) {
|
|
8
|
+
const {
|
|
9
|
+
SnowStyle
|
|
10
|
+
} = useStyleContext(props);
|
|
11
|
+
let style = [SnowStyle.component.modal.prompt];
|
|
12
|
+
if (props.transparent) {
|
|
13
|
+
style.push(SnowStyle.component.modal.transparent);
|
|
14
|
+
}
|
|
15
|
+
if (props.center) {
|
|
16
|
+
style.push(SnowStyle.component.modal.center);
|
|
17
|
+
}
|
|
18
|
+
if (props.contentStyle) {
|
|
19
|
+
style.push(props.contentStyle);
|
|
20
|
+
}
|
|
21
|
+
if (props.wrapper === false) {
|
|
22
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
23
|
+
navigationBarTranslucent: true,
|
|
24
|
+
statusBarTranslucent: true,
|
|
25
|
+
transparent: props.transparent,
|
|
26
|
+
style: style,
|
|
27
|
+
onRequestClose: props.onRequestClose,
|
|
28
|
+
children: props.children
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
let modalStyle = [SnowStyle.component.modal.prompt];
|
|
32
|
+
if (props.modalStyle) {
|
|
33
|
+
modalStyle.push(modalStyle);
|
|
34
|
+
}
|
|
35
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
36
|
+
style: modalStyle,
|
|
37
|
+
navigationBarTranslucent: true,
|
|
38
|
+
statusBarTranslucent: true,
|
|
39
|
+
transparent: props.transparent,
|
|
40
|
+
onRequestClose: props.onRequestClose,
|
|
41
|
+
children: /*#__PURE__*/_jsx(SnowFillView, {
|
|
42
|
+
scroll: props.scroll,
|
|
43
|
+
children: props.children,
|
|
44
|
+
style: style
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
export default SnowModal;
|
|
49
|
+
//# sourceMappingURL=snow-modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Modal","SnowFillView","useStyleContext","jsx","_jsx","SnowModal","props","SnowStyle","style","component","modal","prompt","transparent","push","center","contentStyle","wrapper","navigationBarTranslucent","statusBarTranslucent","onRequestClose","children","modalStyle","scroll"],"sourceRoot":"../../../src","sources":["component/snow-modal.js"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AACpC,OAAOC,YAAY,MAAM,qBAAkB;AAC3C,SAASC,eAAe,QAAQ,kCAA+B;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAE/D,OAAO,SAASC,SAASA,CAACC,KAAK,EAAE;EAC7B,MAAM;IAAEC;EAAU,CAAC,GAAGL,eAAe,CAACI,KAAK,CAAC;EAE5C,IAAIE,KAAK,GAAG,CAACD,SAAS,CAACE,SAAS,CAACC,KAAK,CAACC,MAAM,CAAC;EAC9C,IAAIL,KAAK,CAACM,WAAW,EAAE;IACnBJ,KAAK,CAACK,IAAI,CAACN,SAAS,CAACE,SAAS,CAACC,KAAK,CAACE,WAAW,CAAC;EACrD;EACA,IAAIN,KAAK,CAACQ,MAAM,EAAE;IACdN,KAAK,CAACK,IAAI,CAACN,SAAS,CAACE,SAAS,CAACC,KAAK,CAACI,MAAM,CAAC;EAChD;EACA,IAAIR,KAAK,CAACS,YAAY,EAAE;IACpBP,KAAK,CAACK,IAAI,CAACP,KAAK,CAACS,YAAY,CAAC;EAClC;EACA,IAAIT,KAAK,CAACU,OAAO,KAAK,KAAK,EAAE;IACzB,oBACIZ,IAAA,CAACJ,KAAK;MACFiB,wBAAwB;MACxBC,oBAAoB;MACpBN,WAAW,EAAEN,KAAK,CAACM,WAAY;MAC/BJ,KAAK,EAAEA,KAAM;MACbW,cAAc,EAAEb,KAAK,CAACa,cAAe;MACrCC,QAAQ,EAAEd,KAAK,CAACc;IAAS,CAAE,CAAC;EAExC;EACA,IAAIC,UAAU,GAAG,CAACd,SAAS,CAACE,SAAS,CAACC,KAAK,CAACC,MAAM,CAAC;EACnD,IAAIL,KAAK,CAACe,UAAU,EAAE;IAClBA,UAAU,CAACR,IAAI,CAACQ,UAAU,CAAC;EAC/B;EACA,oBAAOjB,IAAA,CAACJ,KAAK;IACTQ,KAAK,EAAEa,UAAW;IAClBJ,wBAAwB;IACxBC,oBAAoB;IACpBN,WAAW,EAAEN,KAAK,CAACM,WAAY;IAC/BO,cAAc,EAAEb,KAAK,CAACa,cAAe;IAAAC,QAAA,eACrChB,IAAA,CAACH,YAAY;MACTqB,MAAM,EAAEhB,KAAK,CAACgB,MAAO;MACrBF,QAAQ,EAAEd,KAAK,CAACc,QAAS;MACzBZ,KAAK,EAAEA;IAAM,CAAE;EAAC,CACjB,CAAC;AACZ;AAEA,eAAeH,SAAS","ignoreList":[]}
|