@cloudscape-design/components 3.0.189 → 3.0.191
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/app-layout/drawer.d.ts +1 -4
- package/app-layout/drawer.d.ts.map +1 -1
- package/app-layout/drawer.js +4 -13
- package/app-layout/drawer.js.map +1 -1
- package/app-layout/index.d.ts.map +1 -1
- package/app-layout/index.js +4 -15
- package/app-layout/index.js.map +1 -1
- package/app-layout/mobile-toolbar/index.js +3 -3
- package/app-layout/mobile-toolbar/index.js.map +1 -1
- package/app-layout/navigation-panel.d.ts +1 -3
- package/app-layout/navigation-panel.d.ts.map +1 -1
- package/app-layout/navigation-panel.js +2 -2
- package/app-layout/navigation-panel.js.map +1 -1
- package/app-layout/notifications/index.d.ts +0 -4
- package/app-layout/notifications/index.d.ts.map +1 -1
- package/app-layout/notifications/index.js +1 -2
- package/app-layout/notifications/index.js.map +1 -1
- package/app-layout/styles.css.js +26 -38
- package/app-layout/styles.scoped.css +34 -109
- package/app-layout/styles.selectors.js +26 -38
- package/app-layout/tools-and-split-panel.d.ts +1 -8
- package/app-layout/tools-and-split-panel.d.ts.map +1 -1
- package/app-layout/tools-and-split-panel.js +2 -3
- package/app-layout/tools-and-split-panel.js.map +1 -1
- package/flashbar/collapsible-flashbar.d.ts.map +1 -1
- package/flashbar/collapsible-flashbar.js +5 -7
- package/flashbar/collapsible-flashbar.js.map +1 -1
- package/flashbar/internal/analytics.d.ts.map +1 -1
- package/flashbar/internal/analytics.js +5 -3
- package/flashbar/internal/analytics.js.map +1 -1
- package/flashbar/styles.css.js +43 -43
- package/flashbar/styles.scoped.css +146 -139
- package/flashbar/styles.selectors.js +43 -43
- package/internal/base-component/index.d.ts.map +1 -1
- package/internal/base-component/index.js +3 -11
- package/internal/base-component/index.js.map +1 -1
- package/internal/base-component/init-awsui-versions.d.ts +2 -0
- package/internal/base-component/init-awsui-versions.d.ts.map +1 -0
- package/internal/base-component/init-awsui-versions.js +15 -0
- package/internal/base-component/init-awsui-versions.js.map +1 -0
- package/internal/environment.d.ts +1 -0
- package/internal/environment.js +2 -1
- package/internal/hooks/use-base-component/component-metadata.d.ts +3 -0
- package/internal/hooks/use-base-component/component-metadata.d.ts.map +1 -0
- package/internal/hooks/use-base-component/component-metadata.js +21 -0
- package/internal/hooks/use-base-component/component-metadata.js.map +1 -0
- package/internal/hooks/use-base-component/index.d.ts +0 -1
- package/internal/hooks/use-base-component/index.d.ts.map +1 -1
- package/internal/hooks/use-base-component/index.js +3 -28
- package/internal/hooks/use-base-component/index.js.map +1 -1
- package/internal/hooks/use-telemetry/index.d.ts.map +1 -1
- package/internal/hooks/use-telemetry/index.js +4 -15
- package/internal/hooks/use-telemetry/index.js.map +1 -1
- package/internal/hooks/use-telemetry/telemetry.d.ts +8 -0
- package/internal/hooks/use-telemetry/telemetry.d.ts.map +1 -0
- package/internal/hooks/use-telemetry/telemetry.js +20 -0
- package/internal/hooks/use-telemetry/telemetry.js.map +1 -0
- package/internal/manifest.json +1 -1
- package/internal/metrics/index.d.ts +3 -0
- package/internal/metrics/index.d.ts.map +1 -0
- package/internal/metrics/index.js +5 -0
- package/internal/metrics/index.js.map +1 -0
- package/internal/metrics/log-clients.d.ts +39 -0
- package/internal/metrics/log-clients.d.ts.map +1 -0
- package/internal/metrics/log-clients.js +90 -0
- package/internal/metrics/log-clients.js.map +1 -0
- package/internal/metrics/metrics-formatters.d.ts +7 -0
- package/internal/metrics/metrics-formatters.d.ts.map +1 -0
- package/internal/metrics/metrics-formatters.js +36 -0
- package/internal/metrics/metrics-formatters.js.map +1 -0
- package/internal/{metrics.d.ts → metrics/metrics.d.ts} +11 -18
- package/internal/metrics/metrics.d.ts.map +1 -0
- package/internal/metrics/metrics.js +95 -0
- package/internal/metrics/metrics.js.map +1 -0
- package/package.json +1 -1
- package/property-filter/index.d.ts.map +1 -1
- package/property-filter/index.js +1 -1
- package/property-filter/index.js.map +1 -1
- package/wizard/internal/analytics.d.ts.map +1 -1
- package/wizard/internal/analytics.js +5 -3
- package/wizard/internal/analytics.js.map +1 -1
- package/app-layout/toggle-buttons.d.ts +0 -12
- package/app-layout/toggle-buttons.d.ts.map +0 -1
- package/app-layout/toggle-buttons.js +0 -13
- package/app-layout/toggle-buttons.js.map +0 -1
- package/internal/hooks/use-previous-frame/index.d.ts +0 -8
- package/internal/hooks/use-previous-frame/index.d.ts.map +0 -1
- package/internal/hooks/use-previous-frame/index.js +0 -20
- package/internal/hooks/use-previous-frame/index.js.map +0 -1
- package/internal/metrics.d.ts.map +0 -1
- package/internal/metrics.js +0 -177
- package/internal/metrics.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics-formatters.js","sourceRoot":"","sources":["../../../../src/internal/metrics/metrics-formatters.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAQtC,2CAA2C;AAC3C,IAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,MAAM,UAAU,eAAe,CAAC,EAAkC;QAAhC,MAAM,YAAA,EAAE,MAAM,YAAA;IAC9C,OAAO,CAAC,aAAM,MAAM,CAAE,EAAE,gBAAS,MAAM,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAA2C,EAAE,KAAa;QAAxD,MAAM,YAAA,EAAE,MAAM,YAAA,EAAE,OAAO,aAAA;IACzD,IAAM,YAAY,GAAG,OAAO,mBAAmB,KAAK,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/F,IAAM,YAAY,GAAG;QACnB,CAAC,EAAE,YAAY;QACf,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,MAAM;QACT,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,iCAAiC,CAAC,OAAO,CAAC;KAC9C,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAmC,EAAE,KAAa;QAAhD,MAAM,YAAA,EAAE,OAAO,aAAA;IAC/C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,UAAG,0BAA0B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,OAAe;IAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,OAAe;IACvE,OAAO,UAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAG,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,CAAC;AAC1E,CAAC;AAED,SAAS,eAAe,CAAC,aAAqB;IAC5C,IAAM,iBAAiB,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7D,OAAO,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { MetricsLogItem } from './log-clients';\n\n// TODO: move to component-toolkit/internal/metrics\n\ndeclare const AWSUI_METRIC_ORIGIN: string | undefined;\n\n// React is the only framework we're using.\nconst framework = 'react';\n\nexport function buildMetricHash({ source, action }: MetricsLogItem): string {\n return [`src${source}`, `action${action}`].join('_');\n}\n\nexport function buildMetricDetail({ source, action, version }: MetricsLogItem, theme: string): string {\n const metricOrigin = typeof AWSUI_METRIC_ORIGIN !== 'undefined' ? AWSUI_METRIC_ORIGIN : 'main';\n const detailObject = {\n o: metricOrigin,\n s: source,\n t: theme,\n a: action,\n f: framework,\n v: formatMajorVersionForMetricDetail(version),\n };\n return JSON.stringify(detailObject);\n}\n\nexport function buildMetricName({ source, version }: MetricsLogItem, theme: string): string {\n return ['awsui', source, `${formatVersionForMetricName(theme, version)}`].join('_');\n}\n\nexport function formatMajorVersionForMetricDetail(version: string) {\n return version.replace(/\\s/g, '');\n}\n\nexport function formatVersionForMetricName(theme: string, version: string) {\n return `${theme.charAt(0)}${getMajorVersion(version).replace('.', '')}`;\n}\n\nfunction getMajorVersion(versionString: string): string {\n const majorVersionMatch = versionString.match(/^(\\d+\\.\\d+)/);\n return majorVersionMatch ? majorVersionMatch[1] : '';\n}\n"]}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
eventContext?: string;
|
|
9
|
-
eventDetail?: string | Record<string, string | number | boolean>;
|
|
10
|
-
eventValue?: string | Record<string, string | number | boolean>;
|
|
11
|
-
}
|
|
12
|
-
export declare const Metrics: {
|
|
1
|
+
import { MetricsLogItem, MetricsV2EventItem } from './log-clients';
|
|
2
|
+
export declare class Metrics {
|
|
3
|
+
readonly source: string;
|
|
4
|
+
readonly packageVersion: string;
|
|
5
|
+
private clog;
|
|
6
|
+
private panorama;
|
|
7
|
+
constructor(source: string, packageVersion: string);
|
|
13
8
|
initMetrics(theme: string): void;
|
|
14
9
|
/**
|
|
15
10
|
* Calls Console Platform's client logging JS API with provided metric name, value, and detail.
|
|
@@ -26,10 +21,8 @@ export declare const Metrics: {
|
|
|
26
21
|
sendMetricOnce(metricName: string, value: number, detail?: string): void;
|
|
27
22
|
logComponentLoaded(): void;
|
|
28
23
|
logComponentUsed(componentName: string): void;
|
|
29
|
-
}
|
|
30
|
-
export declare
|
|
31
|
-
resetOneTimeMetricsCache
|
|
32
|
-
|
|
33
|
-
formatVersionForMetricName: (theme: string, version: string) => string;
|
|
34
|
-
};
|
|
24
|
+
}
|
|
25
|
+
export declare class MetricsTestHelper {
|
|
26
|
+
resetOneTimeMetricsCache(): void;
|
|
27
|
+
}
|
|
35
28
|
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../../src/internal/metrics/metrics.ts"],"names":[],"mappings":"AAKA,OAAO,EAA8B,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAW/F,qBAAa,OAAO;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,IAAI,CAAoB;IAChC,OAAO,CAAC,QAAQ,CAAwB;gBAE5B,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAKlD,WAAW,CAAC,KAAK,EAAE,MAAM;IAIzB;;;OAGG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAUpE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIpD,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7D,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAYjE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAYxE,kBAAkB;IASlB,gBAAgB,CAAC,aAAa,EAAE,MAAM;CAUvC;AAED,qBAAa,iBAAiB;IAC5B,wBAAwB;CAKzB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
// TODO: move to component-toolkit/internal/metrics
|
|
4
|
+
import { CLogClient, PanoramaClient } from './log-clients';
|
|
5
|
+
import { buildMetricDetail, buildMetricHash, buildMetricName } from './metrics-formatters';
|
|
6
|
+
var oneTimeMetrics = {};
|
|
7
|
+
// In case we need to override the theme for VR.
|
|
8
|
+
var theme = '';
|
|
9
|
+
function setTheme(newTheme) {
|
|
10
|
+
theme = newTheme;
|
|
11
|
+
}
|
|
12
|
+
var Metrics = /** @class */ (function () {
|
|
13
|
+
function Metrics(source, packageVersion) {
|
|
14
|
+
this.clog = new CLogClient();
|
|
15
|
+
this.panorama = new PanoramaClient();
|
|
16
|
+
this.source = source;
|
|
17
|
+
this.packageVersion = packageVersion;
|
|
18
|
+
}
|
|
19
|
+
Metrics.prototype.initMetrics = function (theme) {
|
|
20
|
+
setTheme(theme);
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Calls Console Platform's client logging JS API with provided metric name, value, and detail.
|
|
24
|
+
* Does nothing if Console Platform client logging JS is not present in page.
|
|
25
|
+
*/
|
|
26
|
+
Metrics.prototype.sendMetric = function (metricName, value, detail) {
|
|
27
|
+
if (!theme) {
|
|
28
|
+
// Metrics need to be initialized first (initMetrics)
|
|
29
|
+
console.error('Metrics need to be initialized first.');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.clog.sendMetric(metricName, value, detail);
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Calls Console Platform's client v2 logging JS API with provided metric name and detail.
|
|
36
|
+
* Does nothing if Console Platform client logging JS is not present in page.
|
|
37
|
+
*/
|
|
38
|
+
Metrics.prototype.sendPanoramaMetric = function (metric) {
|
|
39
|
+
this.panorama.sendMetric(metric);
|
|
40
|
+
};
|
|
41
|
+
Metrics.prototype.sendMetricObject = function (metric, value) {
|
|
42
|
+
this.sendMetric(buildMetricName(metric, theme), value, buildMetricDetail(metric, theme));
|
|
43
|
+
};
|
|
44
|
+
Metrics.prototype.sendMetricObjectOnce = function (metric, value) {
|
|
45
|
+
var metricHash = buildMetricHash(metric);
|
|
46
|
+
if (!oneTimeMetrics[metricHash]) {
|
|
47
|
+
this.sendMetricObject(metric, value);
|
|
48
|
+
oneTimeMetrics[metricHash] = true;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/*
|
|
52
|
+
* Calls Console Platform's client logging only the first time the provided metricName is used.
|
|
53
|
+
* Subsequent calls with the same metricName are ignored.
|
|
54
|
+
*/
|
|
55
|
+
Metrics.prototype.sendMetricOnce = function (metricName, value, detail) {
|
|
56
|
+
if (!oneTimeMetrics[metricName]) {
|
|
57
|
+
this.sendMetric(metricName, value, detail);
|
|
58
|
+
oneTimeMetrics[metricName] = true;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
/*
|
|
62
|
+
* Reports a metric value 1 to Console Platform's client logging service to indicate that the
|
|
63
|
+
* component was loaded. The component load event will only be reported as used to client logging
|
|
64
|
+
* service once per page view.
|
|
65
|
+
*/
|
|
66
|
+
Metrics.prototype.logComponentLoaded = function () {
|
|
67
|
+
this.sendMetricObjectOnce({ source: this.source, action: 'loaded', version: this.packageVersion }, 1);
|
|
68
|
+
};
|
|
69
|
+
/*
|
|
70
|
+
* Reports a metric value 1 to Console Platform's client logging service to indicate that the
|
|
71
|
+
* component was used in the page. A component will only be reported as used to client logging
|
|
72
|
+
* service once per page view.
|
|
73
|
+
*/
|
|
74
|
+
Metrics.prototype.logComponentUsed = function (componentName) {
|
|
75
|
+
this.sendMetricObjectOnce({
|
|
76
|
+
source: componentName,
|
|
77
|
+
action: 'used',
|
|
78
|
+
version: this.packageVersion
|
|
79
|
+
}, 1);
|
|
80
|
+
};
|
|
81
|
+
return Metrics;
|
|
82
|
+
}());
|
|
83
|
+
export { Metrics };
|
|
84
|
+
var MetricsTestHelper = /** @class */ (function () {
|
|
85
|
+
function MetricsTestHelper() {
|
|
86
|
+
}
|
|
87
|
+
MetricsTestHelper.prototype.resetOneTimeMetricsCache = function () {
|
|
88
|
+
for (var prop in oneTimeMetrics) {
|
|
89
|
+
delete oneTimeMetrics[prop];
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
return MetricsTestHelper;
|
|
93
|
+
}());
|
|
94
|
+
export { MetricsTestHelper };
|
|
95
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../src/internal/metrics/metrics.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// TODO: move to component-toolkit/internal/metrics\n\nimport { CLogClient, PanoramaClient, MetricsLogItem, MetricsV2EventItem } from './log-clients';\nimport { buildMetricDetail, buildMetricHash, buildMetricName } from './metrics-formatters';\n\nconst oneTimeMetrics: Record<string, boolean> = {};\n\n// In case we need to override the theme for VR.\nlet theme = '';\nfunction setTheme(newTheme: string) {\n theme = newTheme;\n}\n\nexport class Metrics {\n readonly source: string;\n readonly packageVersion: string;\n\n private clog = new CLogClient();\n private panorama = new PanoramaClient();\n\n constructor(source: string, packageVersion: string) {\n this.source = source;\n this.packageVersion = packageVersion;\n }\n\n initMetrics(theme: string) {\n setTheme(theme);\n }\n\n /**\n * Calls Console Platform's client logging JS API with provided metric name, value, and detail.\n * Does nothing if Console Platform client logging JS is not present in page.\n */\n sendMetric(metricName: string, value: number, detail?: string): void {\n if (!theme) {\n // Metrics need to be initialized first (initMetrics)\n console.error('Metrics need to be initialized first.');\n return;\n }\n\n this.clog.sendMetric(metricName, value, detail);\n }\n\n /**\n * Calls Console Platform's client v2 logging JS API with provided metric name and detail.\n * Does nothing if Console Platform client logging JS is not present in page.\n */\n sendPanoramaMetric(metric: MetricsV2EventItem): void {\n this.panorama.sendMetric(metric);\n }\n\n sendMetricObject(metric: MetricsLogItem, value: number): void {\n this.sendMetric(buildMetricName(metric, theme), value, buildMetricDetail(metric, theme));\n }\n\n sendMetricObjectOnce(metric: MetricsLogItem, value: number): void {\n const metricHash = buildMetricHash(metric);\n if (!oneTimeMetrics[metricHash]) {\n this.sendMetricObject(metric, value);\n oneTimeMetrics[metricHash] = true;\n }\n }\n\n /*\n * Calls Console Platform's client logging only the first time the provided metricName is used.\n * Subsequent calls with the same metricName are ignored.\n */\n sendMetricOnce(metricName: string, value: number, detail?: string): void {\n if (!oneTimeMetrics[metricName]) {\n this.sendMetric(metricName, value, detail);\n oneTimeMetrics[metricName] = true;\n }\n }\n\n /*\n * Reports a metric value 1 to Console Platform's client logging service to indicate that the\n * component was loaded. The component load event will only be reported as used to client logging\n * service once per page view.\n */\n logComponentLoaded() {\n this.sendMetricObjectOnce({ source: this.source, action: 'loaded', version: this.packageVersion }, 1);\n }\n\n /*\n * Reports a metric value 1 to Console Platform's client logging service to indicate that the\n * component was used in the page. A component will only be reported as used to client logging\n * service once per page view.\n */\n logComponentUsed(componentName: string) {\n this.sendMetricObjectOnce(\n {\n source: componentName,\n action: 'used',\n version: this.packageVersion,\n },\n 1\n );\n }\n}\n\nexport class MetricsTestHelper {\n resetOneTimeMetricsCache() {\n for (const prop in oneTimeMetrics) {\n delete oneTimeMetrics[prop];\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAW9E,OAAO,EAAE,mBAAmB,EAAiE,MAAM,cAAc,CAAC;AAiBlH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,QAAA,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAW9E,OAAO,EAAE,mBAAmB,EAAiE,MAAM,cAAc,CAAC;AAiBlH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B,QAAA,MAAM,cAAc,qGAsRnB,CAAC;AAGF,eAAe,cAAc,CAAC"}
|
package/property-filter/index.js
CHANGED
|
@@ -146,7 +146,7 @@ var PropertyFilter = React.forwardRef(function (_a, ref) {
|
|
|
146
146
|
setFilteringText('');
|
|
147
147
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus({ preventDropdown: true });
|
|
148
148
|
(_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.close();
|
|
149
|
-
} })), hideEnteredTextOption: disableFreeTextFiltering && parsedText.step !== 'property' })),
|
|
149
|
+
} })), hideEnteredTextOption: disableFreeTextFiltering && parsedText.step !== 'property', clearAriaLabel: i18nStrings.clearAriaLabel })),
|
|
150
150
|
React.createElement("span", { "aria-live": "polite", "aria-atomic": "true", className: clsx(styles.results, showResults && styles['results-visible']) }, showResults ? countText : '')),
|
|
151
151
|
tokens && tokens.length > 0 && (React.createElement("div", { className: styles.tokens },
|
|
152
152
|
React.createElement(InternalSpaceBetween, { size: "xs", direction: "horizontal", id: controlId },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, useState, useMemo, useImperativeHandle } from 'react';\n\nimport InternalSpaceBetween from '../space-between/internal';\nimport { InternalButton } from '../button/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { KeyCode } from '../internal/keycode';\nimport SelectToggle from '../token-group/toggle';\nimport { generateUniqueId } from '../internal/hooks/use-unique-id/index';\nimport { fireNonCancelableEvent } from '../internal/events';\n\nimport { PropertyFilterProps, ParsedText, Ref, FilteringProperty, ComparisonOperator, Token } from './interfaces';\nimport { TokenButton } from './token';\nimport {\n getQueryActions,\n parseText,\n getAutosuggestOptions,\n getAllowedOperators,\n getExtendedOperator,\n} from './controller';\nimport { useLoadItems } from './use-load-items';\nimport styles from './styles.css.js';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport PropertyFilterAutosuggest, { PropertyFilterAutosuggestProps } from './property-filter-autosuggest';\nimport { PropertyEditor } from './property-editor';\nimport { AutosuggestInputRef } from '../internal/components/autosuggest-input';\nimport { matchTokenValue } from './utils';\n\nexport { PropertyFilterProps };\n\nconst PropertyFilter = React.forwardRef(\n (\n {\n disabled,\n i18nStrings,\n countText,\n query,\n hideOperations,\n onChange,\n filteringProperties,\n filteringOptions = [],\n customGroupsText = [],\n disableFreeTextFiltering = false,\n onLoadItems,\n virtualScroll,\n customControl,\n filteringEmpty,\n filteringLoadingText,\n filteringFinishedText,\n filteringErrorText,\n filteringRecoveryText,\n filteringStatusType,\n asyncProperties,\n tokenLimit,\n expandToViewport,\n ...rest\n }: PropertyFilterProps,\n ref: React.Ref<Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('PropertyFilter');\n const inputRef = useRef<AutosuggestInputRef>(null);\n const baseProps = getBaseProps(rest);\n useImperativeHandle(ref, () => ({ focus: () => inputRef.current?.focus() }), []);\n const { tokens, operation } = query;\n const showResults = tokens?.length && !disabled;\n const { addToken, removeToken, setToken, setOperation, removeAllTokens } = getQueryActions(\n query,\n onChange,\n inputRef\n );\n const [filteringText, setFilteringText] = useState<string>('');\n const parsedText = parseText(filteringText, filteringProperties, disableFreeTextFiltering);\n const autosuggestOptions = getAutosuggestOptions(\n parsedText,\n filteringOptions,\n filteringProperties,\n customGroupsText,\n i18nStrings\n );\n\n const createToken = (currentText: string) => {\n const parsedText = parseText(currentText, filteringProperties, disableFreeTextFiltering);\n let newToken: Token;\n switch (parsedText.step) {\n case 'property': {\n newToken = matchTokenValue(\n {\n propertyKey: parsedText.property.key,\n operator: parsedText.operator,\n value: parsedText.value,\n },\n filteringOptions\n );\n break;\n }\n case 'free-text': {\n newToken = {\n operator: parsedText.operator || ':',\n value: parsedText.value,\n };\n break;\n }\n case 'operator': {\n newToken = {\n operator: ':',\n value: currentText,\n };\n break;\n }\n }\n if (disableFreeTextFiltering && !('propertyKey' in newToken)) {\n return;\n }\n addToken(newToken);\n setFilteringText('');\n };\n const ignoreKeyDown = useRef<boolean>(false);\n const handleKeyDown: PropertyFilterAutosuggestProps['onKeyDown'] = event => {\n if (filteringText && !ignoreKeyDown.current && event.detail.keyCode === KeyCode.enter) {\n createToken(filteringText);\n }\n };\n const getLoadMoreDetail = (parsedText: ParsedText, filteringText: string) => {\n const loadMoreDetail: {\n filteringProperty: FilteringProperty | undefined;\n filteringText: string;\n filteringOperator: ComparisonOperator | undefined;\n } = {\n filteringProperty: undefined,\n filteringText,\n filteringOperator: undefined,\n };\n if (parsedText.step === 'property') {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringText = parsedText.value;\n loadMoreDetail.filteringOperator = parsedText.operator;\n }\n return loadMoreDetail;\n };\n const loadMoreDetail = getLoadMoreDetail(parsedText, filteringText);\n const inputLoadItemsHandlers = useLoadItems(\n onLoadItems,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringProperty,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringOperator\n );\n const asyncProps = {\n empty: filteringEmpty,\n loadingText: filteringLoadingText,\n finishedText: filteringFinishedText,\n errorText: filteringErrorText,\n recoveryText: filteringRecoveryText,\n statusType: filteringStatusType,\n };\n const asyncAutosuggestProps =\n !!filteringText.length || asyncProperties\n ? {\n ...inputLoadItemsHandlers,\n ...asyncProps,\n }\n : {};\n const handleSelected: PropertyFilterAutosuggestProps['onOptionClick'] = event => {\n // The ignoreKeyDown flag makes sure `createToken` routine runs only once. Autosuggest's `onKeyDown` fires,\n // when an item is selected from the list using \"enter\" key.\n ignoreKeyDown.current = true;\n setTimeout(() => {\n ignoreKeyDown.current = false;\n }, 0);\n const { detail: option } = event;\n const value = option.value || '';\n\n if (!('keepOpenOnSelect' in option)) {\n createToken(value);\n return;\n }\n\n // stop dropdown from closing\n event.preventDefault();\n\n const parsedText = parseText(value, filteringProperties, disableFreeTextFiltering);\n const loadMoreDetail = getLoadMoreDetail(parsedText, value);\n\n // Insert operator automatically if only one operator is defined for the given property.\n if (parsedText.step === 'operator') {\n const operators = getAllowedOperators(parsedText.property);\n if (value.trim() === parsedText.property.propertyLabel && operators.length === 1) {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringOperator = operators[0];\n loadMoreDetail.filteringText = '';\n setFilteringText(parsedText.property.propertyLabel + ' ' + operators[0] + ' ');\n }\n }\n\n fireNonCancelableEvent(onLoadItems, { ...loadMoreDetail, firstPage: true, samePage: false });\n };\n const [tokensExpanded, setTokensExpanded] = useState(false);\n const toggleExpandedTokens = () => setTokensExpanded(!tokensExpanded);\n const hasHiddenOptions = tokenLimit !== undefined && tokens.length > tokenLimit;\n const slicedTokens = hasHiddenOptions && !tokensExpanded ? tokens.slice(0, tokenLimit) : tokens;\n const controlId = useMemo(() => generateUniqueId(), []);\n\n const operatorForm =\n parsedText.step === 'property' &&\n getExtendedOperator(filteringProperties, parsedText.property.key, parsedText.operator)?.form;\n\n return (\n <span {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <div className={styles['search-field']}>\n {customControl && <div className={styles['custom-control']}>{customControl}</div>}\n <PropertyFilterAutosuggest\n ref={inputRef}\n virtualScroll={virtualScroll}\n enteredTextLabel={i18nStrings.enteredTextLabel}\n ariaLabel={i18nStrings.filteringAriaLabel}\n placeholder={i18nStrings.filteringPlaceholder}\n value={filteringText}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n {...autosuggestOptions}\n onChange={event => setFilteringText(event.detail.value)}\n empty={filteringEmpty}\n {...asyncAutosuggestProps}\n expandToViewport={expandToViewport}\n onOptionClick={handleSelected}\n customForm={\n operatorForm && (\n <PropertyEditor\n property={parsedText.property}\n operator={parsedText.operator}\n filter={parsedText.value}\n operatorForm={operatorForm}\n i18nStrings={i18nStrings}\n onCancel={() => {\n setFilteringText('');\n inputRef.current?.close();\n inputRef.current?.focus({ preventDropdown: true });\n }}\n onSubmit={token => {\n addToken(token);\n setFilteringText('');\n inputRef.current?.focus({ preventDropdown: true });\n inputRef.current?.close();\n }}\n />\n )\n }\n hideEnteredTextOption={disableFreeTextFiltering && parsedText.step !== 'property'}\n />\n <span\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={clsx(styles.results, showResults && styles['results-visible'])}\n >\n {showResults ? countText : ''}\n </span>\n </div>\n {tokens && tokens.length > 0 && (\n <div className={styles.tokens}>\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\" id={controlId}>\n {slicedTokens.map((token, index) => (\n <TokenButton\n token={token}\n first={index === 0}\n operation={operation}\n key={index}\n removeToken={() => removeToken(index)}\n setToken={(newToken: Token) => setToken(index, newToken)}\n setOperation={setOperation}\n filteringOptions={filteringOptions}\n filteringProperties={filteringProperties}\n asyncProps={asyncProps}\n onLoadItems={onLoadItems}\n i18nStrings={i18nStrings}\n asyncProperties={asyncProperties}\n hideOperations={hideOperations}\n customGroupsText={customGroupsText}\n disableFreeTextFiltering={disableFreeTextFiltering}\n disabled={disabled}\n expandToViewport={expandToViewport}\n />\n ))}\n {hasHiddenOptions && (\n <div className={styles['toggle-collapsed']}>\n <SelectToggle\n controlId={controlId}\n allHidden={tokenLimit === 0}\n expanded={tokensExpanded}\n numberOfHiddenOptions={tokens.length - slicedTokens.length}\n i18nStrings={{\n limitShowFewer: i18nStrings.tokenLimitShowFewer,\n limitShowMore: i18nStrings.tokenLimitShowMore,\n }}\n onClick={toggleExpandedTokens}\n />\n </div>\n )}\n <div className={styles.separator} />\n <InternalButton onClick={removeAllTokens} className={styles['remove-all']} disabled={disabled}>\n {i18nStrings.clearFiltersText}\n </InternalButton>\n </InternalSpaceBetween>\n </div>\n )}\n </span>\n );\n }\n);\n\napplyDisplayName(PropertyFilter, 'PropertyFilter');\nexport default PropertyFilter;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/property-filter/index.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport clsx from 'clsx';\nimport React, { useRef, useState, useMemo, useImperativeHandle } from 'react';\n\nimport InternalSpaceBetween from '../space-between/internal';\nimport { InternalButton } from '../button/internal';\nimport { getBaseProps } from '../internal/base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { KeyCode } from '../internal/keycode';\nimport SelectToggle from '../token-group/toggle';\nimport { generateUniqueId } from '../internal/hooks/use-unique-id/index';\nimport { fireNonCancelableEvent } from '../internal/events';\n\nimport { PropertyFilterProps, ParsedText, Ref, FilteringProperty, ComparisonOperator, Token } from './interfaces';\nimport { TokenButton } from './token';\nimport {\n getQueryActions,\n parseText,\n getAutosuggestOptions,\n getAllowedOperators,\n getExtendedOperator,\n} from './controller';\nimport { useLoadItems } from './use-load-items';\nimport styles from './styles.css.js';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport PropertyFilterAutosuggest, { PropertyFilterAutosuggestProps } from './property-filter-autosuggest';\nimport { PropertyEditor } from './property-editor';\nimport { AutosuggestInputRef } from '../internal/components/autosuggest-input';\nimport { matchTokenValue } from './utils';\n\nexport { PropertyFilterProps };\n\nconst PropertyFilter = React.forwardRef(\n (\n {\n disabled,\n i18nStrings,\n countText,\n query,\n hideOperations,\n onChange,\n filteringProperties,\n filteringOptions = [],\n customGroupsText = [],\n disableFreeTextFiltering = false,\n onLoadItems,\n virtualScroll,\n customControl,\n filteringEmpty,\n filteringLoadingText,\n filteringFinishedText,\n filteringErrorText,\n filteringRecoveryText,\n filteringStatusType,\n asyncProperties,\n tokenLimit,\n expandToViewport,\n ...rest\n }: PropertyFilterProps,\n ref: React.Ref<Ref>\n ) => {\n const { __internalRootRef } = useBaseComponent('PropertyFilter');\n const inputRef = useRef<AutosuggestInputRef>(null);\n const baseProps = getBaseProps(rest);\n useImperativeHandle(ref, () => ({ focus: () => inputRef.current?.focus() }), []);\n const { tokens, operation } = query;\n const showResults = tokens?.length && !disabled;\n const { addToken, removeToken, setToken, setOperation, removeAllTokens } = getQueryActions(\n query,\n onChange,\n inputRef\n );\n const [filteringText, setFilteringText] = useState<string>('');\n const parsedText = parseText(filteringText, filteringProperties, disableFreeTextFiltering);\n const autosuggestOptions = getAutosuggestOptions(\n parsedText,\n filteringOptions,\n filteringProperties,\n customGroupsText,\n i18nStrings\n );\n\n const createToken = (currentText: string) => {\n const parsedText = parseText(currentText, filteringProperties, disableFreeTextFiltering);\n let newToken: Token;\n switch (parsedText.step) {\n case 'property': {\n newToken = matchTokenValue(\n {\n propertyKey: parsedText.property.key,\n operator: parsedText.operator,\n value: parsedText.value,\n },\n filteringOptions\n );\n break;\n }\n case 'free-text': {\n newToken = {\n operator: parsedText.operator || ':',\n value: parsedText.value,\n };\n break;\n }\n case 'operator': {\n newToken = {\n operator: ':',\n value: currentText,\n };\n break;\n }\n }\n if (disableFreeTextFiltering && !('propertyKey' in newToken)) {\n return;\n }\n addToken(newToken);\n setFilteringText('');\n };\n const ignoreKeyDown = useRef<boolean>(false);\n const handleKeyDown: PropertyFilterAutosuggestProps['onKeyDown'] = event => {\n if (filteringText && !ignoreKeyDown.current && event.detail.keyCode === KeyCode.enter) {\n createToken(filteringText);\n }\n };\n const getLoadMoreDetail = (parsedText: ParsedText, filteringText: string) => {\n const loadMoreDetail: {\n filteringProperty: FilteringProperty | undefined;\n filteringText: string;\n filteringOperator: ComparisonOperator | undefined;\n } = {\n filteringProperty: undefined,\n filteringText,\n filteringOperator: undefined,\n };\n if (parsedText.step === 'property') {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringText = parsedText.value;\n loadMoreDetail.filteringOperator = parsedText.operator;\n }\n return loadMoreDetail;\n };\n const loadMoreDetail = getLoadMoreDetail(parsedText, filteringText);\n const inputLoadItemsHandlers = useLoadItems(\n onLoadItems,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringProperty,\n loadMoreDetail.filteringText,\n loadMoreDetail.filteringOperator\n );\n const asyncProps = {\n empty: filteringEmpty,\n loadingText: filteringLoadingText,\n finishedText: filteringFinishedText,\n errorText: filteringErrorText,\n recoveryText: filteringRecoveryText,\n statusType: filteringStatusType,\n };\n const asyncAutosuggestProps =\n !!filteringText.length || asyncProperties\n ? {\n ...inputLoadItemsHandlers,\n ...asyncProps,\n }\n : {};\n const handleSelected: PropertyFilterAutosuggestProps['onOptionClick'] = event => {\n // The ignoreKeyDown flag makes sure `createToken` routine runs only once. Autosuggest's `onKeyDown` fires,\n // when an item is selected from the list using \"enter\" key.\n ignoreKeyDown.current = true;\n setTimeout(() => {\n ignoreKeyDown.current = false;\n }, 0);\n const { detail: option } = event;\n const value = option.value || '';\n\n if (!('keepOpenOnSelect' in option)) {\n createToken(value);\n return;\n }\n\n // stop dropdown from closing\n event.preventDefault();\n\n const parsedText = parseText(value, filteringProperties, disableFreeTextFiltering);\n const loadMoreDetail = getLoadMoreDetail(parsedText, value);\n\n // Insert operator automatically if only one operator is defined for the given property.\n if (parsedText.step === 'operator') {\n const operators = getAllowedOperators(parsedText.property);\n if (value.trim() === parsedText.property.propertyLabel && operators.length === 1) {\n loadMoreDetail.filteringProperty = parsedText.property;\n loadMoreDetail.filteringOperator = operators[0];\n loadMoreDetail.filteringText = '';\n setFilteringText(parsedText.property.propertyLabel + ' ' + operators[0] + ' ');\n }\n }\n\n fireNonCancelableEvent(onLoadItems, { ...loadMoreDetail, firstPage: true, samePage: false });\n };\n const [tokensExpanded, setTokensExpanded] = useState(false);\n const toggleExpandedTokens = () => setTokensExpanded(!tokensExpanded);\n const hasHiddenOptions = tokenLimit !== undefined && tokens.length > tokenLimit;\n const slicedTokens = hasHiddenOptions && !tokensExpanded ? tokens.slice(0, tokenLimit) : tokens;\n const controlId = useMemo(() => generateUniqueId(), []);\n\n const operatorForm =\n parsedText.step === 'property' &&\n getExtendedOperator(filteringProperties, parsedText.property.key, parsedText.operator)?.form;\n\n return (\n <span {...baseProps} className={clsx(baseProps.className, styles.root)} ref={__internalRootRef}>\n <div className={styles['search-field']}>\n {customControl && <div className={styles['custom-control']}>{customControl}</div>}\n <PropertyFilterAutosuggest\n ref={inputRef}\n virtualScroll={virtualScroll}\n enteredTextLabel={i18nStrings.enteredTextLabel}\n ariaLabel={i18nStrings.filteringAriaLabel}\n placeholder={i18nStrings.filteringPlaceholder}\n value={filteringText}\n disabled={disabled}\n onKeyDown={handleKeyDown}\n {...autosuggestOptions}\n onChange={event => setFilteringText(event.detail.value)}\n empty={filteringEmpty}\n {...asyncAutosuggestProps}\n expandToViewport={expandToViewport}\n onOptionClick={handleSelected}\n customForm={\n operatorForm && (\n <PropertyEditor\n property={parsedText.property}\n operator={parsedText.operator}\n filter={parsedText.value}\n operatorForm={operatorForm}\n i18nStrings={i18nStrings}\n onCancel={() => {\n setFilteringText('');\n inputRef.current?.close();\n inputRef.current?.focus({ preventDropdown: true });\n }}\n onSubmit={token => {\n addToken(token);\n setFilteringText('');\n inputRef.current?.focus({ preventDropdown: true });\n inputRef.current?.close();\n }}\n />\n )\n }\n hideEnteredTextOption={disableFreeTextFiltering && parsedText.step !== 'property'}\n clearAriaLabel={i18nStrings.clearAriaLabel}\n />\n <span\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={clsx(styles.results, showResults && styles['results-visible'])}\n >\n {showResults ? countText : ''}\n </span>\n </div>\n {tokens && tokens.length > 0 && (\n <div className={styles.tokens}>\n <InternalSpaceBetween size=\"xs\" direction=\"horizontal\" id={controlId}>\n {slicedTokens.map((token, index) => (\n <TokenButton\n token={token}\n first={index === 0}\n operation={operation}\n key={index}\n removeToken={() => removeToken(index)}\n setToken={(newToken: Token) => setToken(index, newToken)}\n setOperation={setOperation}\n filteringOptions={filteringOptions}\n filteringProperties={filteringProperties}\n asyncProps={asyncProps}\n onLoadItems={onLoadItems}\n i18nStrings={i18nStrings}\n asyncProperties={asyncProperties}\n hideOperations={hideOperations}\n customGroupsText={customGroupsText}\n disableFreeTextFiltering={disableFreeTextFiltering}\n disabled={disabled}\n expandToViewport={expandToViewport}\n />\n ))}\n {hasHiddenOptions && (\n <div className={styles['toggle-collapsed']}>\n <SelectToggle\n controlId={controlId}\n allHidden={tokenLimit === 0}\n expanded={tokensExpanded}\n numberOfHiddenOptions={tokens.length - slicedTokens.length}\n i18nStrings={{\n limitShowFewer: i18nStrings.tokenLimitShowFewer,\n limitShowMore: i18nStrings.tokenLimitShowMore,\n }}\n onClick={toggleExpandedTokens}\n />\n </div>\n )}\n <div className={styles.separator} />\n <InternalButton onClick={removeAllTokens} className={styles['remove-all']} disabled={disabled}>\n {i18nStrings.clearFiltersText}\n </InternalButton>\n </InternalSpaceBetween>\n </div>\n )}\n </span>\n );\n }\n);\n\napplyDisplayName(PropertyFilter, 'PropertyFilter');\nexport default PropertyFilter;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/wizard/internal/analytics.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../../src/wizard/internal/analytics.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgC5C,eAAO,MAAM,gBAAgB,YAE5B,CAAC;AAEF,eAAO,MAAM,cAAc,eAAgB,MAAM,SAehD,CAAC;AAEF,eAAO,MAAM,aAAa,oBACP,MAAM,sBACH,MAAM,UAClB,YAAY,gBAAgB,SAWrC,CAAC;AAEF,eAAO,MAAM,WAAW,cAAe,MAAM,SAW5C,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import { __assign } from "tslib";
|
|
4
|
+
import { PACKAGE_SOURCE, PACKAGE_VERSION } from '../../internal/environment';
|
|
4
5
|
import { Metrics } from '../../internal/metrics';
|
|
6
|
+
var metrics = new Metrics(PACKAGE_SOURCE, PACKAGE_VERSION);
|
|
5
7
|
var prefix = 'csa_wizard';
|
|
6
8
|
var createEventType = function (eventType) { return "".concat(prefix, "_").concat(eventType); };
|
|
7
9
|
var createEventContext = function (stepIndex) {
|
|
@@ -42,12 +44,12 @@ export var trackStartStep = function (stepIndex) {
|
|
|
42
44
|
var time = timeEnd();
|
|
43
45
|
// Start a new timer of the current step
|
|
44
46
|
timeStart();
|
|
45
|
-
|
|
47
|
+
metrics.sendPanoramaMetric(__assign({ eventContext: eventContext, eventDetail: createEventDetail(stepIndex), eventType: createEventType('step') }, (time !== undefined && { eventValue: time.toString() })));
|
|
46
48
|
};
|
|
47
49
|
export var trackNavigate = function (activeStepIndex, requestedStepIndex, reason) {
|
|
48
50
|
var eventContext = createEventContext(activeStepIndex);
|
|
49
51
|
var time = timeEnd();
|
|
50
|
-
|
|
52
|
+
metrics.sendPanoramaMetric({
|
|
51
53
|
eventContext: eventContext,
|
|
52
54
|
eventDetail: createEventDetail(requestedStepIndex),
|
|
53
55
|
eventType: createEventType('navigate'),
|
|
@@ -58,6 +60,6 @@ export var trackSubmit = function (stepIndex) {
|
|
|
58
60
|
var eventContext = createEventContext(stepIndex);
|
|
59
61
|
// End the timer of the wizard
|
|
60
62
|
var time = timeEnd(prefix);
|
|
61
|
-
|
|
63
|
+
metrics.sendPanoramaMetric(__assign({ eventContext: eventContext, eventDetail: createEventDetail(stepIndex), eventType: createEventType('submit') }, (time !== undefined && { eventValue: time.toString() })));
|
|
62
64
|
};
|
|
63
65
|
//# sourceMappingURL=analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../src/wizard/internal/analytics.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Metrics } from '../../internal/metrics';\nimport { WizardProps } from '../interfaces';\n\nconst prefix = 'csa_wizard';\n\nconst createEventType = (eventType: string) => `${prefix}_${eventType}`;\nconst createEventContext = (stepIndex = 0) => `${prefix}_step${stepIndex + 1}`;\nconst createEventDetail = (stepIndex = 0) => `step${stepIndex + 1}`;\n\n// A custom time cache is used to not clear the timer between navigation attempts\n// This allows us the ability to track time to attempt each step as well as the time to complete\n// each step\nconst timeCache: Record<string, number> = {};\nconst timeStart = (key = 'current') => {\n timeCache[key] = Date.now();\n};\n\nconst timeEnd = (key = 'current', clear = false) => {\n const start = timeCache[key];\n // No start time is available when starting the first step\n if (!start) {\n return undefined;\n }\n\n if (clear) {\n delete timeCache[key];\n }\n\n return (Date.now() - start) / 1000; // Convert to seconds\n};\n\nexport const trackStartWizard = () => {\n timeStart(prefix);\n};\n\nexport const trackStartStep = (stepIndex?: number) => {\n const eventContext = createEventContext(stepIndex);\n\n // End the timer of the previous step\n const time = timeEnd();\n\n // Start a new timer of the current step\n timeStart();\n\n
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../../src/wizard/internal/analytics.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { PACKAGE_SOURCE, PACKAGE_VERSION } from '../../internal/environment';\nimport { Metrics } from '../../internal/metrics';\nimport { WizardProps } from '../interfaces';\n\nconst metrics = new Metrics(PACKAGE_SOURCE, PACKAGE_VERSION);\n\nconst prefix = 'csa_wizard';\n\nconst createEventType = (eventType: string) => `${prefix}_${eventType}`;\nconst createEventContext = (stepIndex = 0) => `${prefix}_step${stepIndex + 1}`;\nconst createEventDetail = (stepIndex = 0) => `step${stepIndex + 1}`;\n\n// A custom time cache is used to not clear the timer between navigation attempts\n// This allows us the ability to track time to attempt each step as well as the time to complete\n// each step\nconst timeCache: Record<string, number> = {};\nconst timeStart = (key = 'current') => {\n timeCache[key] = Date.now();\n};\n\nconst timeEnd = (key = 'current', clear = false) => {\n const start = timeCache[key];\n // No start time is available when starting the first step\n if (!start) {\n return undefined;\n }\n\n if (clear) {\n delete timeCache[key];\n }\n\n return (Date.now() - start) / 1000; // Convert to seconds\n};\n\nexport const trackStartWizard = () => {\n timeStart(prefix);\n};\n\nexport const trackStartStep = (stepIndex?: number) => {\n const eventContext = createEventContext(stepIndex);\n\n // End the timer of the previous step\n const time = timeEnd();\n\n // Start a new timer of the current step\n timeStart();\n\n metrics.sendPanoramaMetric({\n eventContext,\n eventDetail: createEventDetail(stepIndex),\n eventType: createEventType('step'),\n ...(time !== undefined && { eventValue: time.toString() }),\n });\n};\n\nexport const trackNavigate = (\n activeStepIndex: number,\n requestedStepIndex: number,\n reason: WizardProps.NavigationReason\n) => {\n const eventContext = createEventContext(activeStepIndex);\n const time = timeEnd();\n\n metrics.sendPanoramaMetric({\n eventContext,\n eventDetail: createEventDetail(requestedStepIndex),\n eventType: createEventType('navigate'),\n eventValue: { reason, ...(time !== undefined && { time }) },\n });\n};\n\nexport const trackSubmit = (stepIndex: number) => {\n const eventContext = createEventContext(stepIndex);\n // End the timer of the wizard\n const time = timeEnd(prefix);\n\n metrics.sendPanoramaMetric({\n eventContext,\n eventDetail: createEventDetail(stepIndex),\n eventType: createEventType('submit'),\n ...(time !== undefined && { eventValue: time.toString() }),\n });\n};\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { AppLayoutProps } from './interfaces';
|
|
3
|
-
interface ToggleButtonsProps {
|
|
4
|
-
anyPanelOpen: boolean;
|
|
5
|
-
children: React.ReactNode;
|
|
6
|
-
ariaLabels: AppLayoutProps.Labels | undefined;
|
|
7
|
-
isHidden: boolean;
|
|
8
|
-
opaqueBackground: boolean;
|
|
9
|
-
}
|
|
10
|
-
export declare function ToggleButtons({ children, ariaLabels, anyPanelOpen, isHidden, opaqueBackground }: ToggleButtonsProps): JSX.Element;
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=toggle-buttons.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-buttons.d.ts","sourceRoot":"","sources":["../../../src/app-layout/toggle-buttons.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,UAAU,kBAAkB;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,EAAE,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,kBAAkB,eAkBnH"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import clsx from 'clsx';
|
|
5
|
-
import SpaceBetween from '../space-between/internal';
|
|
6
|
-
import styles from './styles.css.js';
|
|
7
|
-
export function ToggleButtons(_a) {
|
|
8
|
-
var children = _a.children, ariaLabels = _a.ariaLabels, anyPanelOpen = _a.anyPanelOpen, isHidden = _a.isHidden, opaqueBackground = _a.opaqueBackground;
|
|
9
|
-
return (React.createElement("div", { className: clsx(styles['button-toggles-container'], anyPanelOpen && styles['button-toggles-container-open'], isHidden && styles['button-toggles-container-is-hidden'], opaqueBackground && styles['opaque-background']) },
|
|
10
|
-
React.createElement("aside", { "aria-label": ariaLabels === null || ariaLabels === void 0 ? void 0 : ariaLabels.tools, className: clsx(styles['visual-refresh-toggle'], styles["visual-refresh-toggle-type-tools"]) },
|
|
11
|
-
React.createElement(SpaceBetween, { size: "xs" }, children))));
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=toggle-buttons.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-buttons.js","sourceRoot":"","sources":["../../../src/app-layout/toggle-buttons.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,2BAA2B,CAAC;AACrD,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAWrC,MAAM,UAAU,aAAa,CAAC,EAAsF;QAApF,QAAQ,cAAA,EAAE,UAAU,gBAAA,EAAE,YAAY,kBAAA,EAAE,QAAQ,cAAA,EAAE,gBAAgB,sBAAA;IAC5F,OAAO,CACL,6BACE,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,0BAA0B,CAAC,EAClC,YAAY,IAAI,MAAM,CAAC,+BAA+B,CAAC,EACvD,QAAQ,IAAI,MAAM,CAAC,oCAAoC,CAAC,EACxD,gBAAgB,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAChD;QAED,6CACc,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAE5F,oBAAC,YAAY,IAAC,IAAI,EAAC,IAAI,IAAE,QAAQ,CAAgB,CAC3C,CACJ,CACP,CAAC;AACJ,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\nimport clsx from 'clsx';\nimport SpaceBetween from '../space-between/internal';\nimport styles from './styles.css.js';\nimport { AppLayoutProps } from './interfaces';\n\ninterface ToggleButtonsProps {\n anyPanelOpen: boolean;\n children: React.ReactNode;\n ariaLabels: AppLayoutProps.Labels | undefined;\n isHidden: boolean;\n opaqueBackground: boolean;\n}\n\nexport function ToggleButtons({ children, ariaLabels, anyPanelOpen, isHidden, opaqueBackground }: ToggleButtonsProps) {\n return (\n <div\n className={clsx(\n styles['button-toggles-container'],\n anyPanelOpen && styles['button-toggles-container-open'],\n isHidden && styles['button-toggles-container-is-hidden'],\n opaqueBackground && styles['opaque-background']\n )}\n >\n <aside\n aria-label={ariaLabels?.tools}\n className={clsx(styles['visual-refresh-toggle'], styles[`visual-refresh-toggle-type-tools`])}\n >\n <SpaceBetween size=\"xs\">{children}</SpaceBetween>\n </aside>\n </div>\n );\n}\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This hook provides access to the value of any variable
|
|
3
|
-
* from the previous render frame.
|
|
4
|
-
* Even if multiple effects are flushed in a single render
|
|
5
|
-
* loop, this hook still keeps the original value.
|
|
6
|
-
*/
|
|
7
|
-
export declare const usePreviousFrameValue: <T>(value: T) => T | undefined;
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-previous-frame/index.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gCASjC,CAAC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
-
import { useRef, useEffect } from 'react';
|
|
4
|
-
/**
|
|
5
|
-
* This hook provides access to the value of any variable
|
|
6
|
-
* from the previous render frame.
|
|
7
|
-
* Even if multiple effects are flushed in a single render
|
|
8
|
-
* loop, this hook still keeps the original value.
|
|
9
|
-
*/
|
|
10
|
-
export var usePreviousFrameValue = function (value) {
|
|
11
|
-
var ref = useRef();
|
|
12
|
-
useEffect(function () {
|
|
13
|
-
var handle = requestAnimationFrame(function () {
|
|
14
|
-
ref.current = value;
|
|
15
|
-
});
|
|
16
|
-
return function () { return cancelAnimationFrame(handle); };
|
|
17
|
-
});
|
|
18
|
-
return ref.current;
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/internal/hooks/use-previous-frame/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAI,KAAQ;IAC/C,IAAM,GAAG,GAAG,MAAM,EAAK,CAAC;IACxB,SAAS,CAAC;QACR,IAAM,MAAM,GAAG,qBAAqB,CAAC;YACnC,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,cAAM,OAAA,oBAAoB,CAAC,MAAM,CAAC,EAA5B,CAA4B,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,OAAO,CAAC;AACrB,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useRef, useEffect } from 'react';\n\n/**\n * This hook provides access to the value of any variable\n * from the previous render frame.\n * Even if multiple effects are flushed in a single render\n * loop, this hook still keeps the original value.\n */\nexport const usePreviousFrameValue = <T>(value: T) => {\n const ref = useRef<T>();\n useEffect(() => {\n const handle = requestAnimationFrame(() => {\n ref.current = value;\n });\n return () => cancelAnimationFrame(handle);\n });\n return ref.current;\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/internal/metrics.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACjE;AA8FD,eAAO,MAAM,OAAO;uBACC,MAAM;IAIzB;;;OAGG;2BACoB,MAAM,SAAS,MAAM,WAAW,MAAM,GAAG,IAAI;IAqBpE;;;OAGG;+BACwB,kBAAkB,GAAG,IAAI;6BAoB3B,cAAc,SAAS,MAAM,GAAG,IAAI;iCAIhC,cAAc,SAAS,MAAM,GAAG,IAAI;+BAYtC,MAAM,SAAS,MAAM,WAAW,MAAM,GAAG,IAAI;;oCA4BxC,MAAM;CAUvC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;iDA3KsB,MAAM;wCAIf,MAAM,WAAW,MAAM;CA+KjE,CAAC"}
|
package/internal/metrics.js
DELETED
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
import { PACKAGE_VERSION } from './environment';
|
|
5
|
-
var oneTimeMetrics = {};
|
|
6
|
-
// In case we need to override the theme for VR
|
|
7
|
-
var theme = '';
|
|
8
|
-
function setTheme(newTheme) {
|
|
9
|
-
theme = newTheme;
|
|
10
|
-
}
|
|
11
|
-
// react is the only framework we're using
|
|
12
|
-
var framework = 'react';
|
|
13
|
-
var buildMetricHash = function (_a) {
|
|
14
|
-
var source = _a.source, action = _a.action;
|
|
15
|
-
return ["src".concat(source), "action".concat(action)].join('_');
|
|
16
|
-
};
|
|
17
|
-
var getMajorVersion = function (versionString) {
|
|
18
|
-
var majorVersionMatch = versionString.match(/^(\d+\.\d+)/);
|
|
19
|
-
return majorVersionMatch ? majorVersionMatch[1] : '';
|
|
20
|
-
};
|
|
21
|
-
var formatMajorVersionForMetricDetail = function (version) {
|
|
22
|
-
return version.replace(/\s/g, '');
|
|
23
|
-
};
|
|
24
|
-
var formatVersionForMetricName = function (theme, version) {
|
|
25
|
-
return "".concat(theme.charAt(0)).concat(getMajorVersion(version).replace('.', ''));
|
|
26
|
-
};
|
|
27
|
-
var buildMetricDetail = function (_a) {
|
|
28
|
-
var source = _a.source, action = _a.action, version = _a.version;
|
|
29
|
-
var metricOrigin = typeof AWSUI_METRIC_ORIGIN !== 'undefined' ? AWSUI_METRIC_ORIGIN : 'main';
|
|
30
|
-
var detailObject = {
|
|
31
|
-
o: metricOrigin,
|
|
32
|
-
s: source,
|
|
33
|
-
t: theme,
|
|
34
|
-
a: action,
|
|
35
|
-
f: framework,
|
|
36
|
-
v: formatMajorVersionForMetricDetail(version)
|
|
37
|
-
};
|
|
38
|
-
return JSON.stringify(detailObject);
|
|
39
|
-
};
|
|
40
|
-
var buildMetricName = function (_a) {
|
|
41
|
-
var source = _a.source, version = _a.version;
|
|
42
|
-
return ['awsui', source, "".concat(formatVersionForMetricName(theme, version))].join('_');
|
|
43
|
-
};
|
|
44
|
-
var findPanorama = function (currentWindow) {
|
|
45
|
-
try {
|
|
46
|
-
if (typeof (currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.panorama) === 'function') {
|
|
47
|
-
return currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.panorama;
|
|
48
|
-
}
|
|
49
|
-
if (!currentWindow || currentWindow.parent === currentWindow) {
|
|
50
|
-
// When the window has no more parents, it references itself
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
return findPanorama(currentWindow.parent);
|
|
54
|
-
}
|
|
55
|
-
catch (ex) {
|
|
56
|
-
// Most likely a cross-origin access error
|
|
57
|
-
return undefined;
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
var findAWSC = function (currentWindow) {
|
|
61
|
-
try {
|
|
62
|
-
if (typeof (currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.AWSC) === 'object') {
|
|
63
|
-
return currentWindow === null || currentWindow === void 0 ? void 0 : currentWindow.AWSC;
|
|
64
|
-
}
|
|
65
|
-
if (!currentWindow || currentWindow.parent === currentWindow) {
|
|
66
|
-
// When the window has no more parents, it references itself
|
|
67
|
-
return undefined;
|
|
68
|
-
}
|
|
69
|
-
return findAWSC(currentWindow.parent);
|
|
70
|
-
}
|
|
71
|
-
catch (ex) {
|
|
72
|
-
// Most likely a cross-origin access error
|
|
73
|
-
return undefined;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
export var Metrics = {
|
|
77
|
-
initMetrics: function (theme) {
|
|
78
|
-
setTheme(theme);
|
|
79
|
-
},
|
|
80
|
-
/**
|
|
81
|
-
* Calls Console Platform's client logging JS API with provided metric name, value, and detail.
|
|
82
|
-
* Does nothing if Console Platform client logging JS is not present in page.
|
|
83
|
-
*/
|
|
84
|
-
sendMetric: function (metricName, value, detail) {
|
|
85
|
-
if (!theme) {
|
|
86
|
-
// Metrics need to be initialized first (initMetrics)
|
|
87
|
-
console.error('Metrics need to be initalized first.');
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
if (!metricName || !/^[a-zA-Z0-9_-]{1,32}$/.test(metricName)) {
|
|
91
|
-
console.error("Invalid metric name: ".concat(metricName));
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
if (detail && detail.length > 200) {
|
|
95
|
-
console.error("Detail for metric ".concat(metricName, " is too long: ").concat(detail));
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
var AWSC = findAWSC(window);
|
|
99
|
-
if (typeof AWSC === 'object' && typeof AWSC.Clog === 'object' && typeof AWSC.Clog.log === 'function') {
|
|
100
|
-
AWSC.Clog.log(metricName, value, detail);
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
/**
|
|
104
|
-
* Calls Console Platform's client v2 logging JS API with provided metric name and detail.
|
|
105
|
-
* Does nothing if Console Platform client logging JS is not present in page.
|
|
106
|
-
*/
|
|
107
|
-
sendPanoramaMetric: function (metric) {
|
|
108
|
-
if (typeof metric.eventDetail === 'object') {
|
|
109
|
-
metric.eventDetail = JSON.stringify(metric.eventDetail);
|
|
110
|
-
}
|
|
111
|
-
if (metric.eventDetail && metric.eventDetail.length > 200) {
|
|
112
|
-
console.error("Detail for metric is too long: ".concat(metric.eventDetail));
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
if (typeof metric.eventValue === 'object') {
|
|
116
|
-
metric.eventValue = JSON.stringify(metric.eventValue);
|
|
117
|
-
}
|
|
118
|
-
var panorama = findPanorama(window);
|
|
119
|
-
if (typeof panorama === 'function') {
|
|
120
|
-
panorama('trackCustomEvent', __assign(__assign({}, metric), { timestamp: Date.now() }));
|
|
121
|
-
}
|
|
122
|
-
},
|
|
123
|
-
sendMetricObject: function (metric, value) {
|
|
124
|
-
this.sendMetric(buildMetricName(metric), value, buildMetricDetail(metric));
|
|
125
|
-
},
|
|
126
|
-
sendMetricObjectOnce: function (metric, value) {
|
|
127
|
-
var metricHash = buildMetricHash(metric);
|
|
128
|
-
if (!oneTimeMetrics[metricHash]) {
|
|
129
|
-
this.sendMetricObject(metric, value);
|
|
130
|
-
oneTimeMetrics[metricHash] = true;
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
/*
|
|
134
|
-
* Calls Console Platform's client logging only the first time the provided metricName is used.
|
|
135
|
-
* Subsequent calls with the same metricName are ignored.
|
|
136
|
-
*/
|
|
137
|
-
sendMetricOnce: function (metricName, value, detail) {
|
|
138
|
-
if (!oneTimeMetrics[metricName]) {
|
|
139
|
-
this.sendMetric(metricName, value, detail);
|
|
140
|
-
oneTimeMetrics[metricName] = true;
|
|
141
|
-
}
|
|
142
|
-
},
|
|
143
|
-
/*
|
|
144
|
-
* Reports a metric value 1 to Console Platform's client logging service to indicate that the
|
|
145
|
-
* component was loaded. The component load event will only be reported as used to client logging
|
|
146
|
-
* service once per page view.
|
|
147
|
-
*/
|
|
148
|
-
logComponentLoaded: function () {
|
|
149
|
-
this.sendMetricObjectOnce({
|
|
150
|
-
source: 'components',
|
|
151
|
-
action: 'loaded',
|
|
152
|
-
version: PACKAGE_VERSION
|
|
153
|
-
}, 1);
|
|
154
|
-
},
|
|
155
|
-
/*
|
|
156
|
-
* Reports a metric value 1 to Console Platform's client logging service to indicate that the
|
|
157
|
-
* component was used in the page. A component will only be reported as used to client logging
|
|
158
|
-
* service once per page view.
|
|
159
|
-
*/
|
|
160
|
-
logComponentUsed: function (componentName) {
|
|
161
|
-
this.sendMetricObjectOnce({
|
|
162
|
-
source: componentName,
|
|
163
|
-
action: 'used',
|
|
164
|
-
version: PACKAGE_VERSION
|
|
165
|
-
}, 1);
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
export var MetricsTestHelper = {
|
|
169
|
-
resetOneTimeMetricsCache: function () {
|
|
170
|
-
for (var prop in oneTimeMetrics) {
|
|
171
|
-
delete oneTimeMetrics[prop];
|
|
172
|
-
}
|
|
173
|
-
},
|
|
174
|
-
formatMajorVersionForMetricDetail: formatMajorVersionForMetricDetail,
|
|
175
|
-
formatVersionForMetricName: formatVersionForMetricName
|
|
176
|
-
};
|
|
177
|
-
//# sourceMappingURL=metrics.js.map
|