{"version":3,"file":"qualcomm-ui-angular-core-collapsible.mjs","sources":["../../src/collapsible/collapsible-context.service.ts","../../src/collapsible/core-collapsible-content.directive.ts","../../src/collapsible/core-collapsible-root.directive.ts","../../src/collapsible/core-collapsible-trigger.directive.ts","../../src/collapsible/qualcomm-ui-angular-core-collapsible.ts"],"sourcesContent":["// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {Injectable} from \"@angular/core\"\n\nimport {\n  type ApiContext,\n  BaseApiContextService,\n  createApiContext,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {CollapsibleApi} from \"@qualcomm-ui/core/collapsible\"\n\n@Injectable()\nexport class CollapsibleContextService extends BaseApiContextService<CollapsibleApi> {}\n\nexport const [\n  COLLAPSIBLE_CONTEXT,\n  useCollapsibleContext,\n  provideCollapsibleContext,\n]: ApiContext<CollapsibleApi> = createApiContext<CollapsibleApi>(\n  \"CollapsibleContext\",\n  CollapsibleContextService,\n)\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useId, useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {useCollapsibleContext} from \"./collapsible-context.service\"\n\n@Directive()\nexport class CoreCollapsibleContentDirective implements OnInit {\n  /**\n   * {@link https://www.w3schools.com/html/html_id.asp id attribute}. If\n   * omitted, a unique identifier will be generated for accessibility.\n   */\n  readonly id = input<string>()\n\n  protected readonly collapsibleContext = useCollapsibleContext()\n\n  protected readonly trackBindings = useTrackBindings(() => {\n    return this.collapsibleContext().getContentBindings({\n      id: this.hostId(),\n      onDestroy: this.onDestroy,\n    })\n  })\n\n  protected readonly hostId = computed(() => useId(this, this.id()))\n\n  protected readonly onDestroy = useOnDestroy()\n\n  ngOnInit() {\n    this.trackBindings()\n  }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {DOCUMENT} from \"@angular/common\"\nimport {\n  booleanAttribute,\n  computed,\n  Directive,\n  inject,\n  Injector,\n  input,\n  type OnInit,\n  output,\n} from \"@angular/core\"\n\nimport {\n  normalizeProps,\n  useMachine,\n  useTrackBindings,\n} from \"@qualcomm-ui/angular-core/machine\"\nimport type {SignalifyInput} from \"@qualcomm-ui/angular-core/signals\"\nimport {\n  type CollapsibleApiProps,\n  collapsibleMachine,\n  createCollapsibleApi,\n} from \"@qualcomm-ui/core/collapsible\"\nimport type {Booleanish} from \"@qualcomm-ui/utils/coercion\"\nimport type {Direction} from \"@qualcomm-ui/utils/direction\"\nimport type {Explicit} from \"@qualcomm-ui/utils/guard\"\n\nimport {CollapsibleContextService} from \"./collapsible-context.service\"\n\n@Directive()\nexport class CoreCollapsibleRootDirective\n  implements OnInit, SignalifyInput<CollapsibleApiProps>\n{\n  /**\n   * The initial open state of the collapsible when rendered.\n   * Use when you don't need to control the open state of the collapsible.\n   */\n  readonly defaultOpen = input<boolean | undefined, Booleanish>(undefined, {\n    transform: booleanAttribute,\n  })\n\n  /**\n   * The document's text/writing direction.\n   *\n   * @default \"ltr\"\n   */\n  readonly dir = input<Direction | undefined>(undefined)\n\n  /**\n   * Whether the collapsible is disabled.\n   */\n  readonly disabled = input<boolean | undefined>()\n\n  /**\n   * A root node to correctly resolve the Document in custom environments. i.e.,\n   * Iframes, Electron.\n   */\n  readonly getRootNode = input<\n    (() => ShadowRoot | Document | Node) | undefined\n  >()\n\n  /**\n   * The controlled open state of the collapsible\n   */\n  readonly open = input<boolean | undefined>()\n\n  /**\n   * Function called when the animation ends in the closed state\n   */\n  readonly exitCompleted = output<void>()\n\n  /**\n   * Function called when {@link open} changes.\n   */\n  readonly openChanged = output<boolean>()\n\n  readonly collapsibleService = inject(CollapsibleContextService)\n\n  private readonly injector = inject(Injector)\n  private readonly document = inject(DOCUMENT)\n\n  protected readonly trackBindings = useTrackBindings(() => {\n    return this.collapsibleService.context().getRootBindings()\n  })\n\n  ngOnInit() {\n    const machine = useMachine(\n      collapsibleMachine,\n      computed<Explicit<CollapsibleApiProps>>(() => ({\n        defaultOpen: this.defaultOpen(),\n        dir: this.dir(),\n        disabled: this.disabled(),\n        forceMeasureOnOpen: true,\n        getRootNode: this.getRootNode() || (() => this.document),\n        onExitComplete: () => this.exitCompleted.emit(),\n        onOpenChange: (open) => this.openChanged.emit(open),\n        open: this.open(),\n      })),\n      this.injector,\n    )\n\n    const collapsibleApi = computed(() =>\n      createCollapsibleApi(machine, normalizeProps),\n    )\n\n    this.collapsibleService.init(collapsibleApi)\n\n    this.trackBindings()\n  }\n}\n","// Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.\n// SPDX-License-Identifier: BSD-3-Clause-Clear\n\nimport {computed, Directive, input, type OnInit} from \"@angular/core\"\n\nimport {useId, useOnDestroy} from \"@qualcomm-ui/angular-core/common\"\nimport {useTrackBindings} from \"@qualcomm-ui/angular-core/machine\"\n\nimport {useCollapsibleContext} from \"./collapsible-context.service\"\n\n@Directive()\nexport class CoreCollapsibleTriggerDirective implements OnInit {\n  /**\n   * {@link https://www.w3schools.com/html/html_id.asp id attribute}. If\n   * omitted, a unique identifier will be generated for accessibility.\n   */\n  readonly id = input<string>()\n\n  protected readonly collapsibleContext = useCollapsibleContext()\n\n  protected readonly trackBindings = useTrackBindings(() => {\n    return this.collapsibleContext().getTriggerBindings({\n      id: this.hostId(),\n      onDestroy: this.onDestroy,\n    })\n  })\n\n  private readonly hostId = computed(() => useId(this, this.id()))\n\n  private readonly onDestroy = useOnDestroy()\n\n  ngOnInit() {\n    this.trackBindings()\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}