@theseam/ui-common 1.0.2-beta.87 → 2.0.1-beta.101

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theseam/ui-common",
3
- "version": "1.0.2-beta.87",
3
+ "version": "2.0.1-beta.101",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "^20.2.3",
6
6
  "@angular/common": "^20.3.0",
@@ -35,7 +35,7 @@
35
35
  "@types/webfontloader": "^1.6.29",
36
36
  "intl-tel-input": "^17.0.5",
37
37
  "@ajsf/core": "^0.8.0",
38
- "quill": "2.0.3",
38
+ "quill": "2.0.2",
39
39
  "ngx-quill": "^27.1.2",
40
40
  "@turf/area": "^7.2.0",
41
41
  "@turf/boolean-contains": "^7.2.0",
package/utils/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { ElementRef, QueryList } from '@angular/core';
3
3
  import { AbstractControl, ValidatorFn } from '@angular/forms';
4
4
  import { Observable } from 'rxjs';
5
5
  import { ActivatedRoute, Data, ActivatedRouteSnapshot } from '@angular/router';
6
- import { FeatureCollection, GeoJSON, Feature, GeoJsonProperties, Geometry, Polygon, MultiPolygon } from 'geojson';
6
+ import { FeatureCollection, GeoJSON, Feature, GeoJsonProperties, Geometry, Polygon, MultiPolygon, Position } from 'geojson';
7
7
  import { AreaUnits } from '@turf/helpers';
8
8
 
9
9
  /**
@@ -234,14 +234,46 @@ declare function readGeoFile(fileOrBuffer: File | ArrayBuffer): Promise<FeatureC
234
234
  declare function splitMultiPolygons(featureCollection: FeatureCollection): void;
235
235
 
236
236
  /**
237
- * Close all polygons in the GeoJSON.
237
+ * Close all polygons in the GeoJSON so the first and last position of every
238
+ * ring are identical.
238
239
  *
239
- * Google Maps requires that polygons be closed, but not all libraries have that
240
- * requirement. This may add redundent points to the GeoJSON, but it will ensure
241
- * that the GeoJSON is valid for Google Maps.
240
+ * Google Maps requires closed polygon rings, but not all libraries produce
241
+ * them. This is idempotent: rings that are already closed are left unchanged.
242
242
  */
243
243
  declare function closePolygons(geoJson: FeatureCollection | Feature | Polygon | MultiPolygon): void;
244
244
 
