@cloudscape-design/components 3.0.1144 → 3.0.1145
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/internal/base-component/styles.scoped.css +1 -1
- package/internal/environment.js +2 -2
- package/internal/environment.json +2 -2
- package/internal/hooks/use-table-interaction-metrics/index.d.ts.map +1 -1
- package/internal/hooks/use-table-interaction-metrics/index.js +10 -0
- package/internal/hooks/use-table-interaction-metrics/index.js.map +1 -1
- package/internal/manifest.json +1 -1
- package/package.json +1 -1
package/internal/environment.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export var PACKAGE_SOURCE = "components";
|
|
2
|
-
export var PACKAGE_VERSION = "3.0.0 (
|
|
3
|
-
export var GIT_SHA = "
|
|
2
|
+
export var PACKAGE_VERSION = "3.0.0 (b9e85f0c)";
|
|
3
|
+
export var GIT_SHA = "b9e85f0c";
|
|
4
4
|
export var THEME = "open-source-visual-refresh";
|
|
5
5
|
export var SYSTEM = "console";
|
|
6
6
|
export var ALWAYS_VISUAL_REFRESH = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-table-interaction-metrics/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAWxD,MAAM,WAAW,+BAA+B,CAAC,CAAC;IAChD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,yBAAyB,EAAE,MAAM,UAAU,CAAC;IAC5C,mBAAmB,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,EAC5C,UAAU,EACV,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,OAAe,EACf,mBAAmB,GACpB,EAAE,+BAA+B,CAAC,CAAC,CAAC;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-table-interaction-metrics/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAWxD,MAAM,WAAW,+BAA+B,CAAC,CAAC;IAChD,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACzC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACjD,yBAAyB,EAAE,MAAM,UAAU,CAAC;IAC5C,mBAAmB,EAAE,MAAM,MAAM,CAAC;CACnC;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAAE,EAC5C,UAAU,EACV,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,OAAe,EACf,mBAAmB,GACpB,EAAE,+BAA+B,CAAC,CAAC,CAAC;;;;8BAsFP,MAAM;EAEnC"}
|
|
@@ -19,8 +19,15 @@ export function useTableInteractionMetrics({ elementRef, items, itemCount, insta
|
|
|
19
19
|
const lastUserAction = useRef(null);
|
|
20
20
|
const capturedUserAction = useRef(null);
|
|
21
21
|
const loadingStartTime = useRef(null);
|
|
22
|
+
const isMountedRef = useRef(true);
|
|
22
23
|
const metadata = useRef({ itemCount, getComponentIdentifier, getComponentConfiguration, interactionMetadata });
|
|
23
24
|
metadata.current = { itemCount, getComponentIdentifier, getComponentConfiguration, interactionMetadata };
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
isMountedRef.current = true;
|
|
27
|
+
return () => {
|
|
28
|
+
isMountedRef.current = false;
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
24
31
|
useEffect(() => {
|
|
25
32
|
if (isInFunnel) {
|
|
26
33
|
return;
|
|
@@ -59,6 +66,9 @@ export function useTableInteractionMetrics({ elementRef, items, itemCount, insta
|
|
|
59
66
|
}, [instanceIdentifier, loading, taskInteractionId, isInFunnel]);
|
|
60
67
|
const debouncedUpdated = useDebounceCallback(() => {
|
|
61
68
|
var _a, _b;
|
|
69
|
+
if (!isMountedRef.current) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
62
72
|
ComponentMetrics.componentUpdated({
|
|
63
73
|
taskInteractionId,
|
|
64
74
|
componentName: 'table',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-table-interaction-metrics/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;EAGE;AACF,MAAM,sBAAsB,GAAG,IAAK,CAAC;AAarC,MAAM,UAAU,0BAA0B,CAAI,EAC5C,UAAU,EACV,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,OAAO,GAAG,KAAK,EACf,mBAAmB,GACgB;IACnC,MAAM,iBAAiB,GAAG,WAAW,EAAE,CAAC;IACxC,MAAM,0BAA0B,GAAG,eAAe,CAChD,UAAU,EACV,oCAAoC,EACpC,iBAAiB,CAClB,CAAC;IACF,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,CAAwC,IAAI,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-table-interaction-metrics/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;EAGE;AACF,MAAM,sBAAsB,GAAG,IAAK,CAAC;AAarC,MAAM,UAAU,0BAA0B,CAAI,EAC5C,UAAU,EACV,KAAK,EACL,SAAS,EACT,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,OAAO,GAAG,KAAK,EACf,mBAAmB,GACgB;IACnC,MAAM,iBAAiB,GAAG,WAAW,EAAE,CAAC;IACxC,MAAM,0BAA0B,GAAG,eAAe,CAChD,UAAU,EACV,oCAAoC,EACpC,iBAAiB,CAClB,CAAC;IACF,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,MAAM,CAAwC,IAAI,CAAC,CAAC;IAC3E,MAAM,kBAAkB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACvD,MAAM,gBAAgB,GAAG,MAAM,CAAgB,IAAI,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC/G,QAAQ,CAAC,OAAO,GAAG,EAAE,SAAS,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,CAAC;IAEzG,SAAS,CAAC,GAAG,EAAE;QACb,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,gBAAgB,CAAC,gBAAgB,CAAC;YAChC,iBAAiB;YACjB,aAAa,EAAE,OAAO;YACtB,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,yBAAyB,EAAE;SACrE,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,gBAAgB,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAE7C,IAAI,cAAc,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,sBAAsB,EAAE,CAAC;gBACvG,kBAAkB,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,iBAAiB,CAAC,GAAG,EAAE;;QACrB,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC;YACrE,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC;YAEhC,kBAAkB,CAAC,gBAAgB,CAAC;gBAClC,UAAU,EAAE,MAAA,kBAAkB,CAAC,OAAO,mCAAI,EAAE;gBAC5C,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;gBAC5C,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBAC3D,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE;gBAC9D,kBAAkB;gBAClB,oBAAoB,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS;aACjD,CAAC,CAAC;QACL,CAAC;IACH,CAAC,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,EAAE;;QAChD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC,gBAAgB,CAAC;YAChC,iBAAiB;YACjB,aAAa,EAAE,OAAO;YACtB,UAAU,EAAE,MAAA,MAAA,cAAc,CAAC,OAAO,0CAAE,IAAI,mCAAI,EAAE;YAC9C,sBAAsB,EAAE,QAAQ,CAAC,OAAO,CAAC,yBAAyB,EAAE;SACrE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iBAAiB,CAAC,GAAG,EAAE;QACrB,IAAI,UAAU,IAAI,OAAO,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,gBAAgB,EAAE,CAAC;QACnB,4EAA4E;IAC9E,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEtE,OAAO;QACL,0BAA0B;QAC1B,iBAAiB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC;KACvG,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { useEffect, useRef } from 'react';\n\nimport { useRandomId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { ComponentMetrics, PerformanceMetrics } from '../../analytics';\nimport { useFunnel } from '../../analytics/hooks/use-funnel';\nimport { JSONObject } from '../../analytics/interfaces';\nimport { useDebounceCallback } from '../use-debounce-callback';\nimport { useDOMAttribute } from '../use-dom-attribute';\nimport { useEffectOnUpdate } from '../use-effect-on-update';\n\n/*\nIf the last user interaction is more than this time ago, it is not considered\nto be the cause of the current loading state.\n*/\nconst USER_ACTION_TIME_LIMIT = 1_000;\n\nexport interface UseTableInteractionMetricsProps<T> {\n elementRef: React.RefObject<HTMLElement>;\n instanceIdentifier: string | undefined;\n loading: boolean | undefined;\n items: readonly T[];\n itemCount: number;\n getComponentIdentifier: () => string | undefined;\n getComponentConfiguration: () => JSONObject;\n interactionMetadata: () => string;\n}\n\nexport function useTableInteractionMetrics<T>({\n elementRef,\n items,\n itemCount,\n instanceIdentifier,\n getComponentIdentifier,\n getComponentConfiguration,\n loading = false,\n interactionMetadata,\n}: UseTableInteractionMetricsProps<T>) {\n const taskInteractionId = useRandomId();\n const tableInteractionAttributes = useDOMAttribute(\n elementRef,\n 'data-analytics-task-interaction-id',\n taskInteractionId\n );\n const { isInFunnel } = useFunnel();\n const lastUserAction = useRef<{ name: string; time: number } | null>(null);\n const capturedUserAction = useRef<string | null>(null);\n const loadingStartTime = useRef<number | null>(null);\n const isMountedRef = useRef(true);\n\n const metadata = useRef({ itemCount, getComponentIdentifier, getComponentConfiguration, interactionMetadata });\n metadata.current = { itemCount, getComponentIdentifier, getComponentConfiguration, interactionMetadata };\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n\n useEffect(() => {\n if (isInFunnel) {\n return;\n }\n\n ComponentMetrics.componentMounted({\n taskInteractionId,\n componentName: 'table',\n componentConfiguration: metadata.current.getComponentConfiguration(),\n });\n }, [taskInteractionId, isInFunnel]);\n\n useEffect(() => {\n if (loading) {\n loadingStartTime.current = performance.now();\n\n if (lastUserAction.current && lastUserAction.current.time > performance.now() - USER_ACTION_TIME_LIMIT) {\n capturedUserAction.current = lastUserAction.current.name;\n } else {\n capturedUserAction.current = null;\n }\n }\n }, [loading]);\n\n useEffectOnUpdate(() => {\n if (!loading && loadingStartTime.current !== null) {\n const loadingDuration = performance.now() - loadingStartTime.current;\n loadingStartTime.current = null;\n\n PerformanceMetrics.tableInteraction({\n userAction: capturedUserAction.current ?? '',\n interactionTime: Math.round(loadingDuration),\n interactionMetadata: metadata.current.interactionMetadata(),\n componentIdentifier: metadata.current.getComponentIdentifier(),\n instanceIdentifier,\n noOfResourcesInTable: metadata.current.itemCount,\n });\n }\n }, [instanceIdentifier, loading, taskInteractionId, isInFunnel]);\n\n const debouncedUpdated = useDebounceCallback(() => {\n if (!isMountedRef.current) {\n return;\n }\n ComponentMetrics.componentUpdated({\n taskInteractionId,\n componentName: 'table',\n actionType: lastUserAction.current?.name ?? '',\n componentConfiguration: metadata.current.getComponentConfiguration(),\n });\n });\n\n useEffectOnUpdate(() => {\n if (isInFunnel || loading) {\n return;\n }\n\n debouncedUpdated();\n // Note: items used as a dependency here to trigger updates as a side effect\n }, [taskInteractionId, isInFunnel, loading, items, debouncedUpdated]);\n\n return {\n tableInteractionAttributes,\n setLastUserAction: (name: string) => void (lastUserAction.current = { name, time: performance.now() }),\n };\n}\n"]}
|
package/internal/manifest.json
CHANGED
package/package.json
CHANGED
|
@@ -153,7 +153,7 @@
|
|
|
153
153
|
"./internal/base-component/index.js",
|
|
154
154
|
"./internal/base-component/styles.css.js"
|
|
155
155
|
],
|
|
156
|
-
"version": "3.0.
|
|
156
|
+
"version": "3.0.1145",
|
|
157
157
|
"repository": {
|
|
158
158
|
"type": "git",
|
|
159
159
|
"url": "https://github.com/cloudscape-design/components.git"
|