@esri/hub-common 14.46.1 → 14.47.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.
@@ -0,0 +1,85 @@
1
+ import { isFindable } from "./internal/isFindable";
2
+ /**
3
+ * Traverse a graph filtering out entries that do
4
+ * not pass the predicate
5
+ *
6
+ * Note: this util uses cloning behind the scenes
7
+ * so will only work for POJOs and not class instances
8
+ *
9
+ * example:
10
+ * const predicate = (link: any) => link.key !== "00a"
11
+ * const obj = [
12
+ * {
13
+ * key: "001",
14
+ * label: "Stop the Spotted Lanternfly",
15
+ * },
16
+ * {
17
+ * key: "002",
18
+ * label: "Create a Map",
19
+ * children: [
20
+ * {
21
+ * key: "00a",
22
+ * label: "ArcGIS Map Viewer",
23
+ * },
24
+ * {
25
+ * key: "00b",
26
+ * label: "ArcGIS Map Viewer Classic",
27
+ * },
28
+ * ],
29
+ * },
30
+ * ];
31
+ * const res = deepFilter(obj, predicate)
32
+ * res = [
33
+ * {
34
+ * key: "001",
35
+ * label: "Stop the Spotted Lanternfly",
36
+ * },
37
+ * {
38
+ * key: "002",
39
+ * label: "Create a Map",
40
+ * children: [
41
+ * {
42
+ * key: "00b",
43
+ * label: "ArcGIS Map Viewer Classic",
44
+ * },
45
+ * ],
46
+ * },
47
+ * ];
48
+ *
49
+ * @param object
50
+ * @param predicate
51
+ */
52
+ export function deepFilter(object, predicate) {
53
+ if (Array.isArray(object)) {
54
+ return object.reduce((acc, entry) => {
55
+ if (predicate(entry)) {
56
+ if (isFindable(entry)) {
57
+ const filteredEntry = deepFilter(entry, predicate);
58
+ acc = [...acc, filteredEntry];
59
+ }
60
+ else {
61
+ acc = [...acc, entry];
62
+ }
63
+ }
64
+ return acc;
65
+ }, []);
66
+ }
67
+ else if (isFindable(object)) {
68
+ return Object.keys(object).reduce((acc, entry) => {
69
+ if (predicate(object[entry])) {
70
+ if (isFindable(object[entry])) {
71
+ const filteredEntry = deepFilter(object[entry], predicate);
72
+ acc[entry] = filteredEntry;
73
+ }
74
+ else {
75
+ acc[entry] = object[entry];
76
+ }
77
+ }
78
+ return acc;
79
+ }, {});
80
+ }
81
+ else {
82
+ return undefined;
83
+ }
84
+ }
85
+ //# sourceMappingURL=deepFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepFilter.js","sourceRoot":"","sources":["../../../src/objects/deepFilter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,UAAU,UAAU,CACxB,MAAW,EACX,SAAmC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACnD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,aAAa,CAAC,CAAC;iBAC/B;qBAAM;oBACL,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;iBACvB;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC5B,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1D,GAAW,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;iBACrC;qBAAM;oBACJ,GAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;iBACrC;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { _isDate, _isFunction, _isObject, _isRegExp, } from "./_deep-map-values";
1
+ import { isFindable } from "./internal/isFindable";
2
2
  /**
3
3
  * Traverse a graph, locating the first entry with an `id` property that
4
4
  * has a specific string or number value
@@ -81,15 +81,4 @@ export function deepFind(object, predicate) {
81
81
  return undefined;
82
82
  }
83
83
  }
84
- function isFindable(object) {
85
- let result = false;
86
- if (object &&
87
- _isObject(object) &&
88
- !_isDate(object) &&
89
- !_isRegExp(object) &&
90
- !_isFunction(object)) {
91
- result = true;
92
- }
93
- return result;
94
- }
95
84
  //# sourceMappingURL=deepFind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepFind.js","sourceRoot":"","sources":["../../../src/objects/deepFind.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,oBAAoB,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,YAAY,CAAC,MAAW,EAAE,KAAsB;IAC9D,MAAM,CAAC,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAW,EACX,SAAmC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,GAAG,GAAG,KAAK,CAAC;aACb;iBAAM;gBACL,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACzC,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,SAAS,CAAC,CAAC;KACf;SAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QAC7B,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,SAAS,CAAC,CAAC;SACf;KACF;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAW;IAC7B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IACE,MAAM;QACN,SAAS,CAAC,MAAM,CAAC;QACjB,CAAC,OAAO,CAAC,MAAM,CAAC;QAChB,CAAC,SAAS,CAAC,MAAM,CAAC;QAClB,CAAC,WAAW,CAAC,MAAM,CAAC,EACpB;QACA,MAAM,GAAG,IAAI,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"deepFind.js","sourceRoot":"","sources":["../../../src/objects/deepFind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,YAAY,CAAC,MAAW,EAAE,KAAsB;IAC9D,MAAM,CAAC,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CACtB,MAAW,EACX,SAAmC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,GAAG,GAAG,KAAK,CAAC;aACb;iBAAM;gBACL,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACzC,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,SAAS,CAAC,CAAC;KACf;SAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QAC7B,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,SAAS,CAAC,CAAC;SACf;KACF;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC"}
@@ -9,6 +9,7 @@ export * from "./remove-empty-props";
9
9
  export * from "./deep-string-replace";
10
10
  export * from "./merge-objects";
11
11
  export * from "./set-prop";
12
+ export * from "./deepFilter";
12
13
  export * from "./deepFind";
13
14
  export * from "./resolveReferences";
14
15
  export * from "./pickProps";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { _isDate, _isFunction, _isObject, _isRegExp, } from "../_deep-map-values";
2
+ export function isFindable(object) {
3
+ let result = false;
4
+ if (object &&
5
+ _isObject(object) &&
6
+ !_isDate(object) &&
7
+ !_isRegExp(object) &&
8
+ !_isFunction(object)) {
9
+ result = true;
10
+ }
11
+ return result;
12
+ }
13
+ //# sourceMappingURL=isFindable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFindable.js","sourceRoot":"","sources":["../../../../src/objects/internal/isFindable.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,WAAW,EACX,SAAS,EACT,SAAS,GACV,MAAM,qBAAqB,CAAC;AAE7B,MAAM,UAAU,UAAU,CAAC,MAAW;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IACE,MAAM;QACN,SAAS,CAAC,MAAM,CAAC;QACjB,CAAC,OAAO,CAAC,MAAM,CAAC;QAChB,CAAC,SAAS,CAAC,MAAM,CAAC;QAClB,CAAC,WAAW,CAAC,MAAM,CAAC,EACpB;QACA,MAAM,GAAG,IAAI,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepFilter = void 0;
4
+ const isFindable_1 = require("./internal/isFindable");
5
+ /**
6
+ * Traverse a graph filtering out entries that do
7
+ * not pass the predicate
8
+ *
9
+ * Note: this util uses cloning behind the scenes
10
+ * so will only work for POJOs and not class instances
11
+ *
12
+ * example:
13
+ * const predicate = (link: any) => link.key !== "00a"
14
+ * const obj = [
15
+ * {
16
+ * key: "001",
17
+ * label: "Stop the Spotted Lanternfly",
18
+ * },
19
+ * {
20
+ * key: "002",
21
+ * label: "Create a Map",
22
+ * children: [
23
+ * {
24
+ * key: "00a",
25
+ * label: "ArcGIS Map Viewer",
26
+ * },
27
+ * {
28
+ * key: "00b",
29
+ * label: "ArcGIS Map Viewer Classic",
30
+ * },
31
+ * ],
32
+ * },
33
+ * ];
34
+ * const res = deepFilter(obj, predicate)
35
+ * res = [
36
+ * {
37
+ * key: "001",
38
+ * label: "Stop the Spotted Lanternfly",
39
+ * },
40
+ * {
41
+ * key: "002",
42
+ * label: "Create a Map",
43
+ * children: [
44
+ * {
45
+ * key: "00b",
46
+ * label: "ArcGIS Map Viewer Classic",
47
+ * },
48
+ * ],
49
+ * },
50
+ * ];
51
+ *
52
+ * @param object
53
+ * @param predicate
54
+ */
55
+ function deepFilter(object, predicate) {
56
+ if (Array.isArray(object)) {
57
+ return object.reduce((acc, entry) => {
58
+ if (predicate(entry)) {
59
+ if (isFindable_1.isFindable(entry)) {
60
+ const filteredEntry = deepFilter(entry, predicate);
61
+ acc = [...acc, filteredEntry];
62
+ }
63
+ else {
64
+ acc = [...acc, entry];
65
+ }
66
+ }
67
+ return acc;
68
+ }, []);
69
+ }
70
+ else if (isFindable_1.isFindable(object)) {
71
+ return Object.keys(object).reduce((acc, entry) => {
72
+ if (predicate(object[entry])) {
73
+ if (isFindable_1.isFindable(object[entry])) {
74
+ const filteredEntry = deepFilter(object[entry], predicate);
75
+ acc[entry] = filteredEntry;
76
+ }
77
+ else {
78
+ acc[entry] = object[entry];
79
+ }
80
+ }
81
+ return acc;
82
+ }, {});
83
+ }
84
+ else {
85
+ return undefined;
86
+ }
87
+ }
88
+ exports.deepFilter = deepFilter;
89
+ //# sourceMappingURL=deepFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepFilter.js","sourceRoot":"","sources":["../../../src/objects/deepFilter.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,SAAgB,UAAU,CACxB,MAAW,EACX,SAAmC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,IAAI,uBAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACnD,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,aAAa,CAAC,CAAC;iBAC/B;qBAAM;oBACL,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;iBACvB;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM,IAAI,uBAAU,CAAC,MAAM,CAAC,EAAE;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC/C,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC5B,IAAI,uBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1D,GAAW,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;iBACrC;qBAAM;oBACJ,GAAW,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;iBACrC;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;KACR;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AA/BD,gCA+BC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.deepFind = exports.deepFindById = void 0;
4
- const _deep_map_values_1 = require("./_deep-map-values");
4
+ const isFindable_1 = require("./internal/isFindable");
5
5
  /**
6
6
  * Traverse a graph, locating the first entry with an `id` property that
7
7
  * has a specific string or number value
@@ -55,7 +55,7 @@ function deepFind(object, predicate) {
55
55
  acc = entry;
56
56
  }
57
57
  else {
58
- if (isFindable(entry)) {
58
+ if (isFindable_1.isFindable(entry)) {
59
59
  const maybe = deepFind(entry, predicate);
60
60
  if (maybe) {
61
61
  acc = maybe;
@@ -65,13 +65,13 @@ function deepFind(object, predicate) {
65
65
  return acc;
66
66
  }, undefined);
67
67
  }
68
- else if (isFindable(object)) {
68
+ else if (isFindable_1.isFindable(object)) {
69
69
  if (predicate(object)) {
70
70
  return object;
71
71
  }
72
72
  else {
73
73
  return Object.keys(object).reduce((acc, entry) => {
74
- if (isFindable(object[entry])) {
74
+ if (isFindable_1.isFindable(object[entry])) {
75
75
  const maybe = deepFind(object[entry], predicate);
76
76
  if (maybe) {
77
77
  acc = maybe;
@@ -86,15 +86,4 @@ function deepFind(object, predicate) {
86
86
  }
87
87
  }
88
88
  exports.deepFind = deepFind;
89
- function isFindable(object) {
90
- let result = false;
91
- if (object &&
92
- _deep_map_values_1._isObject(object) &&
93
- !_deep_map_values_1._isDate(object) &&
94
- !_deep_map_values_1._isRegExp(object) &&
95
- !_deep_map_values_1._isFunction(object)) {
96
- result = true;
97
- }
98
- return result;
99
- }
100
89
  //# sourceMappingURL=deepFind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deepFind.js","sourceRoot":"","sources":["../../../src/objects/deepFind.ts"],"names":[],"mappings":";;;AAAA,yDAM4B;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,YAAY,CAAC,MAAW,EAAE,KAAsB;IAC9D,MAAM,CAAC,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAHD,oCAGC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CACtB,MAAW,EACX,SAAmC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,GAAG,GAAG,KAAK,CAAC;aACb;iBAAM;gBACL,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACzC,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,SAAS,CAAC,CAAC;KACf;SAAM,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;QAC7B,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC/C,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,SAAS,CAAC,CAAC;SACf;KACF;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAnCD,4BAmCC;AAED,SAAS,UAAU,CAAC,MAAW;IAC7B,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IACE,MAAM;QACN,4BAAS,CAAC,MAAM,CAAC;QACjB,CAAC,0BAAO,CAAC,MAAM,CAAC;QAChB,CAAC,4BAAS,CAAC,MAAM,CAAC;QAClB,CAAC,8BAAW,CAAC,MAAM,CAAC,EACpB;QACA,MAAM,GAAG,IAAI,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"deepFind.js","sourceRoot":"","sources":["../../../src/objects/deepFind.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,YAAY,CAAC,MAAW,EAAE,KAAsB;IAC9D,MAAM,CAAC,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAHD,oCAGC;AAED;;;;;;GAMG;AACH,SAAgB,QAAQ,CACtB,MAAW,EACX,SAAmC;IAEnC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAClC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;gBACpB,GAAG,GAAG,KAAK,CAAC;aACb;iBAAM;gBACL,IAAI,uBAAU,CAAC,KAAK,CAAC,EAAE;oBACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBACzC,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;aACF;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,SAAS,CAAC,CAAC;KACf;SAAM,IAAI,uBAAU,CAAC,MAAM,CAAC,EAAE;QAC7B,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;YACrB,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC/C,IAAI,uBAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7B,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE;wBACT,GAAG,GAAG,KAAK,CAAC;qBACb;iBACF;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,SAAS,CAAC,CAAC;SACf;KACF;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAnCD,4BAmCC"}
@@ -12,6 +12,7 @@ tslib_1.__exportStar(require("./remove-empty-props"), exports);
12
12
  tslib_1.__exportStar(require("./deep-string-replace"), exports);
13
13
  tslib_1.__exportStar(require("./merge-objects"), exports);
14
14
  tslib_1.__exportStar(require("./set-prop"), exports);
15
+ tslib_1.__exportStar(require("./deepFilter"), exports);
15
16
  tslib_1.__exportStar(require("./deepFind"), exports);
16
17
  tslib_1.__exportStar(require("./resolveReferences"), exports);
17
18
  tslib_1.__exportStar(require("./pickProps"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B;AAC9B,qDAA2B;AAC3B,sDAA4B;AAC5B,6DAAmC;AACnC,+DAAqC;AACrC,gEAAsC;AACtC,0DAAgC;AAChC,qDAA2B;AAC3B,qDAA2B;AAC3B,8DAAoC;AACpC,sDAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/objects/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B;AAC9B,qDAA2B;AAC3B,sDAA4B;AAC5B,6DAAmC;AACnC,+DAAqC;AACrC,gEAAsC;AACtC,0DAAgC;AAChC,qDAA2B;AAC3B,uDAA6B;AAC7B,qDAA2B;AAC3B,8DAAoC;AACpC,sDAA4B"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isFindable = void 0;
4
+ const _deep_map_values_1 = require("../_deep-map-values");
5
+ function isFindable(object) {
6
+ let result = false;
7
+ if (object &&
8
+ _deep_map_values_1._isObject(object) &&
9
+ !_deep_map_values_1._isDate(object) &&
10
+ !_deep_map_values_1._isRegExp(object) &&
11
+ !_deep_map_values_1._isFunction(object)) {
12
+ result = true;
13
+ }
14
+ return result;
15
+ }
16
+ exports.isFindable = isFindable;
17
+ //# sourceMappingURL=isFindable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFindable.js","sourceRoot":"","sources":["../../../../src/objects/internal/isFindable.ts"],"names":[],"mappings":";;;AAAA,0DAM6B;AAE7B,SAAgB,UAAU,CAAC,MAAW;IACpC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IACE,MAAM;QACN,4BAAS,CAAC,MAAM,CAAC;QACjB,CAAC,0BAAO,CAAC,MAAM,CAAC;QAChB,CAAC,4BAAS,CAAC,MAAM,CAAC;QAClB,CAAC,8BAAW,CAAC,MAAM,CAAC,EACpB;QACA,MAAM,GAAG,IAAI,CAAC;KACf;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAZD,gCAYC"}
@@ -1,5 +1,5 @@
1
1
  import { IPagingParams, IPagedResponse as IRestPagedResponse, IUser } from "@esri/arcgis-rest-types";
2
- import { Geometry } from "geojson";
2
+ import { Geometry, Polygon } from "geojson";
3
3
  import { IHubRequestOptions } from "../../types";
4
4
  /**
5
5
  * sort orders
@@ -949,7 +949,7 @@ export interface IEntitySettings {
949
949
  */
