@cloudscape-design/components-themeable 3.0.816 → 3.0.818

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.
Files changed (50) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/test-classes/styles.scss +23 -67
  3. package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/styles.scss +5 -0
  4. package/lib/internal/template/app-layout/drawer/index.d.ts.map +1 -1
  5. package/lib/internal/template/app-layout/drawer/index.js +3 -2
  6. package/lib/internal/template/app-layout/drawer/index.js.map +1 -1
  7. package/lib/internal/template/app-layout/test-classes/styles.css.js +23 -22
  8. package/lib/internal/template/app-layout/test-classes/styles.scoped.css +23 -85
  9. package/lib/internal/template/app-layout/test-classes/styles.selectors.js +23 -22
  10. package/lib/internal/template/app-layout/toggles/index.d.ts.map +1 -1
  11. package/lib/internal/template/app-layout/toggles/index.js +4 -1
  12. package/lib/internal/template/app-layout/toggles/index.js.map +1 -1
  13. package/lib/internal/template/app-layout/visual-refresh/drawers.d.ts.map +1 -1
  14. package/lib/internal/template/app-layout/visual-refresh/drawers.js +8 -2
  15. package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
  16. package/lib/internal/template/app-layout/visual-refresh/navigation.d.ts.map +1 -1
  17. package/lib/internal/template/app-layout/visual-refresh/navigation.js +3 -3
  18. package/lib/internal/template/app-layout/visual-refresh/navigation.js.map +1 -1
  19. package/lib/internal/template/app-layout/visual-refresh/tools.js +1 -1
  20. package/lib/internal/template/app-layout/visual-refresh/tools.js.map +1 -1
  21. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  22. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js +4 -2
  23. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  24. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +15 -13
  25. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +19 -15
  26. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +15 -13
  27. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.d.ts.map +1 -1
  28. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js +1 -0
  29. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/trigger-button/index.js.map +1 -1
  30. package/lib/internal/template/internal/base-component/styles.scoped.css +49 -33
  31. package/lib/internal/template/internal/environment.js +1 -1
  32. package/lib/internal/template/internal/environment.json +1 -1
  33. package/lib/internal/template/internal/generated/styles/tokens.js +3 -3
  34. package/lib/internal/template/internal/generated/theming/index.cjs +41 -41
  35. package/lib/internal/template/internal/generated/theming/index.js +41 -41
  36. package/lib/internal/template/internal/plugins/controllers/breadcrumbs.d.ts +5 -4
  37. package/lib/internal/template/internal/plugins/controllers/breadcrumbs.d.ts.map +1 -1
  38. package/lib/internal/template/internal/plugins/controllers/breadcrumbs.js +2 -4
  39. package/lib/internal/template/internal/plugins/controllers/breadcrumbs.js.map +1 -1
  40. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.d.ts.map +1 -1
  41. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js +1 -1
  42. package/lib/internal/template/internal/plugins/helpers/use-global-breadcrumbs.js.map +1 -1
  43. package/lib/internal/template/test-utils/dom/app-layout/index.d.ts +12 -1
  44. package/lib/internal/template/test-utils/dom/app-layout/index.js +28 -2
  45. package/lib/internal/template/test-utils/dom/app-layout/index.js.map +1 -1
  46. package/lib/internal/template/test-utils/selectors/app-layout/index.d.ts +12 -1
  47. package/lib/internal/template/test-utils/selectors/app-layout/index.js +28 -2
  48. package/lib/internal/template/test-utils/selectors/app-layout/index.js.map +1 -1
  49. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +1 -1
@@ -1,29 +1,30 @@
1
1
  type ChangeCallback<T> = (props: T | null) => void;
2
+ type RegistrationCallback = (isRegistered: boolean) => void;
2
3
  export interface BreadcrumbsGlobalRegistration<T> {
3
4
  update(props: T): void;
4
5
  cleanup(): void;
5
6
  }
6
7
  export interface BreadcrumbsApiInternal<T> {
7
8
  registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | void;
8
- registerBreadcrumbs: (props: T, onRegistered: () => void) => BreadcrumbsGlobalRegistration<T>;
9
+ registerBreadcrumbs: (props: T, onRegistered: RegistrationCallback) => BreadcrumbsGlobalRegistration<T>;
9
10
  getStateForTesting: () => {
10
11
  appLayoutUpdateCallback: ChangeCallback<T> | null;
11
12
  breadcrumbInstances: Array<{
12
13
  props: T;
13
14
  }>;
14
- breadcrumbRegistrations: Array<() => void>;
15
+ breadcrumbRegistrations: Array<RegistrationCallback>;
15
16
  };
16
17
  }