245
+ /**
246
+ * Checks if a single polygon ring's coordinate count violates the given
247
+ * min/max point bounds. `max` is only applied when it is greater than `min`.
248
+ */
249
+ declare function polygonViolatesMinMax(coordinateLength: number, min: number, max?: number | undefined): boolean;
250
+
251
+ /**
252
+ * Whether a polygon's outer ring has at least `min` distinct vertices.
253
+ * Ring closure (a repeated first/last point) does not count toward the total,
254
+ * so this behaves the same for closed and unclosed rings.
255
+ */
256
+ declare function polygonHasMinDistinctVertices(polygon: Polygon, min?: number): boolean;
257
+
258
+ /**
259
+ * Whether `outer` fully contains `inner`, using turf's boolean-contains on the
260
+ * GeoJSON geometries directly (no Google Maps dependency).
261
+ */
262
+ declare function polygonContains(outer: Polygon, inner: Polygon): boolean;
263
+
264
+ /**
265
+ * Whether a ring is wound clockwise, via the shoelace signed-area sign.
266
+ * Sum of (x2 - x1) * (y2 + y1) is positive for clockwise rings in standard
267
+ * (x = lng, y = lat) orientation.
268
+ */
269
+ declare function ringIsClockwise(ring: Position[]): boolean;
270
+ /**
271
+ * Append the outer ring of `hole` to `exterior` as an interior ring (a
272
+ * cutout), wound opposite the exterior ring so it renders as a hole. Returns a
273
+ * new Polygon; inputs are not mutated.
274
+ */
275
+ declare function addHoleToPolygon(exterior: Polygon, hole: Polygon): Polygon;
276
+
245
277
  /**
246
278
  Moves the item to the new position in the input array. Useful for huge arrays
247
279
  where absolute performance is needed.
@@ -452,5 +484,5 @@ interface SanitizeFilenameOptions {
452
484
  }
453
485
  declare function sanitizeFilename(filename: string, options?: SanitizeFilenameOptions): string;
454
486
 
455
- export { IS_FEATURE_COLLECTION_VALIDATOR_NAME, IS_ONLY_GEOMETRY_TYPES_VALIDATOR_NAME, MIN_MAX_POINTS_VALIDATOR_NAME, NO_EMPTY_FEATURE_COLLECTION_VALIDATOR_NAME, NO_INNER_RINGS_VALIDATOR_NAME, NO_KINKS_VALIDATOR_NAME, PollingTickerOptions, Refreshable, activatedRoutesWithDataProperty, arrayMoveImmutable, arrayMoveMutable, calcPercentage, closePolygons, coerceFeatureCollection, createPadding, deleteProperties, deleteProperty, fileBufferToBlob, fileBufferToObjectUrl, fileDataFromBuffer, fractionalDigitsCount, geoJsonToArea, getAttribute, getClosestWidgetCdkDrag, getControlName, getControlPath, hasAttribute, hasProperty, hasRequiredControl, isAbsoluteUrl, isEmptyInputValue, isEmptyUrlRoute, isFeatureCollectionValidator, isNullOrUndefined, isNullOrUndefinedOrEmpty, isNumeric, isOnlyGeometryTypes, isOnlyGeometryTypesValidator, leafChildRoute, loadStyle, loadStyleSheet, mapEach, mergePolygons, minMaxPointsValidator, noEmptyFeatureCollectionValidator, noInnerRingsValidator, noKinksValidator, notNullOrUndefined, notNullOrUndefinedOrEmpty, observeControlIsDifferent, observeControlStatus, observeControlValid, observeControlValue, observeControlValueChange, observeQueryList, openBlob, padEnd, padStart, phoneNumberMask, pollingTicker, readFileAsDataUrlAsync, readFileAsync, readGeoFile, routeSnapshotPathFull, routeSnapshotPathRelative, sanitizeFilename, splitMultiPolygons, stripOuter, subscriberCount, tapFirst, toggleAttribute, trimRepeated, waitOnConditionAsync, waitOnNonPendingStatus, willHaveDataProp, withoutProperties, withoutProperty, wrapIntoObservable };
487
+ export { IS_FEATURE_COLLECTION_VALIDATOR_NAME, IS_ONLY_GEOMETRY_TYPES_VALIDATOR_NAME, MIN_MAX_POINTS_VALIDATOR_NAME, NO_EMPTY_FEATURE_COLLECTION_VALIDATOR_NAME, NO_INNER_RINGS_VALIDATOR_NAME, NO_KINKS_VALIDATOR_NAME, PollingTickerOptions, Refreshable, activatedRoutesWithDataProperty, addHoleToPolygon, arrayMoveImmutable, arrayMoveMutable, calcPercentage, closePolygons, coerceFeatureCollection, createPadding, deleteProperties, deleteProperty, fileBufferToBlob, fileBufferToObjectUrl, fileDataFromBuffer, fractionalDigitsCount, geoJsonToArea, getAttribute, getClosestWidgetCdkDrag, getControlName, getControlPath, hasAttribute, hasProperty, hasRequiredControl, isAbsoluteUrl, isEmptyInputValue, isEmptyUrlRoute, isFeatureCollectionValidator, isNullOrUndefined, isNullOrUndefinedOrEmpty, isNumeric, isOnlyGeometryTypes, isOnlyGeometryTypesValidator, leafChildRoute, loadStyle, loadStyleSheet, mapEach, mergePolygons, minMaxPointsValidator, noEmptyFeatureCollectionValidator, noInnerRingsValidator, noKinksValidator, notNullOrUndefined, notNullOrUndefinedOrEmpty, observeControlIsDifferent, observeControlStatus, observeControlValid, observeControlValue, observeControlValueChange, observeQueryList, openBlob, padEnd, padStart, phoneNumberMask, pollingTicker, polygonContains, polygonHasMinDistinctVertices, polygonViolatesMinMax, readFileAsDataUrlAsync, readFileAsync, readGeoFile, ringIsClockwise, routeSnapshotPathFull, routeSnapshotPathRelative, sanitizeFilename, splitMultiPolygons, stripOuter, subscriberCount, tapFirst, toggleAttribute, trimRepeated, waitOnConditionAsync, waitOnNonPendingStatus, willHaveDataProp, withoutProperties, withoutProperty, wrapIntoObservable };
456
488
  export type { IActivatedRouteWithData, IFileData, PollingActionFn, RefreshableOptions, SanitizeFilenameOptions, SubscriberCountChangedFn };