950
950
  export interface IDiscussionsSettings {
951
951
  allowedChannelIds?: string[] | null;
952
- allowedLocations?: Geometry[] | null;
952
+ allowedLocations?: Polygon[] | null;
953
953
  }
954
954
  /**
955
955
  * @export
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Traverse a graph filtering out entries that do
3
+ * not pass the predicate
4
+ *
5
+ * Note: this util uses cloning behind the scenes
6
+ * so will only work for POJOs and not class instances
7
+ *
8
+ * example:
9
+ * const predicate = (link: any) => link.key !== "00a"
10
+ * const obj = [
11
+ * {
12
+ * key: "001",
13
+ * label: "Stop the Spotted Lanternfly",
14
+ * },
15
+ * {
16
+ * key: "002",
17
+ * label: "Create a Map",
18
+ * children: [
19
+ * {
20
+ * key: "00a",
21
+ * label: "ArcGIS Map Viewer",
22
+ * },
23
+ * {
24
+ * key: "00b",
25
+ * label: "ArcGIS Map Viewer Classic",
26
+ * },
27
+ * ],
28
+ * },
29
+ * ];
30
+ * const res = deepFilter(obj, predicate)
31
+ * res = [
32
+ * {
33
+ * key: "001",
34
+ * label: "Stop the Spotted Lanternfly",
35
+ * },
36
+ * {
37
+ * key: "002",
38
+ * label: "Create a Map",
39
+ * children: [
40
+ * {
41
+ * key: "00b",
42
+ * label: "ArcGIS Map Viewer Classic",
43
+ * },
44
+ * ],
45
+ * },
46
+ * ];
47
+ *
48
+ * @param object
49
+ * @param predicate
50
+ */
51
+ export declare function deepFilter(object: any, predicate: (object: any) => boolean): any;
@@ -9,6 +9,7 @@ export * from "./remove-empty-props";
9
9
  export * from "./deep-string-replace";
10
10
  export * from "./merge-objects";
11
11
  export * from "./set-prop";
12
+ export * from "./deepFilter";
12
13
  export * from "./deepFind";
13
14
  export * from "./resolveReferences";
14
15
  export * from "./pickProps";
@@ -0,0 +1 @@
1
+ export declare function isFindable(object: any): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esri/hub-common",
3
- "version": "14.46.1",
3
+ "version": "14.47.0",
4
4
  "description": "Common TypeScript types and utility functions for @esri/hub.js.",
5
5
  "main": "dist/node/index.js",
6
6
  "module": "dist/esm/index.js",