MCPcopy
hub / github.com/angular/components / getToolbarPattern

Function getToolbarPattern

src/aria/private/toolbar/toolbar.spec.ts:58–93  ·  view source on GitHub ↗
(
  inputs: Partial<{
    [K in keyof TestInputs]: TestInputs[K] extends WritableSignalLike<infer T> ? T : never;
  }>,
  items: WritableSignalLike<TestItem[]>,
)

Source from the content-addressed store, hash-verified

56}
57
58function getToolbarPattern(
59 inputs: Partial<{
60 [K in keyof TestInputs]: TestInputs[K] extends WritableSignalLike<infer T> ? T : never;
61 }>,
62 items: WritableSignalLike<TestItem[]>,
63) {
64 const element = signal(document.createElement('div'));
65 const activeItem = signal<TestItem | undefined>(undefined);
66
67 const allItems = computed(() => {
68 const flatItems: ToolbarWidgetPattern<string>[] = [];
69 for (const item of items()) {
70 if (item instanceof ToolbarWidgetGroupPattern) {
71 flatItems.push(...item.inputs.items());
72 } else {
73 flatItems.push(item);
74 }
75 }
76 return flatItems;
77 });
78
79 const toolbar = new ToolbarPattern<string>({
80 element,
81 items,
82 activeItem,
83 value: signal([]),
84 wrap: signal(inputs.wrap ?? true),
85 disabled: signal(inputs.disabled ?? false),
86 softDisabled: signal(inputs.softDisabled ?? true),
87 textDirection: signal(inputs.textDirection ?? 'ltr'),
88 orientation: signal(inputs.orientation ?? 'horizontal'),
89 getItem: (e: Element) => allItems().find(i => i.element() === e),
90 });
91
92 return {toolbar, element, activeItem};
93}
94
95function getWidgetPattern(
96 value: string,

Callers 1

getPatternsFunction · 0.85

Calls 4

signalFunction · 0.90
computedFunction · 0.90
pushMethod · 0.65
elementMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…