17
18
  export declare class BreadcrumbsController<T> {
18
19
  #private;
19
20
  registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | undefined;
20
- registerBreadcrumbs: (props: T, onRegistered: () => void) => BreadcrumbsGlobalRegistration<T>;
21
+ registerBreadcrumbs: (props: T, onRegistered: RegistrationCallback) => BreadcrumbsGlobalRegistration<T>;
21
22
  getStateForTesting: () => {
22
23
  appLayoutUpdateCallback: ChangeCallback<T> | null;
23
24
  breadcrumbInstances: {
24
25
  props: T;
25
26
  }[];
26
- breadcrumbRegistrations: (() => void)[];
27
+ breadcrumbRegistrations: RegistrationCallback[];
27
28
  };
28
29
  installInternal(internalApi?: Partial<BreadcrumbsApiInternal<T>>): BreadcrumbsApiInternal<T>;
29
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/breadcrumbs.ts"],"names":[],"mappings":"AAIA,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAEnD,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,iBAAiB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,IAAI,KAAK,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAC9F,kBAAkB,EAAE,MAAM;QACxB,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAClD,mBAAmB,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC;QACzC,uBAAuB,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;KAC5C,CAAC;CACH;AAED,qBAAa,qBAAqB,CAAC,CAAC;;IAoBlC,iBAAiB,mBAAoB,eAAe,CAAC,CAAC,8BASpD;IAEF,mBAAmB,UAAW,CAAC,gBAAgB,MAAM,IAAI,KAAG,8BAA8B,CAAC,CAAC,CAiB1F;IAEF,kBAAkB;;;mBAhDmB,CAAC;;wCACA,IAAI;MAqDxC;IAEF,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC;CAOjG"}
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/breadcrumbs.ts"],"names":[],"mappings":"AAIA,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AACnD,KAAK,oBAAoB,GAAG,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;AAE5D,MAAM,WAAW,6BAA6B,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,iBAAiB,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9E,mBAAmB,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,YAAY,EAAE,oBAAoB,KAAK,6BAA6B,CAAC,CAAC,CAAC,CAAC;IACxG,kBAAkB,EAAE,MAAM;QACxB,uBAAuB,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAClD,mBAAmB,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,CAAC,CAAA;SAAE,CAAC,CAAC;QACzC,uBAAuB,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACtD,CAAC;CACH;AAED,qBAAa,qBAAqB,CAAC,CAAC;;IAiBlC,iBAAiB,mBAAoB,eAAe,CAAC,CAAC,8BAUpD;IAEF,mBAAmB,UAAW,CAAC,gBAAgB,oBAAoB,KAAG,8BAA8B,CAAC,CAAC,CAiBpG;IAEF,kBAAkB;;;mBA9CmB,CAAC;;;MAoDpC;IAEF,eAAe,CAAC,WAAW,GAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAM,GAAG,sBAAsB,CAAC,CAAC,CAAC;CAOjG"}
@@ -17,10 +17,7 @@ export class BreadcrumbsController {
17
17
  __classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f").call(this, (_a = latestBreadcrumb === null || latestBreadcrumb === void 0 ? void 0 : latestBreadcrumb.props) !== null && _a !== void 0 ? _a : null);
18
18
  }, 0));
