@fluentui-react-native/experimental-shadow 0.2.76 → 0.2.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.json CHANGED
@@ -2,7 +2,28 @@
2
2
  "name": "@fluentui-react-native/experimental-shadow",
3
3
  "entries": [
4
4
  {
5
- "date": "Tue, 14 Mar 2023 20:46:38 GMT",
5
+ "date": "Sat, 18 Mar 2023 17:18:20 GMT",
6
+ "tag": "@fluentui-react-native/experimental-shadow_v0.2.77",
7
+ "version": "0.2.77",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "beachball",
12
+ "package": "@fluentui-react-native/experimental-shadow",
13
+ "comment": "Bump @fluentui-react-native/framework to v0.9.7",
14
+ "commit": "601309349ca2bc18780a3fb71c59337f7c26f9bf"
15
+ },
16
+ {
17
+ "author": "beachball",
18
+ "package": "@fluentui-react-native/experimental-shadow",
19
+ "comment": "Bump @fluentui-react-native/pressable to v0.9.65",
20
+ "commit": "601309349ca2bc18780a3fb71c59337f7c26f9bf"
21
+ }
22
+ ]
23
+ }
24
+ },
25
+ {
26
+ "date": "Tue, 14 Mar 2023 20:50:45 GMT",
6
27
  "tag": "@fluentui-react-native/experimental-shadow_v0.2.76",
7
28
  "version": "0.2.76",
8
29
  "comments": {
package/CHANGELOG.md CHANGED
@@ -1,12 +1,21 @@
1
1
  # Change Log - @fluentui-react-native/experimental-shadow
2
2
 
3
- This log was last generated on Tue, 14 Mar 2023 20:46:38 GMT and should not be manually modified.
3
+ This log was last generated on Sat, 18 Mar 2023 17:18:20 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## 0.2.77
8
+
9
+ Sat, 18 Mar 2023 17:18:20 GMT
10
+
11
+ ### Patches
12
+
13
+ - Bump @fluentui-react-native/framework to v0.9.7
14
+ - Bump @fluentui-react-native/pressable to v0.9.65
15
+
7
16
  ## 0.2.76
8
17
 
9
- Tue, 14 Mar 2023 20:46:38 GMT
18
+ Tue, 14 Mar 2023 20:50:45 GMT
10
19
 
11
20
  ### Patches
12
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui-react-native/experimental-shadow",
3
- "version": "0.2.76",
3
+ "version": "0.2.77",
4
4
  "description": "A cross-platform Shadow component using the Fluent Design System",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -22,8 +22,8 @@
22
22
  "directory": "packages/experimental/Shadow"
23
23
  },
24
24
  "dependencies": {
25
- "@fluentui-react-native/framework": "0.9.6",
26
- "@fluentui-react-native/pressable": "0.9.64",
25
+ "@fluentui-react-native/framework": "0.9.7",
26
+ "@fluentui-react-native/pressable": "0.9.65",
27
27
  "@fluentui-react-native/theme-types": "0.31.0"
28
28
  },
29
29
  "devDependencies": {
package/lib/Shadow.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import type { ShadowProps } from './Shadow.types';
2
- export declare const Shadow: import("@fluentui-react-native/framework").ComposableFunction<ShadowProps>;
3
- export default Shadow;
4
- //# sourceMappingURL=Shadow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Shadow.d.ts","sourceRoot":"","sources":["../src/Shadow.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,eAAO,MAAM,MAAM,4EAyBjB,CAAC;AAqHH,eAAe,MAAM,CAAC"}
package/lib/Shadow.js DELETED
@@ -1,73 +0,0 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __rest = (this && this.__rest) || function (s, e) {
13
- var t = {};
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
- t[p] = s[p];
16
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
- t[p[i]] = s[p[i]];
20
- }
21
- return t;
22
- };
23
- import * as React from 'react';
24
- import { View } from 'react-native';
25
- import { mergeProps, stagedComponent } from '@fluentui-react-native/framework';
26
- import { memoize } from '@fluentui-react-native/framework';
27
- import { shadowName } from './Shadow.types';
28
- import { getShadowTokenStyleSet } from './shadowStyle';
29
- export var Shadow = stagedComponent(function (props) {
30
- return function (final, children) {
31
- if (!props.shadowToken) {
32
- return React.createElement(React.Fragment, null, children);
33
- }
34
- var childrenArray = React.Children.toArray(children);
35
- var child = childrenArray[0];
36
- if (__DEV__) {
37
- if (childrenArray.length !== 1) {
38
- console.warn('Shadow must only have one child');
39
- }
40
- }
41
- var _a = child.props, childStyle = _a.style, restOfChildProps = __rest(_a, ["style"]);
42
- var shadowViewStyleProps = getStylePropsForShadowViews(childStyle, props.shadowToken);
43
- var innerShadowViewProps = mergeProps(restOfChildProps, shadowViewStyleProps.inner);
44
- var outerShadowViewProps = mergeProps(final, shadowViewStyleProps.outer);
45
- var childWithInnerShadow = React.cloneElement(child, innerShadowViewProps);
46
- return React.createElement(View, __assign({}, outerShadowViewProps), childWithInnerShadow);
47
- };
48
- });
49
- var getStylePropsForShadowViews = memoize(getStylePropsForShadowViewsWorker);
50
- function getStylePropsForShadowViewsWorker(childStyleProps, shadowToken) {
51
- if (childStyleProps === void 0) { childStyleProps = {}; }
52
- var shadowTokenStyleSet = getShadowTokenStyleSet(shadowToken);
53
- if (__DEV__) {
54
- if (!childStyleProps.backgroundColor) {
55
- console.warn('The View that the Shadow is set on must have a background color set');
56
- }
57
- }
58
- var borderBottomWidth = childStyleProps.borderBottomWidth, borderEndWidth = childStyleProps.borderEndWidth, borderLeftWidth = childStyleProps.borderLeftWidth, borderRightWidth = childStyleProps.borderRightWidth, borderStartWidth = childStyleProps.borderStartWidth, borderTopWidth = childStyleProps.borderTopWidth, borderWidth = childStyleProps.borderWidth, margin = childStyleProps.margin, marginBottom = childStyleProps.marginBottom, marginEnd = childStyleProps.marginEnd, marginHorizontal = childStyleProps.marginHorizontal, marginLeft = childStyleProps.marginLeft, marginRight = childStyleProps.marginRight, marginStart = childStyleProps.marginStart, marginTop = childStyleProps.marginTop, marginVertical = childStyleProps.marginVertical, padding = childStyleProps.padding, paddingBottom = childStyleProps.paddingBottom, paddingEnd = childStyleProps.paddingEnd, paddingHorizontal = childStyleProps.paddingHorizontal, paddingLeft = childStyleProps.paddingLeft, paddingRight = childStyleProps.paddingRight, paddingStart = childStyleProps.paddingStart, paddingTop = childStyleProps.paddingTop, paddingVertical = childStyleProps.paddingVertical, alignItems = childStyleProps.alignItems, flexWrap = childStyleProps.flexWrap, flexDirection = childStyleProps.flexDirection, start = childStyleProps.start, end = childStyleProps.end, left = childStyleProps.left, right = childStyleProps.right, top = childStyleProps.top, bottom = childStyleProps.bottom, restOfChildStyleProps = __rest(childStyleProps, ["borderBottomWidth", "borderEndWidth", "borderLeftWidth", "borderRightWidth", "borderStartWidth", "borderTopWidth", "borderWidth", "margin", "marginBottom", "marginEnd", "marginHorizontal", "marginLeft", "marginRight", "marginStart", "marginTop", "marginVertical", "padding", "paddingBottom", "paddingEnd", "paddingHorizontal", "paddingLeft", "paddingRight", "paddingStart", "paddingTop", "paddingVertical", "alignItems", "flexWrap", "flexDirection", "start", "end", "left", "right", "top", "bottom"]);
59
- // Remove undefined properties, otherwise every prop will be added and be set to
60
- // undefined, which can cause unexpected behaviour with some of the styles
61
- var innerStyle = removeUndefinedProperties(__assign(__assign({ borderBottomWidth: borderBottomWidth, borderEndWidth: borderEndWidth, borderLeftWidth: borderLeftWidth, borderRightWidth: borderRightWidth, borderStartWidth: borderStartWidth, borderTopWidth: borderTopWidth, borderWidth: borderWidth, padding: padding, paddingBottom: paddingBottom, paddingEnd: paddingEnd, paddingHorizontal: paddingHorizontal, paddingLeft: paddingLeft, paddingRight: paddingRight, paddingStart: paddingStart, paddingTop: paddingTop, paddingVertical: paddingVertical, alignItems: alignItems, flexWrap: flexWrap, flexDirection: flexDirection }, shadowTokenStyleSet.key), restOfChildStyleProps));
62
- var outerStyle = removeUndefinedProperties(__assign(__assign({ margin: margin, marginBottom: marginBottom, marginEnd: marginEnd, marginHorizontal: marginHorizontal, marginLeft: marginLeft, marginRight: marginRight, marginStart: marginStart, marginTop: marginTop, marginVertical: marginVertical, start: start, end: end, left: left, right: right, top: top, bottom: bottom }, shadowTokenStyleSet.ambient), restOfChildStyleProps));
63
- return { inner: { style: innerStyle }, outer: { style: outerStyle } };
64
- }
65
- var removeUndefinedProperties = function (object) {
66
- return Object.fromEntries(Object.entries(object).filter(function (_a) {
67
- var _ = _a[0], v = _a[1];
68
- return v != null;
69
- }));
70
- };
71
- Shadow.displayName = shadowName;
72
- export default Shadow;
73
- //# sourceMappingURL=Shadow.js.map
package/lib/Shadow.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Shadow.js","sourceRoot":"","sources":["../src/Shadow.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import type { ViewProps } from 'react-native';
2
- import type { ShadowToken } from '@fluentui-react-native/theme-types';
3
- export declare const shadowName = "Shadow";
4
- export interface ShadowProps extends ViewProps {
5
- shadowToken?: ShadowToken;
6
- }
7
- //# sourceMappingURL=Shadow.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Shadow.types.d.ts","sourceRoot":"","sources":["../src/Shadow.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEtE,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,MAAM,WAAW,WAAY,SAAQ,SAAS;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B"}
@@ -1,2 +0,0 @@
1
- export var shadowName = 'Shadow';
2
- //# sourceMappingURL=Shadow.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Shadow.types.js","sourceRoot":"","sources":["../src/Shadow.types.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,IAAM,UAAU,GAAG,QAAQ,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Shadow.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Shadow.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Shadow.test.tsx"],"names":[],"mappings":""}
@@ -1,110 +0,0 @@
1
- import * as React from 'react';
2
- import { Text, View } from 'react-native';
3
- import { mergeStyles, useFluentTheme } from '@fluentui-react-native/framework';
4
- import { Pressable } from '@fluentui-react-native/pressable';
5
- import { checkRenderConsistency, checkReRender } from '@fluentui-react-native/test-tools';
6
- import * as renderer from 'react-test-renderer';
7
- import { Shadow } from '../Shadow';
8
- var backgroundColor = { backgroundColor: 'red' };
9
- var TestShadow = function (props) {
10
- var theme = useFluentTheme();
11
- return (React.createElement(Shadow, { shadowToken: theme.shadows[props.depth] },
12
- React.createElement(View, { style: backgroundColor },
13
- React.createElement(Text, null, props.displayText))));
14
- };
15
- var TestPressableWithAndWithoutShadow = function () {
16
- var theme = useFluentTheme();
17
- return (React.createElement(View, null,
18
- React.createElement(Shadow, { shadowToken: theme.shadows['shadow16'] },
19
- React.createElement(Pressable, { style: backgroundColor })),
20
- React.createElement(View, null,
21
- React.createElement(Pressable, { style: backgroundColor }))));
22
- };
23
- var TestShadowOnChildViewWithProps = function (props) {
24
- var theme = useFluentTheme();
25
- return (React.createElement(Shadow, { shadowToken: theme.shadows['shadow16'] },
26
- React.createElement(View, { style: mergeStyles(props.childViewStyleProps, backgroundColor) },
27
- React.createElement(Text, null, JSON.stringify(props.childViewStyleProps)))));
28
- };
29
- describe('Shadow component tests', function () {
30
- beforeAll(function () {
31
- jest.mock('react-native/Libraries/Utilities/Platform', function () { return ({
32
- OS: 'macos',
33
- select: function () { return null; },
34
- }); });
35
- });
36
- it('Shadow (depth=2)', function () {
37
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Shadow (depth=2)", depth: "shadow2" })).toJSON();
38
- expect(tree).toMatchSnapshot();
39
- });
40
- it('Shadow (depth=4)', function () {
41
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Shadow (depth=4)", depth: "shadow4" })).toJSON();
42
- expect(tree).toMatchSnapshot();
43
- });
44
- it('Shadow (depth=8)', function () {
45
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Shadow (depth=8)", depth: "shadow8" })).toJSON();
46
- expect(tree).toMatchSnapshot();
47
- });
48
- it('Shadow (depth=16)', function () {
49
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Shadow (depth=16)", depth: "shadow16" })).toJSON();
50
- expect(tree).toMatchSnapshot();
51
- });
52
- it('Shadow (depth=28)', function () {
53
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Shadow (depth=28)", depth: "shadow28" })).toJSON();
54
- expect(tree).toMatchSnapshot();
55
- });
56
- it('Shadow (depth=64)', function () {
57
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Shadow (depth=64)", depth: "shadow64" })).toJSON();
58
- expect(tree).toMatchSnapshot();
59
- });
60
- it('Brand shadow (depth=2)', function () {
61
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Brand shadow (depth=2)", depth: "shadow2brand" })).toJSON();
62
- expect(tree).toMatchSnapshot();
63
- });
64
- it('Brand shadow (depth=4)', function () {
65
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Brand shadow (depth=4)", depth: "shadow4brand" })).toJSON();
66
- expect(tree).toMatchSnapshot();
67
- });
68
- it('Brand shadow (depth=8)', function () {
69
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Brand shadow (depth=8)", depth: "shadow8brand" })).toJSON();
70
- expect(tree).toMatchSnapshot();
71
- });
72
- it('Brand shadow (depth=16)', function () {
73
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Brand shadow (depth=16)", depth: "shadow16brand" })).toJSON();
74
- expect(tree).toMatchSnapshot();
75
- });
76
- it('Brand shadow (depth=28)', function () {
77
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Brand shadow (depth=28)", depth: "shadow28brand" })).toJSON();
78
- expect(tree).toMatchSnapshot();
79
- });
80
- it('Brand shadow (depth=64)', function () {
81
- var tree = renderer.create(React.createElement(TestShadow, { displayText: "Brand shadow (depth=64)", depth: "shadow64brand" })).toJSON();
82
- expect(tree).toMatchSnapshot();
83
- });
84
- it('Pressable that has a shadow vs. pressable without shadow', function () {
85
- var tree = renderer.create(React.createElement(TestPressableWithAndWithoutShadow, null)).toJSON();
86
- expect(tree).toMatchSnapshot();
87
- });
88
- it('Shadow on a child with margin and padding', function () {
89
- var tree = renderer.create(React.createElement(TestShadowOnChildViewWithProps, { childViewStyleProps: { margin: 2, padding: 2 } })).toJSON();
90
- expect(tree).toMatchSnapshot();
91
- });
92
- it('Shadow on a child with border radius', function () {
93
- var tree = renderer.create(React.createElement(TestShadowOnChildViewWithProps, { childViewStyleProps: { borderRadius: 2 } })).toJSON();
94
- expect(tree).toMatchSnapshot();
95
- });
96
- it('Shadow on a child with border width', function () {
97
- var tree = renderer.create(React.createElement(TestShadowOnChildViewWithProps, { childViewStyleProps: { borderWidth: 2 } })).toJSON();
98
- expect(tree).toMatchSnapshot();
99
- });
100
- it('Shadow simple rendering does not invalidate styling', function () {
101
- checkRenderConsistency(function () { return React.createElement(TestShadow, { displayText: "Shadow render test", depth: "shadow2" }); }, 2);
102
- });
103
- it('Shadow re-renders correctly', function () {
104
- checkReRender(function () { return React.createElement(TestShadow, { displayText: "Shadow render twice test", depth: "shadow2" }); }, 2);
105
- });
106
- afterAll(function () {
107
- jest.unmock('react-native/Libraries/Utilities/Platform');
108
- });
109
- });
110
- //# sourceMappingURL=Shadow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Shadow.test.js","sourceRoot":"","sources":["../../src/__tests__/Shadow.test.tsx"],"names":[],"mappings":"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"}
package/lib/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export { Shadow } from './Shadow';
2
- export { ShadowProps } from './Shadow.types';
3
- export { getShadowTokenStyleSet } from './shadowStyle';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
package/lib/index.js DELETED
@@ -1,3 +0,0 @@
1
- export { Shadow } from './Shadow';
2
- export { getShadowTokenStyleSet } from './shadowStyle';
3
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,24 +0,0 @@
1
- import type { ShadowToken } from '@fluentui-react-native/theme-types';
2
- export declare const getShadowTokenStyleSet: typeof getShadowTokenStyleSetWorker;
3
- declare function getShadowTokenStyleSetWorker(shadowToken: ShadowToken): {
4
- key: {
5
- shadowColor: string;
6
- shadowOpacity: number;
7
- shadowRadius: number;
8
- shadowOffset: {
9
- width: number;
10
- height: number;
11
- };
12
- };
13
- ambient: {
14
- shadowColor: string;
15
- shadowOpacity: number;
16
- shadowRadius: number;
17
- shadowOffset: {
18
- width: number;
19
- height: number;
20
- };
21
- };
22
- };
23
- export {};
24
- //# sourceMappingURL=shadowStyle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadowStyle.d.ts","sourceRoot":"","sources":["../src/shadowStyle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAWtE,eAAO,MAAM,sBAAsB,qCAAwC,CAAC;AAE5E,iBAAS,4BAA4B,CAAC,WAAW,EAAE,WAAW;;;;;;;;;;;;;;;;;;;EAyB7D"}
@@ -1,46 +0,0 @@
1
- import { Platform } from 'react-native';
2
- import { memoize } from '@fluentui-react-native/framework';
3
- /**
4
- * For iOS/macOS, the blur property from the token is not the same as the shadow radius value,
5
- * it needs to be divided by 2 to achieve the same effect.
6
- *
7
- * See https://github.com/microsoft/apple-ux-guide/blob/gh-pages/Shadows.md
8
- */
9
- var appleShadowBlurAdjustment = 0.5;
10
- var defaultShadowBlurAdjustment = 1;
11
- export var getShadowTokenStyleSet = memoize(getShadowTokenStyleSetWorker);
12
- function getShadowTokenStyleSetWorker(shadowToken) {
13
- var keyShadow = shadowToken.key;
14
- var ambientShadow = shadowToken.ambient;
15
- var shadowBlurAdjustment = Platform.OS === 'macos' || Platform.OS === 'ios' ? appleShadowBlurAdjustment : defaultShadowBlurAdjustment;
16
- return {
17
- key: {
18
- shadowColor: shadowColorFromRGBAColor(keyShadow.color),
19
- shadowOpacity: shadowOpacityFromRGBAColor(keyShadow.color),
20
- shadowRadius: keyShadow.blur * shadowBlurAdjustment,
21
- shadowOffset: {
22
- width: keyShadow.x,
23
- height: keyShadow.y,
24
- },
25
- },
26
- ambient: {
27
- shadowColor: shadowColorFromRGBAColor(ambientShadow.color),
28
- shadowOpacity: shadowOpacityFromRGBAColor(ambientShadow.color),
29
- shadowRadius: ambientShadow.blur * shadowBlurAdjustment,
30
- shadowOffset: {
31
- width: ambientShadow.x,
32
- height: ambientShadow.y,
33
- },
34
- },
35
- };
36
- }
37
- var shadowColorFromRGBAColor = function (rgbaColor) {
38
- return rgbaColor.toString().substring(0, 7);
39
- };
40
- var shadowOpacityFromRGBAColor = function (rgbaColor) {
41
- var opacityAsHex = '0x' + rgbaColor.toString().substring(7);
42
- var opacityAsDecimal = Number(opacityAsHex) / 255.0;
43
- // Round to two decimal places
44
- return Math.round(opacityAsDecimal * 100) / 100;
45
- };
46
- //# sourceMappingURL=shadowStyle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shadowStyle.js","sourceRoot":"","sources":["../src/shadowStyle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAG3D;;;;;GAKG;AACH,IAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,IAAM,2BAA2B,GAAG,CAAC,CAAC;AAEtC,MAAM,CAAC,IAAM,sBAAsB,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE5E,SAAS,4BAA4B,CAAC,WAAwB;IAC5D,IAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC;IAClC,IAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC;IAC1C,IAAM,oBAAoB,GAAG,QAAQ,CAAC,EAAE,KAAK,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAExI,OAAO;QACL,GAAG,EAAE;YACH,WAAW,EAAE,wBAAwB,CAAC,SAAS,CAAC,KAAK,CAAC;YACtD,aAAa,EAAE,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC;YAC1D,YAAY,EAAE,SAAS,CAAC,IAAI,GAAG,oBAAoB;YACnD,YAAY,EAAE;gBACZ,KAAK,EAAE,SAAS,CAAC,CAAC;gBAClB,MAAM,EAAE,SAAS,CAAC,CAAC;aACpB;SACF;QACD,OAAO,EAAE;YACP,WAAW,EAAE,wBAAwB,CAAC,aAAa,CAAC,KAAK,CAAC;YAC1D,aAAa,EAAE,0BAA0B,CAAC,aAAa,CAAC,KAAK,CAAC;YAC9D,YAAY,EAAE,aAAa,CAAC,IAAI,GAAG,oBAAoB;YACvD,YAAY,EAAE;gBACZ,KAAK,EAAE,aAAa,CAAC,CAAC;gBACtB,MAAM,EAAE,aAAa,CAAC,CAAC;aACxB;SACF;KACF,CAAC;AACJ,CAAC;AAED,IAAM,wBAAwB,GAAG,UAAC,SAAqB;IACrD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,IAAM,0BAA0B,GAAG,UAAC,SAAqB;IACvD,IAAM,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,IAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC;IAEtD,8BAA8B;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAClD,CAAC,CAAC"}