@slotted/angular 0.1.0-beta.0 → 0.1.0-beta.2

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 (88) hide show
  1. package/README.md +4 -0
  2. package/docs/AGENTS.snippet.md +10 -0
  3. package/docs/checkbox.json +7 -0
  4. package/docs/checkbox.md +1 -0
  5. package/docs/event-calendar.json +7 -0
  6. package/docs/event-calendar.md +1 -0
  7. package/docs/guidelines/README.md +27 -0
  8. package/docs/guidelines/async-feedback.md +108 -0
  9. package/docs/guidelines/browsing.md +74 -0
  10. package/docs/guidelines/builders.md +97 -0
  11. package/docs/guidelines/composition.md +129 -0
  12. package/docs/guidelines/conversations.md +59 -0
  13. package/docs/guidelines/errors-and-conflicts.md +71 -0
  14. package/docs/guidelines/forms.md +192 -0
  15. package/docs/guidelines/index.md +121 -0
  16. package/docs/guidelines/layout-alignment.md +95 -0
  17. package/docs/guidelines/ledgers.md +45 -0
  18. package/docs/guidelines/list-pages.md +165 -0
  19. package/docs/guidelines/overviews.md +66 -0
  20. package/docs/guidelines/own-elements.md +115 -0
  21. package/docs/guidelines/reading-permissions.md +55 -0
  22. package/docs/guidelines/record-pages.md +178 -0
  23. package/docs/guidelines/reports.md +123 -0
  24. package/docs/guidelines/shell-composition.md +94 -0
  25. package/docs/guidelines/workspaces.md +46 -0
  26. package/docs/index.md +12 -0
  27. package/docs/progress-indicator.json +1 -2
  28. package/docs/progress-indicator.md +2 -2
  29. package/docs/skills/build-own-element/SKILL.md +90 -0
  30. package/docs/skills/compose-screen/SKILL.md +76 -0
  31. package/docs/skills/index.md +9 -0
  32. package/docs/skills/review-screen/SKILL.md +70 -0
  33. package/docs/skills/theme-app/SKILL.md +74 -0
  34. package/docs/skills/waiting-states/SKILL.md +139 -0
  35. package/docs/stat-card.json +1 -0
  36. package/docs/stat-card.md +1 -1
  37. package/docs/tabs.json +1 -4
  38. package/docs/tabs.md +1 -1
  39. package/docs/tokens.md +424 -0
  40. package/fesm2022/slotted-angular-app-shell.mjs +2 -2
  41. package/fesm2022/slotted-angular-app-shell.mjs.map +1 -1
  42. package/fesm2022/slotted-angular-checkbox.mjs +11 -2
  43. package/fesm2022/slotted-angular-checkbox.mjs.map +1 -1
  44. package/fesm2022/slotted-angular-column-manager.mjs +1 -1
  45. package/fesm2022/slotted-angular-column-manager.mjs.map +1 -1
  46. package/fesm2022/slotted-angular-combobox.mjs +12 -6
  47. package/fesm2022/slotted-angular-combobox.mjs.map +1 -1
  48. package/fesm2022/slotted-angular-dashboard-grid.mjs +18 -22
  49. package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -1
  50. package/fesm2022/slotted-angular-data-grid.mjs +6 -2
  51. package/fesm2022/slotted-angular-data-grid.mjs.map +1 -1
  52. package/fesm2022/slotted-angular-data-list.mjs +1 -1
  53. package/fesm2022/slotted-angular-data-list.mjs.map +1 -1
  54. package/fesm2022/slotted-angular-drawer.mjs +5 -1
  55. package/fesm2022/slotted-angular-drawer.mjs.map +1 -1
  56. package/fesm2022/slotted-angular-event-calendar.mjs +17 -7
  57. package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -1
  58. package/fesm2022/slotted-angular-loading-overlay.mjs +2 -2
  59. package/fesm2022/slotted-angular-markdown.mjs +1 -1
  60. package/fesm2022/slotted-angular-markdown.mjs.map +1 -1
  61. package/fesm2022/slotted-angular-multi-select.mjs +32 -27
  62. package/fesm2022/slotted-angular-multi-select.mjs.map +1 -1
  63. package/fesm2022/slotted-angular-number-field.mjs +2 -2
  64. package/fesm2022/slotted-angular-number-field.mjs.map +1 -1
  65. package/fesm2022/slotted-angular-progress-indicator.mjs +6 -6
  66. package/fesm2022/slotted-angular-select.mjs +1 -25
  67. package/fesm2022/slotted-angular-select.mjs.map +1 -1
  68. package/fesm2022/slotted-angular-stat-card.mjs +2 -2
  69. package/fesm2022/slotted-angular-stat-card.mjs.map +1 -1
  70. package/fesm2022/slotted-angular-table.mjs +3 -3
  71. package/fesm2022/slotted-angular-table.mjs.map +1 -1
  72. package/fesm2022/slotted-angular-tabs.mjs +2 -2
  73. package/fesm2022/slotted-angular-tabs.mjs.map +1 -1
  74. package/fesm2022/slotted-angular-transfer.mjs +1 -1
  75. package/fesm2022/slotted-angular-transfer.mjs.map +1 -1
  76. package/fesm2022/slotted-angular-upload.mjs +2 -2
  77. package/package.json +3 -3
  78. package/types/slotted-angular-checkbox.d.ts +7 -1
  79. package/types/slotted-angular-checkbox.d.ts.map +1 -1
  80. package/types/slotted-angular-combobox.d.ts.map +1 -1
  81. package/types/slotted-angular-dashboard-grid.d.ts.map +1 -1
  82. package/types/slotted-angular-data-grid.d.ts.map +1 -1
  83. package/types/slotted-angular-drawer.d.ts.map +1 -1
  84. package/types/slotted-angular-event-calendar.d.ts +9 -2
  85. package/types/slotted-angular-event-calendar.d.ts.map +1 -1
  86. package/types/slotted-angular-multi-select.d.ts +10 -0
  87. package/types/slotted-angular-multi-select.d.ts.map +1 -1
  88. package/types/slotted-angular-select.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-checkbox.mjs","sources":["../../checkbox/src/checkbox-defaults.ts","../../checkbox/src/checkbox-parts.ts","../../checkbox/src/checkbox.ts","../../checkbox/src/slotted-angular-checkbox.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the control sits at, matching the group or field around it. */\nexport type CheckboxSize = 'sm' | 'md' | 'lg';\n\n/**\n * Whether the choice is a box beside a line of text or a framed surface whose\n * whole area is the target. `tile` is the name Carbon and Cloudscape give the\n * framed choice; Mantine and Chakra call it a card, which is a family here.\n */\nexport type CheckboxVariant = 'plain' | 'tile';\n\n/**\n * Which side of its own label the box is on. It is never inherited from a\n * `field`: that family's `labelPlacement` answers where a field's label sits\n * relative to its control, and a checkbox's label is its own.\n */\nexport type CheckboxLabelPlacement = 'end' | 'start';\n\nexport interface CheckboxDefaults {\n labelPlacement: CheckboxLabelPlacement;\n variant: CheckboxVariant;\n size: CheckboxSize;\n}\n\nconst FALLBACK: CheckboxDefaults = { labelPlacement: 'end', size: 'md', variant: 'plain' };\n\nexport const CHECKBOX_DEFAULTS = new InjectionToken<CheckboxDefaults>('slotted checkbox defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once what its checkboxes look like, rather than\n * repeating the same inputs on every box in a form. A box that states either of\n * them itself still wins, and so does the group or field around it.\n */\nexport function provideCheckboxDefaults(defaults: Partial<CheckboxDefaults>) {\n return {\n provide: CHECKBOX_DEFAULTS,\n useFactory: (): CheckboxDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a checkbox renders as here, before it states anything of its own. */\nexport function injectCheckboxDefaults(): CheckboxDefaults {\n return inject(CHECKBOX_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlCheckboxIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-checkbox-${this.count}`;\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { SlCheckboxIdFactory } from './checkbox-defaults';\n\n/**\n * Help text under a box's label.\n *\n * It is a directive on the consumer's own element, so a `p`, a `span` or an\n * `inline-message` all work and none of them loses its own semantics. It\n * carries an identifier the box points `aria-describedby` at, which is what\n * makes the sentence a description rather than part of the name — and it is\n * projected outside the `label` for the same reason.\n */\n@Directive({\n selector: '[slCheckboxDescription]',\n standalone: true,\n exportAs: 'slCheckboxDescription',\n host: {\n 'data-part': 'description',\n '[attr.id]': 'id',\n },\n})\nexport class SlCheckboxDescription {\n readonly id = `${inject(SlCheckboxIdFactory).next()}-description`;\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n DestroyRef,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor } from '@angular/forms';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlCheckboxGroup } from '@slotted/angular/checkbox-group';\nimport { SlField } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport { injectCheckboxDefaults, SlCheckboxIdFactory } from './checkbox-defaults';\nimport type { CheckboxLabelPlacement, CheckboxSize, CheckboxVariant } from './checkbox-defaults';\nimport { SlCheckboxDescription } from './checkbox-parts';\n\nexport type {\n CheckboxDefaults,\n CheckboxLabelPlacement,\n CheckboxSize,\n CheckboxVariant,\n} from './checkbox-defaults';\n\n/** Why the box moved. A checkbox can produce exactly these two. */\nexport type CheckboxCheckedReason = 'pointer' | 'keyboard';\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is the rule every activating family in this library writes,\n * and it is why `Space` and a pointer are told apart without a key listener.\n */\nfunction activationReason(event: Event): CheckboxCheckedReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * One choice, ticked or not.\n *\n * **The control is the platform's.** The element holding the value is a native\n * `input[type=checkbox]`, so `Space`, the form, `name`, `value`, `form.reset()`\n * and every native attribute arrive without a listener of this family's own.\n * The host element is the root, and it carries no role.\n *\n * **The mark is a sibling, not a pseudo-element.** Firefox renders neither\n * `::before` nor `::after` on an `input`, so the glyph is drawn in an element\n * beside the control. It is the dash while indeterminate — mixed outranks the\n * check — and the stylesheet only reveals it on `:checked` or `:indeterminate`.\n *\n * **Angular pays one element for the root, and React pays none.** React can\n * render a wrapper from inside a component; an Angular component's host *is*\n * the wrapper, so `<div slCheckbox>` is the root and the control lives in its\n * template.\n *\n * **Unset means ask the group, then the field.** `disabled`, `readOnly` and\n * `invalid` default to `undefined` rather than `false`, which is what makes\n * \"not disabled\" and \"said nothing\" different answers.\n */\n/** A label with content, all of it hidden text: nothing a sighted reader sees. */\nfunction showsNothing(label: HTMLElement): boolean {\n if (label.childNodes.length === 0) return false;\n return [...label.childNodes].every((node) =>\n node.nodeType === Node.TEXT_NODE || node.nodeType === Node.COMMENT_NODE\n ? node.nodeType === Node.COMMENT_NODE || (node.textContent ?? '').trim() === ''\n : node instanceof Element && node.getAttribute('data-ui') === 'visually-hidden',\n );\n}\n\n@Component({\n selector: '[slCheckbox]',\n standalone: true,\n exportAs: 'slCheckbox',\n imports: [SlGlyph, SlIcon],\n template: `<input\n #control\n data-part=\"control\"\n type=\"checkbox\"\n [attr.id]=\"controlId\"\n [attr.name]=\"resolvedName()\"\n [attr.value]=\"value()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-readonly]=\"ariaReadOnly()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.disabled]=\"disabledAttribute()\"\n [attr.required]=\"requiredAttribute()\"\n [checked]=\"resolvedChecked()\"\n [attr.checked]=\"defaultAttribute()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n />\n <span data-part=\"indicator\"\n ><span slIcon><svg slGlyph [name]=\"resolvedIndeterminate() ? 'minus' : 'check'\"></svg></span\n ></span>\n <label #label data-part=\"label\" [attr.for]=\"controlId\"><ng-content /></label>\n <ng-content select=\"[slCheckboxDescription]\" />`,\n styleUrl: '../../../styles/src/checkbox/checkbox.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCheckbox), multi: true },\n ],\n host: {\n 'data-ui': 'checkbox',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-label-placement]': 'resolvedLabelPlacement()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-checked]': \"resolvedChecked() ? '' : null\",\n '[attr.data-indeterminate]': \"resolvedIndeterminate() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.data-label-hidden]': \"labelHidden() ? '' : null\",\n },\n})\nexport class SlCheckbox implements ControlValueAccessor, OnInit {\n /** Present means the consumer owns the state. */\n readonly checked = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /** Whether the box starts ticked, when the control is uncontrolled. */\n readonly defaultChecked = input(false, { transform: booleanAttribute });\n /**\n * The mixed state. It is a state and never a third value of `checked`: the\n * submitted value stays boolean, and the platform agrees — `indeterminate` is\n * an IDL property that leaves `checked` alone.\n */\n readonly indeterminate = input(false, { transform: booleanAttribute });\n /**\n * Commands the whole set its group was given in `allValues`. Outside such a\n * group it does nothing, because there is no set to command.\n */\n readonly parent = input(false, { transform: booleanAttribute });\n /** What this box selects inside a group, and what it submits in a form. */\n readonly value = input<string | undefined>(undefined);\n readonly name = input<string | undefined>(undefined);\n readonly size = input<CheckboxSize | undefined>(undefined);\n readonly labelPlacement = input<CheckboxLabelPlacement | undefined>(undefined);\n readonly variant = input<CheckboxVariant | undefined>(undefined);\n /** Unstated rather than `false`, so the box defers to its group or field. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * One output for one transition, carrying the new state, the state it\n * replaces, the reason, the originating event and `cancel()`. There is no\n * `[(checked)]`, because a two-way binding has one slot and can carry none of\n * those; a form gets the same movement through `ControlValueAccessor`.\n */\n readonly checkedChange = output<ChangeRequest<boolean>>();\n\n private readonly group = inject(SlCheckboxGroup, { optional: true });\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectCheckboxDefaults();\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly writtenRequired = inject(new HostAttributeToken('required'), {\n optional: true,\n });\n\n private readonly element = viewChild.required<ElementRef<HTMLInputElement>>('control');\n private readonly label = viewChild.required<ElementRef<HTMLLabelElement>>('label');\n /**\n * Whether the label shows nothing: its only content is hidden text, the name\n * a table row or a data list gives a bare box. Read from the projected DOM,\n * and read again when it changes.\n */\n protected readonly labelHidden = signal(false);\n private readonly description = contentChild(SlCheckboxDescription, { descendants: true });\n\n private readonly own = signal(false);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n /** Whether a form directive owns the value through `ControlValueAccessor`. */\n private readonly formBound = signal(false);\n private onChangeFn: (checked: boolean) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n /** The identifier the label points at. A consumer's own wins. */\n readonly controlId = this.writtenId ?? inject(SlCheckboxIdFactory).next();\n\n /**\n * Three ways a box can know whether it is ticked, decided by what is around\n * it rather than by a mode input: a parent reads the whole set, a member\n * reads whether the selection holds its own value, and a box on its own reads\n * the consumer's `checked` or the state it keeps.\n */\n private readonly isParent = computed(() => this.parent() && this.group !== null);\n private readonly memberValue = computed(() =>\n !this.isParent() && this.group !== null ? this.value() : undefined,\n );\n\n readonly resolvedChecked = computed(() => {\n const group = this.group;\n if (this.isParent() && group !== null) {\n const all = group.allValues() ?? [];\n return all.length > 0 && all.every((item) => group.holds(item));\n }\n const member = this.memberValue();\n if (member !== undefined && group !== null) return group.holds(member);\n return this.checked() ?? this.own();\n });\n\n readonly resolvedIndeterminate = computed(() => {\n const group = this.group;\n if (!this.isParent() || group === null) return this.indeterminate();\n const all = group.allValues() ?? [];\n return all.some((item) => group.holds(item)) && !this.resolvedChecked();\n });\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.group?.resolvedSize() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedLabelPlacement = computed(\n () =>\n this.labelPlacement() ?? this.group?.resolvedLabelPlacement() ?? this.defaults.labelPlacement,\n );\n /**\n * One step shorter than `size`: a box states it, else the group around it,\n * else the provider. It never comes from the field — a field decides how its\n * own row is laid out, and a framed choice is a decision about the choice.\n */\n readonly resolvedVariant = computed(\n () => this.variant() ?? this.group?.resolvedVariant() ?? this.defaults.variant,\n );\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ??\n this.formDisabled() ??\n this.group?.resolvedDisabled() ??\n this.field?.resolvedDisabled(),\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.group?.resolvedReadOnly() ?? this.field?.resolvedReadOnly(),\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.group?.resolvedInvalid() ?? this.field?.invalid(),\n );\n readonly resolvedRequired = computed(\n () => this.field?.required() ?? this.group?.resolvedRequired() ?? this.fieldGroup?.required(),\n );\n\n /**\n * Whether the box keeps its own state and starts it from `defaultChecked`:\n * nobody passed `checked`, no group holds it, and no form directive bound it.\n */\n private readonly ownsDefault = computed(\n () => this.checked() === undefined && this.group === null && !this.formBound(),\n );\n /**\n * The content attribute `checked`, which is what a native form reset puts\n * the element back to. A box that owns its state writes `defaultChecked`\n * there, the attribute React writes for the same prop. A box whose state\n * belongs to a consumer, a group or a form directive writes its current\n * state, so a native reset leaves the element showing what its owner holds.\n */\n protected readonly defaultAttribute = computed(() =>\n (this.ownsDefault() ? this.defaultChecked() : this.resolvedChecked()) ? '' : null,\n );\n\n protected readonly resolvedName = computed(() => this.name() ?? this.group?.name() ?? null);\n protected readonly describedBy = computed(() => {\n const merged = [\n this.writtenDescribedBy,\n this.description()?.id,\n this.group === null ? this.field?.describedBy() : undefined,\n ].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaReadOnly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n protected readonly disabledAttribute = computed(() =>\n this.resolvedDisabled() === true ? '' : null,\n );\n /** The element's own attribute, passed through and never written by the family. */\n protected readonly requiredAttribute = computed(() => this.writtenRequired ?? null);\n\n constructor() {\n /**\n * `indeterminate` has no attribute; it is an IDL property, which is why\n * every implementation writes it from script and why the stylesheet reads\n * `:indeterminate` and stays in step with the element rather than with a\n * render.\n */\n effect(() => {\n this.element().nativeElement.indeterminate = this.resolvedIndeterminate();\n });\n\n const destroy = inject(DestroyRef);\n afterNextRender(() => {\n /* A native reset restores the element and tells nothing, so a box that\n owns its state puts it back to where it started. The form is reached\n through the element, because `form` may name a form anywhere. */\n const form = this.element().nativeElement.form;\n if (form !== null) {\n const onReset = () => {\n if (this.ownsDefault()) this.own.set(this.defaultChecked());\n };\n form.addEventListener('reset', onReset);\n destroy.onDestroy(() => form.removeEventListener('reset', onReset));\n }\n\n const label = this.label().nativeElement;\n const read = () => this.labelHidden.set(showsNothing(label));\n read();\n if (typeof MutationObserver === 'undefined') return;\n const watch = new MutationObserver(read);\n watch.observe(label, { childList: true, characterData: true, subtree: true });\n destroy.onDestroy(() => watch.disconnect());\n });\n }\n\n ngOnInit() {\n if (this.checked() === undefined && this.group === null) this.own.set(this.defaultChecked());\n }\n\n /** The native element, for `focus()` and `click()`. */\n get inputElement(): HTMLInputElement {\n return this.element().nativeElement;\n }\n\n writeValue(value: boolean | null | undefined) {\n this.own.set(value === true);\n }\n\n registerOnChange(fn: (checked: boolean) => void) {\n this.onChangeFn = fn;\n this.formBound.set(true);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /**\n * One handler for the pointer and for `Space`, because the platform fires one\n * `click` for both — and refusing the default is the only way to refuse a\n * change a checkbox has no `readonly` to refuse.\n *\n * Nothing here writes the element. The HTML standard's canceled activation\n * behaviour for a checkbox is `checked = !checked` rather than a restore of a\n * saved value, so a family that corrected the element inside the listener\n * would have that correction toggled back out from under it. Refusing the\n * default and letting the platform undo its own pre-click toggle is both\n * shorter and the only version that is right: it was measured, in the first\n * run of this family's Angular spec, as a controlled box that stayed ticked\n * after its consumer had said no.\n */\n protected onClick(event: MouseEvent) {\n if (this.resolvedReadOnly() === true) {\n event.preventDefault();\n return;\n }\n\n const reason = activationReason(event);\n const next = !this.resolvedChecked();\n\n let cancelled = false;\n const state = createControllable<boolean>({\n controlled: this.checked() ?? (this.group === null ? undefined : this.resolvedChecked()),\n initial: this.resolvedChecked(),\n onRequest: (request) => {\n this.checkedChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, event);\n if (cancelled) {\n event.preventDefault();\n return;\n }\n\n if (this.isParent()) {\n if (this.group?.requestAll(next, reason, event) !== true) event.preventDefault();\n return;\n }\n\n const member = this.memberValue();\n if (member !== undefined) {\n if (this.group?.toggle(member, reason, event) !== true) event.preventDefault();\n return;\n }\n\n /* Controlled: the consumer owns the state and has been told. The element\n must not move on its own, so the activation is refused and the platform\n puts it back. */\n if (!moved) {\n event.preventDefault();\n return;\n }\n\n this.own.set(next);\n this.onChangeFn(next);\n }\n\n protected onBlur() {\n this.onTouchedFn();\n this.group?.markTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-checkbox.mjs","sources":["../../checkbox/src/checkbox-defaults.ts","../../checkbox/src/checkbox-parts.ts","../../checkbox/src/checkbox.ts","../../checkbox/src/slotted-angular-checkbox.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\n\n/** The type step the control sits at, matching the group or field around it. */\nexport type CheckboxSize = 'sm' | 'md' | 'lg';\n\n/**\n * Whether the choice is a box beside a line of text or a framed surface whose\n * whole area is the target. `tile` is the name Carbon and Cloudscape give the\n * framed choice; Mantine and Chakra call it a card, which is a family here.\n */\nexport type CheckboxVariant = 'plain' | 'tile';\n\n/**\n * Which side of its own label the box is on. It is never inherited from a\n * `field`: that family's `labelPlacement` answers where a field's label sits\n * relative to its control, and a checkbox's label is its own.\n */\nexport type CheckboxLabelPlacement = 'end' | 'start';\n\nexport interface CheckboxDefaults {\n labelPlacement: CheckboxLabelPlacement;\n variant: CheckboxVariant;\n size: CheckboxSize;\n}\n\nconst FALLBACK: CheckboxDefaults = { labelPlacement: 'end', size: 'md', variant: 'plain' };\n\nexport const CHECKBOX_DEFAULTS = new InjectionToken<CheckboxDefaults>('slotted checkbox defaults', {\n providedIn: 'root',\n factory: () => FALLBACK,\n});\n\n/**\n * An application decides once what its checkboxes look like, rather than\n * repeating the same inputs on every box in a form. A box that states either of\n * them itself still wins, and so does the group or field around it.\n */\nexport function provideCheckboxDefaults(defaults: Partial<CheckboxDefaults>) {\n return {\n provide: CHECKBOX_DEFAULTS,\n useFactory: (): CheckboxDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\n/** What a checkbox renders as here, before it states anything of its own. */\nexport function injectCheckboxDefaults(): CheckboxDefaults {\n return inject(CHECKBOX_DEFAULTS);\n}\n\n/**\n * Application-scoped rather than module-scoped, for the reason `field` records:\n * a module-level counter produces colliding sequences when two applications\n * render in one server process, and the server and the client sequences must\n * match for hydration.\n */\n@Injectable({ providedIn: 'root' })\nexport class SlCheckboxIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-checkbox-${this.count}`;\n }\n}\n","import { Directive, inject } from '@angular/core';\n\nimport { SlCheckboxIdFactory } from './checkbox-defaults';\n\n/**\n * Help text under a box's label.\n *\n * It is a directive on the consumer's own element, so a `p`, a `span` or an\n * `inline-message` all work and none of them loses its own semantics. It\n * carries an identifier the box points `aria-describedby` at, which is what\n * makes the sentence a description rather than part of the name — and it is\n * projected outside the `label` for the same reason.\n */\n@Directive({\n selector: '[slCheckboxDescription]',\n standalone: true,\n exportAs: 'slCheckboxDescription',\n host: {\n 'data-part': 'description',\n '[attr.id]': 'id',\n },\n})\nexport class SlCheckboxDescription {\n readonly id = `${inject(SlCheckboxIdFactory).next()}-description`;\n}\n","import { createControllable } from '@slotted/core/state';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n effect,\n DestroyRef,\n ElementRef,\n forwardRef,\n HostAttributeToken,\n inject,\n input,\n output,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport type { OnInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport type { ControlValueAccessor } from '@angular/forms';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlCheckboxGroup } from '@slotted/angular/checkbox-group';\nimport { SlField } from '@slotted/angular/field';\nimport { SlFieldGroup } from '@slotted/angular/field-group';\n\nimport { injectCheckboxDefaults, SlCheckboxIdFactory } from './checkbox-defaults';\nimport type { CheckboxLabelPlacement, CheckboxSize, CheckboxVariant } from './checkbox-defaults';\nimport { SlCheckboxDescription } from './checkbox-parts';\n\nexport type {\n CheckboxDefaults,\n CheckboxLabelPlacement,\n CheckboxSize,\n CheckboxVariant,\n} from './checkbox-defaults';\n\n/** Why the box moved. A checkbox can produce exactly these two. */\nexport type CheckboxCheckedReason = 'pointer' | 'keyboard';\n\n/**\n * A click synthesised by the keyboard reports no detail; a real one reports the\n * click count. It is the rule every activating family in this library writes,\n * and it is why `Space` and a pointer are told apart without a key listener.\n */\nfunction activationReason(event: Event): CheckboxCheckedReason {\n return event instanceof MouseEvent && event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\n/**\n * One choice, ticked or not.\n *\n * **The control is the platform's.** The element holding the value is a native\n * `input[type=checkbox]`, so `Space`, the form, `name`, `value`, `form.reset()`\n * and every native attribute arrive without a listener of this family's own.\n * The host element is the root, and it carries no role.\n *\n * **The mark is a sibling, not a pseudo-element.** Firefox renders neither\n * `::before` nor `::after` on an `input`, so the glyph is drawn in an element\n * beside the control. It is the dash while indeterminate — mixed outranks the\n * check — and the stylesheet only reveals it on `:checked` or `:indeterminate`.\n *\n * **Angular pays one element for the root, and React pays none.** React can\n * render a wrapper from inside a component; an Angular component's host *is*\n * the wrapper, so `<div slCheckbox>` is the root and the control lives in its\n * template.\n *\n * **Unset means ask the group, then the field.** `disabled`, `readOnly` and\n * `invalid` default to `undefined` rather than `false`, which is what makes\n * \"not disabled\" and \"said nothing\" different answers.\n */\n/** A label with content, all of it hidden text: nothing a sighted reader sees. */\nfunction showsNothing(label: HTMLElement): boolean {\n if (label.childNodes.length === 0) return false;\n return [...label.childNodes].every((node) =>\n node.nodeType === Node.TEXT_NODE || node.nodeType === Node.COMMENT_NODE\n ? node.nodeType === Node.COMMENT_NODE || (node.textContent ?? '').trim() === ''\n : node instanceof Element && node.getAttribute('data-ui') === 'visually-hidden',\n );\n}\n\n@Component({\n selector: '[slCheckbox]',\n standalone: true,\n exportAs: 'slCheckbox',\n imports: [SlGlyph, SlIcon],\n template: `<input\n #control\n data-part=\"control\"\n type=\"checkbox\"\n [attr.id]=\"controlId\"\n [attr.name]=\"resolvedName()\"\n [attr.value]=\"value()\"\n [attr.aria-describedby]=\"describedBy()\"\n [attr.aria-invalid]=\"ariaInvalid()\"\n [attr.aria-readonly]=\"ariaReadOnly()\"\n [attr.aria-required]=\"ariaRequired()\"\n [attr.tabindex]=\"tabIndex() ?? null\"\n [attr.disabled]=\"disabledAttribute()\"\n [attr.required]=\"requiredAttribute()\"\n [checked]=\"resolvedChecked()\"\n [attr.checked]=\"defaultAttribute()\"\n (click)=\"onClick($event)\"\n (blur)=\"onBlur()\"\n />\n <span data-part=\"indicator\"\n ><span slIcon><svg slGlyph [name]=\"resolvedIndeterminate() ? 'minus' : 'check'\"></svg></span\n ></span>\n <label #label data-part=\"label\" [attr.for]=\"controlId\"><ng-content /></label>\n <ng-content select=\"[slCheckboxDescription]\" />`,\n styleUrl: '../../../styles/src/checkbox/checkbox.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SlCheckbox), multi: true },\n ],\n host: {\n 'data-ui': 'checkbox',\n 'data-part': 'root',\n '[attr.data-size]': 'resolvedSize()',\n '[attr.data-label-placement]': 'resolvedLabelPlacement()',\n '[attr.data-variant]': 'resolvedVariant()',\n '[attr.data-checked]': \"resolvedChecked() ? '' : null\",\n '[attr.data-indeterminate]': \"resolvedIndeterminate() ? '' : null\",\n '[attr.data-disabled]': \"resolvedDisabled() === true ? '' : null\",\n '[attr.data-invalid]': \"resolvedInvalid() === true ? '' : null\",\n '[attr.data-readonly]': \"resolvedReadOnly() === true ? '' : null\",\n '[attr.data-label-hidden]': \"labelHidden() ? '' : null\",\n },\n})\nexport class SlCheckbox implements ControlValueAccessor, OnInit {\n /** Present means the consumer owns the state. */\n readonly checked = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n /** Whether the box starts ticked, when the control is uncontrolled. */\n readonly defaultChecked = input(false, { transform: booleanAttribute });\n /**\n * The mixed state. It is a state and never a third value of `checked`: the\n * submitted value stays boolean, and the platform agrees — `indeterminate` is\n * an IDL property that leaves `checked` alone.\n */\n readonly indeterminate = input(false, { transform: booleanAttribute });\n /**\n * Commands the whole set its group was given in `allValues`. Outside such a\n * group it does nothing, because there is no set to command.\n */\n readonly parent = input(false, { transform: booleanAttribute });\n /** What this box selects inside a group, and what it submits in a form. */\n readonly value = input<string | undefined>(undefined);\n readonly name = input<string | undefined>(undefined);\n /**\n * The input's `tabindex`. A composite widget that owns the tab sequence — a\n * grid row's selection box — writes -1 until its cell is current; unset\n * leaves the native order.\n */\n readonly tabIndex = input<number | undefined>(undefined);\n readonly size = input<CheckboxSize | undefined>(undefined);\n readonly labelPlacement = input<CheckboxLabelPlacement | undefined>(undefined);\n readonly variant = input<CheckboxVariant | undefined>(undefined);\n /** Unstated rather than `false`, so the box defers to its group or field. */\n readonly disabled = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly readOnly = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n readonly invalid = input<boolean | undefined, boolean | string | undefined>(undefined, {\n transform: (value) => (value === undefined ? undefined : booleanAttribute(value)),\n });\n\n /**\n * One output for one transition, carrying the new state, the state it\n * replaces, the reason, the originating event and `cancel()`. There is no\n * `[(checked)]`, because a two-way binding has one slot and can carry none of\n * those; a form gets the same movement through `ControlValueAccessor`.\n */\n readonly checkedChange = output<ChangeRequest<boolean>>();\n\n private readonly group = inject(SlCheckboxGroup, { optional: true });\n private readonly field = inject(SlField, { optional: true });\n private readonly fieldGroup = inject(SlFieldGroup, { optional: true });\n private readonly defaults = injectCheckboxDefaults();\n private readonly writtenId = inject(new HostAttributeToken('id'), { optional: true });\n private readonly writtenDescribedBy = inject(new HostAttributeToken('aria-describedby'), {\n optional: true,\n });\n private readonly writtenRequired = inject(new HostAttributeToken('required'), {\n optional: true,\n });\n\n private readonly element = viewChild.required<ElementRef<HTMLInputElement>>('control');\n private readonly label = viewChild.required<ElementRef<HTMLLabelElement>>('label');\n /**\n * Whether the label shows nothing: its only content is hidden text, the name\n * a table row or a data list gives a bare box. Read from the projected DOM,\n * and read again when it changes.\n */\n protected readonly labelHidden = signal(false);\n private readonly description = contentChild(SlCheckboxDescription, { descendants: true });\n\n private readonly own = signal(false);\n private readonly formDisabled = signal<boolean | undefined>(undefined);\n /** Whether a form directive owns the value through `ControlValueAccessor`. */\n private readonly formBound = signal(false);\n private onChangeFn: (checked: boolean) => void = () => undefined;\n private onTouchedFn: () => void = () => undefined;\n\n /** The identifier the label points at. A consumer's own wins. */\n readonly controlId = this.writtenId ?? inject(SlCheckboxIdFactory).next();\n\n /**\n * Three ways a box can know whether it is ticked, decided by what is around\n * it rather than by a mode input: a parent reads the whole set, a member\n * reads whether the selection holds its own value, and a box on its own reads\n * the consumer's `checked` or the state it keeps.\n */\n private readonly isParent = computed(() => this.parent() && this.group !== null);\n private readonly memberValue = computed(() =>\n !this.isParent() && this.group !== null ? this.value() : undefined,\n );\n\n readonly resolvedChecked = computed(() => {\n const group = this.group;\n if (this.isParent() && group !== null) {\n const all = group.allValues() ?? [];\n return all.length > 0 && all.every((item) => group.holds(item));\n }\n const member = this.memberValue();\n if (member !== undefined && group !== null) return group.holds(member);\n return this.checked() ?? this.own();\n });\n\n readonly resolvedIndeterminate = computed(() => {\n const group = this.group;\n if (!this.isParent() || group === null) return this.indeterminate();\n const all = group.allValues() ?? [];\n return all.some((item) => group.holds(item)) && !this.resolvedChecked();\n });\n\n readonly resolvedSize = computed(\n () =>\n this.size() ??\n this.group?.resolvedSize() ??\n this.field?.resolvedSize() ??\n this.fieldGroup?.resolvedSize() ??\n this.defaults.size,\n );\n readonly resolvedLabelPlacement = computed(\n () =>\n this.labelPlacement() ?? this.group?.resolvedLabelPlacement() ?? this.defaults.labelPlacement,\n );\n /**\n * One step shorter than `size`: a box states it, else the group around it,\n * else the provider. It never comes from the field — a field decides how its\n * own row is laid out, and a framed choice is a decision about the choice.\n */\n readonly resolvedVariant = computed(\n () => this.variant() ?? this.group?.resolvedVariant() ?? this.defaults.variant,\n );\n readonly resolvedDisabled = computed(\n () =>\n this.disabled() ??\n this.formDisabled() ??\n this.group?.resolvedDisabled() ??\n this.field?.resolvedDisabled(),\n );\n readonly resolvedReadOnly = computed(\n () => this.readOnly() ?? this.group?.resolvedReadOnly() ?? this.field?.resolvedReadOnly(),\n );\n readonly resolvedInvalid = computed(\n () => this.invalid() ?? this.group?.resolvedInvalid() ?? this.field?.invalid(),\n );\n readonly resolvedRequired = computed(\n () => this.field?.required() ?? this.group?.resolvedRequired() ?? this.fieldGroup?.required(),\n );\n\n /**\n * Whether the box keeps its own state and starts it from `defaultChecked`:\n * nobody passed `checked`, no group holds it, and no form directive bound it.\n */\n private readonly ownsDefault = computed(\n () => this.checked() === undefined && this.group === null && !this.formBound(),\n );\n /**\n * The content attribute `checked`, which is what a native form reset puts\n * the element back to. A box that owns its state writes `defaultChecked`\n * there, the attribute React writes for the same prop. A box whose state\n * belongs to a consumer, a group or a form directive writes its current\n * state, so a native reset leaves the element showing what its owner holds.\n */\n protected readonly defaultAttribute = computed(() =>\n (this.ownsDefault() ? this.defaultChecked() : this.resolvedChecked()) ? '' : null,\n );\n\n protected readonly resolvedName = computed(() => this.name() ?? this.group?.name() ?? null);\n protected readonly describedBy = computed(() => {\n const merged = [\n this.writtenDescribedBy,\n this.description()?.id,\n this.group === null ? this.field?.describedBy() : undefined,\n ].filter(Boolean);\n return merged.length === 0 ? null : merged.join(' ');\n });\n protected readonly ariaInvalid = computed(() =>\n this.resolvedInvalid() === true ? 'true' : null,\n );\n protected readonly ariaReadOnly = computed(() =>\n this.resolvedReadOnly() === true ? 'true' : null,\n );\n protected readonly ariaRequired = computed(() =>\n this.resolvedRequired() === true ? 'true' : null,\n );\n protected readonly disabledAttribute = computed(() =>\n this.resolvedDisabled() === true ? '' : null,\n );\n /** The element's own attribute, passed through and never written by the family. */\n protected readonly requiredAttribute = computed(() => this.writtenRequired ?? null);\n\n constructor() {\n /**\n * `indeterminate` has no attribute; it is an IDL property, which is why\n * every implementation writes it from script and why the stylesheet reads\n * `:indeterminate` and stays in step with the element rather than with a\n * render.\n */\n effect(() => {\n this.element().nativeElement.indeterminate = this.resolvedIndeterminate();\n });\n\n const destroy = inject(DestroyRef);\n afterNextRender(() => {\n /* A native reset restores the element and tells nothing, so a box that\n owns its state puts it back to where it started. The form is reached\n through the element, because `form` may name a form anywhere. */\n const form = this.element().nativeElement.form;\n if (form !== null) {\n const onReset = () => {\n if (this.ownsDefault()) this.own.set(this.defaultChecked());\n };\n form.addEventListener('reset', onReset);\n destroy.onDestroy(() => form.removeEventListener('reset', onReset));\n }\n\n const label = this.label().nativeElement;\n const read = () => this.labelHidden.set(showsNothing(label));\n read();\n if (typeof MutationObserver === 'undefined') return;\n const watch = new MutationObserver(read);\n watch.observe(label, { childList: true, characterData: true, subtree: true });\n destroy.onDestroy(() => watch.disconnect());\n });\n }\n\n ngOnInit() {\n if (this.checked() === undefined && this.group === null) this.own.set(this.defaultChecked());\n }\n\n /** The native element, for `focus()` and `click()`. */\n get inputElement(): HTMLInputElement {\n return this.element().nativeElement;\n }\n\n writeValue(value: boolean | null | undefined) {\n this.own.set(value === true);\n }\n\n registerOnChange(fn: (checked: boolean) => void) {\n this.onChangeFn = fn;\n this.formBound.set(true);\n }\n\n registerOnTouched(fn: () => void) {\n this.onTouchedFn = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.formDisabled.set(isDisabled);\n }\n\n /**\n * One handler for the pointer and for `Space`, because the platform fires one\n * `click` for both — and refusing the default is the only way to refuse a\n * change a checkbox has no `readonly` to refuse.\n *\n * Nothing here writes the element. The HTML standard's canceled activation\n * behaviour for a checkbox is `checked = !checked` rather than a restore of a\n * saved value, so a family that corrected the element inside the listener\n * would have that correction toggled back out from under it. Refusing the\n * default and letting the platform undo its own pre-click toggle is both\n * shorter and the only version that is right: it was measured, in the first\n * run of this family's Angular spec, as a controlled box that stayed ticked\n * after its consumer had said no.\n */\n protected onClick(event: MouseEvent) {\n if (this.resolvedReadOnly() === true) {\n event.preventDefault();\n return;\n }\n\n const reason = activationReason(event);\n const next = !this.resolvedChecked();\n\n let cancelled = false;\n const state = createControllable<boolean>({\n controlled: this.checked() ?? (this.group === null ? undefined : this.resolvedChecked()),\n initial: this.resolvedChecked(),\n onRequest: (request) => {\n this.checkedChange.emit(request);\n cancelled = request.cancelled;\n },\n });\n const moved = state.request(next, reason, event);\n if (cancelled) {\n event.preventDefault();\n return;\n }\n\n if (this.isParent()) {\n if (this.group?.requestAll(next, reason, event) !== true) event.preventDefault();\n return;\n }\n\n const member = this.memberValue();\n if (member !== undefined) {\n if (this.group?.toggle(member, reason, event) !== true) event.preventDefault();\n return;\n }\n\n /* Controlled: the consumer owns the state and has been told. The element\n must not move on its own, so the activation is refused and the platform\n puts it back. */\n if (!moved) {\n event.preventDefault();\n return;\n }\n\n this.own.set(next);\n this.onChangeFn(next);\n }\n\n protected onBlur() {\n this.onTouchedFn();\n this.group?.markTouched();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAyBA,MAAM,QAAQ,GAAqB,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;MAE7E,iBAAiB,GAAG,IAAI,cAAc,CAAmB,2BAA2B,EAAE;AACjG,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,QAAQ;AACxB,CAAA;AAED;;;;AAIG;AACG,SAAU,uBAAuB,CAAC,QAAmC,EAAA;IACzE,OAAO;AACL,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE,OAAyB,EAAE,GAAG,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC;KACnE;AACH;AAEA;SACgB,sBAAsB,GAAA;AACpC,IAAA,OAAO,MAAM,CAAC,iBAAiB,CAAC;AAClC;AAEA;;;;;AAKG;MAEU,mBAAmB,CAAA;IACtB,KAAK,GAAG,CAAC;IAEjB,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC;AACf,QAAA,OAAO,CAAA,iBAAA,EAAoB,IAAI,CAAC,KAAK,EAAE;IACzC;uGANW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACnDlC;;;;;;;;AAQG;MAUU,qBAAqB,CAAA;IACvB,EAAE,GAAG,CAAA,EAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAA,YAAA,CAAc;uGADtD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBATjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACJ,wBAAA,WAAW,EAAE,aAAa;AAC1B,wBAAA,WAAW,EAAE,IAAI;AAClB,qBAAA;AACF,iBAAA;;;ACsBD;;;;AAIG;AACH,SAAS,gBAAgB,CAAC,KAAY,EAAA;AACpC,IAAA,OAAO,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG,UAAU,GAAG,SAAS;AACnF;AAEA;;;;;;;;;;;;;;;;;;;;;AAqBG;AACH;AACA,SAAS,YAAY,CAAC,KAAkB,EAAA;AACtC,IAAA,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK;AAC/C,IAAA,OAAO,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KACtC,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;UACvD,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK;AAC7E,UAAE,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,iBAAiB,CAClF;AACH;MAmDa,UAAU,CAAA;;AAEZ,IAAA,OAAO,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,EACnF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;;IAEO,cAAc,GAAG,KAAK,CAAC,KAAK,sFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACvE;;;;AAIG;IACM,aAAa,GAAG,KAAK,CAAC,KAAK,qFAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AACtE;;;AAGG;IACM,MAAM,GAAG,KAAK,CAAC,KAAK,8EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;;IAEtD,KAAK,GAAG,KAAK,CAAqB,SAAS;8EAAC;IAC5C,IAAI,GAAG,KAAK,CAAqB,SAAS;6EAAC;AACpD;;;;AAIG;IACM,QAAQ,GAAG,KAAK,CAAqB,SAAS;iFAAC;IAC/C,IAAI,GAAG,KAAK,CAA2B,SAAS;6EAAC;IACjD,cAAc,GAAG,KAAK,CAAqC,SAAS;uFAAC;IACrE,OAAO,GAAG,KAAK,CAA8B,SAAS;gFAAC;;AAEvD,IAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,QAAQ,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,UAAA,EAAA,8BAAA,EAAA,CAAA,EACpF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AACO,IAAA,OAAO,GAAG,KAAK,CAAoD,SAAS,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,8BAAA,EAAA,CAAA,EACnF,SAAS,EAAE,CAAC,KAAK,MAAM,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,GACjF;AAEF;;;;;AAKG;IACM,aAAa,GAAG,MAAM,EAA0B;IAExC,KAAK,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnD,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3C,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACrD,QAAQ,GAAG,sBAAsB,EAAE;AACnC,IAAA,SAAS,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACpE,kBAAkB,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,kBAAkB,CAAC,EAAE;AACvF,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;IACe,eAAe,GAAG,MAAM,CAAC,IAAI,kBAAkB,CAAC,UAAU,CAAC,EAAE;AAC5E,QAAA,QAAQ,EAAE,IAAI;AACf,KAAA,CAAC;AAEe,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAA+B,SAAS;gFAAC;AACrE,IAAA,KAAK,GAAG,SAAS,CAAC,QAAQ,CAA+B,OAAO;8EAAC;AAClF;;;;AAIG;IACgB,WAAW,GAAG,MAAM,CAAC,KAAK;oFAAC;IAC7B,WAAW,GAAG,YAAY,CAAC,qBAAqB,mFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;IAExE,GAAG,GAAG,MAAM,CAAC,KAAK;4EAAC;IACnB,YAAY,GAAG,MAAM,CAAsB,SAAS;qFAAC;;IAErD,SAAS,GAAG,MAAM,CAAC,KAAK;kFAAC;AAClC,IAAA,UAAU,GAA+B,MAAM,SAAS;AACxD,IAAA,WAAW,GAAe,MAAM,SAAS;;AAGxC,IAAA,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE;AAEzE;;;;;AAKG;AACc,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;iFAAC;IAC/D,WAAW,GAAG,QAAQ,CAAC,MACtC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,SAAS;oFACnE;AAEQ,IAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AACvC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,KAAK,IAAI,EAAE;YACrC,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;YACnC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjE;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AACjC,QAAA,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACtE,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE;IACrC,CAAC;wFAAC;AAEO,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;QACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC,aAAa,EAAE;QACnE,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE;QACnC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;IACzE,CAAC;8FAAC;IAEO,YAAY,GAAG,QAAQ,CAC9B,MACE,IAAI,CAAC,IAAI,EAAE;AACX,QAAA,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE;AAC1B,QAAA,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE;AAC1B,QAAA,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI;qFACrB;IACQ,sBAAsB,GAAG,QAAQ,CACxC,MACE,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc;+FAChG;AACD;;;;AAIG;IACM,eAAe,GAAG,QAAQ,CACjC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;wFAC/E;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MACE,IAAI,CAAC,QAAQ,EAAE;QACf,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE;AAC9B,QAAA,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE;yFACjC;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE;yFAC1F;IACQ,eAAe,GAAG,QAAQ,CACjC,MAAM,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE;wFAC/E;IACQ,gBAAgB,GAAG,QAAQ,CAClC,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE;yFAC9F;AAED;;;AAGG;IACc,WAAW,GAAG,QAAQ,CACrC,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oFAC/E;AACD;;;;;;AAMG;AACgB,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MAC7C,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,GAAG,IAAI;yFAClF;AAEkB,IAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI;qFAAC;AACxE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AAC7C,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,IAAI,CAAC,kBAAkB;AACvB,YAAA,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,SAAS;AAC5D,SAAA,CAAC,MAAM,CAAC,OAAO,CAAC;AACjB,QAAA,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IACtD,CAAC;oFAAC;AACiB,IAAA,WAAW,GAAG,QAAQ,CAAC,MACxC,IAAI,CAAC,eAAe,EAAE,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;oFAChD;AACkB,IAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;qFACjD;AACkB,IAAA,YAAY,GAAG,QAAQ,CAAC,MACzC,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI;qFACjD;AACkB,IAAA,iBAAiB,GAAG,QAAQ,CAAC,MAC9C,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI;0FAC7C;;IAEkB,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,IAAI,IAAI;0FAAC;AAEnF,IAAA,WAAA,GAAA;AACE;;;;;AAKG;QACH,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,qBAAqB,EAAE;AAC3E,QAAA,CAAC,CAAC;AAEF,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;QAClC,eAAe,CAAC,MAAK;AACnB;;AAEmE;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI;AAC9C,YAAA,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,MAAM,OAAO,GAAG,MAAK;oBACnB,IAAI,IAAI,CAAC,WAAW,EAAE;wBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;AAC7D,gBAAA,CAAC;AACD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;AACvC,gBAAA,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACrE;YAEA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,aAAa;AACxC,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC5D,YAAA,IAAI,EAAE;YACN,IAAI,OAAO,gBAAgB,KAAK,WAAW;gBAAE;AAC7C,YAAA,MAAM,KAAK,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC;AACxC,YAAA,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC7E,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;AAC7C,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC9F;;AAGA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa;IACrC;AAEA,IAAA,UAAU,CAAC,KAAiC,EAAA;QAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC;IAC9B;AAEA,IAAA,gBAAgB,CAAC,EAA8B,EAAA;AAC7C,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;IAC1B;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;IACvB;AAEA,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC;IACnC;AAEA;;;;;;;;;;;;;AAaG;AACO,IAAA,OAAO,CAAC,KAAiB,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE;YACpC,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC;AACtC,QAAA,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE;QAEpC,IAAI,SAAS,GAAG,KAAK;QACrB,MAAM,KAAK,GAAG,kBAAkB,CAAU;YACxC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,GAAG,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACxF,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAC/B,YAAA,SAAS,EAAE,CAAC,OAAO,KAAI;AACrB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;AAChC,gBAAA,SAAS,GAAG,OAAO,CAAC,SAAS;YAC/B,CAAC;AACF,SAAA,CAAC;AACF,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;QAChD,IAAI,SAAS,EAAE;YACb,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI;gBAAE,KAAK,CAAC,cAAc,EAAE;YAChF;QACF;AAEA,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE;AACjC,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI;gBAAE,KAAK,CAAC,cAAc,EAAE;YAC9E;QACF;AAEA;;AAEmB;QACnB,IAAI,CAAC,KAAK,EAAE;YACV,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IACvB;IAEU,MAAM,GAAA;QACd,IAAI,CAAC,WAAW,EAAE;AAClB,QAAA,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;IAC3B;uGA1TW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAV,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,+BAAA,EAAA,yBAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,yCAAA,EAAA,mBAAA,EAAA,wCAAA,EAAA,oBAAA,EAAA,yCAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,SAAA,EAjBV;AACT,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,MAAM,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACvF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoF2C,qBAAqB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,OAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAjHvD,CAAA;;;;;;;;;;;;;;;;;;;;;;;oDAuBwC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wqjBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAxBxC,OAAO,oFAAE,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FA6Cd,UAAU,EAAA,UAAA,EAAA,CAAA;kBAjDtB,SAAS;+BACE,cAAc,EAAA,UAAA,EACZ,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EACb,CAAC,OAAO,EAAE,MAAM,CAAC,EAAA,QAAA,EAChB,CAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBwC,mDAAA,CAAA,EAAA,eAAA,EAEjC,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,SAAA,EAC1B;AACT,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;qBACvF,EAAA,IAAA,EACK;AACJ,wBAAA,SAAS,EAAE,UAAU;AACrB,wBAAA,WAAW,EAAE,MAAM;AACnB,wBAAA,kBAAkB,EAAE,gBAAgB;AACpC,wBAAA,6BAA6B,EAAE,0BAA0B;AACzD,wBAAA,qBAAqB,EAAE,mBAAmB;AAC1C,wBAAA,qBAAqB,EAAE,+BAA+B;AACtD,wBAAA,2BAA2B,EAAE,qCAAqC;AAClE,wBAAA,sBAAsB,EAAE,yCAAyC;AACjE,wBAAA,qBAAqB,EAAE,wCAAwC;AAC/D,wBAAA,sBAAsB,EAAE,yCAAyC;AACjE,wBAAA,0BAA0B,EAAE,2BAA2B;AACxD,qBAAA,EAAA,MAAA,EAAA,CAAA,wqjBAAA,CAAA,EAAA;g4CA+D2E,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACX,OAAO,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAOrC,qBAAqB,QAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AC1M1F;;AAEG;;"}
@@ -720,7 +720,7 @@ class SlColumnManager {
720
720
  </div>
721
721
  </div>
722
722
  </ng-template>
723
- `, isInline: true, styles: ["@layer slotted.components{[data-ui=column-manager]{--_text: var(--slotted-text, CanvasText);--_muted: var(--slotted-text-muted, GrayText);--_rule: var(--slotted-border-subtle, ButtonBorder);--_hover: var(--slotted-tone-secondary-subtle-hover, ButtonFace);--_active: var(--slotted-tone-secondary-subtle-active, ButtonFace);--_inset: var(--slotted-control-padding-inline-md, 13px);--_row-block: var(--slotted-control-gap-sm, 6px);--_gap: var(--slotted-control-gap-md, 8px);--_font-size: var(--slotted-control-font-size-md, 13px);--_line-height: var(--slotted-line-height-md, 1.5);--_line: calc(var(--_font-size) * var(--_line-height));--_glyph: var(--slotted-control-icon-size-sm, 14px);--_control: min( calc(var(--_glyph) + 2 * var(--slotted-space-2, .25rem)), var(--slotted-control-inner-size-md, 24px) );--_radius: var(--slotted-radius-sm, 4px);--_duration: var(--slotted-control-transition-duration);--_easing: var(--slotted-control-transition-easing);--_inline-size: var(--slotted-column-manager-inline-size, 22rem);--_list-max: var(--slotted-column-manager-list-max-block-size, min(60vh, 28rem));box-sizing:border-box;color:var(--_text);display:grid;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);font-size:var(--_font-size);grid-template-rows:auto auto minmax(0,1fr) auto;line-height:var(--_line-height);max-block-size:100%;min-inline-size:0;text-align:start;container-name:column-manager;container-type:inline-size}[data-ui=column-manager][data-presentation=popover]{inline-size:min(var(--_inline-size),calc(var(--slotted-positioner-available-width, 100vw) - var(--slotted-space-8, 1.5rem)))}[data-ui=column-manager][data-presentation=drawer]{block-size:100%;inline-size:100%}[data-ui=column-manager][data-presentation=inline]{inline-size:100%}[data-ui=column-manager]>[data-part=header]{align-items:baseline;column-gap:var(--_gap);display:flex;flex-wrap:wrap;padding-block:var(--_inset) var(--slotted-space-4, .5rem);padding-inline:var(--_inset)}[data-ui=column-manager]>[data-part=header]>[data-part=title]{color:var(--_text);font-family:var( --slotted-font-family-heading, var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif) );font-size:var(--slotted-font-size-md, .875rem);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-md, 1.5);margin:0;min-inline-size:0}[data-ui=column-manager]>[data-part=header]>[data-part=summary]{color:var(--_muted);font-size:var(--slotted-font-size-sm, .8125rem);font-variant-numeric:tabular-nums;line-height:var(--slotted-line-height-sm, 1.45);margin-inline-start:auto;white-space:nowrap}[data-ui=column-manager]>[data-part=search]{padding-block-end:var(--_gap);padding-inline:var(--_inset)}[data-ui=column-manager]>[data-part=search]>[data-ui=text-field]{inline-size:100%}[data-ui=column-manager]>[data-part=list]{border-block:var(--slotted-border-width-thin, 1px) solid var(--_rule);max-block-size:var(--_list-max);min-block-size:0;overflow-y:auto;overscroll-behavior:contain;padding-block:var(--slotted-space-2, .25rem)}[data-ui=column-manager][data-presentation=drawer]>[data-part=list]{max-block-size:none}[data-ui=column-manager]>[data-part=list]>[data-part=section]{padding-block:var(--slotted-space-2, .25rem);position:relative}[data-ui=column-manager]>[data-part=list]>[data-part=section]+[data-part=section]{border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_rule)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=section-label]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--slotted-line-height-xs, 1.4);padding-block:var(--slotted-space-3, .375rem) var(--slotted-space-2, .25rem);padding-inline:var(--_inset)}[data-ui=column-manager]>[data-part=list]>[data-part=section][data-sole]>[data-part=section-label]{block-size:1px;clip-path:inset(50%);inline-size:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]{align-items:start;column-gap:var(--slotted-space-2, .25rem);display:grid;grid-template-columns:auto minmax(0,1fr) auto;padding-block:var(--_row-block);padding-inline:calc(var(--_inset) - var(--slotted-space-2, .25rem));position:relative;transition:opacity var(--_duration) var(--_easing)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item][data-dragging]{opacity:.5}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]){align-items:center;background-color:transparent;block-size:var(--_control);border:0;border-radius:var(--_radius);color:var(--_muted);display:inline-flex;flex:none;inline-size:var(--_control);justify-content:center;margin:0;margin-block:calc((var(--_line) - var(--_control)) / 2);padding:0;transition:background-color var(--_duration) var(--_easing),color var(--_duration) var(--_easing)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=handle]{cursor:grab;touch-action:none}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=pin][data-pinned]{color:var(--slotted-tone-accent-text, LinkText)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]):not([data-disabled]):hover,[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=pin][data-open]:not([data-disabled]){background-color:var(--_hover);color:var(--_text)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]):not([data-disabled]):active{background-color:var(--_active)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, currentColor);outline-offset:calc(var(--slotted-focus-ring-width, 2px) * -1)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=handle][data-disabled]{color:var(--slotted-disabled-foreground, GrayText);cursor:default}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item][data-dragging]>[data-part=handle]{cursor:grabbing}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=visibility]{display:block;min-inline-size:0;overflow-wrap:anywhere;padding-inline:var(--slotted-space-2, .25rem)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=visibility] [data-part=description]{text-wrap:pretty}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=visibility] [data-part=status]{color:var(--_muted);display:inline-block;font-size:var(--slotted-font-size-xs, .75rem)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item][data-space-hidden]>[data-part=visibility] [data-part=status]{color:var(--slotted-tone-warning-text, CanvasText)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=drop-indicator]{block-size:0;pointer-events:none;position:relative}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=drop-indicator]:before{background-color:var(--slotted-tone-accent-solid);block-size:var(--slotted-border-width-thick, 2px);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inset-block-start:calc(var(--slotted-border-width-thick, 2px) / -2);inset-inline:var(--_inset);position:absolute}[data-ui=column-manager]>[data-part=list]>[data-part=section][data-drop-target]{background-color:var(--_hover)}[data-ui=column-manager]>[data-part=list]>[data-part=empty]{color:var(--_muted);padding-block:var(--slotted-space-8, 1.5rem);padding-inline:var(--_inset);text-align:center}[data-ui=column-manager]>[data-part=footer]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--_gap);padding:var(--_inset)}[data-ui=column-manager]>[data-part=footer]>:is([data-part=show-all],[data-part=reset]){flex:none}[data-ui=column-manager]>[data-part=footer]>[data-part=cancel]{margin-inline-start:auto}[data-ui=column-manager]>[data-part=footer]>[data-part=apply]{flex:none}@container column-manager (max-width: 20rem){[data-ui=column-manager]>[data-part=footer]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}[data-ui=column-manager]>[data-part=footer]>[data-part=cancel]{margin-inline-start:0}}[data-part=trigger][data-column-manager-trigger],[data-column-manager-trigger]{--_count-size: var(--slotted-font-size-xs, .75rem)}[data-column-manager-trigger] [data-part=count]{background-color:var(--slotted-tone-accent-surface, Canvas);border-radius:var(--slotted-radius-full, 9999px);box-sizing:border-box;color:var(--slotted-tone-accent-text, LinkText);display:inline-block;font-size:var(--_count-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:calc(var(--_count-size) + 2 * var(--slotted-space-1, .125rem));margin-inline-start:var(--slotted-space-3, .375rem);min-inline-size:calc(var(--_count-size) + 2 * var(--slotted-space-2, .25rem));padding-inline:var(--slotted-space-2, .25rem);text-align:center}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlButton, selector: "button[slButton]", inputs: ["disabled", "focusableWhenDisabled", "fullWidth", "loading", "loadingDelay", "messages", "size", "tone", "type", "variant"], exportAs: ["slButton"] }, { kind: "component", type: SlCheckbox, selector: "[slCheckbox]", inputs: ["checked", "defaultChecked", "indeterminate", "parent", "value", "name", "size", "labelPlacement", "variant", "disabled", "readOnly", "invalid"], outputs: ["checkedChange"], exportAs: ["slCheckbox"] }, { kind: "directive", type: SlCheckboxDescription, selector: "[slCheckboxDescription]", exportAs: ["slCheckboxDescription"] }, { kind: "directive", type: SlColumnManagerPart, selector: "[slColumnManagerPart]", inputs: ["slColumnManagerPart"] }, { kind: "component", type: SlDrawer, selector: "sl-drawer", inputs: ["open", "extent", "mode", "side", "size", "mount", "escape", "outsidePress", "back", "modal", "loading", "messages", "drag", "scrimFrom", "minExtent", "maxExtent", "snapPoints", "container", "initialFocus", "finalFocus"], outputs: ["openChange", "extentChange", "openChangeRequest", "extentChangeRequest", "closed"], exportAs: ["slDrawer"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlMenu, selector: "sl-menu", inputs: ["value", "aria-label", "aria-describedby", "open", "align", "side", "size", "mount", "strategy", "sideOffset", "alignOffset", "collisionPadding", "submenuOpenDelay", "submenuCloseDelay", "typeaheadTimeout", "disabled", "loop", "typeahead", "openOnHover", "closeOnSelect", "closeOnEscape", "closeOnOutsidePress", "flip", "shift", "hideWhenDetached", "portal", "loading"], outputs: ["openChange", "openChangeRequest"], exportAs: ["slMenu"] }, { kind: "component", type: SlMenuItem, selector: "button[slMenuItem], a[slMenuItem], button[slMenuCheckboxItem], button[slMenuRadioItem]", inputs: ["disabled", "textValue", "tone", "shortcut", "closeOnSelect", "value", "checked"], outputs: ["checkedChange", "checkedChangeRequest", "select"], exportAs: ["slMenuItem"] }, { kind: "directive", type: SlMenuTrigger, selector: "[slMenuTriggerFor]", inputs: ["slMenuTriggerFor"], exportAs: ["slMenuTrigger"] }, { kind: "directive", type: SlPopover, selector: "[slPopover]", inputs: ["open", "defaultOpen", "disabled", "size", "width", "side", "align", "mount", "strategy", "messages", "initialFocus", "finalFocus", "arrow", "autoFocus", "closeOnEscape", "closeOnOutsidePress", "flip", "shift", "hideWhenDetached", "portal", "sideOffset", "alignOffset", "collisionPadding", "arrowPadding"], outputs: ["openChange", "openChangeRequest"], exportAs: ["slPopover"] }, { kind: "component", type: SlPopoverContent, selector: "[slPopoverContent]", exportAs: ["slPopoverContent"] }, { kind: "directive", type: SlPopoverLayer, selector: "ng-template[slPopoverLayer]", exportAs: ["slPopoverLayer"] }, { kind: "component", type: SlTextField, selector: "[slTextField]", inputs: ["size", "variant", "mono", "clearable", "revealable", "copyable", "messages", "loading"], outputs: ["valueCopy"], exportAs: ["slTextField"] }, { kind: "directive", type: SlTextFieldInput, selector: "input[slTextFieldInput]", inputs: ["value", "defaultValue", "disabled", "readOnly", "invalid", "showCount", "countMax", "revealed", "defaultRevealed", "type"], outputs: ["valueChange", "revealedChange"], exportAs: ["slTextFieldInput"] }, { kind: "directive", type: SlTextFieldStart, selector: "[slTextFieldStart]", exportAs: ["slTextFieldStart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
723
+ `, isInline: true, styles: ["@layer slotted.components{[data-ui=column-manager]{--_text: var(--slotted-text, CanvasText);--_muted: var(--slotted-text-muted, GrayText);--_rule: var(--slotted-border-subtle, ButtonBorder);--_hover: var(--slotted-tone-secondary-subtle-hover, ButtonFace);--_active: var(--slotted-tone-secondary-subtle-active, ButtonFace);--_inset: var(--slotted-control-padding-inline-md, 13px);--_row-block: var(--slotted-control-gap-sm, 6px);--_gap: var(--slotted-control-gap-md, 8px);--_font-size: var(--slotted-control-font-size-md, 13px);--_line-height: var(--slotted-line-height-md, 1.5);--_line: calc(var(--_font-size) * var(--_line-height));--_glyph: var(--slotted-control-icon-size-sm, 14px);--_control: min( calc(var(--_glyph) + 2 * var(--slotted-space-2, .25rem)), var(--slotted-control-inner-size-md, 24px) );--_radius: var(--slotted-radius-sm, 4px);--_duration: var(--slotted-control-transition-duration);--_easing: var(--slotted-control-transition-easing);--_inline-size: var(--slotted-column-manager-inline-size, 22rem);--_list-max: var(--slotted-column-manager-list-max-block-size, min(60vh, 28rem));box-sizing:border-box;color:var(--_text);display:grid;font-family:var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif);font-size:var(--_font-size);grid-template-rows:auto auto minmax(0,1fr) auto;line-height:var(--_line-height);max-block-size:100%;min-inline-size:0;text-align:start;container-name:column-manager;container-type:inline-size}[data-ui=column-manager][data-presentation=popover]{inline-size:min(var(--_inline-size),calc(var(--slotted-positioner-available-width, 100vw) - var(--slotted-space-8, 1.5rem)))}[data-ui=column-manager][data-presentation=drawer]{block-size:100%;inline-size:100%}[data-ui=column-manager][data-presentation=inline]{inline-size:100%}[data-ui=column-manager]>[data-part=header]{align-items:baseline;column-gap:var(--_gap);display:flex;flex-wrap:wrap;padding-block:var(--_inset) var(--slotted-space-4, .5rem);padding-inline:var(--_inset)}[data-ui=column-manager]>[data-part=header]>[data-part=title]{color:var(--_text);font-family:var( --slotted-font-family-heading, var(--slotted-font-family-sans, ui-sans-serif, system-ui, sans-serif) );font-size:var(--slotted-font-size-md, .875rem);font-weight:var(--slotted-font-weight-semibold, 600);line-height:var(--slotted-line-height-md, 1.5);margin:0;min-inline-size:0}[data-ui=column-manager]>[data-part=header]>[data-part=summary]{color:var(--_muted);font-size:var(--slotted-font-size-sm, .8125rem);font-variant-numeric:tabular-nums;line-height:var(--slotted-line-height-sm, 1.45);margin-inline-start:auto;white-space:nowrap}[data-ui=column-manager]>[data-part=search]{padding-block-end:var(--_gap);padding-inline:var(--_inset)}[data-ui=column-manager]>[data-part=search]>[data-ui=text-field]{inline-size:100%}[data-ui=column-manager]>[data-part=list]{border-block:var(--slotted-border-width-thin, 1px) solid var(--_rule);max-block-size:var(--_list-max);min-block-size:0;overflow-y:auto;overscroll-behavior:contain;padding-block:var(--slotted-space-2, .25rem)}[data-ui=column-manager][data-presentation=drawer]>[data-part=list]{max-block-size:none}[data-ui=column-manager]>[data-part=list]>[data-part=section]{padding-block:var(--slotted-space-2, .25rem);position:relative}[data-ui=column-manager]>[data-part=list]>[data-part=section]+[data-part=section]{border-block-start:var(--slotted-border-width-thin, 1px) solid var(--_rule)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=section-label]{color:var(--_muted);font-size:var(--slotted-font-size-xs, .75rem);font-weight:var(--slotted-font-weight-medium, 500);line-height:var(--slotted-line-height-xs, 1.4);padding-block:var(--slotted-space-3, .375rem) var(--slotted-space-2, .25rem);padding-inline:var(--_inset)}[data-ui=column-manager]>[data-part=list]>[data-part=section][data-sole]>[data-part=section-label]{block-size:1px;clip-path:inset(50%);inline-size:1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]{align-items:start;column-gap:var(--slotted-space-2, .25rem);display:grid;grid-template-columns:auto minmax(0,1fr) auto;padding-block:var(--_row-block);padding-inline:calc(var(--_inset) - var(--slotted-space-2, .25rem));position:relative;transition:opacity var(--_duration) var(--_easing)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item][data-dragging]{opacity:.5}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]){align-items:center;background-color:transparent;block-size:var(--_control);border:0;border-radius:var(--_radius);color:var(--_muted);display:inline-flex;flex:none;inline-size:var(--_control);justify-content:center;margin:0;margin-block:calc((var(--_line) - var(--_control)) / 2);padding:0;transition:background-color var(--_duration) var(--_easing),color var(--_duration) var(--_easing)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=handle]{cursor:grab;touch-action:none}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=pin][data-pinned]{color:var(--slotted-tone-accent-text, LinkText)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]):not([data-disabled]):hover,[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=pin][data-open]:not([data-disabled]){background-color:var(--_hover);color:var(--_text)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]):not([data-disabled]):active{background-color:var(--_active)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>:is([data-part=handle],[data-part=pin]):focus-visible{outline:var(--slotted-focus-ring-width, 2px) solid var(--slotted-focus-ring-color, currentColor);outline-offset:calc(var(--slotted-focus-ring-width, 2px) * -1)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=handle][data-disabled]{color:var(--slotted-disabled-foreground, GrayText);cursor:default}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item][data-dragging]>[data-part=handle]{cursor:grabbing}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=visibility]{display:block;min-inline-size:0;overflow-wrap:anywhere;padding-inline:var(--slotted-space-2, .25rem)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=visibility] [data-part=description]{text-wrap:pretty}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item]>[data-part=visibility] [data-part=status]{color:var(--_muted);display:inline-block;font-size:var(--slotted-font-size-xs, .75rem)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=item][data-space-hidden]>[data-part=visibility] [data-part=status]{color:var(--slotted-tone-warning-text, CanvasText)}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=drop-indicator]{block-size:0;pointer-events:none;position:relative}[data-ui=column-manager]>[data-part=list]>[data-part=section]>[data-part=drop-indicator]:before{background-color:var(--slotted-tone-accent-solid);block-size:var(--slotted-border-width-thick, 2px);border-radius:var(--slotted-radius-full, 9999px);content:\"\";inset-block-start:calc(var(--slotted-border-width-thick, 2px) / -2);inset-inline:var(--_inset);position:absolute}[data-ui=column-manager]>[data-part=list]>[data-part=section][data-drop-target]{background-color:var(--_hover)}[data-ui=column-manager]>[data-part=list]>[data-part=empty]{color:var(--_muted);padding-block:var(--slotted-space-8, 1.5rem);padding-inline:var(--_inset);text-align:center}[data-ui=column-manager]>[data-part=footer]{align-items:center;display:flex;flex-wrap:wrap;gap:var(--_gap);padding:var(--_inset)}[data-ui=column-manager]>[data-part=footer]>:is([data-part=show-all],[data-part=reset]){flex:none}[data-ui=column-manager]>[data-part=footer]>[data-part=cancel]{margin-inline-start:auto}[data-ui=column-manager]>[data-part=footer]>[data-part=apply]{flex:none}@container column-manager (max-width: 20rem){[data-ui=column-manager]>[data-part=footer]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}[data-ui=column-manager]>[data-part=footer]>[data-part=cancel]{margin-inline-start:0}}[data-part=trigger][data-column-manager-trigger],[data-column-manager-trigger]{--_count-size: var(--slotted-font-size-xs, .75rem)}[data-column-manager-trigger] [data-part=count]{background-color:var(--slotted-tone-accent-surface, Canvas);border-radius:var(--slotted-radius-full, 9999px);box-sizing:border-box;color:var(--slotted-tone-accent-text, LinkText);display:inline-block;font-size:var(--_count-size);font-variant-numeric:tabular-nums;font-weight:var(--slotted-font-weight-semibold, 600);line-height:calc(var(--_count-size) + 2 * var(--slotted-space-1, .125rem));margin-inline-start:var(--slotted-space-3, .375rem);min-inline-size:calc(var(--_count-size) + 2 * var(--slotted-space-2, .25rem));padding-inline:var(--slotted-space-2, .25rem);text-align:center}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SlButton, selector: "button[slButton]", inputs: ["disabled", "focusableWhenDisabled", "fullWidth", "loading", "loadingDelay", "messages", "size", "tone", "type", "variant"], exportAs: ["slButton"] }, { kind: "component", type: SlCheckbox, selector: "[slCheckbox]", inputs: ["checked", "defaultChecked", "indeterminate", "parent", "value", "name", "tabIndex", "size", "labelPlacement", "variant", "disabled", "readOnly", "invalid"], outputs: ["checkedChange"], exportAs: ["slCheckbox"] }, { kind: "directive", type: SlCheckboxDescription, selector: "[slCheckboxDescription]", exportAs: ["slCheckboxDescription"] }, { kind: "directive", type: SlColumnManagerPart, selector: "[slColumnManagerPart]", inputs: ["slColumnManagerPart"] }, { kind: "component", type: SlDrawer, selector: "sl-drawer", inputs: ["open", "extent", "mode", "side", "size", "mount", "escape", "outsidePress", "back", "modal", "loading", "messages", "drag", "scrimFrom", "minExtent", "maxExtent", "snapPoints", "container", "initialFocus", "finalFocus"], outputs: ["openChange", "extentChange", "openChangeRequest", "extentChangeRequest", "closed"], exportAs: ["slDrawer"] }, { kind: "component", type: SlGlyph, selector: "svg[slGlyph]", inputs: ["name", "solid"] }, { kind: "component", type: SlIcon, selector: "[slIcon]", inputs: ["directional", "label", "size", "tone"], exportAs: ["slIcon"] }, { kind: "component", type: SlMenu, selector: "sl-menu", inputs: ["value", "aria-label", "aria-describedby", "open", "align", "side", "size", "mount", "strategy", "sideOffset", "alignOffset", "collisionPadding", "submenuOpenDelay", "submenuCloseDelay", "typeaheadTimeout", "disabled", "loop", "typeahead", "openOnHover", "closeOnSelect", "closeOnEscape", "closeOnOutsidePress", "flip", "shift", "hideWhenDetached", "portal", "loading"], outputs: ["openChange", "openChangeRequest"], exportAs: ["slMenu"] }, { kind: "component", type: SlMenuItem, selector: "button[slMenuItem], a[slMenuItem], button[slMenuCheckboxItem], button[slMenuRadioItem]", inputs: ["disabled", "textValue", "tone", "shortcut", "closeOnSelect", "value", "checked"], outputs: ["checkedChange", "checkedChangeRequest", "select"], exportAs: ["slMenuItem"] }, { kind: "directive", type: SlMenuTrigger, selector: "[slMenuTriggerFor]", inputs: ["slMenuTriggerFor"], exportAs: ["slMenuTrigger"] }, { kind: "directive", type: SlPopover, selector: "[slPopover]", inputs: ["open", "defaultOpen", "disabled", "size", "width", "side", "align", "mount", "strategy", "messages", "initialFocus", "finalFocus", "arrow", "autoFocus", "closeOnEscape", "closeOnOutsidePress", "flip", "shift", "hideWhenDetached", "portal", "sideOffset", "alignOffset", "collisionPadding", "arrowPadding"], outputs: ["openChange", "openChangeRequest"], exportAs: ["slPopover"] }, { kind: "component", type: SlPopoverContent, selector: "[slPopoverContent]", exportAs: ["slPopoverContent"] }, { kind: "directive", type: SlPopoverLayer, selector: "ng-template[slPopoverLayer]", exportAs: ["slPopoverLayer"] }, { kind: "component", type: SlTextField, selector: "[slTextField]", inputs: ["size", "variant", "mono", "clearable", "revealable", "copyable", "messages", "loading"], outputs: ["valueCopy"], exportAs: ["slTextField"] }, { kind: "directive", type: SlTextFieldInput, selector: "input[slTextFieldInput]", inputs: ["value", "defaultValue", "disabled", "readOnly", "invalid", "showCount", "countMax", "revealed", "defaultRevealed", "type"], outputs: ["valueChange", "revealedChange"], exportAs: ["slTextFieldInput"] }, { kind: "directive", type: SlTextFieldStart, selector: "[slTextFieldStart]", exportAs: ["slTextFieldStart"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
724
724
  }
725
725
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.7", ngImport: i0, type: SlColumnManager, decorators: [{
726
726
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"slotted-angular-column-manager.mjs","sources":["../../column-manager/src/column-manager-defaults.ts","../../column-manager/src/column-manager.ts","../../column-manager/src/slotted-angular-column-manager.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { GridColumnState, GridColumnStateChange } from '@slotted/core/grid';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\n/** Where the panel stands: a popover on the trigger, a drawer at the end, or in place. */\nexport type ColumnManagerPresentation = 'popover' | 'drawer' | 'inline';\n\n/** Whether every action asks at once, or edits a draft that Apply asks for once. */\nexport type ColumnManagerApply = 'live' | 'confirm';\n\nexport type ColumnManagerColumnReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'clear' | 'submit' | 'programmatic'\n>;\n\nexport type ColumnManagerOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'back' | 'programmatic'\n>;\n\n/** The column request: `data-grid`'s, with every key that moved beside the first. */\nexport interface ColumnManagerRequest extends ChangeRequest<GridColumnState> {\n readonly reason: ColumnManagerColumnReason;\n readonly change: GridColumnStateChange;\n readonly changes: readonly GridColumnStateChange[];\n}\n\nexport type ColumnManagerOpenRequest = ChangeRequest<boolean>;\n\nexport interface ColumnManagerDefaults {\n presentation: ColumnManagerPresentation;\n apply: ColumnManagerApply;\n}\n\nconst FALLBACK: ColumnManagerDefaults = {\n presentation: 'popover',\n apply: 'live',\n};\n\nexport const COLUMN_MANAGER_DEFAULTS = new InjectionToken<ColumnManagerDefaults>(\n 'slotted column-manager defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once where its managers stand and whether they apply\n * at once. A manager that states either itself still wins. Its words come from\n * the language in force (`provideSlotted`).\n */\nexport function provideColumnManagerDefaults(defaults: Partial<ColumnManagerDefaults>) {\n return {\n provide: COLUMN_MANAGER_DEFAULTS,\n useFactory: (): ColumnManagerDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectColumnManagerDefaults(): ColumnManagerDefaults {\n return inject(COLUMN_MANAGER_DEFAULTS);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlColumnManagerIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-column-manager-${this.count}`;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterEveryRender,\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlCheckbox, SlCheckboxDescription } from '@slotted/angular/checkbox';\nimport { SlDrawer } from '@slotted/angular/drawer';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlMenu, SlMenuItem, SlMenuTrigger } from '@slotted/angular/menu';\nimport type { MenuSelectEvent } from '@slotted/angular/menu';\nimport { SlPopover, SlPopoverContent, SlPopoverLayer } from '@slotted/angular/popover';\nimport { SlTextField, SlTextFieldInput, SlTextFieldStart } from '@slotted/angular/text-field';\nimport { createDragController, type DragController, type DragState } from '@slotted/core/drag';\nimport {\n columnStateChanges,\n normalizeColumnState,\n withColumnHidden,\n withColumnMoved,\n withColumnPinned,\n type GridColumn,\n type GridColumnState,\n type GridOutOfSpace,\n type GridPinZone,\n} from '@slotted/core/grid';\nimport {\n columnManagerMessages,\n dragMessages,\n type ColumnManagerMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable, type ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectColumnManagerDefaults,\n SlColumnManagerIdFactory,\n type ColumnManagerApply,\n type ColumnManagerColumnReason,\n type ColumnManagerOpenReason,\n type ColumnManagerPresentation,\n type ColumnManagerRequest,\n} from './column-manager-defaults';\n\ntype ZoneKey = 'start' | 'middle' | 'end';\nconst ZONE_KEYS: readonly ZoneKey[] = ['start', 'middle', 'end'];\n/** No column taken out for room: the grid's set before its frame is measured. */\nconst NONE_OUT: GridOutOfSpace = { popin: [], hidden: [] };\n\n/** The three pin zones over the normalised order, every column in one of them. */\nexport function columnZones(state: GridColumnState): Record<ZoneKey, readonly string[]> {\n const start = state.pinned.start.filter((id) => state.order.includes(id));\n const end = state.pinned.end.filter((id) => state.order.includes(id));\n const middle = state.order.filter((id) => !start.includes(id) && !end.includes(id));\n return { start, middle, end };\n}\n\n/** Case and accents fall away, so `Região` is found by `regiao`. */\nexport function searchKey(text: string): string {\n return text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n}\n\nfunction sameState(a: GridColumnState, b: GridColumnState): boolean {\n return columnStateChanges(a, b).length === 0;\n}\n\n/** A click with no coordinates is a key. */\nfunction pressReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\nfunction escapeValue(value: string): string {\n return typeof CSS !== 'undefined' && typeof CSS.escape === 'function'\n ? CSS.escape(value)\n : value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\ninterface DragView {\n dragging: string | null;\n container: ZoneKey | null;\n index: number | null;\n}\n\nconst NO_DRAG: DragView = { dragging: null, container: null, index: null };\n\ninterface ItemView {\n id: string;\n column: GridColumn<unknown>;\n hidden: boolean;\n locked: boolean;\n lastVisible: boolean;\n bySpace: boolean;\n handleDisabled: boolean;\n status: string | null;\n zone: GridPinZone;\n /** The index in the whole zone, which the drop line is placed by. */\n index: number;\n}\n\ninterface SectionView {\n key: ZoneKey;\n label: string;\n items: ItemView[];\n /** Drop line after the last item. */\n dropAtEnd: boolean;\n}\n\n/**\n * Writes this family's part name on a control another family's directive\n * owns. `slButton` writes `data-part=\"root\"` as a static host attribute and\n * `slMenuTriggerFor` binds `[attr.data-part]` to `null` on a trigger that is\n * neither a bar's item nor a submenu's; either erases the part the template\n * wrote, so it is written back after the first render.\n */\n@Directive({ selector: '[slColumnManagerPart]', standalone: true })\nexport class SlColumnManagerPart {\n readonly part = input.required<string>({ alias: 'slColumnManagerPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => this.host.nativeElement.setAttribute('data-part', this.part()));\n }\n}\n\n/**\n * The panel that edits a grid's column state: which columns are shown, in\n * which order, pinned to which edge. It does not know the grid: it is given\n * the columns, the state and the set the grid hid for room, and asks for every\n * change with a request carrying the reason and the keys that moved.\n *\n * The host renders nothing of its own (`display: contents`); the root is the\n * popover's one child, the drawer's content, or stands in place.\n */\n@Component({\n selector: 'sl-column-manager',\n standalone: true,\n exportAs: 'slColumnManager',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlCheckbox,\n SlCheckboxDescription,\n SlColumnManagerPart,\n SlDrawer,\n SlGlyph,\n SlIcon,\n SlMenu,\n SlMenuItem,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlTextField,\n SlTextFieldInput,\n SlTextFieldStart,\n ],\n template: `\n @switch (resolvedPresentation()) {\n @case ('popover') {\n <ng-container\n slPopover\n size=\"lg\"\n side=\"bottom\"\n align=\"start\"\n initialFocus=\"[data-part='search'] input\"\n [open]=\"open()\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-labelledby]=\"titleId\">\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </div>\n </ng-template>\n </ng-container>\n }\n @case ('drawer') {\n <sl-drawer\n side=\"end\"\n size=\"sm\"\n [open]=\"open()\"\n [finalFocus]=\"triggerNode() ?? false\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </sl-drawer>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"panel\" />\n }\n }\n\n <ng-template #panel>\n <div\n #root\n data-ui=\"column-manager\"\n data-part=\"root\"\n role=\"group\"\n [attr.id]=\"rootId\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.data-presentation]=\"resolvedPresentation()\"\n [attr.data-apply]=\"resolvedApply()\"\n >\n <div data-part=\"header\">\n <h2 data-part=\"title\" [attr.id]=\"titleId\">{{ t('title') }}</h2>\n <span data-part=\"summary\">{{ summary() }}</span>\n </div>\n <div data-part=\"search\">\n <div slTextField size=\"sm\" [clearable]=\"true\">\n <span slTextFieldStart\n ><span slIcon><svg slGlyph name=\"search\"></svg></span\n ></span>\n <input\n slTextFieldInput\n type=\"search\"\n [value]=\"query()\"\n [attr.aria-label]=\"t('search')\"\n [attr.placeholder]=\"t('search')\"\n (valueChange)=\"query.set($event.value)\"\n />\n </div>\n </div>\n <div data-part=\"list\">\n @if (sections().length === 0 && searching()) {\n <div data-part=\"empty\" role=\"status\">{{ t('noResults') }}</div>\n }\n @for (section of sections(); track section.key) {\n <div\n data-part=\"section\"\n role=\"group\"\n [attr.data-zone]=\"section.key\"\n [attr.aria-labelledby]=\"rootId + '-' + section.key\"\n [attr.data-sole]=\"sections().length === 1 ? '' : null\"\n [attr.data-drop-target]=\"\n drag().container === section.key && drag().index !== null ? '' : null\n \"\n >\n <div data-part=\"section-label\" [attr.id]=\"rootId + '-' + section.key\">\n {{ section.label }}\n </div>\n @for (item of section.items; track item.id) {\n @if (dropAt(section.key, item.index)) {\n <div data-part=\"drop-indicator\" aria-hidden=\"true\"></div>\n }\n <div\n data-part=\"item\"\n [attr.data-column]=\"item.id\"\n [attr.data-hidden]=\"item.hidden ? '' : null\"\n [attr.data-locked]=\"item.locked ? '' : null\"\n [attr.data-space-hidden]=\"item.bySpace ? '' : null\"\n [attr.data-pinned]=\"item.zone\"\n [attr.data-dragging]=\"drag().dragging === item.id ? '' : null\"\n >\n <button\n data-part=\"handle\"\n type=\"button\"\n [attr.aria-label]=\"t('reorder', { column: item.column.label })\"\n [attr.aria-disabled]=\"item.handleDisabled ? 'true' : null\"\n [attr.data-disabled]=\"item.handleDisabled ? '' : null\"\n (keydown)=\"onHandleKeyDown($event, item.id, section.key)\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"grip-vertical\"></svg></span>\n </button>\n <div data-part=\"visibility\">\n <div\n slCheckbox\n [checked]=\"!item.hidden\"\n [disabled]=\"(item.locked && !item.hidden) || item.lastVisible\"\n (checkedChange)=\"toggle(item.id, $event)\"\n >\n {{ item.column.label }}\n @if (item.status) {\n <span data-part=\"status\">{{ item.status }}</span>\n }\n @if (item.column.description) {\n <p slCheckboxDescription>{{ item.column.description }}</p>\n }\n </div>\n </div>\n <button\n type=\"button\"\n slColumnManagerPart=\"pin\"\n data-part=\"pin\"\n [slMenuTriggerFor]=\"pinMenu\"\n [attr.aria-label]=\"t('pin', { column: item.column.label })\"\n [attr.data-pinned]=\"item.zone ? '' : null\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"pin\"></svg></span>\n </button>\n <sl-menu #pinMenu size=\"sm\">\n <button\n slMenuItem\n [disabled]=\"item.zone === 'start'\"\n (select)=\"pin(item.id, 'start', $event)\"\n >\n {{ t('pinStart') }}\n </button>\n <button\n slMenuItem\n [disabled]=\"item.zone === 'end'\"\n (select)=\"pin(item.id, 'end', $event)\"\n >\n {{ t('pinEnd') }}\n </button>\n @if (item.zone) {\n <button slMenuItem (select)=\"pin(item.id, null, $event)\">\n {{ t('unpin') }}\n </button>\n }\n </sl-menu>\n </div>\n }\n @if (section.dropAtEnd) {\n <div data-part=\"drop-indicator\" aria-hidden=\"true\"></div>\n }\n </div>\n }\n </div>\n <div data-part=\"footer\">\n <button\n slButton\n slColumnManagerPart=\"show-all\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"working().hidden.length === 0\"\n (click)=\"showAll($event)\"\n >\n {{ t('showAll') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"reset\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"atDefault()\"\n (click)=\"reset($event)\"\n >\n {{ t('reset') }}\n </button>\n @if (confirm()) {\n <button\n slButton\n slColumnManagerPart=\"cancel\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"cancel($event)\"\n >\n {{ t('cancel') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"apply\"\n size=\"sm\"\n type=\"button\"\n [disabled]=\"!dirty()\"\n (click)=\"applyDraft($event)\"\n >\n {{ t('apply') }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n `,\n styleUrl: '../../../styles/src/column-manager/column-manager.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[style.display]': \"'contents'\" },\n})\nexport class SlColumnManager {\n /** The grid's columns, as the grid is given them. */\n readonly columns = input.required<readonly GridColumn<never>[]>();\n /** The state; two-way, so a template may bind it directly. */\n readonly columnState = model<GridColumnState | undefined>(undefined);\n /** The start while nothing is bound, and the target of Restore defaults. */\n readonly defaultColumnState = input<Partial<GridColumnState> | undefined>(undefined);\n /**\n * The columns the grid took out for room — the grid's `outOfSpace()`:\n * listed with a status, never written to the state.\n */\n readonly outOfSpace = input<GridOutOfSpace>(NONE_OUT);\n readonly presentation = input<ColumnManagerPresentation | undefined>(undefined);\n readonly apply = input<ColumnManagerApply | undefined>(undefined);\n readonly open = model<boolean>(false);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<ColumnManagerMessages> | undefined>(undefined);\n\n /** Before the state moves, with the reason and every key that moved. */\n readonly columnStateChangeRequest = output<ColumnManagerRequest>();\n /** Before the layer opens or closes, with the reason. */\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectColumnManagerDefaults();\n private readonly base = inject(SlColumnManagerIdFactory).next();\n readonly rootId = `${this.base}-panel`;\n readonly titleId = `${this.base}-title`;\n\n /** The family's words in the language in force, with this manager's `messages` laid over them. */\n readonly t = injectMessages(columnManagerMessages, this.messages);\n /** What a drag of a column says, in the language in force. */\n private readonly dragT = injectMessages(dragMessages);\n readonly resolvedPresentation = computed(() => this.presentation() ?? this.defaults.presentation);\n readonly resolvedApply = computed(() => this.apply() ?? this.defaults.apply);\n protected readonly confirm = computed(() => this.resolvedApply() === 'confirm');\n\n private readonly normalizedDefault = computed(() =>\n normalizeColumnState(this.defaultColumnState(), this.columns()),\n );\n /** The committed state: the bound one, or the default. */\n readonly state = computed(() =>\n normalizeColumnState(this.columnState() ?? this.defaultColumnState(), this.columns()),\n );\n private readonly draft = signal<GridColumnState | null>(null);\n protected readonly working = computed(() =>\n this.confirm() ? (this.draft() ?? this.state()) : this.state(),\n );\n protected readonly dirty = computed(() => {\n const draft = this.draft();\n return draft !== null && !sameState(draft, this.state());\n });\n protected readonly atDefault = computed(() =>\n sameState(this.working(), this.normalizedDefault()),\n );\n\n /** How many columns the reader hid; the trigger's count. */\n readonly hiddenCount = computed(() => this.state().hidden.length);\n\n readonly query = signal('');\n private readonly searchText = computed(() => searchKey(this.query().trim()));\n protected readonly searching = computed(() => this.searchText() !== '');\n\n private readonly byId = computed(\n () => new Map(this.columns().map((column) => [column.id, column as GridColumn<unknown>])),\n );\n private readonly zones = computed(() => columnZones(this.working()));\n private readonly visibleCount = computed(() => {\n const hidden = new Set(this.working().hidden);\n return this.working().order.filter((id) => !hidden.has(id)).length;\n });\n protected readonly summary = computed(() =>\n this.t('visibleCount', {\n visible: this.visibleCount(),\n total: this.working().order.length,\n }),\n );\n\n protected readonly drag = signal<DragView>(NO_DRAG);\n\n protected readonly sections = computed<SectionView[]>(() => {\n const zones = this.zones();\n const byId = this.byId();\n const hidden = new Set(this.working().hidden);\n const space = new Set(this.outOfSpace().hidden);\n const inRow = new Set(this.outOfSpace().popin);\n const visible = this.visibleCount();\n const text = this.searchText();\n const searching = text !== '';\n const t = this.t;\n const labels = { start: t('pinnedStart'), middle: t('unpinned'), end: t('pinnedEnd') };\n return ZONE_KEYS.map((key) => {\n const items = zones[key]\n .map((id, index) => ({ id, index, column: byId.get(id) }))\n .filter(\n (entry): entry is { id: string; index: number; column: GridColumn<unknown> } =>\n entry.column !== undefined &&\n (!searching ||\n searchKey(entry.column.label).includes(text) ||\n searchKey(entry.column.description ?? '').includes(text)),\n )\n .map(({ id, index, column }) => {\n const isHidden = hidden.has(id);\n const locked = column.hideable === false;\n const bySpace = !isHidden && space.has(id);\n const shownInRow = !isHidden && inRow.has(id);\n return {\n id,\n column,\n index,\n hidden: isHidden,\n locked,\n lastVisible: !isHidden && visible <= 1,\n bySpace,\n handleDisabled: searching || column.reorderable === false,\n status: locked\n ? t('required')\n : bySpace\n ? t('hiddenBySpace')\n : shownInRow\n ? t('inRow')\n : null,\n zone: key === 'middle' ? null : key,\n } satisfies ItemView;\n });\n return {\n key,\n label: labels[key],\n items,\n dropAtEnd: this.dropAt(key, zones[key].length),\n };\n }).filter((section) => section.items.length > 0);\n });\n\n /* ── The trigger ─────────────────────────────────────────────────────── */\n\n readonly triggerNode = signal<HTMLElement | null>(null);\n private readonly popover = viewChild(SlPopover);\n\n /** Called by `slColumnManagerTrigger`. */\n registerTrigger(node: HTMLElement | null) {\n this.triggerNode.set(node);\n }\n\n /* ── The drag ────────────────────────────────────────────────────────── */\n\n private readonly root = viewChild<ElementRef<HTMLDivElement>>('root');\n private controller: DragController | null = null;\n private readonly draggables = new Map<string, { node: HTMLElement; detach: () => void }>();\n private pendingFocus: string | null = null;\n\n constructor() {\n /* The popover hangs from this family's trigger, and a press on it is not\n an outside press. */\n effect(() => {\n const popover = this.popover();\n const trigger = this.triggerNode();\n if (popover) untracked(() => popover.triggerNode.set(trigger));\n });\n\n /* A draft is read when the layer opens, and dropped when it closes. */\n effect(() => {\n if (!this.open()) {\n untracked(() => {\n this.draft.set(null);\n this.query.set('');\n });\n }\n });\n\n effect((onCleanup) => {\n const element = this.root()?.nativeElement;\n if (!element) return;\n const controller = untracked(() => this.createController(element));\n onCleanup(() => {\n controller.destroy();\n this.controller = null;\n for (const entry of this.draggables.values()) entry.detach();\n this.draggables.clear();\n });\n });\n\n afterEveryRender(() => {\n this.syncDraggables();\n const id = this.pendingFocus;\n const element = this.root()?.nativeElement;\n if (id && element) {\n this.pendingFocus = null;\n element\n .querySelector<HTMLElement>(\n `[data-part=\"item\"][data-column=\"${escapeValue(id)}\"] > [data-part=\"handle\"]`,\n )\n ?.focus();\n }\n });\n\n inject(DestroyRef).onDestroy(() => this.controller?.destroy());\n }\n\n private createController(element: HTMLElement): DragController {\n const document = element.ownerDocument;\n const announce = (message: string) => {\n if (message !== '') getLiveAnnouncer(document).announce(message);\n };\n const itemOf = (id: string) =>\n element.querySelector<HTMLElement>(`[data-part=\"item\"][data-column=\"${escapeValue(id)}\"]`);\n const controller = createDragController({\n document,\n preview: false,\n restoreFocus: false,\n autoScroll: { axis: 'y' },\n announce,\n t: this.dragT,\n /* A one-step keyboard move says where the column landed once, below;\n the controller's own step-by-step position would say it twice. */\n silent: ['moved'],\n onDrop: ({ items, source, target, reason, event }) => {\n if (target.kind !== 'between' || target.container !== source.container) return;\n const zone = this.zones()[source.container as ZoneKey];\n const id = items[0]!;\n const to = target.index > source.index ? target.index - 1 : target.index;\n this.edit(\n withColumnMoved(this.working(), id, to, zone),\n reason === 'keyboard' ? 'keyboard' : 'pointer',\n event,\n );\n if (reason === 'keyboard') {\n this.pendingFocus = id;\n const label = this.byId().get(id)?.label ?? id;\n announce(this.t('moved', { column: label, position: to + 1 }));\n }\n },\n });\n for (const key of ZONE_KEYS) {\n controller.registerContainer({\n key,\n items: () => this.zones()[key],\n orientation: 'vertical',\n element: () => element.querySelector(`[data-part=\"section\"][data-zone=\"${key}\"]`),\n itemElement: itemOf,\n accepts: (state: DragState, target) => state.source?.container === target.container,\n disabled: () => this.searching(),\n itemLabel: (id) => this.byId().get(id)?.label ?? id,\n });\n }\n controller.subscribe((next) => {\n if (next.status !== 'dragging' || next.reason === 'keyboard') {\n this.drag.set(NO_DRAG);\n return;\n }\n const target = next.target;\n this.drag.set({\n dragging: next.items[0] ?? null,\n container: target && target.kind === 'between' ? (target.container as ZoneKey) : null,\n index: target && target.kind === 'between' && next.valid ? target.index : null,\n });\n });\n this.controller = controller;\n return controller;\n }\n\n /** Every item is a draggable whose press must start on its handle. */\n private syncDraggables() {\n const controller = this.controller;\n const element = this.root()?.nativeElement;\n if (!controller || !element) return;\n const seen = new Set<string>();\n for (const node of element.querySelectorAll<HTMLElement>('[data-part=\"item\"][data-column]')) {\n const id = node.dataset['column']!;\n const key = node.closest<HTMLElement>('[data-part=\"section\"]')?.dataset['zone'] ?? 'middle';\n seen.add(id);\n const existing = this.draggables.get(id);\n if (existing && existing.node === node && node.dataset['attachedZone'] === key) continue;\n existing?.detach();\n node.dataset['attachedZone'] = key;\n const detach = controller.attachDraggable(node, {\n container: key,\n key: id,\n handle: () => node.querySelector('[data-part=\"handle\"]'),\n disabled: () => this.searching() || this.byId().get(id)?.reorderable === false,\n distance: 4,\n });\n this.draggables.set(id, { node, detach });\n }\n for (const [id, entry] of this.draggables) {\n if (seen.has(id)) continue;\n entry.detach();\n this.draggables.delete(id);\n }\n }\n\n protected dropAt(key: ZoneKey, index: number): boolean {\n const drag = this.drag();\n if (drag.container !== key || drag.index !== index || drag.dragging === null) return false;\n const from = this.zones()[key].indexOf(drag.dragging);\n return index !== from && index !== from + 1;\n }\n\n /* ── Requests ─────────────────────────────────────────────────────────── */\n\n private emit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n const previous = this.state();\n const changes = columnStateChanges(previous, next);\n if (changes.length === 0) return false;\n let cancelled = false;\n const request: ColumnManagerRequest = {\n value: next,\n previous,\n reason,\n source,\n change: changes[0]!,\n changes,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.columnStateChangeRequest.emit(request);\n if (cancelled) return false;\n this.columnState.set(next);\n return true;\n }\n\n private edit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n if (this.confirm()) this.draft.set(next);\n else this.emit(next, reason, source);\n }\n\n private setOpen(next: boolean, reason: ColumnManagerOpenReason, source?: unknown): boolean {\n if (next === this.open()) return false;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (request) => {\n this.openChangeRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n state.request(next, reason, source);\n if (cancelled) return false;\n this.open.set(next);\n return true;\n }\n\n protected onLayerRequest(request: ChangeRequest<boolean>) {\n const moved = this.setOpen(\n request.value,\n request.reason as ColumnManagerOpenReason,\n request.source,\n );\n if (!moved) request.cancel();\n }\n\n protected toggle(id: string, request: ChangeRequest<boolean>) {\n this.edit(\n withColumnHidden(this.working(), id, !request.value),\n request.reason === 'keyboard' ? 'keyboard' : 'pointer',\n request.source,\n );\n }\n\n protected pin(id: string, zone: GridPinZone, event: MenuSelectEvent) {\n this.edit(withColumnPinned(this.working(), id, zone), event.reason, event.source);\n }\n\n protected showAll(event: MouseEvent) {\n this.edit({ ...this.working(), hidden: [] }, pressReason(event), event);\n }\n\n protected reset(event: MouseEvent) {\n this.edit(this.normalizedDefault(), 'clear', event);\n }\n\n protected applyDraft(event: MouseEvent) {\n const draft = this.draft();\n if (draft !== null) this.emit(draft, 'submit', event);\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected cancel(event: MouseEvent) {\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected onHandleKeyDown(event: KeyboardEvent, id: string, key: ZoneKey) {\n if (!event.altKey || (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')) return;\n event.preventDefault();\n if (this.searching() || this.byId().get(id)?.reorderable === false) return;\n const zone = this.zones()[key];\n const index = zone.indexOf(id);\n const up = event.key === 'ArrowUp';\n if ((up && index <= 0) || (!up && index >= zone.length - 1)) return;\n this.controller?.moveBy({\n items: [id],\n source: { container: key, index },\n intent: up ? 'previous' : 'next',\n reason: 'keyboard',\n event,\n });\n }\n\n /* ── The imperative actions ──────────────────────────────────────────── */\n\n /** Opens the layer, with the reason `programmatic`. */\n show() {\n this.setOpen(true, 'programmatic');\n }\n\n /** Closes the layer, with the reason `programmatic`. */\n hide() {\n this.setOpen(false, 'programmatic');\n }\n\n /** Called by the trigger, with the reason of the press. */\n toggleOpen(reason: ColumnManagerOpenReason = 'programmatic', source?: unknown) {\n this.setOpen(!this.open(), reason, source);\n }\n}\n\n/**\n * The consumer's button, wired to a manager: the popup it opens, whether it\n * is open, what it controls, and the count of hidden columns after its words\n * — a chip on screen and a sentence in its accessible name. A directive\n * cannot project, so the two spans are appended to the host once and kept\n * current from the manager's count.\n */\n@Directive({\n selector: '[slColumnManagerTrigger]',\n standalone: true,\n exportAs: 'slColumnManagerTrigger',\n host: {\n 'aria-haspopup': 'dialog',\n 'data-column-manager-trigger': '',\n '[attr.aria-expanded]': 'manager().open()',\n '[attr.aria-controls]': 'manager().open() ? manager().rootId : null',\n '[attr.data-open]': \"manager().open() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlColumnManagerTrigger {\n readonly manager = input.required<SlColumnManager>({ alias: 'slColumnManagerTriggerFor' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly count = signal<{ chip: HTMLElement; sentence: HTMLElement } | null>(null);\n\n constructor() {\n effect((onCleanup) => {\n const manager = this.manager();\n manager.registerTrigger(this.host);\n onCleanup(() => manager.registerTrigger(null));\n });\n\n /* `slButton` writes `data-part=\"root\"` statically; the part is this family's. */\n afterNextRender(() => {\n this.host.setAttribute('data-part', 'trigger');\n const chip = this.renderer.createElement('span') as HTMLElement;\n chip.setAttribute('data-part', 'count');\n chip.setAttribute('aria-hidden', 'true');\n const sentence = this.renderer.createElement('span') as HTMLElement;\n sentence.setAttribute('data-ui', 'visually-hidden');\n sentence.setAttribute('data-part', 'root');\n this.count.set({ chip, sentence });\n });\n\n effect(() => {\n const nodes = this.count();\n if (!nodes) return;\n const manager = this.manager();\n const hidden = manager.hiddenCount();\n if (hidden === 0) {\n nodes.chip.remove();\n nodes.sentence.remove();\n return;\n }\n nodes.chip.textContent = String(hidden);\n nodes.sentence.textContent = manager.t('hiddenCount', { count: hidden });\n if (!nodes.chip.isConnected) {\n this.host.append(' ', nodes.chip, ' ', nodes.sentence);\n }\n });\n }\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.manager().toggleOpen(pressReason(event), event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slotted-angular-column-manager.mjs","sources":["../../column-manager/src/column-manager-defaults.ts","../../column-manager/src/column-manager.ts","../../column-manager/src/slotted-angular-column-manager.ts"],"sourcesContent":["import { inject, Injectable, InjectionToken } from '@angular/core';\nimport type { GridColumnState, GridColumnStateChange } from '@slotted/core/grid';\nimport type { ChangeReason, ChangeRequest } from '@slotted/core/state';\n\n/** Where the panel stands: a popover on the trigger, a drawer at the end, or in place. */\nexport type ColumnManagerPresentation = 'popover' | 'drawer' | 'inline';\n\n/** Whether every action asks at once, or edits a draft that Apply asks for once. */\nexport type ColumnManagerApply = 'live' | 'confirm';\n\nexport type ColumnManagerColumnReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'clear' | 'submit' | 'programmatic'\n>;\n\nexport type ColumnManagerOpenReason = Extract<\n ChangeReason,\n 'pointer' | 'keyboard' | 'escape' | 'outsidePress' | 'back' | 'programmatic'\n>;\n\n/** The column request: `data-grid`'s, with every key that moved beside the first. */\nexport interface ColumnManagerRequest extends ChangeRequest<GridColumnState> {\n readonly reason: ColumnManagerColumnReason;\n readonly change: GridColumnStateChange;\n readonly changes: readonly GridColumnStateChange[];\n}\n\nexport type ColumnManagerOpenRequest = ChangeRequest<boolean>;\n\nexport interface ColumnManagerDefaults {\n presentation: ColumnManagerPresentation;\n apply: ColumnManagerApply;\n}\n\nconst FALLBACK: ColumnManagerDefaults = {\n presentation: 'popover',\n apply: 'live',\n};\n\nexport const COLUMN_MANAGER_DEFAULTS = new InjectionToken<ColumnManagerDefaults>(\n 'slotted column-manager defaults',\n { providedIn: 'root', factory: () => FALLBACK },\n);\n\n/**\n * An application decides once where its managers stand and whether they apply\n * at once. A manager that states either itself still wins. Its words come from\n * the language in force (`provideSlotted`).\n */\nexport function provideColumnManagerDefaults(defaults: Partial<ColumnManagerDefaults>) {\n return {\n provide: COLUMN_MANAGER_DEFAULTS,\n useFactory: (): ColumnManagerDefaults => ({ ...FALLBACK, ...defaults }),\n };\n}\n\nexport function injectColumnManagerDefaults(): ColumnManagerDefaults {\n return inject(COLUMN_MANAGER_DEFAULTS);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SlColumnManagerIdFactory {\n private count = 0;\n\n next() {\n this.count += 1;\n return `slotted-column-manager-${this.count}`;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n afterEveryRender,\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n model,\n output,\n Renderer2,\n signal,\n untracked,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlCheckbox, SlCheckboxDescription } from '@slotted/angular/checkbox';\nimport { SlDrawer } from '@slotted/angular/drawer';\nimport { injectMessages } from '@slotted/angular/i18n';\nimport { SlGlyph, SlIcon } from '@slotted/angular/icon';\nimport { SlMenu, SlMenuItem, SlMenuTrigger } from '@slotted/angular/menu';\nimport type { MenuSelectEvent } from '@slotted/angular/menu';\nimport { SlPopover, SlPopoverContent, SlPopoverLayer } from '@slotted/angular/popover';\nimport { SlTextField, SlTextFieldInput, SlTextFieldStart } from '@slotted/angular/text-field';\nimport { createDragController, type DragController, type DragState } from '@slotted/core/drag';\nimport {\n columnStateChanges,\n normalizeColumnState,\n withColumnHidden,\n withColumnMoved,\n withColumnPinned,\n type GridColumn,\n type GridColumnState,\n type GridOutOfSpace,\n type GridPinZone,\n} from '@slotted/core/grid';\nimport {\n columnManagerMessages,\n dragMessages,\n type ColumnManagerMessages,\n type PartialMessages,\n} from '@slotted/core/i18n';\nimport { getLiveAnnouncer } from '@slotted/core/live-announcer';\nimport { createControllable, type ChangeRequest } from '@slotted/core/state';\n\nimport {\n injectColumnManagerDefaults,\n SlColumnManagerIdFactory,\n type ColumnManagerApply,\n type ColumnManagerColumnReason,\n type ColumnManagerOpenReason,\n type ColumnManagerPresentation,\n type ColumnManagerRequest,\n} from './column-manager-defaults';\n\ntype ZoneKey = 'start' | 'middle' | 'end';\nconst ZONE_KEYS: readonly ZoneKey[] = ['start', 'middle', 'end'];\n/** No column taken out for room: the grid's set before its frame is measured. */\nconst NONE_OUT: GridOutOfSpace = { popin: [], hidden: [] };\n\n/** The three pin zones over the normalised order, every column in one of them. */\nexport function columnZones(state: GridColumnState): Record<ZoneKey, readonly string[]> {\n const start = state.pinned.start.filter((id) => state.order.includes(id));\n const end = state.pinned.end.filter((id) => state.order.includes(id));\n const middle = state.order.filter((id) => !start.includes(id) && !end.includes(id));\n return { start, middle, end };\n}\n\n/** Case and accents fall away, so `Região` is found by `regiao`. */\nexport function searchKey(text: string): string {\n return text.normalize('NFD').replace(/\\p{M}/gu, '').toLowerCase();\n}\n\nfunction sameState(a: GridColumnState, b: GridColumnState): boolean {\n return columnStateChanges(a, b).length === 0;\n}\n\n/** A click with no coordinates is a key. */\nfunction pressReason(event: MouseEvent): 'pointer' | 'keyboard' {\n return event.detail === 0 ? 'keyboard' : 'pointer';\n}\n\nfunction escapeValue(value: string): string {\n return typeof CSS !== 'undefined' && typeof CSS.escape === 'function'\n ? CSS.escape(value)\n : value.replace(/[\"\\\\]/g, '\\\\$&');\n}\n\ninterface DragView {\n dragging: string | null;\n container: ZoneKey | null;\n index: number | null;\n}\n\nconst NO_DRAG: DragView = { dragging: null, container: null, index: null };\n\ninterface ItemView {\n id: string;\n column: GridColumn<unknown>;\n hidden: boolean;\n locked: boolean;\n lastVisible: boolean;\n bySpace: boolean;\n handleDisabled: boolean;\n status: string | null;\n zone: GridPinZone;\n /** The index in the whole zone, which the drop line is placed by. */\n index: number;\n}\n\ninterface SectionView {\n key: ZoneKey;\n label: string;\n items: ItemView[];\n /** Drop line after the last item. */\n dropAtEnd: boolean;\n}\n\n/**\n * Writes this family's part name on a control another family's directive\n * owns. `slButton` writes `data-part=\"root\"` as a static host attribute and\n * `slMenuTriggerFor` binds `[attr.data-part]` to `null` on a trigger that is\n * neither a bar's item nor a submenu's; either erases the part the template\n * wrote, so it is written back after the first render.\n */\n@Directive({ selector: '[slColumnManagerPart]', standalone: true })\nexport class SlColumnManagerPart {\n readonly part = input.required<string>({ alias: 'slColumnManagerPart' });\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n constructor() {\n afterNextRender(() => this.host.nativeElement.setAttribute('data-part', this.part()));\n }\n}\n\n/**\n * The panel that edits a grid's column state: which columns are shown, in\n * which order, pinned to which edge. It does not know the grid: it is given\n * the columns, the state and the set the grid hid for room, and asks for every\n * change with a request carrying the reason and the keys that moved.\n *\n * The host renders nothing of its own (`display: contents`); the root is the\n * popover's one child, the drawer's content, or stands in place.\n */\n@Component({\n selector: 'sl-column-manager',\n standalone: true,\n exportAs: 'slColumnManager',\n imports: [\n NgTemplateOutlet,\n SlButton,\n SlCheckbox,\n SlCheckboxDescription,\n SlColumnManagerPart,\n SlDrawer,\n SlGlyph,\n SlIcon,\n SlMenu,\n SlMenuItem,\n SlMenuTrigger,\n SlPopover,\n SlPopoverContent,\n SlPopoverLayer,\n SlTextField,\n SlTextFieldInput,\n SlTextFieldStart,\n ],\n template: `\n @switch (resolvedPresentation()) {\n @case ('popover') {\n <ng-container\n slPopover\n size=\"lg\"\n side=\"bottom\"\n align=\"start\"\n initialFocus=\"[data-part='search'] input\"\n [open]=\"open()\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-template slPopoverLayer>\n <div slPopoverContent [attr.aria-labelledby]=\"titleId\">\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </div>\n </ng-template>\n </ng-container>\n }\n @case ('drawer') {\n <sl-drawer\n side=\"end\"\n size=\"sm\"\n [open]=\"open()\"\n [finalFocus]=\"triggerNode() ?? false\"\n (openChangeRequest)=\"onLayerRequest($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"panel\" />\n </sl-drawer>\n }\n @default {\n <ng-container [ngTemplateOutlet]=\"panel\" />\n }\n }\n\n <ng-template #panel>\n <div\n #root\n data-ui=\"column-manager\"\n data-part=\"root\"\n role=\"group\"\n [attr.id]=\"rootId\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.data-presentation]=\"resolvedPresentation()\"\n [attr.data-apply]=\"resolvedApply()\"\n >\n <div data-part=\"header\">\n <h2 data-part=\"title\" [attr.id]=\"titleId\">{{ t('title') }}</h2>\n <span data-part=\"summary\">{{ summary() }}</span>\n </div>\n <div data-part=\"search\">\n <div slTextField size=\"sm\" [clearable]=\"true\">\n <span slTextFieldStart\n ><span slIcon><svg slGlyph name=\"search\"></svg></span\n ></span>\n <input\n slTextFieldInput\n type=\"search\"\n [value]=\"query()\"\n [attr.aria-label]=\"t('search')\"\n [attr.placeholder]=\"t('search')\"\n (valueChange)=\"query.set($event.value)\"\n />\n </div>\n </div>\n <div data-part=\"list\">\n @if (sections().length === 0 && searching()) {\n <div data-part=\"empty\" role=\"status\">{{ t('noResults') }}</div>\n }\n @for (section of sections(); track section.key) {\n <div\n data-part=\"section\"\n role=\"group\"\n [attr.data-zone]=\"section.key\"\n [attr.aria-labelledby]=\"rootId + '-' + section.key\"\n [attr.data-sole]=\"sections().length === 1 ? '' : null\"\n [attr.data-drop-target]=\"\n drag().container === section.key && drag().index !== null ? '' : null\n \"\n >\n <div data-part=\"section-label\" [attr.id]=\"rootId + '-' + section.key\">\n {{ section.label }}\n </div>\n @for (item of section.items; track item.id) {\n @if (dropAt(section.key, item.index)) {\n <div data-part=\"drop-indicator\" aria-hidden=\"true\"></div>\n }\n <div\n data-part=\"item\"\n [attr.data-column]=\"item.id\"\n [attr.data-hidden]=\"item.hidden ? '' : null\"\n [attr.data-locked]=\"item.locked ? '' : null\"\n [attr.data-space-hidden]=\"item.bySpace ? '' : null\"\n [attr.data-pinned]=\"item.zone\"\n [attr.data-dragging]=\"drag().dragging === item.id ? '' : null\"\n >\n <button\n data-part=\"handle\"\n type=\"button\"\n [attr.aria-label]=\"t('reorder', { column: item.column.label })\"\n [attr.aria-disabled]=\"item.handleDisabled ? 'true' : null\"\n [attr.data-disabled]=\"item.handleDisabled ? '' : null\"\n (keydown)=\"onHandleKeyDown($event, item.id, section.key)\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"grip-vertical\"></svg></span>\n </button>\n <div data-part=\"visibility\">\n <div\n slCheckbox\n [checked]=\"!item.hidden\"\n [disabled]=\"(item.locked && !item.hidden) || item.lastVisible\"\n (checkedChange)=\"toggle(item.id, $event)\"\n >\n {{ item.column.label }}\n @if (item.status) {\n <span data-part=\"status\">{{ item.status }}</span>\n }\n @if (item.column.description) {\n <p slCheckboxDescription>{{ item.column.description }}</p>\n }\n </div>\n </div>\n <button\n type=\"button\"\n slColumnManagerPart=\"pin\"\n data-part=\"pin\"\n [slMenuTriggerFor]=\"pinMenu\"\n [attr.aria-label]=\"t('pin', { column: item.column.label })\"\n [attr.data-pinned]=\"item.zone ? '' : null\"\n >\n <span slIcon size=\"sm\"><svg slGlyph name=\"pin\"></svg></span>\n </button>\n <sl-menu #pinMenu size=\"sm\">\n <button\n slMenuItem\n [disabled]=\"item.zone === 'start'\"\n (select)=\"pin(item.id, 'start', $event)\"\n >\n {{ t('pinStart') }}\n </button>\n <button\n slMenuItem\n [disabled]=\"item.zone === 'end'\"\n (select)=\"pin(item.id, 'end', $event)\"\n >\n {{ t('pinEnd') }}\n </button>\n @if (item.zone) {\n <button slMenuItem (select)=\"pin(item.id, null, $event)\">\n {{ t('unpin') }}\n </button>\n }\n </sl-menu>\n </div>\n }\n @if (section.dropAtEnd) {\n <div data-part=\"drop-indicator\" aria-hidden=\"true\"></div>\n }\n </div>\n }\n </div>\n <div data-part=\"footer\">\n <button\n slButton\n slColumnManagerPart=\"show-all\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"working().hidden.length === 0\"\n (click)=\"showAll($event)\"\n >\n {{ t('showAll') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"reset\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"ghost\"\n type=\"button\"\n [disabled]=\"atDefault()\"\n (click)=\"reset($event)\"\n >\n {{ t('reset') }}\n </button>\n @if (confirm()) {\n <button\n slButton\n slColumnManagerPart=\"cancel\"\n size=\"sm\"\n tone=\"secondary\"\n variant=\"outline\"\n type=\"button\"\n (click)=\"cancel($event)\"\n >\n {{ t('cancel') }}\n </button>\n <button\n slButton\n slColumnManagerPart=\"apply\"\n size=\"sm\"\n type=\"button\"\n [disabled]=\"!dirty()\"\n (click)=\"applyDraft($event)\"\n >\n {{ t('apply') }}\n </button>\n }\n </div>\n </div>\n </ng-template>\n `,\n styleUrl: '../../../styles/src/column-manager/column-manager.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { '[style.display]': \"'contents'\" },\n})\nexport class SlColumnManager {\n /** The grid's columns, as the grid is given them. */\n readonly columns = input.required<readonly GridColumn<never>[]>();\n /** The state; two-way, so a template may bind it directly. */\n readonly columnState = model<GridColumnState | undefined>(undefined);\n /** The start while nothing is bound, and the target of Restore defaults. */\n readonly defaultColumnState = input<Partial<GridColumnState> | undefined>(undefined);\n /**\n * The columns the grid took out for room — the grid's `outOfSpace()`:\n * listed with a status, never written to the state.\n */\n readonly outOfSpace = input<GridOutOfSpace>(NONE_OUT);\n readonly presentation = input<ColumnManagerPresentation | undefined>(undefined);\n readonly apply = input<ColumnManagerApply | undefined>(undefined);\n readonly open = model<boolean>(false);\n /** Words laid over the catalog of the language in force, key by key. */\n readonly messages = input<PartialMessages<ColumnManagerMessages> | undefined>(undefined);\n\n /** Before the state moves, with the reason and every key that moved. */\n readonly columnStateChangeRequest = output<ColumnManagerRequest>();\n /** Before the layer opens or closes, with the reason. */\n readonly openChangeRequest = output<ChangeRequest<boolean>>();\n\n private readonly defaults = injectColumnManagerDefaults();\n private readonly base = inject(SlColumnManagerIdFactory).next();\n readonly rootId = `${this.base}-panel`;\n readonly titleId = `${this.base}-title`;\n\n /** The family's words in the language in force, with this manager's `messages` laid over them. */\n readonly t = injectMessages(columnManagerMessages, this.messages);\n /** What a drag of a column says, in the language in force. */\n private readonly dragT = injectMessages(dragMessages);\n readonly resolvedPresentation = computed(() => this.presentation() ?? this.defaults.presentation);\n readonly resolvedApply = computed(() => this.apply() ?? this.defaults.apply);\n protected readonly confirm = computed(() => this.resolvedApply() === 'confirm');\n\n private readonly normalizedDefault = computed(() =>\n normalizeColumnState(this.defaultColumnState(), this.columns()),\n );\n /** The committed state: the bound one, or the default. */\n readonly state = computed(() =>\n normalizeColumnState(this.columnState() ?? this.defaultColumnState(), this.columns()),\n );\n private readonly draft = signal<GridColumnState | null>(null);\n protected readonly working = computed(() =>\n this.confirm() ? (this.draft() ?? this.state()) : this.state(),\n );\n protected readonly dirty = computed(() => {\n const draft = this.draft();\n return draft !== null && !sameState(draft, this.state());\n });\n protected readonly atDefault = computed(() =>\n sameState(this.working(), this.normalizedDefault()),\n );\n\n /** How many columns the reader hid; the trigger's count. */\n readonly hiddenCount = computed(() => this.state().hidden.length);\n\n readonly query = signal('');\n private readonly searchText = computed(() => searchKey(this.query().trim()));\n protected readonly searching = computed(() => this.searchText() !== '');\n\n private readonly byId = computed(\n () => new Map(this.columns().map((column) => [column.id, column as GridColumn<unknown>])),\n );\n private readonly zones = computed(() => columnZones(this.working()));\n private readonly visibleCount = computed(() => {\n const hidden = new Set(this.working().hidden);\n return this.working().order.filter((id) => !hidden.has(id)).length;\n });\n protected readonly summary = computed(() =>\n this.t('visibleCount', {\n visible: this.visibleCount(),\n total: this.working().order.length,\n }),\n );\n\n protected readonly drag = signal<DragView>(NO_DRAG);\n\n protected readonly sections = computed<SectionView[]>(() => {\n const zones = this.zones();\n const byId = this.byId();\n const hidden = new Set(this.working().hidden);\n const space = new Set(this.outOfSpace().hidden);\n const inRow = new Set(this.outOfSpace().popin);\n const visible = this.visibleCount();\n const text = this.searchText();\n const searching = text !== '';\n const t = this.t;\n const labels = { start: t('pinnedStart'), middle: t('unpinned'), end: t('pinnedEnd') };\n return ZONE_KEYS.map((key) => {\n const items = zones[key]\n .map((id, index) => ({ id, index, column: byId.get(id) }))\n .filter(\n (entry): entry is { id: string; index: number; column: GridColumn<unknown> } =>\n entry.column !== undefined &&\n (!searching ||\n searchKey(entry.column.label).includes(text) ||\n searchKey(entry.column.description ?? '').includes(text)),\n )\n .map(({ id, index, column }) => {\n const isHidden = hidden.has(id);\n const locked = column.hideable === false;\n const bySpace = !isHidden && space.has(id);\n const shownInRow = !isHidden && inRow.has(id);\n return {\n id,\n column,\n index,\n hidden: isHidden,\n locked,\n lastVisible: !isHidden && visible <= 1,\n bySpace,\n handleDisabled: searching || column.reorderable === false,\n status: locked\n ? t('required')\n : bySpace\n ? t('hiddenBySpace')\n : shownInRow\n ? t('inRow')\n : null,\n zone: key === 'middle' ? null : key,\n } satisfies ItemView;\n });\n return {\n key,\n label: labels[key],\n items,\n dropAtEnd: this.dropAt(key, zones[key].length),\n };\n }).filter((section) => section.items.length > 0);\n });\n\n /* ── The trigger ─────────────────────────────────────────────────────── */\n\n readonly triggerNode = signal<HTMLElement | null>(null);\n private readonly popover = viewChild(SlPopover);\n\n /** Called by `slColumnManagerTrigger`. */\n registerTrigger(node: HTMLElement | null) {\n this.triggerNode.set(node);\n }\n\n /* ── The drag ────────────────────────────────────────────────────────── */\n\n private readonly root = viewChild<ElementRef<HTMLDivElement>>('root');\n private controller: DragController | null = null;\n private readonly draggables = new Map<string, { node: HTMLElement; detach: () => void }>();\n private pendingFocus: string | null = null;\n\n constructor() {\n /* The popover hangs from this family's trigger, and a press on it is not\n an outside press. */\n effect(() => {\n const popover = this.popover();\n const trigger = this.triggerNode();\n if (popover) untracked(() => popover.triggerNode.set(trigger));\n });\n\n /* A draft is read when the layer opens, and dropped when it closes. */\n effect(() => {\n if (!this.open()) {\n untracked(() => {\n this.draft.set(null);\n this.query.set('');\n });\n }\n });\n\n effect((onCleanup) => {\n const element = this.root()?.nativeElement;\n if (!element) return;\n const controller = untracked(() => this.createController(element));\n onCleanup(() => {\n controller.destroy();\n this.controller = null;\n for (const entry of this.draggables.values()) entry.detach();\n this.draggables.clear();\n });\n });\n\n afterEveryRender(() => {\n this.syncDraggables();\n const id = this.pendingFocus;\n const element = this.root()?.nativeElement;\n if (id && element) {\n this.pendingFocus = null;\n element\n .querySelector<HTMLElement>(\n `[data-part=\"item\"][data-column=\"${escapeValue(id)}\"] > [data-part=\"handle\"]`,\n )\n ?.focus();\n }\n });\n\n inject(DestroyRef).onDestroy(() => this.controller?.destroy());\n }\n\n private createController(element: HTMLElement): DragController {\n const document = element.ownerDocument;\n const announce = (message: string) => {\n if (message !== '') getLiveAnnouncer(document).announce(message);\n };\n const itemOf = (id: string) =>\n element.querySelector<HTMLElement>(`[data-part=\"item\"][data-column=\"${escapeValue(id)}\"]`);\n const controller = createDragController({\n document,\n preview: false,\n restoreFocus: false,\n autoScroll: { axis: 'y' },\n announce,\n t: this.dragT,\n /* A one-step keyboard move says where the column landed once, below;\n the controller's own step-by-step position would say it twice. */\n silent: ['moved'],\n onDrop: ({ items, source, target, reason, event }) => {\n if (target.kind !== 'between' || target.container !== source.container) return;\n const zone = this.zones()[source.container as ZoneKey];\n const id = items[0]!;\n const to = target.index > source.index ? target.index - 1 : target.index;\n this.edit(\n withColumnMoved(this.working(), id, to, zone),\n reason === 'keyboard' ? 'keyboard' : 'pointer',\n event,\n );\n if (reason === 'keyboard') {\n this.pendingFocus = id;\n const label = this.byId().get(id)?.label ?? id;\n announce(this.t('moved', { column: label, position: to + 1 }));\n }\n },\n });\n for (const key of ZONE_KEYS) {\n controller.registerContainer({\n key,\n items: () => this.zones()[key],\n orientation: 'vertical',\n element: () => element.querySelector(`[data-part=\"section\"][data-zone=\"${key}\"]`),\n itemElement: itemOf,\n accepts: (state: DragState, target) => state.source?.container === target.container,\n disabled: () => this.searching(),\n itemLabel: (id) => this.byId().get(id)?.label ?? id,\n });\n }\n controller.subscribe((next) => {\n if (next.status !== 'dragging' || next.reason === 'keyboard') {\n this.drag.set(NO_DRAG);\n return;\n }\n const target = next.target;\n this.drag.set({\n dragging: next.items[0] ?? null,\n container: target && target.kind === 'between' ? (target.container as ZoneKey) : null,\n index: target && target.kind === 'between' && next.valid ? target.index : null,\n });\n });\n this.controller = controller;\n return controller;\n }\n\n /** Every item is a draggable whose press must start on its handle. */\n private syncDraggables() {\n const controller = this.controller;\n const element = this.root()?.nativeElement;\n if (!controller || !element) return;\n const seen = new Set<string>();\n for (const node of element.querySelectorAll<HTMLElement>('[data-part=\"item\"][data-column]')) {\n const id = node.dataset['column']!;\n const key = node.closest<HTMLElement>('[data-part=\"section\"]')?.dataset['zone'] ?? 'middle';\n seen.add(id);\n const existing = this.draggables.get(id);\n if (existing && existing.node === node && node.dataset['attachedZone'] === key) continue;\n existing?.detach();\n node.dataset['attachedZone'] = key;\n const detach = controller.attachDraggable(node, {\n container: key,\n key: id,\n handle: () => node.querySelector('[data-part=\"handle\"]'),\n disabled: () => this.searching() || this.byId().get(id)?.reorderable === false,\n distance: 4,\n });\n this.draggables.set(id, { node, detach });\n }\n for (const [id, entry] of this.draggables) {\n if (seen.has(id)) continue;\n entry.detach();\n this.draggables.delete(id);\n }\n }\n\n protected dropAt(key: ZoneKey, index: number): boolean {\n const drag = this.drag();\n if (drag.container !== key || drag.index !== index || drag.dragging === null) return false;\n const from = this.zones()[key].indexOf(drag.dragging);\n return index !== from && index !== from + 1;\n }\n\n /* ── Requests ─────────────────────────────────────────────────────────── */\n\n private emit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n const previous = this.state();\n const changes = columnStateChanges(previous, next);\n if (changes.length === 0) return false;\n let cancelled = false;\n const request: ColumnManagerRequest = {\n value: next,\n previous,\n reason,\n source,\n change: changes[0]!,\n changes,\n get cancelled() {\n return cancelled;\n },\n cancel() {\n cancelled = true;\n },\n };\n this.columnStateChangeRequest.emit(request);\n if (cancelled) return false;\n this.columnState.set(next);\n return true;\n }\n\n private edit(next: GridColumnState, reason: ColumnManagerColumnReason, source?: unknown) {\n if (this.confirm()) this.draft.set(next);\n else this.emit(next, reason, source);\n }\n\n private setOpen(next: boolean, reason: ColumnManagerOpenReason, source?: unknown): boolean {\n if (next === this.open()) return false;\n let cancelled = false;\n const state = createControllable<boolean>({\n initial: this.open(),\n onRequest: (request) => {\n this.openChangeRequest.emit(request);\n cancelled = request.cancelled;\n },\n });\n state.request(next, reason, source);\n if (cancelled) return false;\n this.open.set(next);\n return true;\n }\n\n protected onLayerRequest(request: ChangeRequest<boolean>) {\n const moved = this.setOpen(\n request.value,\n request.reason as ColumnManagerOpenReason,\n request.source,\n );\n if (!moved) request.cancel();\n }\n\n protected toggle(id: string, request: ChangeRequest<boolean>) {\n this.edit(\n withColumnHidden(this.working(), id, !request.value),\n request.reason === 'keyboard' ? 'keyboard' : 'pointer',\n request.source,\n );\n }\n\n protected pin(id: string, zone: GridPinZone, event: MenuSelectEvent) {\n this.edit(withColumnPinned(this.working(), id, zone), event.reason, event.source);\n }\n\n protected showAll(event: MouseEvent) {\n this.edit({ ...this.working(), hidden: [] }, pressReason(event), event);\n }\n\n protected reset(event: MouseEvent) {\n this.edit(this.normalizedDefault(), 'clear', event);\n }\n\n protected applyDraft(event: MouseEvent) {\n const draft = this.draft();\n if (draft !== null) this.emit(draft, 'submit', event);\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected cancel(event: MouseEvent) {\n this.draft.set(null);\n if (this.resolvedPresentation() !== 'inline') this.setOpen(false, pressReason(event), event);\n }\n\n protected onHandleKeyDown(event: KeyboardEvent, id: string, key: ZoneKey) {\n if (!event.altKey || (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')) return;\n event.preventDefault();\n if (this.searching() || this.byId().get(id)?.reorderable === false) return;\n const zone = this.zones()[key];\n const index = zone.indexOf(id);\n const up = event.key === 'ArrowUp';\n if ((up && index <= 0) || (!up && index >= zone.length - 1)) return;\n this.controller?.moveBy({\n items: [id],\n source: { container: key, index },\n intent: up ? 'previous' : 'next',\n reason: 'keyboard',\n event,\n });\n }\n\n /* ── The imperative actions ──────────────────────────────────────────── */\n\n /** Opens the layer, with the reason `programmatic`. */\n show() {\n this.setOpen(true, 'programmatic');\n }\n\n /** Closes the layer, with the reason `programmatic`. */\n hide() {\n this.setOpen(false, 'programmatic');\n }\n\n /** Called by the trigger, with the reason of the press. */\n toggleOpen(reason: ColumnManagerOpenReason = 'programmatic', source?: unknown) {\n this.setOpen(!this.open(), reason, source);\n }\n}\n\n/**\n * The consumer's button, wired to a manager: the popup it opens, whether it\n * is open, what it controls, and the count of hidden columns after its words\n * — a chip on screen and a sentence in its accessible name. A directive\n * cannot project, so the two spans are appended to the host once and kept\n * current from the manager's count.\n */\n@Directive({\n selector: '[slColumnManagerTrigger]',\n standalone: true,\n exportAs: 'slColumnManagerTrigger',\n host: {\n 'aria-haspopup': 'dialog',\n 'data-column-manager-trigger': '',\n '[attr.aria-expanded]': 'manager().open()',\n '[attr.aria-controls]': 'manager().open() ? manager().rootId : null',\n '[attr.data-open]': \"manager().open() ? '' : null\",\n '(click)': 'onClick($event)',\n },\n})\nexport class SlColumnManagerTrigger {\n readonly manager = input.required<SlColumnManager>({ alias: 'slColumnManagerTriggerFor' });\n\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n private readonly renderer = inject(Renderer2);\n private readonly count = signal<{ chip: HTMLElement; sentence: HTMLElement } | null>(null);\n\n constructor() {\n effect((onCleanup) => {\n const manager = this.manager();\n manager.registerTrigger(this.host);\n onCleanup(() => manager.registerTrigger(null));\n });\n\n /* `slButton` writes `data-part=\"root\"` statically; the part is this family's. */\n afterNextRender(() => {\n this.host.setAttribute('data-part', 'trigger');\n const chip = this.renderer.createElement('span') as HTMLElement;\n chip.setAttribute('data-part', 'count');\n chip.setAttribute('aria-hidden', 'true');\n const sentence = this.renderer.createElement('span') as HTMLElement;\n sentence.setAttribute('data-ui', 'visually-hidden');\n sentence.setAttribute('data-part', 'root');\n this.count.set({ chip, sentence });\n });\n\n effect(() => {\n const nodes = this.count();\n if (!nodes) return;\n const manager = this.manager();\n const hidden = manager.hiddenCount();\n if (hidden === 0) {\n nodes.chip.remove();\n nodes.sentence.remove();\n return;\n }\n nodes.chip.textContent = String(hidden);\n nodes.sentence.textContent = manager.t('hiddenCount', { count: hidden });\n if (!nodes.chip.isConnected) {\n this.host.append(' ', nodes.chip, ' ', nodes.sentence);\n }\n });\n }\n\n protected onClick(event: MouseEvent) {\n if (event.defaultPrevented) return;\n this.manager().toggleOpen(pressReason(event), event);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}