19
19
  _BreadcrumbsController_notifyBreadcrumbs.set(this, debounce(() => {
20
- if (!__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f")) {
21
- return;
22
- }
23
- __classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f").forEach(listener => listener());
20
+ __classPrivateFieldGet(this, _BreadcrumbsController_breadcrumbRegistrations, "f").forEach(listener => listener(!!__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f")));
24
21
  }, 0));
25
22
  this.registerAppLayout = (changeCallback) => {
26
23
  if (__classPrivateFieldGet(this, _BreadcrumbsController_appLayoutUpdateCallback, "f")) {
@@ -30,6 +27,7 @@ export class BreadcrumbsController {
30
27
  __classPrivateFieldGet(this, _BreadcrumbsController_notifyBreadcrumbs, "f").call(this);
31
28
  return () => {
32
29
  __classPrivateFieldSet(this, _BreadcrumbsController_appLayoutUpdateCallback, null, "f");
30
+ __classPrivateFieldGet(this, _BreadcrumbsController_notifyBreadcrumbs, "f").call(this);
33
31
  };
34
32
  };
35
33
  this.registerBreadcrumbs = (props, onRegistered) => {
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/breadcrumbs.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\nimport debounce from '../../debounce';\n\ntype ChangeCallback<T> = (props: T | null) => void;\n\nexport interface BreadcrumbsGlobalRegistration<T> {\n update(props: T): void;\n cleanup(): void;\n}\n\nexport interface BreadcrumbsApiInternal<T> {\n registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | void;\n registerBreadcrumbs: (props: T, onRegistered: () => void) => BreadcrumbsGlobalRegistration<T>;\n getStateForTesting: () => {\n appLayoutUpdateCallback: ChangeCallback<T> | null;\n breadcrumbInstances: Array<{ props: T }>;\n breadcrumbRegistrations: Array<() => void>;\n };\n}\n\nexport class BreadcrumbsController<T> {\n #appLayoutUpdateCallback: ChangeCallback<T> | null = null;\n #breadcrumbInstances: Array<{ props: T }> = [];\n #breadcrumbRegistrations: Array<() => void> = [];\n\n #notifyAppLayout = debounce(() => {\n if (!this.#appLayoutUpdateCallback) {\n return;\n }\n const latestBreadcrumb = this.#breadcrumbInstances[this.#breadcrumbInstances.length - 1];\n this.#appLayoutUpdateCallback(latestBreadcrumb?.props ?? null);\n }, 0);\n\n #notifyBreadcrumbs = debounce(() => {\n if (!this.#appLayoutUpdateCallback) {\n return;\n }\n this.#breadcrumbRegistrations.forEach(listener => listener());\n }, 0);\n\n registerAppLayout = (changeCallback: ChangeCallback<T>) => {\n if (this.#appLayoutUpdateCallback) {\n return;\n }\n this.#appLayoutUpdateCallback = changeCallback;\n this.#notifyBreadcrumbs();\n return () => {\n this.#appLayoutUpdateCallback = null;\n };\n };\n\n registerBreadcrumbs = (props: T, onRegistered: () => void): BreadcrumbsGlobalRegistration<T> => {\n const instance = { props: props };\n this.#breadcrumbInstances.push(instance);\n this.#breadcrumbRegistrations.push(onRegistered);\n this.#notifyBreadcrumbs();\n this.#notifyAppLayout();\n return {\n update: props => {\n instance.props = props;\n this.#notifyAppLayout();\n },\n cleanup: () => {\n this.#breadcrumbInstances.splice(this.#breadcrumbInstances.indexOf(instance), 1);\n this.#breadcrumbRegistrations.splice(this.#breadcrumbRegistrations.indexOf(onRegistered), 1);\n this.#notifyAppLayout();\n },\n };\n };\n\n getStateForTesting = () => {\n return {\n appLayoutUpdateCallback: this.#appLayoutUpdateCallback,\n breadcrumbInstances: this.#breadcrumbInstances,\n breadcrumbRegistrations: this.#breadcrumbRegistrations,\n };\n };\n\n installInternal(internalApi: Partial<BreadcrumbsApiInternal<T>> = {}): BreadcrumbsApiInternal<T> {\n internalApi.registerBreadcrumbs ??= this.registerBreadcrumbs;\n internalApi.registerAppLayout ??= this.registerAppLayout;\n internalApi.getStateForTesting ??= this.getStateForTesting;\n\n return internalApi as BreadcrumbsApiInternal<T>;\n }\n}\n"]}
1
+ {"version":3,"file":"breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/controllers/breadcrumbs.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\nimport debounce from '../../debounce';\n\ntype ChangeCallback<T> = (props: T | null) => void;\ntype RegistrationCallback = (isRegistered: boolean) => void;\n\nexport interface BreadcrumbsGlobalRegistration<T> {\n update(props: T): void;\n cleanup(): void;\n}\n\nexport interface BreadcrumbsApiInternal<T> {\n registerAppLayout: (changeCallback: ChangeCallback<T>) => (() => void) | void;\n registerBreadcrumbs: (props: T, onRegistered: RegistrationCallback) => BreadcrumbsGlobalRegistration<T>;\n getStateForTesting: () => {\n appLayoutUpdateCallback: ChangeCallback<T> | null;\n breadcrumbInstances: Array<{ props: T }>;\n breadcrumbRegistrations: Array<RegistrationCallback>;\n };\n}\n\nexport class BreadcrumbsController<T> {\n #appLayoutUpdateCallback: ChangeCallback<T> | null = null;\n #breadcrumbInstances: Array<{ props: T }> = [];\n #breadcrumbRegistrations: Array<RegistrationCallback> = [];\n\n #notifyAppLayout = debounce(() => {\n if (!this.#appLayoutUpdateCallback) {\n return;\n }\n const latestBreadcrumb = this.#breadcrumbInstances[this.#breadcrumbInstances.length - 1];\n this.#appLayoutUpdateCallback(latestBreadcrumb?.props ?? null);\n }, 0);\n\n #notifyBreadcrumbs = debounce(() => {\n this.#breadcrumbRegistrations.forEach(listener => listener(!!this.#appLayoutUpdateCallback));\n }, 0);\n\n registerAppLayout = (changeCallback: ChangeCallback<T>) => {\n if (this.#appLayoutUpdateCallback) {\n return;\n }\n this.#appLayoutUpdateCallback = changeCallback;\n this.#notifyBreadcrumbs();\n return () => {\n this.#appLayoutUpdateCallback = null;\n this.#notifyBreadcrumbs();\n };\n };\n\n registerBreadcrumbs = (props: T, onRegistered: RegistrationCallback): BreadcrumbsGlobalRegistration<T> => {\n const instance = { props: props };\n this.#breadcrumbInstances.push(instance);\n this.#breadcrumbRegistrations.push(onRegistered);\n this.#notifyBreadcrumbs();\n this.#notifyAppLayout();\n return {\n update: props => {\n instance.props = props;\n this.#notifyAppLayout();\n },\n cleanup: () => {\n this.#breadcrumbInstances.splice(this.#breadcrumbInstances.indexOf(instance), 1);\n this.#breadcrumbRegistrations.splice(this.#breadcrumbRegistrations.indexOf(onRegistered), 1);\n this.#notifyAppLayout();\n },\n };\n };\n\n getStateForTesting = () => {\n return {\n appLayoutUpdateCallback: this.#appLayoutUpdateCallback,\n breadcrumbInstances: this.#breadcrumbInstances,\n breadcrumbRegistrations: this.#breadcrumbRegistrations,\n };\n };\n\n installInternal(internalApi: Partial<BreadcrumbsApiInternal<T>> = {}): BreadcrumbsApiInternal<T> {\n internalApi.registerBreadcrumbs ??= this.registerBreadcrumbs;\n internalApi.registerAppLayout ??= this.registerAppLayout;\n internalApi.getStateForTesting ??= this.getStateForTesting;\n\n return internalApi as BreadcrumbsApiInternal<T>;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"use-global-breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAiC5E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAQ1G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,oCAavD"}
1
+ {"version":3,"file":"use-global-breadcrumbs.d.ts","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAmC5E,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,WAQ1G;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,oCAavD"}
@@ -15,7 +15,7 @@ function useSetGlobalBreadcrumbsImplementation(_a) {
15
15
  if (isInToolbar || __disableGlobalization) {
16
16
  return;
17
17
  }
18
- const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, () => setRegistered(true));
18
+ const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, isRegistered => setRegistered(isRegistered !== null && isRegistered !== void 0 ? isRegistered : true));
19
19
  registrationRef.current = registration;
20
20
  return () => {
21
21
  registration.cleanup();
@@ -1 +1 @@
1
- {"version":3,"file":"use-global-breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAE7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAG9C,SAAS,qCAAqC,CAAC,EAGoB;;QAHpB,EAC7C,sBAAsB,OAE2C,EAD9D,KAAK,cAFqC,0BAG9C,CADS;IAER,MAAM,EAAE,WAAW,EAAE,GAAG,MAAA,UAAU,CAAC,sBAAsB,CAAC,mCAAI,EAAE,CAAC;IACjE,MAAM,eAAe,GAAG,MAAM,EAA8D,CAAC;IAC7F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,sBAAsB,EAAE;YACzC,OAAO;SACR;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5G,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;QAEvC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE1C,eAAe,CAAC,GAAG,EAAE;;QACnB,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAsC,KAA8B;IACzG,gEAAgE;IAChE,IAAI,CAAC,0BAA0B,EAAE,EAAE;QACjC,OAAO,KAAK,CAAC;KACd;IACD,iEAAiE;IACjE,sDAAsD;IACtD,OAAO,qCAAqC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAmC,IAAI,CAAC,CAAC;IAE3G,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YACtE,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useAppLayoutToolbarEnabled } from '../../../app-layout/utils/feature-flags';\nimport { BreadcrumbsSlotContext } from '../../../app-layout/visual-refresh-toolbar/contexts';\nimport { BreadcrumbGroupProps } from '../../../breadcrumb-group/interfaces';\nimport { awsuiPluginsInternal } from '../api';\nimport { BreadcrumbsGlobalRegistration } from '../controllers/breadcrumbs';\n\nfunction useSetGlobalBreadcrumbsImplementation({\n __disableGlobalization,\n ...props\n}: BreadcrumbGroupProps<any> & { __disableGlobalization?: boolean }) {\n const { isInToolbar } = useContext(BreadcrumbsSlotContext) ?? {};\n const registrationRef = useRef<BreadcrumbsGlobalRegistration<BreadcrumbGroupProps> | null>();\n const [registered, setRegistered] = useState(false);\n\n useEffect(() => {\n if (isInToolbar || __disableGlobalization) {\n return;\n }\n const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, () => setRegistered(true));\n registrationRef.current = registration;\n\n return () => {\n registration.cleanup();\n };\n // subsequent prop changes are handled by another effect\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isInToolbar, __disableGlobalization]);\n\n useLayoutEffect(() => {\n registrationRef.current?.update(props);\n });\n\n return registered;\n}\n\nexport function useSetGlobalBreadcrumbs<T extends BreadcrumbGroupProps.Item>(props: BreadcrumbGroupProps<T>) {\n // avoid additional side effects when this feature is not active\n if (!useAppLayoutToolbarEnabled()) {\n return false;\n }\n // getGlobalFlag() value does not change without full page reload\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSetGlobalBreadcrumbsImplementation(props);\n}\n\nexport function useGetGlobalBreadcrumbs(enabled: boolean) {\n const [discoveredBreadcrumbs, setDiscoveredBreadcrumbs] = useState<BreadcrumbGroupProps<any> | null>(null);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n return awsuiPluginsInternal.breadcrumbs.registerAppLayout(breadcrumbs => {\n setDiscoveredBreadcrumbs(breadcrumbs);\n });\n }, [enabled]);\n\n return discoveredBreadcrumbs;\n}\n"]}
1
+ {"version":3,"file":"use-global-breadcrumbs.js","sourceRoot":"","sources":["../../../../../src/internal/plugins/helpers/use-global-breadcrumbs.ts"],"names":[],"mappings":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAE7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAG9C,SAAS,qCAAqC,CAAC,EAGoB;;QAHpB,EAC7C,sBAAsB,OAE2C,EAD9D,KAAK,cAFqC,0BAG9C,CADS;IAER,MAAM,EAAE,WAAW,EAAE,GAAG,MAAA,UAAU,CAAC,sBAAsB,CAAC,mCAAI,EAAE,CAAC;IACjE,MAAM,eAAe,GAAG,MAAM,EAA8D,CAAC;IAC7F,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,IAAI,sBAAsB,EAAE;YACzC,OAAO;SACR;QACD,MAAM,YAAY,GAAG,oBAAoB,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAC9F,aAAa,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,CAAC,CACpC,CAAC;QACF,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;QAEvC,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC,CAAC;QACF,wDAAwD;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAE1C,eAAe,CAAC,GAAG,EAAE;;QACnB,MAAA,eAAe,CAAC,OAAO,0CAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAsC,KAA8B;IACzG,gEAAgE;IAChE,IAAI,CAAC,0BAA0B,EAAE,EAAE;QACjC,OAAO,KAAK,CAAC;KACd;IACD,iEAAiE;IACjE,sDAAsD;IACtD,OAAO,qCAAqC,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAmC,IAAI,CAAC,CAAC;IAE3G,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,OAAO,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YACtE,wBAAwB,CAAC,WAAW,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,qBAAqB,CAAC;AAC/B,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { useContext, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useAppLayoutToolbarEnabled } from '../../../app-layout/utils/feature-flags';\nimport { BreadcrumbsSlotContext } from '../../../app-layout/visual-refresh-toolbar/contexts';\nimport { BreadcrumbGroupProps } from '../../../breadcrumb-group/interfaces';\nimport { awsuiPluginsInternal } from '../api';\nimport { BreadcrumbsGlobalRegistration } from '../controllers/breadcrumbs';\n\nfunction useSetGlobalBreadcrumbsImplementation({\n __disableGlobalization,\n ...props\n}: BreadcrumbGroupProps<any> & { __disableGlobalization?: boolean }) {\n const { isInToolbar } = useContext(BreadcrumbsSlotContext) ?? {};\n const registrationRef = useRef<BreadcrumbsGlobalRegistration<BreadcrumbGroupProps> | null>();\n const [registered, setRegistered] = useState(false);\n\n useEffect(() => {\n if (isInToolbar || __disableGlobalization) {\n return;\n }\n const registration = awsuiPluginsInternal.breadcrumbs.registerBreadcrumbs(props, isRegistered =>\n setRegistered(isRegistered ?? true)\n );\n registrationRef.current = registration;\n\n return () => {\n registration.cleanup();\n };\n // subsequent prop changes are handled by another effect\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isInToolbar, __disableGlobalization]);\n\n useLayoutEffect(() => {\n registrationRef.current?.update(props);\n });\n\n return registered;\n}\n\nexport function useSetGlobalBreadcrumbs<T extends BreadcrumbGroupProps.Item>(props: BreadcrumbGroupProps<T>) {\n // avoid additional side effects when this feature is not active\n if (!useAppLayoutToolbarEnabled()) {\n return false;\n }\n // getGlobalFlag() value does not change without full page reload\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useSetGlobalBreadcrumbsImplementation(props);\n}\n\nexport function useGetGlobalBreadcrumbs(enabled: boolean) {\n const [discoveredBreadcrumbs, setDiscoveredBreadcrumbs] = useState<BreadcrumbGroupProps<any> | null>(null);\n\n useEffect(() => {\n if (!enabled) {\n return;\n }\n return awsuiPluginsInternal.breadcrumbs.registerAppLayout(breadcrumbs => {\n setDiscoveredBreadcrumbs(breadcrumbs);\n });\n }, [enabled]);\n\n return discoveredBreadcrumbs;\n}\n"]}
@@ -4,12 +4,14 @@ import SplitPanelWrapper from '../split-panel';
4
4
  export default class AppLayoutWrapper extends ComponentWrapper {
5
5
  static rootSelector: string;
6
6
  findNavigation(): ElementWrapper;
7
+ findOpenNavigationPanel(): ElementWrapper | null;
7
8
  findNavigationToggle(): ElementWrapper<HTMLButtonElement>;
8
9
  findNavigationClose(): ElementWrapper<HTMLButtonElement>;
9
10
  findContentRegion(): ElementWrapper;
10
11
  findNotifications(): ElementWrapper | null;
11
12
  findBreadcrumbs(): ElementWrapper | null;
12
13
  findTools(): ElementWrapper;
14
+ findOpenToolsPanel(): ElementWrapper | null;
13
15
  findToolsClose(): ElementWrapper<HTMLButtonElement>;
14
16
  findToolsToggle(): ElementWrapper<HTMLButtonElement>;
15
17
  findSplitPanel(): SplitPanelWrapper | null;
@@ -17,7 +19,16 @@ export default class AppLayoutWrapper extends ComponentWrapper {
17
19
  findActiveDrawer(): ElementWrapper | null;
18
20
  findActiveDrawerCloseButton(): ElementWrapper<HTMLButtonElement> | null;
19
21
  findDrawersTriggers(): ElementWrapper<HTMLButtonElement>[];
20
- findDrawerTriggerById(id: string): ElementWrapper<HTMLButtonElement> | null;
22
+ /**
23
+ * Finds a drawer trigger by the given id.
24
+ *
25
+ * @param id id of the trigger to find
26
+ * @param options
27
+ * * hasBadge (boolean) - If provided, only finds drawers with the badge or without badge respectively
28
+ */
29
+ findDrawerTriggerById(id: string, options?: {
30
+ hasBadge?: boolean;
31
+ }): ElementWrapper<HTMLButtonElement> | null;
21
32
  findDrawersOverflowTrigger(): ButtonDropdownWrapper | null;
22
33
  findActiveDrawerResizeHandle(): ElementWrapper | null;
23
34
  findToolbar(): ElementWrapper | null;
@@ -11,6 +11,13 @@ class AppLayoutWrapper extends dom_1.ComponentWrapper {
11
11
  findNavigation() {
12
12
  return this.findByClassName(styles_selectors_js_1.default.navigation);
13
13
  }
14
+ findOpenNavigationPanel() {
15
+ const navigation = this.findNavigation();
16
+ if (!navigation) {
17
+ throw new Error('App Layout does not have navigation content');
18
+ }
19
+ return navigation.matches(`:not(.${styles_selectors_js_1.default['drawer-closed']})`);
20
+ }
14
21
  findNavigationToggle() {
15
22
  return this.findByClassName(styles_selectors_js_1.default['navigation-toggle']);
16
23
  }
@@ -29,6 +36,13 @@ class AppLayoutWrapper extends dom_1.ComponentWrapper {
29
36
  findTools() {
30
37
  return this.findByClassName(styles_selectors_js_1.default.tools);
31
38
  }
39
+ findOpenToolsPanel() {
40
+ const tools = this.findTools();
41
+ if (!tools) {
42
+ throw new Error('App Layout does not have tools content');
43
+ }
44
+ return tools.matches(`:not(.${styles_selectors_js_1.default['drawer-closed']})`);
45
+ }
32
46
  findToolsClose() {
33
47
  return this.findByClassName(styles_selectors_js_1.default['tools-close']);
34
48
  }
@@ -50,8 +64,20 @@ class AppLayoutWrapper extends dom_1.ComponentWrapper {
50
64
  findDrawersTriggers() {
51
65
  return this.findAllByClassName(styles_selectors_js_1.default['drawers-trigger']);
52
66
  }
53
- findDrawerTriggerById(id) {
54
- return this.find(`.${styles_selectors_js_1.default['drawers-trigger']}[data-testid="awsui-app-layout-trigger-${id}"]`);
67
+ /**
68
+ * Finds a drawer trigger by the given id.
69
+ *
70
+ * @param id id of the trigger to find
71
+ * @param options
72
+ * * hasBadge (boolean) - If provided, only finds drawers with the badge or without badge respectively
73
+ */
74
+ findDrawerTriggerById(id, options = {}) {
75
+ const trigger = this.find(`.${styles_selectors_js_1.default['drawers-trigger']}[data-testid="awsui-app-layout-trigger-${id}"]`);
76
+ if (!trigger || options.hasBadge === undefined) {
77
+ return trigger;
78
+ }
79
+ const badgeSelector = `.${styles_selectors_js_1.default['drawers-trigger-with-badge']}`;
80
+ return trigger.matches(options.hasBadge ? badgeSelector : `:not(${badgeSelector})`);
55
81
  }
56
82
  findDrawersOverflowTrigger() {
57
83
  return this.findComponent(`.${styles_selectors_js_1.default['overflow-menu']}`, button_dropdown_1.default);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/app-layout/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAAyG;AAEzG,wDAAuD;AACvD,gDAA+C;AAE/C,8FAAkF;AAClF,+FAA6F;AAE7F,MAAqB,gBAAiB,SAAQ,sBAAgB;IAG5D,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,UAAU,CAAE,CAAC;IAC1D,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,eAAe,CAAoB,6BAAc,CAAC,mBAAmB,CAAC,CAAE,CAAC;IACvF,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAoB,6BAAc,CAAC,kBAAkB,CAAC,CAAE,CAAC;IACtF,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,OAAO,CAAE,CAAC;IACvD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,KAAK,CAAE,CAAC;IACrD,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAoB,6BAAc,CAAC,aAAa,CAAC,CAAE,CAAC;IACjF,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAoB,6BAAc,CAAC,cAAc,CAAC,CAAE,CAAC;IAClF,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAiB,CAAC,YAAY,EAAE,EAAE,qBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,2BAA2B;QACzB,OAAO,IAAI,CAAC,eAAe,CAAoB,6BAAc,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAoB,6BAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACvF,CAAC;IAED,qBAAqB,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAc,CAAC,iBAAiB,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;IAC1G,CAAC;IAED,0BAA0B;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAc,CAAC,eAAe,CAAC,EAAE,EAAE,yBAAqB,CAAC,CAAC;IAC1F,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,wBAAwB;QACtB,OAAO,IAAA,mBAAa,GAAE,CAAC,eAAe,CAAC,6BAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5E,CAAC;;AA7EH,mCA8EC;AA7EQ,6BAAY,GAAG,6BAAc,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/app-layout/index.ts"],"names":[],"mappings":"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"}
@@ -4,12 +4,14 @@ import SplitPanelWrapper from '../split-panel';
4
4
  export default class AppLayoutWrapper extends ComponentWrapper {
5
5
  static rootSelector: string;
6
6
  findNavigation(): ElementWrapper;
7
+ findOpenNavigationPanel(): ElementWrapper;
7
8
  findNavigationToggle(): ElementWrapper;
8
9
  findNavigationClose(): ElementWrapper;
9
10
  findContentRegion(): ElementWrapper;
10
11
  findNotifications(): ElementWrapper;
11
12
  findBreadcrumbs(): ElementWrapper;
12
13
  findTools(): ElementWrapper;
14
+ findOpenToolsPanel(): ElementWrapper;
13
15
  findToolsClose(): ElementWrapper;
14
16
  findToolsToggle(): ElementWrapper;
15
17
  findSplitPanel(): SplitPanelWrapper;
@@ -17,7 +19,16 @@ export default class AppLayoutWrapper extends ComponentWrapper {
17
19
  findActiveDrawer(): ElementWrapper;
18
20
  findActiveDrawerCloseButton(): ElementWrapper;
19
21
  findDrawersTriggers(): import("@cloudscape-design/test-utils-core/selectors").MultiElementWrapper<ElementWrapper>;
20
- findDrawerTriggerById(id: string): ElementWrapper;
22
+ /**
23
+ * Finds a drawer trigger by the given id.
24
+ *
25
+ * @param id id of the trigger to find
26
+ * @param options
27
+ * * hasBadge (boolean) - If provided, only finds drawers with the badge or without badge respectively
28
+ */
29
+ findDrawerTriggerById(id: string, options?: {
30
+ hasBadge?: boolean;
31
+ }): ElementWrapper;
21
32
  findDrawersOverflowTrigger(): ButtonDropdownWrapper;
22
33
  findActiveDrawerResizeHandle(): ElementWrapper;
23
34
  findToolbar(): ElementWrapper;
@@ -11,6 +11,13 @@ class AppLayoutWrapper extends selectors_1.ComponentWrapper {
11
11
  findNavigation() {
12
12
  return this.findByClassName(styles_selectors_js_1.default.navigation);
13
13
  }
14
+ findOpenNavigationPanel() {
15
+ const navigation = this.findNavigation();
16
+ if (!navigation) {
17
+ throw new Error('App Layout does not have navigation content');
18
+ }
19
+ return navigation.matches(`:not(.${styles_selectors_js_1.default['drawer-closed']})`);
20
+ }
14
21
  findNavigationToggle() {
15
22
  return this.findByClassName(styles_selectors_js_1.default['navigation-toggle']);
16
23
  }
@@ -29,6 +36,13 @@ class AppLayoutWrapper extends selectors_1.ComponentWrapper {
29
36
  findTools() {
30
37
  return this.findByClassName(styles_selectors_js_1.default.tools);
31
38
  }
39
+ findOpenToolsPanel() {
40
+ const tools = this.findTools();
41
+ if (!tools) {
42
+ throw new Error('App Layout does not have tools content');
43
+ }
44
+ return tools.matches(`:not(.${styles_selectors_js_1.default['drawer-closed']})`);
45
+ }
32
46
  findToolsClose() {
33
47
  return this.findByClassName(styles_selectors_js_1.default['tools-close']);
34
48
  }
@@ -50,8 +64,20 @@ class AppLayoutWrapper extends selectors_1.ComponentWrapper {
50
64
  findDrawersTriggers() {
51
65
  return this.findAllByClassName(styles_selectors_js_1.default['drawers-trigger']);
52
66
  }
53
- findDrawerTriggerById(id) {
54
- return this.find(`.${styles_selectors_js_1.default['drawers-trigger']}[data-testid="awsui-app-layout-trigger-${id}"]`);
67
+ /**
68
+ * Finds a drawer trigger by the given id.
69
+ *
70
+ * @param id id of the trigger to find
71
+ * @param options
72
+ * * hasBadge (boolean) - If provided, only finds drawers with the badge or without badge respectively
73
+ */
74
+ findDrawerTriggerById(id, options = {}) {
75
+ const trigger = this.find(`.${styles_selectors_js_1.default['drawers-trigger']}[data-testid="awsui-app-layout-trigger-${id}"]`);
76
+ if (!trigger || options.hasBadge === undefined) {
77
+ return trigger;
78
+ }
79
+ const badgeSelector = `.${styles_selectors_js_1.default['drawers-trigger-with-badge']}`;
80
+ return trigger.matches(options.hasBadge ? badgeSelector : `:not(${badgeSelector})`);
55
81
  }
56
82
  findDrawersOverflowTrigger() {
57
83
  return this.findComponent(`.${styles_selectors_js_1.default['overflow-menu']}`, button_dropdown_1.default);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/app-layout/index.ts"],"names":[],"mappings":";;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAA+G;AAC/G,wDAAuD;AACvD,gDAA+C;AAC/C,8FAAkF;AAClF,+FAA6F;AAC7F,MAAqB,gBAAiB,SAAQ,4BAAgB;IAE5D,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,UAAU,CAAE,CAAC;IAC1D,CAAC;IACD,oBAAoB;QAClB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,mBAAmB,CAAC,CAAE,CAAC;IACpE,CAAC;IACD,mBAAmB;QACjB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,kBAAkB,CAAC,CAAE,CAAC;IACnE,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,OAAO,CAAE,CAAC;IACvD,CAAC;IACD,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,WAAW,CAAC,CAAC;IAC1D,CAAC;IACD,SAAS;QACP,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,KAAK,CAAE,CAAC;IACrD,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,aAAa,CAAC,CAAE,CAAC;IAC9D,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,cAAc,CAAC,CAAE,CAAC;IAC/D,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,qBAAiB,CAAC,YAAY,EAAE,EAAE,qBAAiB,CAAC,CAAC;IACrF,CAAC;IACD,wBAAwB;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,eAAe,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,2BAA2B;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAC5E,CAAC;IACD,mBAAmB;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC,6BAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,qBAAqB,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,6BAAc,CAAC,iBAAiB,CAAC,0CAA0C,EAAE,IAAI,CAAC,CAAC;IAC1G,CAAC;IACD,0BAA0B;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAc,CAAC,eAAe,CAAC,EAAE,EAAE,yBAAqB,CAAC,CAAC;IAC1F,CAAC;IACD,4BAA4B;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAc,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,wBAAwB;QACtB,OAAO,IAAA,yBAAa,GAAE,CAAC,eAAe,CAAC,6BAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAC5E,CAAC;;AA1DH,mCA2DC;AA1DQ,6BAAY,GAAG,6BAAc,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/app-layout/index.ts"],"names":[],"mappings":"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"}