@dereekb/util 9.1.1 → 9.3.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/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [9.3.0](https://github.com/dereekb/dbx-components/compare/v9.2.0-dev...v9.3.0) (2022-08-20)
6
+
7
+
8
+ ### Features
9
+
10
+ * added DbxMapboxMapStore ([9397b9a](https://github.com/dereekb/dbx-components/commit/9397b9a5951abe909d4539176d266c2934189034))
11
+ * added IsWithinLatLngBoundFunction() ([c986e5b](https://github.com/dereekb/dbx-components/commit/c986e5bfe1742319526f0d1ec62e3c3a09c47d2d))
12
+ * added Mapbox functions to DbxMapboxStore ([9a9f5f4](https://github.com/dereekb/dbx-components/commit/9a9f5f4a22088be4a5c170dffe6cc2eb9f66731b))
13
+
14
+
15
+
16
+ # [9.2.0](https://github.com/dereekb/dbx-components/compare/v9.1.2-dev...v9.2.0) (2022-08-18)
17
+
18
+
19
+ ### Features
20
+
21
+ * added DbxFormMapboxLatLngFieldComponent ([5ce4fbb](https://github.com/dereekb/dbx-components/commit/5ce4fbb470b056c5a92da119cc29fd867ca7fe60))
22
+
23
+
24
+
25
+ ## [9.1.2](https://github.com/dereekb/dbx-components/compare/v9.1.1-dev...v9.1.2) (2022-08-16)
26
+
27
+
28
+
5
29
  ## [9.1.1](https://github.com/dereekb/dbx-components/compare/v9.1.0-dev...v9.1.1) (2022-08-16)
6
30
 
7
31
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/util",
3
- "version": "9.1.1",
3
+ "version": "9.3.0",
4
4
  "type": "commonjs",
5
5
  "exports": {
6
6
  ".": {
@@ -0,0 +1,87 @@
1
+ import { Rectangle } from './vector';
2
+ import { LatLngPoint, LatLngPointInput, LatLngPrecision, LatLngPointFunction } from './point';
3
+ export declare type LatLngBoundSouthWestPoint = LatLngPoint;
4
+ export declare type LatLngBoundNothEastPoint = LatLngPoint;
5
+ export interface LatLngBound {
6
+ sw: LatLngBoundSouthWestPoint;
7
+ ne: LatLngBoundNothEastPoint;
8
+ }
9
+ export declare function isLatLngBound(input: LatLngBound | unknown): input is LatLngBound;
10
+ export declare function isSameLatLngBound(a: LatLngBound, b: LatLngBound): boolean;
11
+ /**
12
+ * Returns true if the input LatLngBound wrap across the wrapped longitudinal edge of a map.
13
+ *
14
+ * @param bound
15
+ * @returns
16
+ */
17
+ export declare function latLngBoundWrapsMap(bound: LatLngBound): boolean;
18
+ export declare function latLngBoundNorthEastPoint(bound: LatLngBound): LatLngPoint;
19
+ export declare function latLngBoundNorthWestPoint(bound: LatLngBound): LatLngPoint;
20
+ export declare function latLngBoundSouthEastPoint(bound: LatLngBound): LatLngPoint;
21
+ export declare function latLngBoundSouthWestPoint(bound: LatLngBound): LatLngPoint;
22
+ export declare function latLngBoundCenterPoint(bound: LatLngBound): LatLngPoint;
23
+ export declare function latLngBoundNorthBound(bound: LatLngBound): number;
24
+ export declare function latLngBoundSouthBound(bound: LatLngBound): number;
25
+ export declare function latLngBoundEastBound(bound: LatLngBound): number;
26
+ export declare function latLngBoundWestBound(bound: LatLngBound): number;
27
+ /**
28
+ * Tuple of the sw corner and the north east point.
29
+ */
30
+ export declare type LatLngBoundTuple = [LatLngBoundSouthWestPoint | LatLngPointInput, LatLngBoundNothEastPoint | LatLngPointInput];
31
+ export declare type LatLngBoundTuplePoints = [LatLngPointInput, LatLngPointInput, LatLngPointInput, LatLngPointInput];
32
+ export declare type LatLngBoundInput = LatLngBound | LatLngBoundTuple | LatLngBoundTuplePoints;
33
+ export declare function latLngBoundTuple(input: LatLngBoundSouthWestPoint | LatLngBoundInput, inputNe?: LatLngBoundNothEastPoint): LatLngBoundTuple;
34
+ /**
35
+ * Converts the input to a LatLngString
36
+ */
37
+ export declare type LatLngBoundTupleFunction = ((input: LatLngBoundSouthWestPoint | LatLngBoundInput, inputNe?: LatLngBoundNothEastPoint) => LatLngBoundTuple) & ((sw: LatLngBoundSouthWestPoint, ne: LatLngBoundNothEastPoint) => LatLngBoundTuple) & ((bound: LatLngBoundInput) => LatLngBoundTuple);
38
+ export declare type LatLngBoundTupleFunctionConfig = LatLngBoundFunctionConfig;
39
+ /**
40
+ * Creates a LatLngBoundTupleFunction
41
+ *
42
+ * @param precision
43
+ * @returns
44
+ */
45
+ export declare function latLngBoundTupleFunction(config?: LatLngBoundTupleFunctionConfig): LatLngBoundTupleFunction;
46
+ export declare function latLngBound(input: LatLngBoundSouthWestPoint | LatLngBoundInput, inputNe?: LatLngBoundNothEastPoint): LatLngBound;
47
+ /**
48
+ * Converts the input to a LatLngBound
49
+ */
50
+ export declare type LatLngBoundFunction = ((input: LatLngBoundSouthWestPoint | LatLngBoundInput, inputNe?: LatLngBoundNothEastPoint) => LatLngBound) & ((sw: LatLngBoundSouthWestPoint, ne: LatLngBoundNothEastPoint) => LatLngBound) & ((bound: LatLngBoundInput) => LatLngBound);
51
+ export interface LatLngBoundFunctionConfig {
52
+ /**
53
+ * Point function to use for calculations.
54
+ */
55
+ pointFunction?: LatLngPointFunction;
56
+ /**
57
+ * LatLngPrecision to use if pointFunction is not provided.
58
+ */
59
+ precision?: LatLngPrecision;
60
+ }
61
+ export declare function latLngBoundFunction(config?: LatLngBoundFunctionConfig): LatLngBoundFunction;
62
+ /**
63
+ * Function that returns true if the input is entirely within the context's bound.
64
+ */
65
+ export declare type IsWithinLatLngBoundFunction = ((boundOrPoint: LatLngBound | LatLngPoint) => boolean) & {
66
+ readonly _bound: LatLngBound;
67
+ };
68
+ export declare function isWithinLatLngBoundFunction(bound: LatLngBound): IsWithinLatLngBoundFunction;
69
+ export declare function isLatLngBoundWithinLatLngBound(bound: LatLngBound, within: LatLngBound): boolean;
70
+ export declare function isLatLngPointWithinLatLngBound(point: LatLngPoint, within: LatLngBound): boolean;
71
+ /**
72
+ * Function that returns true if the input overlaps the context's bound.
73
+ */
74
+ export declare type OverlapsLatLngBoundFunction = ((boundOrPoint: LatLngBound | LatLngPoint) => boolean) & {
75
+ readonly _bound: LatLngBound;
76
+ };
77
+ export declare function latLngBoundOverlapsLatLngBound(a: LatLngBound, b: LatLngBound): boolean;
78
+ export declare function overlapsLatLngBoundFunction(bound: LatLngBound): OverlapsLatLngBoundFunction;
79
+ export declare const TOTAL_SPAN_OF_LONGITUDE = 360;
80
+ /**
81
+ * "normalizes" the space so that the left -180 longitudinal bound will begin at 360.
82
+ *
83
+ * This turns the latitude/longitude into two rectangles in an arbitrary space that can be safely compared without worrying about wrapping.
84
+ *
85
+ * @param bound
86
+ */
87
+ export declare function boundToRectangle(bound: LatLngBound): Rectangle;
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.boundToRectangle = exports.TOTAL_SPAN_OF_LONGITUDE = exports.overlapsLatLngBoundFunction = exports.latLngBoundOverlapsLatLngBound = exports.isLatLngPointWithinLatLngBound = exports.isLatLngBoundWithinLatLngBound = exports.isWithinLatLngBoundFunction = exports.latLngBoundFunction = exports.latLngBound = exports.latLngBoundTupleFunction = exports.latLngBoundTuple = exports.latLngBoundWestBound = exports.latLngBoundEastBound = exports.latLngBoundSouthBound = exports.latLngBoundNorthBound = exports.latLngBoundCenterPoint = exports.latLngBoundSouthWestPoint = exports.latLngBoundSouthEastPoint = exports.latLngBoundNorthWestPoint = exports.latLngBoundNorthEastPoint = exports.latLngBoundWrapsMap = exports.isSameLatLngBound = exports.isLatLngBound = void 0;
4
+ const vector_1 = require("./vector");
5
+ const point_1 = require("./point");
6
+ function isLatLngBound(input) {
7
+ return typeof input === 'object' && input.sw !== null && input.ne !== null;
8
+ }
9
+ exports.isLatLngBound = isLatLngBound;
10
+ function isSameLatLngBound(a, b) {
11
+ return (0, point_1.isSameLatLngPoint)(a.sw, b.sw) && (0, point_1.isSameLatLngPoint)(a.ne, b.ne);
12
+ }
13
+ exports.isSameLatLngBound = isSameLatLngBound;
14
+ /**
15
+ * Returns true if the input LatLngBound wrap across the wrapped longitudinal edge of a map.
16
+ *
17
+ * @param bound
18
+ * @returns
19
+ */
20
+ function latLngBoundWrapsMap(bound) {
21
+ return bound.sw.lng > bound.ne.lng;
22
+ }
23
+ exports.latLngBoundWrapsMap = latLngBoundWrapsMap;
24
+ function latLngBoundNorthEastPoint(bound) {
25
+ return bound.ne;
26
+ }
27
+ exports.latLngBoundNorthEastPoint = latLngBoundNorthEastPoint;
28
+ function latLngBoundNorthWestPoint(bound) {
29
+ return { lat: bound.ne.lat, lng: bound.sw.lng };
30
+ }
31
+ exports.latLngBoundNorthWestPoint = latLngBoundNorthWestPoint;
32
+ function latLngBoundSouthEastPoint(bound) {
33
+ return { lat: bound.sw.lat, lng: bound.ne.lng };
34
+ }
35
+ exports.latLngBoundSouthEastPoint = latLngBoundSouthEastPoint;
36
+ function latLngBoundSouthWestPoint(bound) {
37
+ return bound.sw;
38
+ }
39
+ exports.latLngBoundSouthWestPoint = latLngBoundSouthWestPoint;
40
+ function latLngBoundCenterPoint(bound) {
41
+ const { sw, ne } = bound;
42
+ const lat = (sw.lng + ne.lng) / 2;
43
+ const lng = (sw.lat + ne.lat) / 2;
44
+ return { lat, lng };
45
+ }
46
+ exports.latLngBoundCenterPoint = latLngBoundCenterPoint;
47
+ function latLngBoundNorthBound(bound) {
48
+ return bound.ne.lat;
49
+ }
50
+ exports.latLngBoundNorthBound = latLngBoundNorthBound;
51
+ function latLngBoundSouthBound(bound) {
52
+ return bound.sw.lat;
53
+ }
54
+ exports.latLngBoundSouthBound = latLngBoundSouthBound;
55
+ function latLngBoundEastBound(bound) {
56
+ return bound.ne.lng;
57
+ }
58
+ exports.latLngBoundEastBound = latLngBoundEastBound;
59
+ function latLngBoundWestBound(bound) {
60
+ return bound.sw.lng;
61
+ }
62
+ exports.latLngBoundWestBound = latLngBoundWestBound;
63
+ // MARK: BoundTuple
64
+ function latLngBoundTuple(input, inputNe) {
65
+ return latLngBoundTupleFunction()(input, inputNe);
66
+ }
67
+ exports.latLngBoundTuple = latLngBoundTuple;
68
+ /**
69
+ * Creates a LatLngBoundTupleFunction
70
+ *
71
+ * @param precision
72
+ * @returns
73
+ */
74
+ function latLngBoundTupleFunction(config) {
75
+ const fn = latLngBoundFunction(config);
76
+ return (input, inputNe) => {
77
+ const latLngBound = fn(input, inputNe);
78
+ return [latLngBound.sw, latLngBound.ne];
79
+ };
80
+ }
81
+ exports.latLngBoundTupleFunction = latLngBoundTupleFunction;
82
+ // MARK: Bound
83
+ function latLngBound(input, inputNe) {
84
+ return latLngBoundFunction()(input, inputNe);
85
+ }
86
+ exports.latLngBound = latLngBound;
87
+ function latLngBoundFunction(config) {
88
+ const { pointFunction, precision } = config !== null && config !== void 0 ? config : {};
89
+ const latLngPoint = pointFunction !== null && pointFunction !== void 0 ? pointFunction : (0, point_1.latLngPointFunction)({ precision });
90
+ return (input, inputNe) => {
91
+ let bound;
92
+ if (Array.isArray(input)) {
93
+ if (input.length === 2) {
94
+ const [sw, ne] = input;
95
+ bound = {
96
+ sw: latLngPoint(sw),
97
+ ne: latLngPoint(ne)
98
+ };
99
+ }
100
+ else if (input.length === 4) {
101
+ const points = input.map(latLngPoint);
102
+ const lats = points.map((x) => x.lat);
103
+ const lngs = points.map((x) => x.lng);
104
+ const minLat = Math.min(...lats);
105
+ const maxLat = Math.max(...lats);
106
+ const minLng = Math.min(...lngs);
107
+ const maxLng = Math.max(...lngs);
108
+ bound = {
109
+ sw: latLngPoint([minLat, minLng]),
110
+ ne: latLngPoint([maxLat, maxLng])
111
+ };
112
+ }
113
+ }
114
+ else if (input && inputNe) {
115
+ bound = { sw: input, ne: inputNe };
116
+ }
117
+ else if (input.sw && input.ne) {
118
+ bound = input;
119
+ }
120
+ if (!bound) {
121
+ throw new Error(`Invalid latLngBound input "${input}" + "${inputNe}"`);
122
+ }
123
+ return bound;
124
+ };
125
+ }
126
+ exports.latLngBoundFunction = latLngBoundFunction;
127
+ function isWithinLatLngBoundFunction(bound) {
128
+ const fn = ((boundOrPoint) => {
129
+ if ((0, point_1.isLatLngPoint)(boundOrPoint)) {
130
+ return isLatLngPointWithinLatLngBound(boundOrPoint, bound);
131
+ }
132
+ else {
133
+ return isLatLngBoundWithinLatLngBound(boundOrPoint, bound);
134
+ }
135
+ });
136
+ fn._bound = bound;
137
+ return fn;
138
+ }
139
+ exports.isWithinLatLngBoundFunction = isWithinLatLngBoundFunction;
140
+ function isLatLngBoundWithinLatLngBound(bound, within) {
141
+ return isLatLngPointWithinLatLngBound(bound.sw, within) && isLatLngPointWithinLatLngBound(bound.ne, within);
142
+ }
143
+ exports.isLatLngBoundWithinLatLngBound = isLatLngBoundWithinLatLngBound;
144
+ function isLatLngPointWithinLatLngBound(point, within) {
145
+ const { sw, ne } = within;
146
+ const latIsBounded = sw.lat <= point.lat && ne.lat <= point.lat;
147
+ if (latIsBounded) {
148
+ if (latLngBoundWrapsMap(within)) {
149
+ // test for map wrapping
150
+ return sw.lng >= point.lng && ne.lat >= point.lng;
151
+ }
152
+ else {
153
+ return sw.lng <= point.lng && ne.lat <= point.lng;
154
+ }
155
+ }
156
+ return false;
157
+ }
158
+ exports.isLatLngPointWithinLatLngBound = isLatLngPointWithinLatLngBound;
159
+ function latLngBoundOverlapsLatLngBound(a, b) {
160
+ return overlapsLatLngBoundFunction(a)(b);
161
+ }
162
+ exports.latLngBoundOverlapsLatLngBound = latLngBoundOverlapsLatLngBound;
163
+ function overlapsLatLngBoundFunction(bound) {
164
+ const a = boundToRectangle(bound);
165
+ const fn = ((boundOrPoint) => {
166
+ if ((0, point_1.isLatLngPoint)(boundOrPoint)) {
167
+ console.log('x', boundOrPoint);
168
+ return isLatLngPointWithinLatLngBound(boundOrPoint, bound);
169
+ }
170
+ else {
171
+ return (0, vector_1.rectangleOverlapsRectangle)(a, boundToRectangle(boundOrPoint));
172
+ }
173
+ });
174
+ fn._bound = bound;
175
+ return fn;
176
+ }
177
+ exports.overlapsLatLngBoundFunction = overlapsLatLngBoundFunction;
178
+ exports.TOTAL_SPAN_OF_LONGITUDE = 360;
179
+ /**
180
+ * "normalizes" the space so that the left -180 longitudinal bound will begin at 360.
181
+ *
182
+ * This turns the latitude/longitude into two rectangles in an arbitrary space that can be safely compared without worrying about wrapping.
183
+ *
184
+ * @param bound
185
+ */
186
+ function boundToRectangle(bound) {
187
+ function pointToVector(point, lngOffset = 0) {
188
+ return { x: point.lng + exports.TOTAL_SPAN_OF_LONGITUDE + lngOffset, y: point.lat };
189
+ }
190
+ let tr;
191
+ let bl;
192
+ if (latLngBoundWrapsMap(bound)) {
193
+ // compute the NE/TR corner first
194
+ tr = pointToVector(bound.ne);
195
+ const swDistanceToBound = bound.sw.lng - 180;
196
+ const neDistanceToBound = bound.ne.lng + 180;
197
+ const totalOffset = neDistanceToBound - swDistanceToBound;
198
+ bl = { x: tr.x - totalOffset, y: bound.sw.lat };
199
+ }
200
+ else {
201
+ tr = pointToVector(bound.ne);
202
+ bl = pointToVector(bound.sw);
203
+ }
204
+ return { bl, tr };
205
+ }
206
+ exports.boundToRectangle = boundToRectangle;
207
+ //# sourceMappingURL=bound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bound.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/bound.ts"],"names":[],"mappings":";;;AAAA,qCAAyE;AAEzE,mCAAqJ;AAUrJ,SAAgB,aAAa,CAAC,KAA4B;IACxD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,KAAqB,CAAC,EAAE,KAAK,IAAI,IAAK,KAAqB,CAAC,EAAE,KAAK,IAAI,CAAC;AAC/G,CAAC;AAFD,sCAEC;AAED,SAAgB,iBAAiB,CAAC,CAAc,EAAE,CAAc;IAC9D,OAAO,IAAA,yBAAiB,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,IAAA,yBAAiB,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAFD,8CAEC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAkB;IACpD,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;AACrC,CAAC;AAFD,kDAEC;AAED,SAAgB,yBAAyB,CAAC,KAAkB;IAC1D,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC;AAFD,8DAEC;AAED,SAAgB,yBAAyB,CAAC,KAAkB;IAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAClD,CAAC;AAFD,8DAEC;AAED,SAAgB,yBAAyB,CAAC,KAAkB;IAC1D,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAClD,CAAC;AAFD,8DAEC;AAED,SAAgB,yBAAyB,CAAC,KAAkB;IAC1D,OAAO,KAAK,CAAC,EAAE,CAAC;AAClB,CAAC;AAFD,8DAEC;AAED,SAAgB,sBAAsB,CAAC,KAAkB;IACvD,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;IACzB,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACtB,CAAC;AALD,wDAKC;AAED,SAAgB,qBAAqB,CAAC,KAAkB;IACtD,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;AACtB,CAAC;AAFD,sDAEC;AAED,SAAgB,qBAAqB,CAAC,KAAkB;IACtD,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;AACtB,CAAC;AAFD,sDAEC;AAED,SAAgB,oBAAoB,CAAC,KAAkB;IACrD,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;AACtB,CAAC;AAFD,oDAEC;AAED,SAAgB,oBAAoB,CAAC,KAAkB;IACrD,OAAO,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC;AACtB,CAAC;AAFD,oDAEC;AASD,mBAAmB;AACnB,SAAgB,gBAAgB,CAAC,KAAmD,EAAE,OAAkC;IACtH,OAAO,wBAAwB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAFD,4CAEC;AASD;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,MAAuC;IAC9E,MAAM,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACvC,OAAO,CAAC,KAAmD,EAAE,OAAkC,EAAE,EAAE;QACjG,MAAM,WAAW,GAAgB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;AACJ,CAAC;AAND,4DAMC;AAED,cAAc;AACd,SAAgB,WAAW,CAAC,KAAmD,EAAE,OAAkC;IACjH,OAAO,mBAAmB,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAFD,kCAEC;AAkBD,SAAgB,mBAAmB,CAAC,MAAkC;IACpE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC;IAClD,MAAM,WAAW,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,IAAA,2BAAmB,EAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,KAAmD,EAAE,OAAkC,EAAE,EAAE;QACjG,IAAI,KAA8B,CAAC;QAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,KAAyB,CAAC;gBAC3C,KAAK,GAAG;oBACN,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;oBACnB,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;iBACpB,CAAC;aACH;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;gBAEjC,KAAK,GAAG;oBACN,EAAE,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACjC,EAAE,EAAE,WAAW,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;iBAClC,CAAC;aACH;SACF;aAAM,IAAI,KAAK,IAAI,OAAO,EAAE;YAC3B,KAAK,GAAG,EAAE,EAAE,EAAE,KAAkC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;SACjE;aAAM,IAAK,KAAqB,CAAC,EAAE,IAAK,KAAqB,CAAC,EAAE,EAAE;YACjE,KAAK,GAAG,KAAoB,CAAC;SAC9B;QAED,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,QAAQ,OAAO,GAAG,CAAC,CAAC;SACxE;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAxCD,kDAwCC;AAOD,SAAgB,2BAA2B,CAAC,KAAkB;IAC5D,MAAM,EAAE,GAAG,CAAC,CAAC,YAAuC,EAAE,EAAE;QACtD,IAAI,IAAA,qBAAa,EAAC,YAAY,CAAC,EAAE;YAC/B,OAAO,8BAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SAC5D;aAAM;YACL,OAAO,8BAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SAC5D;IACH,CAAC,CAAqD,CAAC;IAEtD,EAAuD,CAAC,MAAM,GAAG,KAAK,CAAC;IAExE,OAAO,EAAiC,CAAC;AAC3C,CAAC;AAZD,kEAYC;AAED,SAAgB,8BAA8B,CAAC,KAAkB,EAAE,MAAmB;IACpF,OAAO,8BAA8B,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,8BAA8B,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;AAC9G,CAAC;AAFD,wEAEC;AAED,SAAgB,8BAA8B,CAAC,KAAkB,EAAE,MAAmB;IACpF,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAE1B,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;IAEhE,IAAI,YAAY,EAAE;QAChB,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;YAC/B,wBAAwB;YACxB,OAAO,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;SACnD;aAAM;YACL,OAAO,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC;SACnD;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAfD,wEAeC;AAOD,SAAgB,8BAA8B,CAAC,CAAc,EAAE,CAAc;IAC3E,OAAO,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;AAFD,wEAEC;AAED,SAAgB,2BAA2B,CAAC,KAAkB;IAC5D,MAAM,CAAC,GAAc,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,EAAE,GAAG,CAAC,CAAC,YAAuC,EAAE,EAAE;QACtD,IAAI,IAAA,qBAAa,EAAC,YAAY,CAAC,EAAE;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAC/B,OAAO,8BAA8B,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;SAC5D;aAAM;YACL,OAAO,IAAA,mCAA0B,EAAC,CAAC,EAAE,gBAAgB,CAAC,YAAY,CAAC,CAAC,CAAC;SACtE;IACH,CAAC,CAAqD,CAAC;IAEtD,EAAuD,CAAC,MAAM,GAAG,KAAK,CAAC;IAExE,OAAO,EAAiC,CAAC;AAC3C,CAAC;AAfD,kEAeC;AAEY,QAAA,uBAAuB,GAAG,GAAG,CAAC;AAE3C;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAAC,KAAkB;IACjD,SAAS,aAAa,CAAC,KAAkB,EAAE,YAAoB,CAAC;QAC9D,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,+BAAuB,GAAG,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,EAAU,CAAC;IACf,IAAI,EAAU,CAAC;IAEf,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE;QAC9B,iCAAiC;QACjC,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAE7B,MAAM,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;QAC7C,MAAM,iBAAiB,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC;QAC7C,MAAM,WAAW,GAAG,iBAAiB,GAAG,iBAAiB,CAAC;QAE1D,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;KACjD;SAAM;QACL,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7B,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC9B;IAED,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACpB,CAAC;AAvBD,4CAuBC"}
@@ -1,3 +1,4 @@
1
+ export * from './bound';
1
2
  export * from './build';
2
3
  export * from './decision';
3
4
  export * from './equal';
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./bound"), exports);
4
5
  tslib_1.__exportStar(require("./build"), exports);
5
6
  tslib_1.__exportStar(require("./decision"), exports);
6
7
  tslib_1.__exportStar(require("./equal"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,qDAA2B;AAC3B,kDAAwB;AACxB,oDAA0B;AAC1B,gDAAsB;AACtB,uDAA6B;AAC7B,kDAAwB;AACxB,qDAA2B;AAC3B,gDAAsB;AACtB,gDAAsB;AACtB,kDAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/index.ts"],"names":[],"mappings":";;;AAAA,kDAAwB;AACxB,kDAAwB;AACxB,qDAA2B;AAC3B,kDAAwB;AACxB,oDAA0B;AAC1B,gDAAsB;AACtB,uDAA6B;AAC7B,kDAAwB;AACxB,qDAA2B;AAC3B,gDAAsB;AACtB,gDAAsB;AACtB,kDAAwB"}
@@ -16,7 +16,8 @@ export interface LatLngPoint {
16
16
  lat: Latitude;
17
17
  lng: Longitude;
18
18
  }
19
- export declare function latLngPoint(lat: Latitude, lng: Longitude): LatLngPoint;
19
+ export declare function isLatLngPoint(input: LatLngPoint | unknown): input is LatLngPoint;
20
+ export declare function isSameLatLngPoint(a: LatLngPoint, b: LatLngPoint): boolean;
20
21
  export declare function isValidLatitude(lat: Latitude): boolean;
21
22
  export declare function isValidLongitude(lat: Longitude): boolean;
22
23
  export declare function defaultLatLngPoint(): LatLngPoint;
@@ -27,10 +28,25 @@ export declare function defaultLatLngPoint(): LatLngPoint;
27
28
  * @returns
28
29
  */
29
30
  export declare function isValidLatLngPoint(input: LatLngPoint): boolean;
31
+ export declare type LatLngTuple = [Latitude, Longitude];
32
+ export declare function latLngTuple(lat: LatLngPointInput, lng?: Longitude): LatLngTuple;
33
+ /**
34
+ * Converts the input to a LatLngString
35
+ */
36
+ export declare type LatLngTupleFunction = ((lat: LatLngPointInput, lng?: Longitude) => LatLngTuple) & ((latLng: string | LatLngTuple) => LatLngTuple) & ((latLng: LatLngPoint) => LatLngTuple) & ((lat: Latitude, lng?: Longitude) => LatLngTuple);
37
+ export declare type LatLngTupleFunctionConfig = LatLngPointFunctionConfig;
38
+ /**
39
+ * Creates a LatLngTupleFunction
40
+ *
41
+ * @param precision
42
+ * @returns
43
+ */
44
+ export declare function latLngTupleFunction(config?: LatLngTupleFunctionConfig): LatLngTupleFunction;
30
45
  /**
31
46
  * A lat,lng encoded value.
32
47
  */
33
48
  export declare type LatLngString = `${Latitude},${Longitude}`;
49
+ export declare type LatLngPointInput = Latitude | LatLngPoint | LatLngString | LatLngTuple | string;
34
50
  export declare type LatLngPrecision = NumberPrecision;
35
51
  /**
36
52
  * Creates a LatLngString from the input.
@@ -41,12 +57,13 @@ export declare type LatLngPrecision = NumberPrecision;
41
57
  export declare function latLngString(lat: Latitude, lng?: Longitude): LatLngString;
42
58
  export declare function latLngString(latLng: LatLngPoint): LatLngString;
43
59
  export declare function latLngString(latLng: LatLngString): LatLngString;
60
+ export declare const LAT_LNG_PATTERN_MAX_PRECISION = 15;
44
61
  /**
45
62
  * A lat/lng regex with capture groups for lat and lng.
46
63
  *
47
- * Has a max precision of 10, which is easily precise enough for all GPS cases.
48
- *
49
64
  * https://stackoverflow.com/questions/3518504/regular-expression-for-matching-latitude-longitude-coordinates
65
+ *
66
+ * Has a max precision of 15 because Google Maps returns a 15 decimal places when copying a position.
50
67
  */
51
68
  export declare const LAT_LNG_PATTERN: RegExp;
52
69
  /**
@@ -88,7 +105,7 @@ export declare const LAT_LONG_10CM_PRECISION = 6;
88
105
  */
89
106
  export declare const LAT_LONG_1CM_PRECISION = 7;
90
107
  /**
91
- * 001.11 milimeter precision, 8 decimal places
108
+ * 001.11 millimeter precision, 8 decimal places
92
109
  */
93
110
  export declare const LAT_LONG_1MM_PRECISION = 8;
94
111
  /**
@@ -107,7 +124,7 @@ export declare function latLngPointPrecisionFunction(precision: LatLngPrecision)
107
124
  /**
108
125
  * Converts the input to a LatLngString
109
126
  */
110
- export declare type LatLngStringFunction = ((lat: Latitude | LatLngPoint | LatLngString | string, lng?: Longitude) => LatLngString) & ((latLng: string | LatLngString) => LatLngString) & ((latLng: LatLngPoint) => LatLngString) & ((lat: Latitude, lng?: Longitude) => LatLngString);
127
+ export declare type LatLngStringFunction = ((lat: LatLngPointInput, lng?: Longitude) => LatLngString) & ((latLng: string | LatLngString) => LatLngString) & ((latLng: LatLngPoint) => LatLngString) & ((lat: Latitude, lng?: Longitude) => LatLngString);
111
128
  export declare type LatLngStringFunctionConfig = LatLngPointFunctionConfig;
112
129
  /**
113
130
  * Creates a LatLngStringFunction
@@ -119,7 +136,7 @@ export declare function latLngStringFunction(config?: LatLngStringFunctionConfig
119
136
  /**
120
137
  * Converts the input to a LatLngPoint
121
138
  */
122
- export declare type LatLngPointFunction = ((lat: Latitude | LatLngPoint | LatLngString | string, lng?: Longitude) => LatLngPoint) & ((latLng: string | LatLngString) => LatLngPoint) & ((latLng: LatLngPoint) => LatLngPoint) & ((lat: Latitude, lng?: Longitude) => LatLngPoint);
139
+ export declare type LatLngPointFunction = ((lat: LatLngPointInput, lng?: Longitude) => LatLngPoint) & ((latLng: string | LatLngString) => LatLngPoint) & ((latLng: LatLngPoint) => LatLngPoint) & ((lat: Latitude, lng: Longitude) => LatLngPoint);
123
140
  export interface LatLngPointFunctionConfig {
124
141
  /**
125
142
  * LatLngPrecision to use
@@ -136,6 +153,14 @@ export interface LatLngPointFunctionConfig {
136
153
  */
137
154
  default?: Factory<LatLngPoint>;
138
155
  }
156
+ /**
157
+ * Creates a LatLngPoint. Uses latLngPointFunction() internally.
158
+ *
159
+ * @param lat
160
+ * @param lng
161
+ * @returns
162
+ */
163
+ export declare function latLngPoint(lat: LatLngPointInput, lng?: Longitude): LatLngPoint;
139
164
  /**
140
165
  * Creates a LatLngPointFunction
141
166
  *
@@ -190,3 +215,7 @@ export declare type LatLngDataPointFunction<T extends LatLngRef> = (data: T) =>
190
215
  * @returns
191
216
  */
192
217
  export declare function latLngDataPointFunction<T extends LatLngRef>(config?: LatLngPointFunctionConfig): LatLngDataPointFunction<T>;
218
+ /**
219
+ * @deprecated use LatLngPointInput
220
+ */
221
+ export declare type LatLngInput = LatLngPointInput;
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.latLngDataPointFunction = exports.validLatLngPointFunction = exports.validLatLngPoint = exports.latLngPointFromString = exports.latLngPointFunction = exports.latLngStringFunction = exports.latLngPointPrecisionFunction = exports.LAT_LONG_GRAINS_OF_SAND_PRECISION = exports.LAT_LONG_1MM_PRECISION = exports.LAT_LONG_1CM_PRECISION = exports.LAT_LONG_10CM_PRECISION = exports.LAT_LONG_1M_PRECISION = exports.LAT_LONG_10M_PRECISION = exports.LAT_LONG_100M_PRECISION = exports.LAT_LONG_1KM_PRECISION = exports.LAT_LONG_10KM_PRECISION = exports.LAT_LONG_100KM_PRECISION = exports.isLatLngString = exports.LAT_LNG_PATTERN = exports.latLngString = exports.isValidLatLngPoint = exports.defaultLatLngPoint = exports.isValidLongitude = exports.isValidLatitude = exports.latLngPoint = exports.MAX_LONGITUDE_VALUE = exports.MIN_LONGITUDE_VALUE = exports.MAX_LATITUDE_VALUE = exports.MIN_LATITUDE_VALUE = void 0;
3
+ exports.latLngDataPointFunction = exports.validLatLngPointFunction = exports.validLatLngPoint = exports.latLngPointFromString = exports.latLngPointFunction = exports.latLngPoint = exports.latLngStringFunction = exports.latLngPointPrecisionFunction = exports.LAT_LONG_GRAINS_OF_SAND_PRECISION = exports.LAT_LONG_1MM_PRECISION = exports.LAT_LONG_1CM_PRECISION = exports.LAT_LONG_10CM_PRECISION = exports.LAT_LONG_1M_PRECISION = exports.LAT_LONG_10M_PRECISION = exports.LAT_LONG_100M_PRECISION = exports.LAT_LONG_1KM_PRECISION = exports.LAT_LONG_10KM_PRECISION = exports.LAT_LONG_100KM_PRECISION = exports.isLatLngString = exports.LAT_LNG_PATTERN = exports.LAT_LNG_PATTERN_MAX_PRECISION = exports.latLngString = exports.latLngTupleFunction = exports.latLngTuple = exports.isValidLatLngPoint = exports.defaultLatLngPoint = exports.isValidLongitude = exports.isValidLatitude = exports.isSameLatLngPoint = exports.isLatLngPoint = exports.MAX_LONGITUDE_VALUE = exports.MIN_LONGITUDE_VALUE = exports.MAX_LATITUDE_VALUE = exports.MIN_LATITUDE_VALUE = void 0;
4
4
  const round_1 = require("../number/round");
5
5
  exports.MIN_LATITUDE_VALUE = -90.0;
6
6
  exports.MAX_LATITUDE_VALUE = 90.0;
7
7
  exports.MIN_LONGITUDE_VALUE = -180.0;
8
8
  exports.MAX_LONGITUDE_VALUE = 180.0;
9
- function latLngPoint(lat, lng) {
10
- return { lat, lng };
9
+ function isLatLngPoint(input) {
10
+ return typeof input === 'object' && input.lat != null && input.lng != null;
11
11
  }
12
- exports.latLngPoint = latLngPoint;
12
+ exports.isLatLngPoint = isLatLngPoint;
13
+ function isSameLatLngPoint(a, b) {
14
+ return a.lat === b.lat && a.lng === b.lng;
15
+ }
16
+ exports.isSameLatLngPoint = isSameLatLngPoint;
13
17
  function isValidLatitude(lat) {
14
18
  return lat >= exports.MIN_LATITUDE_VALUE && lat <= exports.MAX_LATITUDE_VALUE;
15
19
  }
@@ -32,18 +36,37 @@ function isValidLatLngPoint(input) {
32
36
  return isValidLatitude(input.lat) && isValidLongitude(input.lng);
33
37
  }
34
38
  exports.isValidLatLngPoint = isValidLatLngPoint;
39
+ function latLngTuple(lat, lng) {
40
+ return latLngTupleFunction()(lat, lng);
41
+ }
42
+ exports.latLngTuple = latLngTuple;
43
+ /**
44
+ * Creates a LatLngTupleFunction
45
+ *
46
+ * @param precision
47
+ * @returns
48
+ */
49
+ function latLngTupleFunction(config) {
50
+ const fn = latLngPointFunction(config);
51
+ return (lat, lng) => {
52
+ const latLng = fn(lat, lng);
53
+ return [latLng.lat, latLng.lng];
54
+ };
55
+ }
56
+ exports.latLngTupleFunction = latLngTupleFunction;
35
57
  function latLngString(lat, lng) {
36
58
  return latLngStringFunction()(lat, lng);
37
59
  }
38
60
  exports.latLngString = latLngString;
61
+ exports.LAT_LNG_PATTERN_MAX_PRECISION = 15;
39
62
  /**
40
63
  * A lat/lng regex with capture groups for lat and lng.
41
64
  *
42
- * Has a max precision of 10, which is easily precise enough for all GPS cases.
43
- *
44
65
  * https://stackoverflow.com/questions/3518504/regular-expression-for-matching-latitude-longitude-coordinates
66
+ *
67
+ * Has a max precision of 15 because Google Maps returns a 15 decimal places when copying a position.
45
68
  */
46
- exports.LAT_LNG_PATTERN = /(?<lat>^[-+]?(?:[1-8]?\d(?:\.\d{0,10})?|90(?:\.0{0,10})?))\s*,\s*(?<lng>[-+]?(?:180(?:\.0{0,10})?|(?:1[0-7]\d|[1-9]?\d)(?:\.\d{0,10})?))$/;
69
+ exports.LAT_LNG_PATTERN = /(?<lat>^[-+]?(?:[1-8]?\d(?:\.\d{0,15})?|90(?:\.0{0,15})?))\s*,\s*(?<lng>[-+]?(?:180(?:\.0{0,15})?|(?:1[0-7]\d|[1-9]?\d)(?:\.\d{0,15})?))$/;
47
70
  /**
48
71
  * Checks whether or not the input has the expected pattern.
49
72
  *
@@ -86,7 +109,7 @@ exports.LAT_LONG_10CM_PRECISION = 6;
86
109
  */
87
110
  exports.LAT_LONG_1CM_PRECISION = 7;
88
111
  /**
89
- * 001.11 milimeter precision, 8 decimal places
112
+ * 001.11 millimeter precision, 8 decimal places
90
113
  */
91
114
  exports.LAT_LONG_1MM_PRECISION = 8;
92
115
  /**
@@ -121,6 +144,17 @@ function latLngStringFunction(config) {
121
144
  };
122
145
  }
123
146
  exports.latLngStringFunction = latLngStringFunction;
147
+ /**
148
+ * Creates a LatLngPoint. Uses latLngPointFunction() internally.
149
+ *
150
+ * @param lat
151
+ * @param lng
152
+ * @returns
153
+ */
154
+ function latLngPoint(lat, lng) {
155
+ return latLngPointFunction()(lat, lng);
156
+ }
157
+ exports.latLngPoint = latLngPoint;
124
158
  /**
125
159
  * Creates a LatLngPointFunction
126
160
  *
@@ -138,11 +172,15 @@ function latLngPointFunction(config) {
138
172
  if (latType === 'string') {
139
173
  latLng = latLngPointFromString(lat);
140
174
  }
175
+ else if (Array.isArray(lat)) {
176
+ const tuple = lat;
177
+ latLng = { lat: tuple[0], lng: tuple[1] };
178
+ }
141
179
  else if (latType === 'object') {
142
180
  latLng = lat;
143
181
  }
144
182
  else if (lng != null) {
145
- latLng = latLngPoint(lat, lng);
183
+ latLng = { lat: lat, lng };
146
184
  }
147
185
  else {
148
186
  throw new Error(`Invalid lat/lng input "${lat},${lng}"`);
@@ -1 +1 @@
1
- {"version":3,"file":"point.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/point.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"point.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/point.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Maybe } from './maybe.type';
2
+ export interface Vector {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export declare type RectangleOrigin = Vector;
7
+ export declare type TopRightCorner = Vector;
8
+ export declare type BottomLeftCorner = Vector;
9
+ export interface Rectangle {
10
+ /**
11
+ * Upper-Right/North-East corner.
12
+ */
13
+ tr: TopRightCorner;
14
+ /**
15
+ * Bottom-Left/South-West corner.
16
+ */
17
+ bl: BottomLeftCorner;
18
+ }
19
+ /**
20
+ * Returns true if the input vector overlaps another.
21
+ *
22
+ * @param a
23
+ * @param b
24
+ */
25
+ export declare function rectangleOverlapsRectangle(a: Rectangle, b: Rectangle): boolean;
26
+ export declare function getOverlappingRectangle(a: Rectangle, b: Rectangle): Maybe<Rectangle>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOverlappingRectangle = exports.rectangleOverlapsRectangle = void 0;
4
+ /**
5
+ * Returns true if the input vector overlaps another.
6
+ *
7
+ * @param a
8
+ * @param b
9
+ */
10
+ function rectangleOverlapsRectangle(a, b) {
11
+ const { tr: r1, bl: l1 } = a;
12
+ const { tr: r2, bl: l2 } = b;
13
+ let doesNotOverlap = true;
14
+ // corners only touch
15
+ if (l1.x == r1.x || l1.y == r1.y || r2.x == l2.x || l2.y == r2.y) {
16
+ doesNotOverlap = false;
17
+ }
18
+ else if (l1.x > r2.x || l2.x > r1.x) {
19
+ doesNotOverlap = false;
20
+ }
21
+ else if (r1.y < l2.y || r2.y < l1.y) {
22
+ doesNotOverlap = false;
23
+ }
24
+ return doesNotOverlap;
25
+ }
26
+ exports.rectangleOverlapsRectangle = rectangleOverlapsRectangle;
27
+ function getOverlappingRectangle(a, b) {
28
+ var xl = Math.max(a.bl.x, b.bl.x);
29
+ var yl = Math.max(a.bl.y, b.bl.y);
30
+ var xr = Math.min(a.tr.x, b.tr.x);
31
+ var yr = Math.min(a.tr.y, b.tr.y);
32
+ // does not intersect
33
+ if (xl > xr || yl > yr) {
34
+ return undefined;
35
+ }
36
+ let topRight = {
37
+ x: xr,
38
+ y: yr
39
+ };
40
+ let bottomLeft = {
41
+ x: xl,
42
+ y: yl
43
+ };
44
+ return { tr: topRight, bl: bottomLeft };
45
+ }
46
+ exports.getOverlappingRectangle = getOverlappingRectangle;
47
+ //# sourceMappingURL=vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../../../../packages/util/src/lib/value/vector.ts"],"names":[],"mappings":";;;AAsBA;;;;;GAKG;AACH,SAAgB,0BAA0B,CAAC,CAAY,EAAE,CAAY;IACnE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAE7B,IAAI,cAAc,GAAG,IAAI,CAAC;IAE1B,qBAAqB;IACrB,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;QAChE,cAAc,GAAG,KAAK,CAAC;KACxB;SAAM,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;QACrC,cAAc,GAAG,KAAK,CAAC;KACxB;SAAM,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE;QACrC,cAAc,GAAG,KAAK,CAAC;KACxB;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAhBD,gEAgBC;AAED,SAAgB,uBAAuB,CAAC,CAAY,EAAE,CAAY;IAChE,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAElC,qBAAqB;IACrB,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACtB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,QAAQ,GAAmB;QAC7B,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;KACN,CAAC;IAEF,IAAI,UAAU,GAAqB;QACjC,CAAC,EAAE,EAAE;QACL,CAAC,EAAE,EAAE;KACN,CAAC;IAEF,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC;AAC1C,CAAC;AAtBD,0DAsBC"}
package/test/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
+ # [9.3.0](https://github.com/dereekb/dbx-components/compare/v9.2.0-dev...v9.3.0) (2022-08-20)
6
+
7
+
8
+
9
+ # [9.2.0](https://github.com/dereekb/dbx-components/compare/v9.1.2-dev...v9.2.0) (2022-08-18)
10
+
11
+
12
+
13
+ ## [9.1.2](https://github.com/dereekb/dbx-components/compare/v9.1.1-dev...v9.1.2) (2022-08-16)
14
+
15
+
16
+
5
17
  ## [9.1.1](https://github.com/dereekb/dbx-components/compare/v9.1.0-dev...v9.1.1) (2022-08-16)
6
18
 
7
19
 
package/test/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@dereekb/util/test",
3
- "version": "9.1.1",
3
+ "version": "9.3.0",
4
4
  "type": "commonjs",
5
5
  "main": "./src/index.js",
6
6
  "typings": "./src/index.d.ts",
7
7
  "dependencies": {},
8
8
  "peerDependencies": {
9
- "@dereekb/util": "9.1.1",
9
+ "@dereekb/util": "9.3.0",
10
10
  "lodash.isequal": "^4.5.0",
11
11
  "make-error": "^1.3.0",
12
12
  "ts-essentials": "^9.1.2",