ng-primitives 0.99.0 → 0.99.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.
- package/accordion/index.d.ts +17 -5
- package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
- package/fesm2022/ng-primitives-accordion.mjs +1 -1
- package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
- package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/ng-primitives-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ng-primitives-button.mjs.map +1 -1
- package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-file-upload.mjs +9 -3
- package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
- package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -1
- package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
- package/fesm2022/ng-primitives-input.mjs.map +1 -1
- package/fesm2022/ng-primitives-menu.mjs +79 -6
- package/fesm2022/ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-progress.mjs +23 -6
- package/fesm2022/ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/ng-primitives-slider.mjs +1 -0
- package/fesm2022/ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/ng-primitives-tabs.mjs +9 -3
- package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
- package/file-upload/index.d.ts +20 -16
- package/input/index.d.ts +10 -5
- package/menu/index.d.ts +188 -17
- package/package.json +1 -1
- package/progress/index.d.ts +48 -36
- package/slider/index.d.ts +4 -4
- package/tabs/index.d.ts +20 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-switch.mjs","sources":["../../../../packages/ng-primitives/switch/src/switch/switch-state.ts","../../../../packages/ng-primitives/switch/src/switch-thumb/switch-thumb-state.ts","../../../../packages/ng-primitives/switch/src/switch-thumb/switch-thumb.ts","../../../../packages/ng-primitives/switch/src/switch/switch.ts","../../../../packages/ng-primitives/switch/src/ng-primitives-switch.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Switch primitive.\n */\nexport interface NgpSwitchState {\n /**\n * The id of the switch.\n */\n readonly id: Signal<string>;\n /**\n * Whether the switch is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the switch is disabled (includes form control state).\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Toggle the switch state.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Switch primitive.\n */\nexport interface NgpSwitchProps {\n /**\n * The id of the switch.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the switch is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the switch is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n}\n\nexport const [NgpSwitchStateToken, ngpSwitch, injectSwitchState, provideSwitchState] =\n createPrimitive(\n 'NgpSwitch',\n ({\n id = signal(uniqueId('ngp-switch')),\n checked: _checked = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n }: NgpSwitchProps): NgpSwitchState => {\n const element = injectElementRef<HTMLElement>();\n const isButton = element.nativeElement.tagName.toLowerCase() === 'button';\n const checked = controlled(_checked);\n const disabledInput = controlled(_disabled);\n\n // Form control and interactions\n const status = ngpFormControl({ id, disabled: disabledInput });\n const disabled = computed(() => status().disabled ?? disabledInput());\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n\n const checkedChange = emitter<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Host bindings\n attrBinding(element, 'role', 'switch');\n attrBinding(element, 'id', id);\n attrBinding(element, 'type', () => (isButton ? 'button' : null));\n attrBinding(element, 'aria-checked', checked);\n dataBinding(element, 'data-checked', checked);\n attrBinding(element, 'aria-disabled', disabled);\n dataBinding(element, 'data-disabled', disabled);\n attrBinding(element, 'disabled', () => (isButton && disabled() ? '' : null));\n attrBinding(element, 'tabindex', tabindex);\n\n // Listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Space') {\n event.preventDefault();\n if (!isButton) {\n toggle(event);\n }\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n event?.preventDefault?.();\n setChecked(!checked());\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabledInput.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n disabled: deprecatedSetter(disabledInput, 'setDisabled'),\n checkedChange: checkedChange.asObservable(),\n toggle,\n setChecked,\n setDisabled,\n };\n },\n );\n","import { computed, Signal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding } from 'ng-primitives/state';\nimport { injectSwitchState } from '../switch/switch-state';\n\n/**\n * Public state surface for the Switch Thumb primitive.\n */\nexport interface NgpSwitchThumbState {\n /**\n * Whether the switch is checked.\n */\n readonly checked: Signal<boolean>;\n /**\n * Whether the switch is disabled.\n */\n readonly disabled: Signal<boolean>;\n}\n\n/**\n * Inputs for configuring the Switch Thumb primitive.\n */\nexport interface NgpSwitchThumbProps {}\n\nexport const [\n NgpSwitchThumbStateToken,\n ngpSwitchThumb,\n injectSwitchThumbState,\n provideSwitchThumbState,\n] = createPrimitive('NgpSwitchThumb', ({}: NgpSwitchThumbProps): NgpSwitchThumbState => {\n const element = injectElementRef();\n const switchState = injectSwitchState();\n\n const checked = computed(() => switchState().checked());\n const disabled = computed(() => switchState().disabled());\n\n // Host bindings\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-disabled', disabled);\n\n ngpInteractions({\n hover: true,\n focusVisible: true,\n press: true,\n disabled,\n });\n\n return { checked, disabled };\n});\n","import { Directive } from '@angular/core';\nimport { ngpSwitchThumb, provideSwitchThumbState } from './switch-thumb-state';\n\n/**\n * Apply the `ngpSwitchThumb` directive to an element within a switch to represent the thumb.\n */\n@Directive({\n selector: '[ngpSwitchThumb]',\n providers: [provideSwitchThumbState({ inherit: false })],\n})\nexport class NgpSwitchThumb {\n constructor() {\n ngpSwitchThumb({});\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpSwitch, provideSwitchState } from './switch-state';\n\n/**\n * Apply the `ngpSwitch` directive to an element to manage the checked state.\n */\n@Directive({\n selector: '[ngpSwitch]',\n exportAs: 'ngpSwitch',\n providers: [provideSwitchState({ inherit: false })],\n})\nexport class NgpSwitch {\n /**\n * The id of the switch. If not provided, a unique id will be generated.\n */\n readonly id = input<string>(uniqueId('ngp-switch'));\n\n /**\n * Determine if the switch is checked.\n * @default false\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpSwitchChecked',\n transform: booleanAttribute,\n });\n\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpSwitchCheckedChange',\n });\n\n /**\n * Determine if the switch is disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpSwitchDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The switch state.\n * @internal\n */\n readonly state = ngpSwitch({\n id: this.id,\n checked: this.checked,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n });\n\n /**\n * Toggle the checked state.\n */\n toggle(): void {\n this.state.toggle();\n }\n\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void {\n this.state.setChecked(value);\n }\n\n /**\n * Update the disabled value.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-switch.mjs","sources":["../../../../packages/ng-primitives/switch/src/switch/switch-state.ts","../../../../packages/ng-primitives/switch/src/switch-thumb/switch-thumb-state.ts","../../../../packages/ng-primitives/switch/src/switch-thumb/switch-thumb.ts","../../../../packages/ng-primitives/switch/src/switch/switch.ts","../../../../packages/ng-primitives/switch/src/ng-primitives-switch.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Switch primitive.\n */\nexport interface NgpSwitchState {\n /**\n * The id of the switch.\n */\n readonly id: Signal<string>;\n /**\n * Whether the switch is checked.\n */\n readonly checked: WritableSignal<boolean>;\n /**\n * Whether the switch is disabled (includes form control state).\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange: Observable<boolean>;\n /**\n * Toggle the switch state.\n */\n toggle(event?: Event): void;\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void;\n /**\n * Update the disabled value.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Switch primitive.\n */\nexport interface NgpSwitchProps {\n /**\n * The id of the switch.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the switch is checked.\n */\n readonly checked?: Signal<boolean>;\n /**\n * Whether the switch is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the checked state changes.\n */\n readonly onCheckedChange?: (checked: boolean) => void;\n}\n\nexport const [NgpSwitchStateToken, ngpSwitch, injectSwitchState, provideSwitchState] =\n createPrimitive(\n 'NgpSwitch',\n ({\n id = signal(uniqueId('ngp-switch')),\n checked: _checked = signal(false),\n disabled: _disabled = signal(false),\n onCheckedChange,\n }: NgpSwitchProps): NgpSwitchState => {\n const element = injectElementRef<HTMLElement>();\n const isButton = element.nativeElement.tagName.toLowerCase() === 'button';\n const checked = controlled(_checked);\n const disabledInput = controlled(_disabled);\n\n // Form control and interactions\n const status = ngpFormControl({ id, disabled: disabledInput });\n const disabled = computed(() => status().disabled ?? disabledInput());\n ngpInteractions({ hover: true, press: true, focusVisible: true, disabled });\n\n const checkedChange = emitter<boolean>();\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Host bindings\n attrBinding(element, 'role', 'switch');\n attrBinding(element, 'id', id);\n attrBinding(element, 'type', () => (isButton ? 'button' : null));\n attrBinding(element, 'aria-checked', checked);\n dataBinding(element, 'data-checked', checked);\n attrBinding(element, 'aria-disabled', disabled);\n dataBinding(element, 'data-disabled', disabled);\n attrBinding(element, 'disabled', () => (isButton && disabled() ? '' : null));\n attrBinding(element, 'tabindex', tabindex);\n\n // Listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Space') {\n event.preventDefault();\n if (!isButton) {\n toggle(event);\n }\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n event?.preventDefault?.();\n setChecked(!checked());\n }\n\n function setChecked(value: boolean): void {\n checked.set(value);\n onCheckedChange?.(value);\n checkedChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabledInput.set(value);\n }\n\n return {\n id,\n checked: deprecatedSetter(checked, 'setChecked'),\n disabled: deprecatedSetter(disabledInput, 'setDisabled'),\n checkedChange: checkedChange.asObservable(),\n toggle,\n setChecked,\n setDisabled,\n } satisfies NgpSwitchState;\n },\n );\n","import { computed, Signal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding } from 'ng-primitives/state';\nimport { injectSwitchState } from '../switch/switch-state';\n\n/**\n * Public state surface for the Switch Thumb primitive.\n */\nexport interface NgpSwitchThumbState {\n /**\n * Whether the switch is checked.\n */\n readonly checked: Signal<boolean>;\n /**\n * Whether the switch is disabled.\n */\n readonly disabled: Signal<boolean>;\n}\n\n/**\n * Inputs for configuring the Switch Thumb primitive.\n */\nexport interface NgpSwitchThumbProps {}\n\nexport const [\n NgpSwitchThumbStateToken,\n ngpSwitchThumb,\n injectSwitchThumbState,\n provideSwitchThumbState,\n] = createPrimitive('NgpSwitchThumb', ({}: NgpSwitchThumbProps): NgpSwitchThumbState => {\n const element = injectElementRef();\n const switchState = injectSwitchState();\n\n const checked = computed(() => switchState().checked());\n const disabled = computed(() => switchState().disabled());\n\n // Host bindings\n dataBinding(element, 'data-checked', checked);\n dataBinding(element, 'data-disabled', disabled);\n\n ngpInteractions({\n hover: true,\n focusVisible: true,\n press: true,\n disabled,\n });\n\n return { checked, disabled } satisfies NgpSwitchThumbState;\n});\n","import { Directive } from '@angular/core';\nimport { ngpSwitchThumb, provideSwitchThumbState } from './switch-thumb-state';\n\n/**\n * Apply the `ngpSwitchThumb` directive to an element within a switch to represent the thumb.\n */\n@Directive({\n selector: '[ngpSwitchThumb]',\n providers: [provideSwitchThumbState({ inherit: false })],\n})\nexport class NgpSwitchThumb {\n constructor() {\n ngpSwitchThumb({});\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpSwitch, provideSwitchState } from './switch-state';\n\n/**\n * Apply the `ngpSwitch` directive to an element to manage the checked state.\n */\n@Directive({\n selector: '[ngpSwitch]',\n exportAs: 'ngpSwitch',\n providers: [provideSwitchState({ inherit: false })],\n})\nexport class NgpSwitch {\n /**\n * The id of the switch. If not provided, a unique id will be generated.\n */\n readonly id = input<string>(uniqueId('ngp-switch'));\n\n /**\n * Determine if the switch is checked.\n * @default false\n */\n readonly checked = input<boolean, BooleanInput>(false, {\n alias: 'ngpSwitchChecked',\n transform: booleanAttribute,\n });\n\n /**\n * Emits when the checked state changes.\n */\n readonly checkedChange = output<boolean>({\n alias: 'ngpSwitchCheckedChange',\n });\n\n /**\n * Determine if the switch is disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpSwitchDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The switch state.\n * @internal\n */\n readonly state = ngpSwitch({\n id: this.id,\n checked: this.checked,\n disabled: this.disabled,\n onCheckedChange: value => this.checkedChange.emit(value),\n });\n\n /**\n * Toggle the checked state.\n */\n toggle(): void {\n this.state.toggle();\n }\n\n /**\n * Update the checked value.\n */\n setChecked(value: boolean): void {\n this.state.setChecked(value);\n }\n\n /**\n * Update the disabled value.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAwEa,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAClF,eAAe,CACb,WAAW,EACX,CAAC,EACC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EACnC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EACjC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EACnC,eAAe,GACA,KAAoB;AACnC,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAe;AAC/C,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AACzE,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC;AACpC,IAAA,MAAM,aAAa,GAAG,UAAU,CAAC,SAAS,CAAC;;AAG3C,IAAA,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAC9D,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,QAAQ,IAAI,aAAa,EAAE,oDAAC;AACrE,IAAA,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAE3E,IAAA,MAAM,aAAa,GAAG,OAAO,EAAW;IACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;AAGtD,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC;AACtC,IAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;IAC9B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;AAChE,IAAA,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC;AAC7C,IAAA,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC;AAC7C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;AAC/C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;IAC/C,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,QAAQ,IAAI,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC5E,IAAA,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;;AAG1C,IAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,KAAoB,KAAI;AACpD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE;YAC9C,KAAK,CAAC,cAAc,EAAE;YACtB,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC;YACf;QACF;AACF,IAAA,CAAC,CAAC;IAEF,SAAS,MAAM,CAAC,KAAa,EAAA;QAC3B,IAAI,QAAQ,EAAE,EAAE;YACd;QACF;AAEA,QAAA,KAAK,EAAE,cAAc,IAAI;AACzB,QAAA,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IACxB;IAEA,SAAS,UAAU,CAAC,KAAc,EAAA;AAChC,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;AAClB,QAAA,eAAe,GAAG,KAAK,CAAC;AACxB,QAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;IAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B;IAEA,OAAO;QACL,EAAE;AACF,QAAA,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;AAChD,QAAA,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC;AACxD,QAAA,aAAa,EAAE,aAAa,CAAC,YAAY,EAAE;QAC3C,MAAM;QACN,UAAU;QACV,WAAW;KACa;AAC5B,CAAC;;ACvHE,MAAM,CACX,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACxB,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAC,EAAuB,KAAyB;AACrF,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;AAEvC,IAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,WAAW,EAAE,CAAC,OAAO,EAAE,mDAAC;AACvD,IAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,WAAW,EAAE,CAAC,QAAQ,EAAE,oDAAC;;AAGzD,IAAA,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC;AAC7C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;AAE/C,IAAA,eAAe,CAAC;AACd,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,KAAK,EAAE,IAAI;QACX,QAAQ;AACT,KAAA,CAAC;AAEF,IAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAgC;AAC5D,CAAC;;AC9CD;;AAEG;MAKU,cAAc,CAAA;AACzB,IAAA,WAAA,GAAA;QACE,cAAc,CAAC,EAAE,CAAC;IACpB;8GAHW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,SAAA,EAFd,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAE7C,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;oBAC5B,SAAS,EAAE,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,iBAAA;;;ACJD;;AAEG;MAMU,SAAS,CAAA;AALtB,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,QAAQ,CAAC,YAAY,CAAC,8CAAC;AAEnD;;;AAGG;AACM,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EACnD,KAAK,EAAE,kBAAkB;gBACzB,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAF0B;AACrD,gBAAA,KAAK,EAAE,kBAAkB;AACzB,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACM,IAAA,CAAA,aAAa,GAAG,MAAM,CAAU;AACvC,YAAA,KAAK,EAAE,wBAAwB;AAChC,SAAA,CAAC;AAEF;;;AAGG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EACpD,KAAK,EAAE,mBAAmB;gBAC1B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAF2B;AACtD,gBAAA,KAAK,EAAE,mBAAmB;AAC1B,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,eAAe,EAAE,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AACzD,SAAA,CAAC;AAsBH,IAAA;AApBC;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;IACrB;AAEA;;AAEG;AACH,IAAA,UAAU,CAAC,KAAc,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;IAC9B;AAEA;;AAEG;AACH,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;IAC/B;8GA7DW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,EAAA,SAAA,EAFT,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExC,SAAS,EAAA,UAAA,EAAA,CAAA;kBALrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;oBACrB,SAAS,EAAE,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACpD,iBAAA;;;ACZD;;AAEG;;;;"}
|
|
@@ -33,11 +33,13 @@ function injectTabsConfig() {
|
|
|
33
33
|
return inject(NgpTabsConfigToken, { optional: true }) ?? defaultTabsConfig;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
const [NgpTabsetStateToken, ngpTabset, injectTabsetState, provideTabsetState] = createPrimitive('NgpTabset', ({ id = signal(uniqueId('ngp-tabset')), value: _value = signal(undefined), orientation: _orientation = signal('horizontal'), activateOnFocus = signal(false), onValueChange, }) => {
|
|
36
|
+
const [NgpTabsetStateToken, ngpTabset, injectTabsetState, provideTabsetState] = createPrimitive('NgpTabset', ({ id = signal(uniqueId('ngp-tabset')), value: _value = signal(undefined), orientation: _orientation = signal('horizontal'), activateOnFocus: _activateOnFocus = signal(false), onValueChange, }) => {
|
|
37
37
|
const element = injectElementRef();
|
|
38
38
|
const tabs = signal([], ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
39
|
+
// Controlled properties
|
|
39
40
|
const value = controlled(_value);
|
|
40
41
|
const orientation = controlled(_orientation);
|
|
42
|
+
const activateOnFocus = controlled(_activateOnFocus);
|
|
41
43
|
// Host bindings
|
|
42
44
|
attrBinding(element, 'id', id);
|
|
43
45
|
dataBinding(element, 'data-orientation', orientation);
|
|
@@ -67,6 +69,9 @@ const [NgpTabsetStateToken, ngpTabset, injectTabsetState, provideTabsetState] =
|
|
|
67
69
|
function setOrientation(newOrientation) {
|
|
68
70
|
orientation.set(newOrientation);
|
|
69
71
|
}
|
|
72
|
+
function setActivateOnFocus(newActivateOnFocus) {
|
|
73
|
+
activateOnFocus.set(newActivateOnFocus);
|
|
74
|
+
}
|
|
70
75
|
function registerTab(tab) {
|
|
71
76
|
tabs.update(currentTabs => [...currentTabs, tab]);
|
|
72
77
|
}
|
|
@@ -75,14 +80,15 @@ const [NgpTabsetStateToken, ngpTabset, injectTabsetState, provideTabsetState] =
|
|
|
75
80
|
}
|
|
76
81
|
return {
|
|
77
82
|
id,
|
|
78
|
-
orientation,
|
|
79
|
-
activateOnFocus,
|
|
83
|
+
orientation: deprecatedSetter(orientation, 'setOrientation'),
|
|
84
|
+
activateOnFocus: deprecatedSetter(activateOnFocus, 'setActivateOnFocus'),
|
|
80
85
|
value: deprecatedSetter(value, 'select'),
|
|
81
86
|
selectedTab,
|
|
82
87
|
select,
|
|
83
88
|
setOrientation,
|
|
84
89
|
registerTab,
|
|
85
90
|
unregisterTab,
|
|
91
|
+
setActivateOnFocus,
|
|
86
92
|
};
|
|
87
93
|
});
|
|
88
94
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-tabs.mjs","sources":["../../../../packages/ng-primitives/tabs/src/config/tabs-config.ts","../../../../packages/ng-primitives/tabs/src/tabset/tabset-state.ts","../../../../packages/ng-primitives/tabs/src/tab-button/tab-button-state.ts","../../../../packages/ng-primitives/tabs/src/tab-button/tab-button.ts","../../../../packages/ng-primitives/tabs/src/tab-list/tab-list-state.ts","../../../../packages/ng-primitives/tabs/src/tab-list/tab-list.ts","../../../../packages/ng-primitives/tabs/src/tab-panel/tab-panel-state.ts","../../../../packages/ng-primitives/tabs/src/tab-panel/tab-panel.ts","../../../../packages/ng-primitives/tabs/src/tabset/tabset.ts","../../../../packages/ng-primitives/tabs/src/ng-primitives-tabs.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\n\nexport interface NgpTabsConfig {\n /**\n * The orientation of the tabset\n * @default 'horizontal'\n */\n orientation: NgpOrientation;\n\n /**\n * Whether tabs should activate on focus\n * @default true\n */\n activateOnFocus: boolean;\n\n /**\n * Whether focus should wrap within the tab list when using the keyboard.\n * @default true\n */\n wrap: boolean;\n}\n\nexport const defaultTabsConfig: NgpTabsConfig = {\n orientation: 'horizontal',\n activateOnFocus: true,\n wrap: true,\n};\n\nexport const NgpTabsConfigToken = new InjectionToken<NgpTabsConfig>('NgpTabsConfigToken');\n\n/**\n * Provide the default Tabs configuration\n * @param config The Tabs configuration\n * @returns The provider\n */\nexport function provideTabsConfig(config: Partial<NgpTabsConfig>): Provider[] {\n return [\n {\n provide: NgpTabsConfigToken,\n useValue: { ...defaultTabsConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Tabs configuration\n * @returns The global Tabs configuration\n */\nexport function injectTabsConfig(): NgpTabsConfig {\n return inject(NgpTabsConfigToken, { optional: true }) ?? defaultTabsConfig;\n}\n","import { computed, signal, Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\n\n/**\n * The state for the NgpTabset directive.\n */\nexport interface NgpTabsetState {\n /**\n * The unique id for the tabset.\n */\n readonly id: Signal<string>;\n\n /**\n * The orientation of the tabset.\n */\n readonly orientation: Signal<NgpOrientation>;\n\n /**\n * Whether tabs should activate on focus.\n */\n readonly activateOnFocus: Signal<boolean>;\n\n /**\n * The selected tab value.\n */\n readonly value: WritableSignal<string | undefined>;\n\n /**\n * The selected tab computed value.\n */\n readonly selectedTab: Signal<string | undefined>;\n\n /**\n * Select a tab by its value.\n */\n select(value: string): void;\n\n /**\n * Set orientation of the tabset.\n */\n setOrientation(orientation: NgpOrientation): void;\n\n /**\n * @internal Register a tab with the tabset.\n */\n registerTab(value: string, disabled: () => boolean): void;\n\n /**\n * @internal Unregister a tab with the tabset.\n */\n unregisterTab(value: string): void;\n}\n\n/**\n * The props for the NgpTabset state.\n */\nexport interface NgpTabsetProps {\n /**\n * The unique id for the tabset.\n */\n readonly id?: Signal<string>;\n\n /**\n * The selected tab value.\n */\n readonly value?: Signal<string | undefined>;\n\n /**\n * The orientation of the tabset.\n */\n readonly orientation?: Signal<NgpOrientation>;\n\n /**\n * Whether tabs should activate on focus.\n */\n readonly activateOnFocus?: Signal<boolean>;\n\n /**\n * Callback when the selected tab changes.\n */\n readonly onValueChange?: (value: string | undefined) => void;\n}\n\nexport const [NgpTabsetStateToken, ngpTabset, injectTabsetState, provideTabsetState] =\n createPrimitive(\n 'NgpTabset',\n ({\n id = signal(uniqueId('ngp-tabset')),\n value: _value = signal(undefined),\n orientation: _orientation = signal('horizontal'),\n activateOnFocus = signal(false),\n onValueChange,\n }: NgpTabsetProps) => {\n const element = injectElementRef();\n const tabs = signal<NgpTab[]>([]);\n const value = controlled(_value);\n const orientation = controlled(_orientation);\n\n // Host bindings\n attrBinding(element, 'id', id);\n dataBinding(element, 'data-orientation', orientation);\n\n // Computed selected tab\n const selectedTab = computed(() => {\n const tabList = tabs();\n const currentValue = value();\n\n // if there are no tabs then return the selected value\n if (tabList.length === 0) {\n return currentValue;\n }\n\n // if there is a value set and a tab with that value exists, return the value\n if (currentValue && tabList.some(tab => tab.value() === currentValue)) {\n return currentValue;\n }\n\n // otherwise return the first non-disabled tab's value\n return tabList.find(tab => !tab.disabled())?.value();\n });\n\n function select(newValue: string): void {\n // if the value is already selected, do nothing\n if (value() === newValue) {\n return;\n }\n\n value.set(newValue);\n onValueChange?.(newValue);\n }\n\n function setOrientation(newOrientation: NgpOrientation): void {\n orientation.set(newOrientation);\n }\n\n function registerTab(tab: NgpTab): void {\n tabs.update(currentTabs => [...currentTabs, tab]);\n }\n\n function unregisterTab(tabValue: string): void {\n tabs.update(currentTabs => currentTabs.filter(tab => tab.value() !== tabValue));\n }\n\n return {\n id,\n orientation,\n activateOnFocus,\n value: deprecatedSetter(value, 'select'),\n selectedTab,\n select,\n setOrientation,\n registerTab,\n unregisterTab,\n };\n },\n );\n\nexport interface NgpTab {\n /**\n * The unique value for the tab.\n */\n readonly value: Signal<string>;\n\n /**\n * Whether the tab is disabled.\n */\n readonly disabled: Signal<boolean>;\n}\n","import { HOST_TAG_NAME, Signal, computed, inject, signal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n createPrimitive,\n dataBinding,\n listener,\n onDestroy,\n onMount,\n} from 'ng-primitives/state';\nimport { injectTabsetState } from '../tabset/tabset-state';\n\n/**\n * The state for the NgpTabButton directive.\n */\nexport interface NgpTabButtonState {\n /**\n * The unique id for the tab button.\n */\n readonly id: Signal<string>;\n\n /**\n * Whether the tab is active.\n */\n readonly active: Signal<boolean>;\n\n /**\n * Select the tab this trigger controls.\n */\n select(): void;\n\n /**\n * Register this tab with the tabset.\n */\n register(): void;\n}\n\n/**\n * The props for the NgpTabButton state.\n */\nexport interface NgpTabButtonProps {\n /**\n * The value of the tab this trigger controls.\n */\n readonly value: Signal<string>;\n\n /**\n * Whether the tab is disabled.\n */\n readonly disabled?: Signal<boolean>;\n\n /**\n * The id of the tab button.\n */\n readonly id?: Signal<string | undefined>;\n}\n\nexport const [NgpTabButtonStateToken, ngpTabButton, injectTabButtonState, provideTabButtonState] =\n createPrimitive('NgpTabButton', ({ value, disabled = signal(false), id }: NgpTabButtonProps) => {\n const element = injectElementRef();\n const tagName = inject(HOST_TAG_NAME);\n const tabset = injectTabsetState();\n\n // Computed properties\n const buttonId = computed(() => id?.() ?? `${tabset().id()}-button-${value()}`);\n const ariaControls = computed(() => `${tabset().id()}-panel-${value()}`);\n const active = computed(() => tabset().selectedTab() === value());\n\n // Host bindings\n attrBinding(element, 'role', 'tab');\n attrBinding(element, 'id', buttonId);\n attrBinding(element, 'aria-controls', ariaControls);\n attrBinding(element, 'aria-selected', active);\n dataBinding(element, 'data-active', active);\n dataBinding(element, 'data-disabled', disabled);\n attrBinding(element, 'disabled', () => (tagName === 'button' && disabled() ? '' : null));\n dataBinding(element, 'data-orientation', () => tabset().orientation());\n\n // Event listeners\n listener(element, 'click', select);\n listener(element, 'focus', activateOnFocus);\n\n // Setup interactions\n ngpInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n disabled,\n });\n\n function select(): void {\n if (disabled?.() === false) {\n tabset().select(value());\n }\n }\n\n function activateOnFocus(): void {\n if (tabset().activateOnFocus()) {\n select();\n }\n }\n\n onMount(() => {\n // we can't use a required input for value as it is used in a computed property before the input is set\n if (value() === undefined) {\n throw new Error('ngpTabButton: value is required');\n }\n\n // Register with tabset now that inputs are available\n tabset().registerTab({ value, disabled });\n });\n\n // Unregister on destroy\n onDestroy(() => {\n tabset().unregisterTab(value());\n });\n\n return {\n id: buttonId,\n active,\n select,\n };\n });\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, Signal } from '@angular/core';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\nimport { ngpTabButton, provideTabButtonState } from './tab-button-state';\n\n/**\n * Apply the `ngpTabButton` directive to an element within a tab list to represent a tab button. This directive should be applied to a button element.\n */\n@Directive({\n selector: '[ngpTabButton]',\n exportAs: 'ngpTabButton',\n providers: [provideTabButtonState(), provideRovingFocusItemState()],\n})\nexport class NgpTabButton {\n /**\n * The value of the tab this trigger controls\n * @required\n */\n readonly value = input<string>(undefined, { alias: 'ngpTabButtonValue' });\n\n /**\n * Whether the tab is disabled\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpTabButtonDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Determine the id of the tab button\n * @internal\n */\n readonly id = input<string>();\n\n private readonly state = ngpTabButton({\n value: this.value as Signal<string>,\n disabled: this.disabled,\n id: this.id,\n });\n\n /**\n * Whether the tab is active\n */\n readonly active = this.state.active;\n\n constructor() {\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n\n /**\n * Select the tab this trigger controls\n */\n select(): void {\n this.state.select();\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, attrBinding, dataBinding } from 'ng-primitives/state';\nimport { injectTabsetState } from '../tabset/tabset-state';\n\n/**\n * The state for the NgpTabList directive.\n */\nexport interface NgpTabListState {\n // No public methods exposed for tab list\n}\n\n/**\n * The props for the NgpTabList state.\n */\nexport interface NgpTabListProps {\n // No props for tab list\n}\n\nexport const [NgpTabListStateToken, ngpTabList, injectTabListState, provideTabListState] =\n createPrimitive('NgpTabList', ({}: NgpTabListProps) => {\n const element = injectElementRef();\n const tabsetState = injectTabsetState();\n\n // Host bindings\n attrBinding(element, 'role', 'tablist');\n attrBinding(element, 'aria-orientation', () => tabsetState().orientation());\n dataBinding(element, 'data-orientation', () => tabsetState().orientation());\n\n return {};\n });\n","import { Directive } from '@angular/core';\nimport { ngpTabList, provideTabListState } from './tab-list-state';\n\n/**\n * Apply the `ngpTabList` directive to an element that represents the list of tab buttons.\n */\n@Directive({\n selector: '[ngpTabList]',\n exportAs: 'ngpTabList',\n providers: [provideTabListState()],\n})\nexport class NgpTabList {\n constructor() {\n ngpTabList({});\n }\n}\n","import { Signal, computed } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, onMount } from 'ng-primitives/state';\nimport { injectTabsetState } from '../tabset/tabset-state';\n\n/**\n * The state for the NgpTabPanel directive.\n */\nexport interface NgpTabPanelState {\n /**\n * The unique id for the tab panel.\n */\n readonly panelId: Signal<string>;\n\n /**\n * The aria-labelledby attribute for the tab panel.\n */\n readonly labelledBy: Signal<string>;\n\n /**\n * Whether the tab panel is active.\n */\n readonly active: Signal<boolean>;\n}\n\n/**\n * The props for the NgpTabPanel state.\n */\nexport interface NgpTabPanelProps {\n /**\n * The value of the tab this panel represents.\n */\n readonly value: Signal<string | undefined>;\n\n /**\n * The id of the tab panel.\n */\n readonly id?: Signal<string | undefined>;\n}\n\nexport const [NgpTabPanelStateToken, ngpTabPanel, injectTabPanelState, provideTabPanelState] =\n createPrimitive('NgpTabPanel', ({ value, id }: NgpTabPanelProps) => {\n const element = injectElementRef();\n const tabset = injectTabsetState();\n\n // Computed properties\n const panelId = computed(() => id?.() ?? `${tabset().id()}-panel-${value?.()}`);\n const labelledBy = computed(() => `${tabset().id()}-button-${value?.()}`);\n const active = computed(() => tabset().selectedTab() === value?.());\n\n // Host bindings\n attrBinding(element, 'role', 'tabpanel');\n attrBinding(element, 'tabindex', () => (active() ? '0' : null));\n attrBinding(element, 'aria-hidden', () => (active() ? null : 'true'));\n attrBinding(element, 'id', panelId);\n attrBinding(element, 'aria-labelledby', labelledBy);\n dataBinding(element, 'data-active', active);\n dataBinding(element, 'data-orientation', () => tabset().orientation());\n\n // Ensure value is provided\n onMount(() => {\n if (value() === undefined) {\n throw new Error('ngpTabPanel: value is required');\n }\n });\n\n return {\n panelId,\n labelledBy,\n active,\n };\n });\n","import { Directive, input } from '@angular/core';\nimport { ngpTabPanel, provideTabPanelState } from './tab-panel-state';\n\n/**\n * Apply the `ngpTabPanel` directive to an element that represents the content of a tab.\n */\n@Directive({\n selector: '[ngpTabPanel]',\n exportAs: 'ngpTabPanel',\n providers: [provideTabPanelState()],\n})\nexport class NgpTabPanel {\n /**\n * The value of the tab\n * @required\n */\n readonly value = input<string>(undefined, { alias: 'ngpTabPanelValue' });\n\n /**\n * Determine the id of the tab panel\n * @internal\n */\n readonly id = input<string>();\n\n private readonly state = ngpTabPanel({\n value: this.value,\n id: this.id,\n });\n\n /**\n * Whether the tab is active\n */\n readonly active = this.state.active;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output, signal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectTabsConfig } from '../config/tabs-config';\nimport { ngpTabset, provideTabsetState } from './tabset-state';\n\n/**\n * Apply the `ngpTabset` directive to an element to manage the tabs.\n */\n@Directive({\n selector: '[ngpTabset]',\n exportAs: 'ngpTabset',\n providers: [\n provideTabsetState({ inherit: false }),\n provideRovingFocusGroupState({ inherit: false }),\n ],\n})\nexport class NgpTabset {\n /**\n * Access the global tabset configuration\n */\n private readonly config = injectTabsConfig();\n\n /**\n * Define the id for the tabset\n */\n readonly id = input<string>(uniqueId('ngp-tabset'));\n\n /**\n * Define the active tab\n */\n readonly value = input<string>(undefined, {\n alias: 'ngpTabsetValue',\n });\n\n /**\n * Emit the value of the selected tab when it changes\n */\n readonly valueChange = output<string | undefined>({\n alias: 'ngpTabsetValueChange',\n });\n\n /**\n * The orientation of the tabset\n * @default 'horizontal'\n */\n readonly orientation = input<NgpOrientation>(this.config.orientation, {\n alias: 'ngpTabsetOrientation',\n });\n\n /**\n * Whether tabs should activate on focus\n */\n readonly activateOnFocus = input<boolean, BooleanInput>(this.config.activateOnFocus, {\n alias: 'ngpTabsetActivateOnFocus',\n transform: booleanAttribute,\n });\n\n private readonly state = ngpTabset({\n id: this.id,\n value: this.value,\n orientation: this.orientation,\n activateOnFocus: this.activateOnFocus,\n onValueChange: value => this.valueChange.emit(value),\n });\n\n /**\n * @internal\n * Get the id of the selected tab\n */\n readonly selectedTab = this.state.selectedTab;\n\n constructor() {\n ngpRovingFocusGroup({\n orientation: this.orientation,\n disabled: signal(false),\n wrap: signal(false),\n homeEnd: signal(true),\n });\n }\n\n /**\n * Select a tab by its value\n * @param value The value of the tab to select\n */\n select(value: string): void {\n this.state.select(value);\n }\n\n /**\n * Set orientation of the tabset.\n */\n setOrientation(orientation: NgpOrientation): void {\n this.state.setOrientation(orientation);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAuBO,MAAM,iBAAiB,GAAkB;AAC9C,IAAA,WAAW,EAAE,YAAY;AACzB,IAAA,eAAe,EAAE,IAAI;AACrB,IAAA,IAAI,EAAE,IAAI;CACX;AAEM,MAAM,kBAAkB,GAAG,IAAI,cAAc,CAAgB,oBAAoB,CAAC;AAEzF;;;;AAIG;AACG,SAAU,iBAAiB,CAAC,MAA8B,EAAA;IAC9D,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,kBAAkB;AAC3B,YAAA,QAAQ,EAAE,EAAE,GAAG,iBAAiB,EAAE,GAAG,MAAM,EAAE;AAC9C,SAAA;KACF;AACH;AAEA;;;AAGG;SACa,gBAAgB,GAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,iBAAiB;AAC5E;;ACyCO,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAClF,eAAe,CACb,WAAW,EACX,CAAC,EACC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EACnC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,EACjC,WAAW,EAAE,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,EAChD,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,EAC/B,aAAa,GACE,KAAI;AACnB,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,IAAI,GAAG,MAAM,CAAW,EAAE,gDAAC;AACjC,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC;AAChC,IAAA,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;;AAG5C,IAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;AAC9B,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC;;AAGrD,IAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAK;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,EAAE;AACtB,QAAA,MAAM,YAAY,GAAG,KAAK,EAAE;;AAG5B,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACxB,YAAA,OAAO,YAAY;QACrB;;AAGA,QAAA,IAAI,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,EAAE;AACrE,YAAA,OAAO,YAAY;QACrB;;AAGA,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE;AACtD,IAAA,CAAC,uDAAC;IAEF,SAAS,MAAM,CAAC,QAAgB,EAAA;;AAE9B,QAAA,IAAI,KAAK,EAAE,KAAK,QAAQ,EAAE;YACxB;QACF;AAEA,QAAA,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnB,QAAA,aAAa,GAAG,QAAQ,CAAC;IAC3B;IAEA,SAAS,cAAc,CAAC,cAA8B,EAAA;AACpD,QAAA,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC;IACjC;IAEA,SAAS,WAAW,CAAC,GAAW,EAAA;AAC9B,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC;IACnD;IAEA,SAAS,aAAa,CAAC,QAAgB,EAAA;QACrC,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,QAAQ,CAAC,CAAC;IACjF;IAEA,OAAO;QACL,EAAE;QACF,WAAW;QACX,eAAe;AACf,QAAA,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;QACxC,WAAW;QACX,MAAM;QACN,cAAc;QACd,WAAW;QACX,aAAa;KACd;AACH,CAAC;;ACzGE,MAAM,CAAC,sBAAsB,EAAE,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,GAC9F,eAAe,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAqB,KAAI;AAC7F,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;AACrC,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE;;IAGlC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,EAAE,CAAA,CAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC/E,IAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAA,OAAA,EAAU,KAAK,EAAE,CAAA,CAAE,wDAAC;AACxE,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,kDAAC;;AAGjE,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;AACnC,IAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;AACpC,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,YAAY,CAAC;AACnD,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,CAAC;AAC7C,IAAA,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC;AAC3C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;IAC/C,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AACxF,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;;AAGtE,IAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;AAClC,IAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC;;AAG3C,IAAA,eAAe,CAAC;AACd,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,YAAY,EAAE,IAAI;QAClB,QAAQ;AACT,KAAA,CAAC;AAEF,IAAA,SAAS,MAAM,GAAA;AACb,QAAA,IAAI,QAAQ,IAAI,KAAK,KAAK,EAAE;AAC1B,YAAA,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B;IACF;AAEA,IAAA,SAAS,eAAe,GAAA;AACtB,QAAA,IAAI,MAAM,EAAE,CAAC,eAAe,EAAE,EAAE;AAC9B,YAAA,MAAM,EAAE;QACV;IACF;IAEA,OAAO,CAAC,MAAK;;AAEX,QAAA,IAAI,KAAK,EAAE,KAAK,SAAS,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC;QACpD;;QAGA,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC3C,IAAA,CAAC,CAAC;;IAGF,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACjC,IAAA,CAAC,CAAC;IAEF,OAAO;AACL,QAAA,EAAE,EAAE,QAAQ;QACZ,MAAM;QACN,MAAM;KACP;AACH,CAAC;;ACtHH;;AAEG;MAMU,YAAY,CAAA;AAiCvB,IAAA,WAAA,GAAA;AAhCA;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS,yCAAI,KAAK,EAAE,mBAAmB,EAAA,CAAA,GAAA,CAA5B,EAAE,KAAK,EAAE,mBAAmB,EAAE,GAAC;AAEzE;;;AAGG;AACM,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAwB,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EACpD,KAAK,EAAE,sBAAsB;gBAC7B,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAF2B;AACtD,gBAAA,KAAK,EAAE,sBAAsB;AAC7B,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;AAEF;;;AAGG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;QAEZ,IAAA,CAAA,KAAK,GAAG,YAAY,CAAC;YACpC,KAAK,EAAE,IAAI,CAAC,KAAuB;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;AACZ,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;QAGjC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjD;AAEA;;AAEG;IACH,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;IACrB;8GA1CW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,ycAFZ,CAAC,qBAAqB,EAAE,EAAE,2BAA2B,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExD,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,SAAS,EAAE,CAAC,qBAAqB,EAAE,EAAE,2BAA2B,EAAE,CAAC;AACpE,iBAAA;;;ACMM,MAAM,CAAC,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,GACtF,eAAe,CAAC,YAAY,EAAE,CAAC,EAAmB,KAAI;AACpD,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;;AAGvC,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AACvC,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;AAC3E,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,EAAE,CAAC,WAAW,EAAE,CAAC;AAE3E,IAAA,OAAO,EAAE;AACX,CAAC;;AC1BH;;AAEG;MAMU,UAAU,CAAA;AACrB,IAAA,WAAA,GAAA;QACE,UAAU,CAAC,EAAE,CAAC;IAChB;8GAHW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,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,SAAA,EAFV,CAAC,mBAAmB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEvB,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,SAAS,EAAE,CAAC,mBAAmB,EAAE,CAAC;AACnC,iBAAA;;;MC8BY,CAAC,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,GAC1F,eAAe,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAoB,KAAI;AACjE,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE;;IAGlC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAA,OAAA,EAAU,KAAK,IAAI,CAAA,CAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAC/E,IAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAA,EAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAA,QAAA,EAAW,KAAK,IAAI,CAAA,CAAE,sDAAC;AACzE,IAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,KAAK,IAAI,kDAAC;;AAGnE,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC;IACxC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;IAC/D,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,MAAM,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AACrE,IAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC;AACnC,IAAA,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC;AACnD,IAAA,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC;AAC3C,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;;IAGtE,OAAO,CAAC,MAAK;AACX,QAAA,IAAI,KAAK,EAAE,KAAK,SAAS,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC;QACnD;AACF,IAAA,CAAC,CAAC;IAEF,OAAO;QACL,OAAO;QACP,UAAU;QACV,MAAM;KACP;AACH,CAAC;;ACpEH;;AAEG;MAMU,WAAW,CAAA;AALxB,IAAA,WAAA,GAAA;AAME;;;AAGG;AACM,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS,yCAAI,KAAK,EAAE,kBAAkB,EAAA,CAAA,GAAA,CAA3B,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAC;AAExE;;;AAGG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;QAEZ,IAAA,CAAA,KAAK,GAAG,WAAW,CAAC;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;AACZ,SAAA,CAAC;AAEF;;AAEG;AACM,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;AACpC,IAAA;8GAtBY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFX,CAAC,oBAAoB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAExB,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,CAAC;AACpC,iBAAA;;;ACFD;;AAEG;MASU,SAAS,CAAA;AAuDpB,IAAA,WAAA,GAAA;AAtDA;;AAEG;QACc,IAAA,CAAA,MAAM,GAAG,gBAAgB,EAAE;AAE5C;;AAEG;QACM,IAAA,CAAA,EAAE,GAAG,KAAK,CAAS,QAAQ,CAAC,YAAY,CAAC,8CAAC;AAEnD;;AAEG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAS,SAAS,yCACtC,KAAK,EAAE,gBAAgB,EAAA,CAAA,GAAA,CADiB;AACxC,gBAAA,KAAK,EAAE,gBAAgB;AACxB,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,MAAM,CAAqB;AAChD,YAAA,KAAK,EAAE,sBAAsB;AAC9B,SAAA,CAAC;AAEF;;;AAGG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAiB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAClE,KAAK,EAAE,sBAAsB,EAAA,CAAA,GAAA,CADuC;AACpE,gBAAA,KAAK,EAAE,sBAAsB;AAC9B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACM,IAAA,CAAA,eAAe,GAAG,KAAK,CAAwB,IAAI,CAAC,MAAM,CAAC,eAAe,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,iBAAA,EACjF,KAAK,EAAE,0BAA0B;gBACjC,SAAS,EAAE,gBAAgB,EAAA,CAAA,GAAA,CAFwD;AACnF,gBAAA,KAAK,EAAE,0BAA0B;AACjC,gBAAA,SAAS,EAAE,gBAAgB;AAC5B,aAAA,CAAA,CAAA,CAAC;QAEe,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC;YACjC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;AACrC,YAAA,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,SAAA,CAAC;AAEF;;;AAGG;AACM,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW;AAG3C,QAAA,mBAAmB,CAAC;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW;AAC7B,YAAA,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;AACvB,YAAA,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;AACnB,YAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC;AACtB,SAAA,CAAC;IACJ;AAEA;;;AAGG;AACH,IAAA,MAAM,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1B;AAEA;;AAEG;AACH,IAAA,cAAc,CAAC,WAA2B,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACxC;8GA7EW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,sBAAA,EAAA,EAAA,SAAA,EALT;AACT,YAAA,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACtC,YAAA,4BAA4B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjD,SAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEU,SAAS,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE;AACT,wBAAA,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACtC,wBAAA,4BAA4B,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjD,qBAAA;AACF,iBAAA;;;AClBD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-tabs.mjs","sources":["../../../../packages/ng-primitives/tabs/src/config/tabs-config.ts","../../../../packages/ng-primitives/tabs/src/tabset/tabset-state.ts","../../../../packages/ng-primitives/tabs/src/tab-button/tab-button-state.ts","../../../../packages/ng-primitives/tabs/src/tab-button/tab-button.ts","../../../../packages/ng-primitives/tabs/src/tab-list/tab-list-state.ts","../../../../packages/ng-primitives/tabs/src/tab-list/tab-list.ts","../../../../packages/ng-primitives/tabs/src/tab-panel/tab-panel-state.ts","../../../../packages/ng-primitives/tabs/src/tab-panel/tab-panel.ts","../../../../packages/ng-primitives/tabs/src/tabset/tabset.ts","../../../../packages/ng-primitives/tabs/src/ng-primitives-tabs.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\n\nexport interface NgpTabsConfig {\n /**\n * The orientation of the tabset\n * @default 'horizontal'\n */\n orientation: NgpOrientation;\n\n /**\n * Whether tabs should activate on focus\n * @default true\n */\n activateOnFocus: boolean;\n\n /**\n * Whether focus should wrap within the tab list when using the keyboard.\n * @default true\n */\n wrap: boolean;\n}\n\nexport const defaultTabsConfig: NgpTabsConfig = {\n orientation: 'horizontal',\n activateOnFocus: true,\n wrap: true,\n};\n\nexport const NgpTabsConfigToken = new InjectionToken<NgpTabsConfig>('NgpTabsConfigToken');\n\n/**\n * Provide the default Tabs configuration\n * @param config The Tabs configuration\n * @returns The provider\n */\nexport function provideTabsConfig(config: Partial<NgpTabsConfig>): Provider[] {\n return [\n {\n provide: NgpTabsConfigToken,\n useValue: { ...defaultTabsConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Tabs configuration\n * @returns The global Tabs configuration\n */\nexport function injectTabsConfig(): NgpTabsConfig {\n return inject(NgpTabsConfigToken, { optional: true }) ?? defaultTabsConfig;\n}\n","import { computed, signal, Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n} from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\n\n/**\n * The state for the NgpTabset directive.\n */\nexport interface NgpTabsetState {\n /**\n * The unique id for the tabset.\n */\n readonly id: Signal<string>;\n\n /**\n * The orientation of the tabset.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n\n /**\n * Whether tabs should activate on focus.\n */\n readonly activateOnFocus: WritableSignal<boolean>;\n\n /**\n * The selected tab value.\n */\n readonly value: WritableSignal<string | undefined>;\n\n /**\n * The selected tab computed value.\n */\n readonly selectedTab: Signal<string | undefined>;\n\n /**\n * Select a tab by its value.\n */\n select(value: string): void;\n\n /**\n * Set orientation of the tabset.\n */\n setOrientation(orientation: NgpOrientation): void;\n\n /**\n * Set the activateOnFocus.\n */\n setActivateOnFocus(activateOnFocus: boolean): void;\n\n /**\n * @internal Register a tab with the tabset.\n */\n registerTab(tab: NgpTab): void;\n\n /**\n * @internal Unregister a tab with the tabset.\n */\n unregisterTab(value: string): void;\n}\n\n/**\n * The props for the NgpTabset state.\n */\nexport interface NgpTabsetProps {\n /**\n * The unique id for the tabset.\n */\n readonly id?: Signal<string>;\n\n /**\n * The selected tab value.\n */\n readonly value?: Signal<string | undefined>;\n\n /**\n * The orientation of the tabset.\n */\n readonly orientation?: Signal<NgpOrientation>;\n\n /**\n * Whether tabs should activate on focus.\n */\n readonly activateOnFocus?: Signal<boolean>;\n\n /**\n * Callback when the selected tab changes.\n */\n readonly onValueChange?: (value: string | undefined) => void;\n}\n\nexport const [NgpTabsetStateToken, ngpTabset, injectTabsetState, provideTabsetState] =\n createPrimitive(\n 'NgpTabset',\n ({\n id = signal(uniqueId('ngp-tabset')),\n value: _value = signal(undefined),\n orientation: _orientation = signal('horizontal'),\n activateOnFocus: _activateOnFocus = signal(false),\n onValueChange,\n }: NgpTabsetProps) => {\n const element = injectElementRef();\n const tabs = signal<NgpTab[]>([]);\n\n // Controlled properties\n const value = controlled(_value);\n const orientation = controlled(_orientation);\n const activateOnFocus = controlled(_activateOnFocus);\n\n // Host bindings\n attrBinding(element, 'id', id);\n dataBinding(element, 'data-orientation', orientation);\n\n // Computed selected tab\n const selectedTab = computed(() => {\n const tabList = tabs();\n const currentValue = value();\n\n // if there are no tabs then return the selected value\n if (tabList.length === 0) {\n return currentValue;\n }\n\n // if there is a value set and a tab with that value exists, return the value\n if (currentValue && tabList.some(tab => tab.value() === currentValue)) {\n return currentValue;\n }\n\n // otherwise return the first non-disabled tab's value\n return tabList.find(tab => !tab.disabled())?.value();\n });\n\n function select(newValue: string): void {\n // if the value is already selected, do nothing\n if (value() === newValue) {\n return;\n }\n\n value.set(newValue);\n onValueChange?.(newValue);\n }\n\n function setOrientation(newOrientation: NgpOrientation): void {\n orientation.set(newOrientation);\n }\n\n function setActivateOnFocus(newActivateOnFocus: boolean): void {\n activateOnFocus.set(newActivateOnFocus);\n }\n\n function registerTab(tab: NgpTab): void {\n tabs.update(currentTabs => [...currentTabs, tab]);\n }\n\n function unregisterTab(tabValue: string): void {\n tabs.update(currentTabs => currentTabs.filter(tab => tab.value() !== tabValue));\n }\n\n return {\n id,\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n activateOnFocus: deprecatedSetter(activateOnFocus, 'setActivateOnFocus'),\n value: deprecatedSetter(value, 'select'),\n selectedTab,\n select,\n setOrientation,\n registerTab,\n unregisterTab,\n setActivateOnFocus,\n } satisfies NgpTabsetState;\n },\n );\n\nexport interface NgpTab {\n /**\n * The unique value for the tab.\n */\n readonly value: Signal<string>;\n\n /**\n * Whether the tab is disabled.\n */\n readonly disabled: Signal<boolean>;\n}\n","import { HOST_TAG_NAME, Signal, computed, inject, signal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n createPrimitive,\n dataBinding,\n listener,\n onDestroy,\n onMount,\n} from 'ng-primitives/state';\nimport { injectTabsetState } from '../tabset/tabset-state';\n\n/**\n * The state for the NgpTabButton directive.\n */\nexport interface NgpTabButtonState {\n /**\n * The unique id for the tab button.\n */\n readonly id: Signal<string>;\n\n /**\n * Whether the tab is active.\n */\n readonly active: Signal<boolean>;\n\n /**\n * Select the tab this trigger controls.\n */\n select(): void;\n}\n\n/**\n * The props for the NgpTabButton state.\n */\nexport interface NgpTabButtonProps {\n /**\n * The value of the tab this trigger controls.\n */\n readonly value: Signal<string>;\n\n /**\n * Whether the tab is disabled.\n */\n readonly disabled?: Signal<boolean>;\n\n /**\n * The id of the tab button.\n */\n readonly id?: Signal<string | undefined>;\n}\n\nexport const [NgpTabButtonStateToken, ngpTabButton, injectTabButtonState, provideTabButtonState] =\n createPrimitive('NgpTabButton', ({ value, disabled = signal(false), id }: NgpTabButtonProps) => {\n const element = injectElementRef();\n const tagName = inject(HOST_TAG_NAME);\n const tabset = injectTabsetState();\n\n // Computed properties\n const buttonId = computed(() => id?.() ?? `${tabset().id()}-button-${value()}`);\n const ariaControls = computed(() => `${tabset().id()}-panel-${value()}`);\n const active = computed(() => tabset().selectedTab() === value());\n\n // Host bindings\n attrBinding(element, 'role', 'tab');\n attrBinding(element, 'id', buttonId);\n attrBinding(element, 'aria-controls', ariaControls);\n attrBinding(element, 'aria-selected', active);\n dataBinding(element, 'data-active', active);\n dataBinding(element, 'data-disabled', disabled);\n attrBinding(element, 'disabled', () => (tagName === 'button' && disabled() ? '' : null));\n dataBinding(element, 'data-orientation', () => tabset().orientation());\n\n // Event listeners\n listener(element, 'click', select);\n listener(element, 'focus', activateOnFocus);\n\n // Setup interactions\n ngpInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n disabled,\n });\n\n function select(): void {\n if (disabled?.() === false) {\n tabset().select(value());\n }\n }\n\n function activateOnFocus(): void {\n if (tabset().activateOnFocus()) {\n select();\n }\n }\n\n onMount(() => {\n // we can't use a required input for value as it is used in a computed property before the input is set\n if (value() === undefined) {\n throw new Error('ngpTabButton: value is required');\n }\n\n // Register with tabset now that inputs are available\n tabset().registerTab({ value, disabled });\n });\n\n // Unregister on destroy\n onDestroy(() => {\n tabset().unregisterTab(value());\n });\n\n return {\n id: buttonId,\n active,\n select,\n } satisfies NgpTabButtonState;\n });\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, Signal } from '@angular/core';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\nimport { ngpTabButton, provideTabButtonState } from './tab-button-state';\n\n/**\n * Apply the `ngpTabButton` directive to an element within a tab list to represent a tab button. This directive should be applied to a button element.\n */\n@Directive({\n selector: '[ngpTabButton]',\n exportAs: 'ngpTabButton',\n providers: [provideTabButtonState(), provideRovingFocusItemState()],\n})\nexport class NgpTabButton {\n /**\n * The value of the tab this trigger controls\n * @required\n */\n readonly value = input<string>(undefined, { alias: 'ngpTabButtonValue' });\n\n /**\n * Whether the tab is disabled\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpTabButtonDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Determine the id of the tab button\n * @internal\n */\n readonly id = input<string>();\n\n private readonly state = ngpTabButton({\n value: this.value as Signal<string>,\n disabled: this.disabled,\n id: this.id,\n });\n\n /**\n * Whether the tab is active\n */\n readonly active = this.state.active;\n\n constructor() {\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n\n /**\n * Select the tab this trigger controls\n */\n select(): void {\n this.state.select();\n }\n}\n","import { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding } from 'ng-primitives/state';\nimport { injectTabsetState } from '../tabset/tabset-state';\n\n/**\n * The state for the NgpTabList directive.\n */\nexport interface NgpTabListState {\n // No public methods exposed for tab list\n}\n\n/**\n * The props for the NgpTabList state.\n */\nexport interface NgpTabListProps {\n // No props for tab list\n}\n\nexport const [NgpTabListStateToken, ngpTabList, injectTabListState, provideTabListState] =\n createPrimitive('NgpTabList', ({}: NgpTabListProps) => {\n const element = injectElementRef();\n const tabsetState = injectTabsetState();\n\n // Host bindings\n attrBinding(element, 'role', 'tablist');\n attrBinding(element, 'aria-orientation', () => tabsetState().orientation());\n dataBinding(element, 'data-orientation', () => tabsetState().orientation());\n\n return {} satisfies NgpTabListState;\n });\n","import { Directive } from '@angular/core';\nimport { ngpTabList, provideTabListState } from './tab-list-state';\n\n/**\n * Apply the `ngpTabList` directive to an element that represents the list of tab buttons.\n */\n@Directive({\n selector: '[ngpTabList]',\n exportAs: 'ngpTabList',\n providers: [provideTabListState()],\n})\nexport class NgpTabList {\n constructor() {\n ngpTabList({});\n }\n}\n","import { Signal, computed } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, onMount } from 'ng-primitives/state';\nimport { injectTabsetState } from '../tabset/tabset-state';\n\n/**\n * The state for the NgpTabPanel directive.\n */\nexport interface NgpTabPanelState {\n /**\n * The unique id for the tab panel.\n */\n readonly panelId: Signal<string>;\n\n /**\n * The aria-labelledby attribute for the tab panel.\n */\n readonly labelledBy: Signal<string>;\n\n /**\n * Whether the tab panel is active.\n */\n readonly active: Signal<boolean>;\n}\n\n/**\n * The props for the NgpTabPanel state.\n */\nexport interface NgpTabPanelProps {\n /**\n * The value of the tab this panel represents.\n */\n readonly value: Signal<string | undefined>;\n\n /**\n * The id of the tab panel.\n */\n readonly id?: Signal<string | undefined>;\n}\n\nexport const [NgpTabPanelStateToken, ngpTabPanel, injectTabPanelState, provideTabPanelState] =\n createPrimitive('NgpTabPanel', ({ value, id }: NgpTabPanelProps) => {\n const element = injectElementRef();\n const tabset = injectTabsetState();\n\n // Computed properties\n const panelId = computed(() => id?.() ?? `${tabset().id()}-panel-${value?.()}`);\n const labelledBy = computed(() => `${tabset().id()}-button-${value?.()}`);\n const active = computed(() => tabset().selectedTab() === value?.());\n\n // Host bindings\n attrBinding(element, 'role', 'tabpanel');\n attrBinding(element, 'tabindex', () => (active() ? '0' : null));\n attrBinding(element, 'aria-hidden', () => (active() ? null : 'true'));\n attrBinding(element, 'id', panelId);\n attrBinding(element, 'aria-labelledby', labelledBy);\n dataBinding(element, 'data-active', active);\n dataBinding(element, 'data-orientation', () => tabset().orientation());\n\n // Ensure value is provided\n onMount(() => {\n if (value() === undefined) {\n throw new Error('ngpTabPanel: value is required');\n }\n });\n\n return {\n panelId,\n labelledBy,\n active,\n } satisfies NgpTabPanelState;\n });\n","import { Directive, input } from '@angular/core';\nimport { ngpTabPanel, provideTabPanelState } from './tab-panel-state';\n\n/**\n * Apply the `ngpTabPanel` directive to an element that represents the content of a tab.\n */\n@Directive({\n selector: '[ngpTabPanel]',\n exportAs: 'ngpTabPanel',\n providers: [provideTabPanelState()],\n})\nexport class NgpTabPanel {\n /**\n * The value of the tab\n * @required\n */\n readonly value = input<string>(undefined, { alias: 'ngpTabPanelValue' });\n\n /**\n * Determine the id of the tab panel\n * @internal\n */\n readonly id = input<string>();\n\n private readonly state = ngpTabPanel({\n value: this.value,\n id: this.id,\n });\n\n /**\n * Whether the tab is active\n */\n readonly active = this.state.active;\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output, signal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectTabsConfig } from '../config/tabs-config';\nimport { ngpTabset, provideTabsetState } from './tabset-state';\n\n/**\n * Apply the `ngpTabset` directive to an element to manage the tabs.\n */\n@Directive({\n selector: '[ngpTabset]',\n exportAs: 'ngpTabset',\n providers: [\n provideTabsetState({ inherit: false }),\n provideRovingFocusGroupState({ inherit: false }),\n ],\n})\nexport class NgpTabset {\n /**\n * Access the global tabset configuration\n */\n private readonly config = injectTabsConfig();\n\n /**\n * Define the id for the tabset\n */\n readonly id = input<string>(uniqueId('ngp-tabset'));\n\n /**\n * Define the active tab\n */\n readonly value = input<string>(undefined, {\n alias: 'ngpTabsetValue',\n });\n\n /**\n * Emit the value of the selected tab when it changes\n */\n readonly valueChange = output<string | undefined>({\n alias: 'ngpTabsetValueChange',\n });\n\n /**\n * The orientation of the tabset\n * @default 'horizontal'\n */\n readonly orientation = input<NgpOrientation>(this.config.orientation, {\n alias: 'ngpTabsetOrientation',\n });\n\n /**\n * Whether tabs should activate on focus\n */\n readonly activateOnFocus = input<boolean, BooleanInput>(this.config.activateOnFocus, {\n alias: 'ngpTabsetActivateOnFocus',\n transform: booleanAttribute,\n });\n\n private readonly state = ngpTabset({\n id: this.id,\n value: this.value,\n orientation: this.orientation,\n activateOnFocus: this.activateOnFocus,\n onValueChange: value => this.valueChange.emit(value),\n });\n\n /**\n * @internal\n * Get the id of the selected tab\n */\n readonly selectedTab = this.state.selectedTab;\n\n constructor() {\n ngpRovingFocusGroup({\n orientation: this.orientation,\n disabled: signal(false),\n wrap: signal(false),\n homeEnd: signal(true),\n });\n }\n\n /**\n * Select a tab by its value\n * @param value The value of the tab to select\n */\n select(value: string): void {\n this.state.select(value);\n }\n\n /**\n * Set orientation of the tabset.\n */\n setOrientation(orientation: NgpOrientation): void {\n this.state.setOrientation(orientation);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-textarea.mjs","sources":["../../../../packages/ng-primitives/textarea/src/textarea/textarea-state.ts","../../../../packages/ng-primitives/textarea/src/textarea/textarea.ts","../../../../packages/ng-primitives/textarea/src/ng-primitives-textarea.ts"],"sourcesContent":["import { Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, controlled, createPrimitive, dataBinding } from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\n\n/**\n * Public state surface for the Textarea primitive.\n */\nexport interface NgpTextareaState {\n /**\n * The id of the textarea.\n */\n readonly id: Signal<string>;\n /**\n * Whether the textarea is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n\n /**\n * Set the disabled state of the textarea.\n */\n setDisabled(disabled: boolean): void;\n}\n\n/**\n * Inputs for configuring the Textarea primitive.\n */\nexport interface NgpTextareaProps {\n /**\n * The id of the textarea.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the textarea is disabled.\n */\n readonly disabled?: Signal<boolean>;\n}\n\nexport const [NgpTextareaStateToken, ngpTextarea, injectTextareaState, provideTextareaState] =\n createPrimitive(\n 'NgpTextarea',\n ({\n id = signal(uniqueId('ngp-textarea')),\n disabled: _disabled = signal(false),\n }: NgpTextareaProps) => {\n const element = injectElementRef();\n const disabled = controlled(_disabled);\n\n // Setup interactions and form control bindings\n ngpInteractions({ hover: true, press: true, focus: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'id', id);\n attrBinding(element, 'disabled', () => (disabled() ? '' : null));\n dataBinding(element, 'data-disabled', disabled);\n\n function setDisabled(value: boolean) {\n disabled.set(value);\n }\n\n return { id, disabled, setDisabled };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpTextarea, provideTextareaState } from './textarea-state';\n\n@Directive({\n selector: '[ngpTextarea]',\n exportAs: 'ngpTextarea',\n providers: [provideTextareaState({ inherit: false })],\n})\nexport class NgpTextarea {\n /**\n * The id of the textarea. If not provided, a unique id will be generated.\n */\n readonly id = input<string>(uniqueId('ngp-textarea'));\n\n /**\n * Whether the element is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The state of the textarea.\n */\n protected readonly state = ngpTextarea({\n id: this.id,\n disabled: this.disabled,\n });\n\n /**\n * Set the disabled state of the textarea.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAwCO,MAAM,CAAC,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,GAC1F,eAAe,CACb,aAAa,EACb,CAAC,EACC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,EACrC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,GAClB,KAAI;AACrB,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;;AAGtC,IAAA,eAAe,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACpE,IAAA,cAAc,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;;AAGhC,IAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC;IAC9B,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAChE,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;IAE/C,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IACrB;AAEA,IAAA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"ng-primitives-textarea.mjs","sources":["../../../../packages/ng-primitives/textarea/src/textarea/textarea-state.ts","../../../../packages/ng-primitives/textarea/src/textarea/textarea.ts","../../../../packages/ng-primitives/textarea/src/ng-primitives-textarea.ts"],"sourcesContent":["import { Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpFormControl } from 'ng-primitives/form-field';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, controlled, createPrimitive, dataBinding } from 'ng-primitives/state';\nimport { uniqueId } from 'ng-primitives/utils';\n\n/**\n * Public state surface for the Textarea primitive.\n */\nexport interface NgpTextareaState {\n /**\n * The id of the textarea.\n */\n readonly id: Signal<string>;\n /**\n * Whether the textarea is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n\n /**\n * Set the disabled state of the textarea.\n */\n setDisabled(disabled: boolean): void;\n}\n\n/**\n * Inputs for configuring the Textarea primitive.\n */\nexport interface NgpTextareaProps {\n /**\n * The id of the textarea.\n */\n readonly id?: Signal<string>;\n /**\n * Whether the textarea is disabled.\n */\n readonly disabled?: Signal<boolean>;\n}\n\nexport const [NgpTextareaStateToken, ngpTextarea, injectTextareaState, provideTextareaState] =\n createPrimitive(\n 'NgpTextarea',\n ({\n id = signal(uniqueId('ngp-textarea')),\n disabled: _disabled = signal(false),\n }: NgpTextareaProps) => {\n const element = injectElementRef();\n const disabled = controlled(_disabled);\n\n // Setup interactions and form control bindings\n ngpInteractions({ hover: true, press: true, focus: true, disabled });\n ngpFormControl({ id, disabled });\n\n // Host bindings\n attrBinding(element, 'id', id);\n attrBinding(element, 'disabled', () => (disabled() ? '' : null));\n dataBinding(element, 'data-disabled', disabled);\n\n function setDisabled(value: boolean) {\n disabled.set(value);\n }\n\n return { id, disabled, setDisabled } satisfies NgpTextareaState;\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { ngpTextarea, provideTextareaState } from './textarea-state';\n\n@Directive({\n selector: '[ngpTextarea]',\n exportAs: 'ngpTextarea',\n providers: [provideTextareaState({ inherit: false })],\n})\nexport class NgpTextarea {\n /**\n * The id of the textarea. If not provided, a unique id will be generated.\n */\n readonly id = input<string>(uniqueId('ngp-textarea'));\n\n /**\n * Whether the element is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /**\n * The state of the textarea.\n */\n protected readonly state = ngpTextarea({\n id: this.id,\n disabled: this.disabled,\n });\n\n /**\n * Set the disabled state of the textarea.\n * @param value The disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-toggle-group.mjs","sources":["../../../../packages/ng-primitives/toggle-group/src/config/toggle-group-config.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group/toggle-group-state.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group-item/toggle-group-item-state.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group-item/toggle-group-item.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group/toggle-group.ts","../../../../packages/ng-primitives/toggle-group/src/ng-primitives-toggle-group.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\n\nexport interface NgpToggleGroupConfig {\n /**\n * The orientation of the toggle group.\n * @default 'horizontal'\n */\n orientation: NgpOrientation;\n\n /**\n * The type of the toggle group, whether only one item can be selected or multiple.\n * @default 'single'\n */\n type: 'single' | 'multiple';\n\n /**\n * Whether a toggle button can be deselected.\n * @default true\n */\n allowDeselection: boolean;\n}\n\nexport const defaultToggleGroupConfig: NgpToggleGroupConfig = {\n orientation: 'horizontal',\n type: 'single',\n allowDeselection: true,\n};\n\nexport const NgpToggleGroupConfigToken = new InjectionToken<NgpToggleGroupConfig>(\n 'NgpToggleGroupConfigToken',\n);\n\n/**\n * Provide the default ToggleGroup configuration\n * @param config The ToggleGroup configuration\n * @returns The provider\n */\nexport function provideToggleGroupConfig(config: Partial<NgpToggleGroupConfig>): Provider[] {\n return [\n {\n provide: NgpToggleGroupConfigToken,\n useValue: { ...defaultToggleGroupConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the ToggleGroup configuration\n * @returns The global ToggleGroup configuration\n */\nexport function injectToggleGroupConfig(): NgpToggleGroupConfig {\n return inject(NgpToggleGroupConfigToken, { optional: true }) ?? defaultToggleGroupConfig;\n}\n","import { signal, Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { NgpRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n} from 'ng-primitives/state';\nimport { Observable } from 'rxjs';\n\n/**\n * The state interface for the ToggleGroup pattern.\n */\nexport interface NgpToggleGroupState {\n /**\n * The current value(s) of the toggle group.\n */\n readonly value: WritableSignal<string[]>;\n\n /**\n * Emit when the value changes.\n */\n readonly valueChange: Observable<string[]>;\n\n /**\n * Whether the toggle group is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n\n /**\n * The orientation of the toggle group.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n /**\n * Select a value in the toggle group.\n */\n select(selection: string): void;\n\n /**\n * De-select a value in the toggle group.\n */\n deselect(selection: string): void;\n\n /**\n * Check if a value is selected in the toggle group.\n */\n isSelected(selection: string): boolean;\n\n /**\n * Toggle a value in the toggle group.\n */\n toggle(selection: string): void;\n\n /**\n * Set the value(s) of the toggle group.\n */\n setValue(newValue: string[]): void;\n\n /**\n * Set the disabled state of the toggle group.\n */\n setDisabled(isDisabled: boolean): void;\n\n /**\n * Set the orientation of the toggle group.\n */\n setOrientation(newOrientation: NgpOrientation): void;\n}\n\n/**\n * The props interface for the ToggleGroup pattern.\n */\nexport interface NgpToggleGroupProps {\n /**\n * The roving focus group state for the toggle-group.\n */\n readonly rovingFocusGroup: NgpRovingFocusGroupState;\n\n /**\n * The orientation of the toggle-group.\n */\n readonly orientation?: Signal<NgpOrientation>;\n /**\n * Whether deselection is allowed in the toggle-group.\n */\n readonly allowDeselection?: Signal<boolean>;\n /**\n * The type of the toggle-group (e.g., 'single' or 'multiple').\n */\n readonly type?: Signal<'single' | 'multiple'>;\n /**\n * The value(s) of the toggle-group.\n */\n readonly value?: Signal<string[] | undefined>;\n /**\n * Whether the toggle-group is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Emit when the value changes.\n */\n readonly onValueChange?: (value: string[]) => void;\n}\n\nexport const [\n NgpToggleGroupStateToken,\n ngpToggleGroup,\n injectToggleGroupState,\n provideToggleGroupState,\n] = createPrimitive(\n 'NgpToggleGroup',\n ({\n rovingFocusGroup,\n orientation: _orientation = signal('vertical'),\n allowDeselection = signal(true),\n type = signal<'single' | 'multiple'>('single'),\n value: _value = signal<string[]>([]),\n disabled: _disabled = signal(false),\n onValueChange,\n }: NgpToggleGroupProps): NgpToggleGroupState => {\n const element = injectElementRef();\n const disabled = controlled(_disabled);\n const value = controlled(_value);\n const orientation = controlled(_orientation);\n const valueChange = emitter<string[]>();\n\n // Host bindings\n attrBinding(element, 'role', 'group');\n dataBinding(element, 'data-orientation', orientation);\n dataBinding(element, 'data-type', type);\n dataBinding(element, 'data-disabled', disabled);\n\n /**\n * Select a value in the toggle group.\n */\n const select = (selection: string): void => {\n if (disabled()) {\n return;\n }\n\n let newValue: string[] = [];\n\n if (type() === 'single') {\n newValue = [selection];\n } else {\n newValue = [...(value() as string[]), selection];\n }\n\n setValue(newValue);\n };\n\n /**\n * De-select a value in the toggle group.\n */\n const deselect = (selection: string): void => {\n if (disabled() || !allowDeselection()) {\n return;\n }\n\n const newValue = value()?.filter(v => v !== selection) || [];\n setValue(newValue);\n };\n\n /**\n * Check if a value is selected in the toggle group.\n * @internal\n */\n const isSelected = (itemValue: string): boolean => {\n return value()?.includes(itemValue) ?? false;\n };\n\n /**\n * Toggle a value in the toggle group.\n * @internal\n */\n const toggle = (itemValue: string): void => {\n if (isSelected(itemValue)) {\n deselect(itemValue);\n } else {\n select(itemValue);\n }\n };\n\n const setValue = (newValue: string[]): void => {\n value.set(newValue);\n onValueChange?.(newValue);\n valueChange.emit(newValue);\n };\n\n const setDisabled = (isDisabled: boolean): void => {\n disabled.set(isDisabled);\n };\n\n function setOrientation(newOrientation: NgpOrientation): void {\n orientation.set(newOrientation);\n rovingFocusGroup.setOrientation(newOrientation);\n }\n\n return {\n select,\n deselect,\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n isSelected,\n toggle,\n value: deprecatedSetter(value, 'setValue') as WritableSignal<string[]>,\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n setValue,\n setDisabled,\n setOrientation,\n valueChange: valueChange.asObservable(),\n };\n },\n);\n","import { computed, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, listener } from 'ng-primitives/state';\nimport { injectToggleGroupState } from '../toggle-group/toggle-group-state';\n\n/**\n * The state interface for the ToggleGroupItem pattern.\n */\nexport interface NgpToggleGroupItemState {\n selected: Signal<boolean>;\n toggle(): void;\n}\n\n/**\n * The props interface for the ToggleGroupItem pattern.\n */\nexport interface NgpToggleGroupItemProps {\n /**\n * The value of the toggle group item.\n */\n value: Signal<string>;\n\n /**\n * Whether the toggle group item is disabled.\n */\n disabled?: Signal<boolean>;\n}\n\nexport const [\n NgpToggleGroupItemToken,\n ngpToggleGroupItem,\n injectToggleGroupItemState,\n provideToggleGroupItemState,\n] = createPrimitive(\n 'NgpToggleGroupItem',\n ({ value, disabled = signal(false) }: NgpToggleGroupItemProps): NgpToggleGroupItemState => {\n const element = injectElementRef();\n const toggleGroup = injectToggleGroupState();\n\n // Whether the item is selected.\n const selected = computed(() => toggleGroup()?.isSelected(value()!) ?? false);\n\n // Host bindings\n attrBinding(element, 'role', 'radio');\n attrBinding(element, 'aria-checked', selected);\n dataBinding(element, 'data-selected', selected);\n attrBinding(element, 'aria-disabled', disabled);\n dataBinding(element, 'data-disabled', disabled);\n\n // Host listener\n listener(element, 'click', () => toggle());\n\n // Toggle the item.\n const toggle = (): void => {\n if (disabled?.()) {\n return;\n }\n toggleGroup()?.toggle(value()!);\n };\n\n return { selected, toggle };\n },\n);\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, OnInit, Signal } from '@angular/core';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\nimport { ngpToggleGroupItem, provideToggleGroupItemState } from './toggle-group-item-state';\n\n@Directive({\n selector: '[ngpToggleGroupItem]',\n exportAs: 'ngpToggleGroupItem',\n providers: [provideToggleGroupItemState(), provideRovingFocusItemState()],\n})\nexport class NgpToggleGroupItem implements OnInit {\n /**\n * The value of the item.\n * @required\n */\n readonly value = input<string>(undefined, {\n alias: 'ngpToggleGroupItemValue',\n });\n\n /**\n * Whether the item is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleGroupItemDisabled',\n transform: booleanAttribute,\n });\n\n constructor() {\n ngpToggleGroupItem({\n value: this.value as Signal<string>,\n disabled: this.disabled,\n });\n // Initialize the roving focus item state\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n\n ngOnInit(): void {\n // we can't use a required input for value as it is used in a computed property before the input is set\n if (this.value() === undefined) {\n throw new Error('The value input is required for the toggle group item.');\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport { injectToggleGroupConfig } from '../config/toggle-group-config';\nimport { ngpToggleGroup, provideToggleGroupState } from './toggle-group-state';\n\n@Directive({\n selector: '[ngpToggleGroup]',\n exportAs: 'ngpToggleGroup',\n providers: [provideToggleGroupState(), provideRovingFocusGroupState({ inherit: true })],\n})\nexport class NgpToggleGroup {\n /**\n * Access the global toggle group configuration.\n */\n private readonly config = injectToggleGroupConfig();\n\n /**\n * The orientation of the toggle group.\n */\n readonly orientation = input<NgpOrientation>(this.config.orientation, {\n alias: 'ngpToggleGroupOrientation',\n });\n\n /**\n * Whether toggle buttons can be deselected. If set to `false`, clicking a selected toggle button will not deselect it.\n * @default true\n */\n readonly allowDeselection = input<boolean, BooleanInput>(this.config.allowDeselection, {\n alias: 'ngpToggleGroupAllowDeselection',\n transform: booleanAttribute,\n });\n\n /**\n * The type of the toggle group, whether only one item can be selected or multiple.\n */\n readonly type = input<'single' | 'multiple'>(this.config.type, { alias: 'ngpToggleGroupType' });\n\n /**\n * The selected value(s) of the toggle group.\n */\n readonly value = input<string[]>([], { alias: 'ngpToggleGroupValue' });\n\n /**\n * Emits when the value of the toggle group changes.\n */\n readonly valueChange = output<string[]>({ alias: 'ngpToggleGroupValueChange' });\n\n /**\n * Whether the toggle group is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleGroupDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the toggle group.\n */\n protected readonly state = ngpToggleGroup({\n rovingFocusGroup: ngpRovingFocusGroup({\n orientation: this.orientation,\n disabled: this.disabled,\n }),\n orientation: this.orientation,\n allowDeselection: this.allowDeselection,\n type: this.type,\n value: this.value,\n disabled: this.disabled,\n onValueChange: (value: string[]) => this.valueChange.emit(value),\n });\n\n /**\n * Toggle a value in the toggle group.\n */\n toggle(value: string): void {\n this.state.toggle(value);\n }\n\n /**\n * Set the value(s) of the toggle group.\n */\n setValue(newValue: string[]): void {\n this.state.setValue(newValue);\n }\n\n /**\n * Set the disabled state of the toggle group.\n */\n setDisabled(isDisabled: boolean): void {\n this.state.setDisabled(isDisabled);\n }\n\n /**\n * Set the orientation of the toggle group.\n */\n setOrientation(newOrientation: NgpOrientation): void {\n this.state.setOrientation(newOrientation);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-toggle-group.mjs","sources":["../../../../packages/ng-primitives/toggle-group/src/config/toggle-group-config.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group/toggle-group-state.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group-item/toggle-group-item-state.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group-item/toggle-group-item.ts","../../../../packages/ng-primitives/toggle-group/src/toggle-group/toggle-group.ts","../../../../packages/ng-primitives/toggle-group/src/ng-primitives-toggle-group.ts"],"sourcesContent":["import { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\n\nexport interface NgpToggleGroupConfig {\n /**\n * The orientation of the toggle group.\n * @default 'horizontal'\n */\n orientation: NgpOrientation;\n\n /**\n * The type of the toggle group, whether only one item can be selected or multiple.\n * @default 'single'\n */\n type: 'single' | 'multiple';\n\n /**\n * Whether a toggle button can be deselected.\n * @default true\n */\n allowDeselection: boolean;\n}\n\nexport const defaultToggleGroupConfig: NgpToggleGroupConfig = {\n orientation: 'horizontal',\n type: 'single',\n allowDeselection: true,\n};\n\nexport const NgpToggleGroupConfigToken = new InjectionToken<NgpToggleGroupConfig>(\n 'NgpToggleGroupConfigToken',\n);\n\n/**\n * Provide the default ToggleGroup configuration\n * @param config The ToggleGroup configuration\n * @returns The provider\n */\nexport function provideToggleGroupConfig(config: Partial<NgpToggleGroupConfig>): Provider[] {\n return [\n {\n provide: NgpToggleGroupConfigToken,\n useValue: { ...defaultToggleGroupConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the ToggleGroup configuration\n * @returns The global ToggleGroup configuration\n */\nexport function injectToggleGroupConfig(): NgpToggleGroupConfig {\n return inject(NgpToggleGroupConfigToken, { optional: true }) ?? defaultToggleGroupConfig;\n}\n","import { signal, Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { NgpRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n} from 'ng-primitives/state';\nimport { Observable } from 'rxjs';\n\n/**\n * The state interface for the ToggleGroup pattern.\n */\nexport interface NgpToggleGroupState {\n /**\n * The current value(s) of the toggle group.\n */\n readonly value: WritableSignal<string[]>;\n\n /**\n * Emit when the value changes.\n */\n readonly valueChange: Observable<string[]>;\n\n /**\n * Whether the toggle group is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n\n /**\n * The orientation of the toggle group.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n /**\n * Select a value in the toggle group.\n */\n select(selection: string): void;\n\n /**\n * De-select a value in the toggle group.\n */\n deselect(selection: string): void;\n\n /**\n * Check if a value is selected in the toggle group.\n */\n isSelected(selection: string): boolean;\n\n /**\n * Toggle a value in the toggle group.\n */\n toggle(selection: string): void;\n\n /**\n * Set the value(s) of the toggle group.\n */\n setValue(newValue: string[]): void;\n\n /**\n * Set the disabled state of the toggle group.\n */\n setDisabled(isDisabled: boolean): void;\n\n /**\n * Set the orientation of the toggle group.\n */\n setOrientation(newOrientation: NgpOrientation): void;\n}\n\n/**\n * The props interface for the ToggleGroup pattern.\n */\nexport interface NgpToggleGroupProps {\n /**\n * The roving focus group state for the toggle-group.\n */\n readonly rovingFocusGroup: NgpRovingFocusGroupState;\n\n /**\n * The orientation of the toggle-group.\n */\n readonly orientation?: Signal<NgpOrientation>;\n /**\n * Whether deselection is allowed in the toggle-group.\n */\n readonly allowDeselection?: Signal<boolean>;\n /**\n * The type of the toggle-group (e.g., 'single' or 'multiple').\n */\n readonly type?: Signal<'single' | 'multiple'>;\n /**\n * The value(s) of the toggle-group.\n */\n readonly value?: Signal<string[] | undefined>;\n /**\n * Whether the toggle-group is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Emit when the value changes.\n */\n readonly onValueChange?: (value: string[]) => void;\n}\n\nexport const [\n NgpToggleGroupStateToken,\n ngpToggleGroup,\n injectToggleGroupState,\n provideToggleGroupState,\n] = createPrimitive(\n 'NgpToggleGroup',\n ({\n rovingFocusGroup,\n orientation: _orientation = signal('vertical'),\n allowDeselection = signal(true),\n type = signal<'single' | 'multiple'>('single'),\n value: _value = signal<string[]>([]),\n disabled: _disabled = signal(false),\n onValueChange,\n }: NgpToggleGroupProps): NgpToggleGroupState => {\n const element = injectElementRef();\n const disabled = controlled(_disabled);\n const value = controlled(_value);\n const orientation = controlled(_orientation);\n const valueChange = emitter<string[]>();\n\n // Host bindings\n attrBinding(element, 'role', 'group');\n dataBinding(element, 'data-orientation', orientation);\n dataBinding(element, 'data-type', type);\n dataBinding(element, 'data-disabled', disabled);\n\n /**\n * Select a value in the toggle group.\n */\n const select = (selection: string): void => {\n if (disabled()) {\n return;\n }\n\n let newValue: string[] = [];\n\n if (type() === 'single') {\n newValue = [selection];\n } else {\n newValue = [...(value() as string[]), selection];\n }\n\n setValue(newValue);\n };\n\n /**\n * De-select a value in the toggle group.\n */\n const deselect = (selection: string): void => {\n if (disabled() || !allowDeselection()) {\n return;\n }\n\n const newValue = value()?.filter(v => v !== selection) || [];\n setValue(newValue);\n };\n\n /**\n * Check if a value is selected in the toggle group.\n * @internal\n */\n const isSelected = (itemValue: string): boolean => {\n return value()?.includes(itemValue) ?? false;\n };\n\n /**\n * Toggle a value in the toggle group.\n * @internal\n */\n const toggle = (itemValue: string): void => {\n if (isSelected(itemValue)) {\n deselect(itemValue);\n } else {\n select(itemValue);\n }\n };\n\n const setValue = (newValue: string[]): void => {\n value.set(newValue);\n onValueChange?.(newValue);\n valueChange.emit(newValue);\n };\n\n const setDisabled = (isDisabled: boolean): void => {\n disabled.set(isDisabled);\n };\n\n function setOrientation(newOrientation: NgpOrientation): void {\n orientation.set(newOrientation);\n rovingFocusGroup.setOrientation(newOrientation);\n }\n\n return {\n select,\n deselect,\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n isSelected,\n toggle,\n value: deprecatedSetter(value, 'setValue') as WritableSignal<string[]>,\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n setValue,\n setDisabled,\n setOrientation,\n valueChange: valueChange.asObservable(),\n } satisfies NgpToggleGroupState;\n },\n);\n","import { computed, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { attrBinding, createPrimitive, dataBinding, listener } from 'ng-primitives/state';\nimport { injectToggleGroupState } from '../toggle-group/toggle-group-state';\n\n/**\n * The state interface for the ToggleGroupItem pattern.\n */\nexport interface NgpToggleGroupItemState {\n selected: Signal<boolean>;\n toggle(): void;\n}\n\n/**\n * The props interface for the ToggleGroupItem pattern.\n */\nexport interface NgpToggleGroupItemProps {\n /**\n * The value of the toggle group item.\n */\n value: Signal<string>;\n\n /**\n * Whether the toggle group item is disabled.\n */\n disabled?: Signal<boolean>;\n}\n\nexport const [\n NgpToggleGroupItemToken,\n ngpToggleGroupItem,\n injectToggleGroupItemState,\n provideToggleGroupItemState,\n] = createPrimitive(\n 'NgpToggleGroupItem',\n ({ value, disabled = signal(false) }: NgpToggleGroupItemProps): NgpToggleGroupItemState => {\n const element = injectElementRef();\n const toggleGroup = injectToggleGroupState();\n\n // Whether the item is selected.\n const selected = computed(() => toggleGroup()?.isSelected(value()!) ?? false);\n\n // Host bindings\n attrBinding(element, 'role', 'radio');\n attrBinding(element, 'aria-checked', selected);\n dataBinding(element, 'data-selected', selected);\n attrBinding(element, 'aria-disabled', disabled);\n dataBinding(element, 'data-disabled', disabled);\n\n // Host listener\n listener(element, 'click', () => toggle());\n\n // Toggle the item.\n const toggle = (): void => {\n if (disabled?.()) {\n return;\n }\n toggleGroup()?.toggle(value()!);\n };\n\n return { selected, toggle } satisfies NgpToggleGroupItemState;\n },\n);\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, OnInit, Signal } from '@angular/core';\nimport { ngpRovingFocusItem, provideRovingFocusItemState } from 'ng-primitives/roving-focus';\nimport { ngpToggleGroupItem, provideToggleGroupItemState } from './toggle-group-item-state';\n\n@Directive({\n selector: '[ngpToggleGroupItem]',\n exportAs: 'ngpToggleGroupItem',\n providers: [provideToggleGroupItemState(), provideRovingFocusItemState()],\n})\nexport class NgpToggleGroupItem implements OnInit {\n /**\n * The value of the item.\n * @required\n */\n readonly value = input<string>(undefined, {\n alias: 'ngpToggleGroupItemValue',\n });\n\n /**\n * Whether the item is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleGroupItemDisabled',\n transform: booleanAttribute,\n });\n\n constructor() {\n ngpToggleGroupItem({\n value: this.value as Signal<string>,\n disabled: this.disabled,\n });\n // Initialize the roving focus item state\n ngpRovingFocusItem({ disabled: this.disabled });\n }\n\n ngOnInit(): void {\n // we can't use a required input for value as it is used in a computed property before the input is set\n if (this.value() === undefined) {\n throw new Error('The value input is required for the toggle group item.');\n }\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport { injectToggleGroupConfig } from '../config/toggle-group-config';\nimport { ngpToggleGroup, provideToggleGroupState } from './toggle-group-state';\n\n@Directive({\n selector: '[ngpToggleGroup]',\n exportAs: 'ngpToggleGroup',\n providers: [provideToggleGroupState(), provideRovingFocusGroupState({ inherit: true })],\n})\nexport class NgpToggleGroup {\n /**\n * Access the global toggle group configuration.\n */\n private readonly config = injectToggleGroupConfig();\n\n /**\n * The orientation of the toggle group.\n */\n readonly orientation = input<NgpOrientation>(this.config.orientation, {\n alias: 'ngpToggleGroupOrientation',\n });\n\n /**\n * Whether toggle buttons can be deselected. If set to `false`, clicking a selected toggle button will not deselect it.\n * @default true\n */\n readonly allowDeselection = input<boolean, BooleanInput>(this.config.allowDeselection, {\n alias: 'ngpToggleGroupAllowDeselection',\n transform: booleanAttribute,\n });\n\n /**\n * The type of the toggle group, whether only one item can be selected or multiple.\n */\n readonly type = input<'single' | 'multiple'>(this.config.type, { alias: 'ngpToggleGroupType' });\n\n /**\n * The selected value(s) of the toggle group.\n */\n readonly value = input<string[]>([], { alias: 'ngpToggleGroupValue' });\n\n /**\n * Emits when the value of the toggle group changes.\n */\n readonly valueChange = output<string[]>({ alias: 'ngpToggleGroupValueChange' });\n\n /**\n * Whether the toggle group is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleGroupDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state of the toggle group.\n */\n protected readonly state = ngpToggleGroup({\n rovingFocusGroup: ngpRovingFocusGroup({\n orientation: this.orientation,\n disabled: this.disabled,\n }),\n orientation: this.orientation,\n allowDeselection: this.allowDeselection,\n type: this.type,\n value: this.value,\n disabled: this.disabled,\n onValueChange: (value: string[]) => this.valueChange.emit(value),\n });\n\n /**\n * Toggle a value in the toggle group.\n */\n toggle(value: string): void {\n this.state.toggle(value);\n }\n\n /**\n * Set the value(s) of the toggle group.\n */\n setValue(newValue: string[]): void {\n this.state.setValue(newValue);\n }\n\n /**\n * Set the disabled state of the toggle group.\n */\n setDisabled(isDisabled: boolean): void {\n this.state.setDisabled(isDisabled);\n }\n\n /**\n * Set the orientation of the toggle group.\n */\n setOrientation(newOrientation: NgpOrientation): void {\n this.state.setOrientation(newOrientation);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-toggle.mjs","sources":["../../../../packages/ng-primitives/toggle/src/toggle/toggle-state.ts","../../../../packages/ng-primitives/toggle/src/toggle/toggle.ts","../../../../packages/ng-primitives/toggle/src/ng-primitives-toggle.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Toggle primitive.\n */\nexport interface NgpToggleState {\n /**\n * Whether the toggle is selected.\n */\n readonly selected: WritableSignal<boolean>;\n /**\n * Whether the toggle is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the selected state changes.\n */\n readonly selectedChange: Observable<boolean>;\n /**\n * Toggle the selected state.\n */\n toggle(event?: Event): void;\n /**\n * Set the selected state.\n */\n setSelected(value: boolean): void;\n /**\n * Set the disabled state.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Toggle primitive.\n */\nexport interface NgpToggleProps {\n /**\n * Whether the toggle is selected.\n */\n readonly selected?: Signal<boolean>;\n /**\n * Whether the toggle is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the selected state changes.\n */\n readonly onSelectedChange?: (selected: boolean) => void;\n}\n\nexport const [NgpToggleStateToken, ngpToggle, injectToggleState, provideToggleState] =\n createPrimitive(\n 'NgpToggle',\n ({\n selected: _selected = signal(false),\n disabled: _disabled = signal(false),\n onSelectedChange,\n }: NgpToggleProps): NgpToggleState => {\n const element = injectElementRef<HTMLElement>();\n const selected = controlled(_selected);\n const disabled = controlled(_disabled);\n const isButton = element.nativeElement.tagName.toLowerCase() === 'button';\n\n const selectedChange = emitter<boolean>();\n\n ngpInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n disabled,\n });\n\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Host bindings\n attrBinding(element, 'type', () => (isButton ? 'button' : null));\n attrBinding(element, 'aria-pressed', selected);\n dataBinding(element, 'data-selected', selected);\n dataBinding(element, 'data-disabled', disabled);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Spacebar') {\n if (!isButton && element.nativeElement.tagName !== 'a') {\n event.preventDefault();\n toggle(event);\n }\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n event?.preventDefault?.();\n setSelected(!selected());\n }\n\n function setSelected(value: boolean): void {\n selected.set(value);\n onSelectedChange?.(value);\n selectedChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n selected: deprecatedSetter(selected, 'setSelected'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n selectedChange: selectedChange.asObservable(),\n toggle,\n setSelected,\n setDisabled,\n };\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { ngpToggle, provideToggleState } from './toggle-state';\n\n/**\n * Apply the `ngpToggle` directive to an element to manage the toggle state. This must be applied to a `button` element.\n */\n@Directive({\n selector: '[ngpToggle]',\n exportAs: 'ngpToggle',\n providers: [provideToggleState({ inherit: false })],\n})\nexport class NgpToggle {\n /**\n * Whether the toggle is selected.\n * @default false\n */\n readonly selected = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleSelected',\n transform: booleanAttribute,\n });\n\n /**\n * Emits when the selected state changes.\n */\n readonly selectedChange = output<boolean>({\n alias: 'ngpToggleSelectedChange',\n });\n\n /**\n * Whether the toggle is disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state for the toggle primitive.\n * @internal\n */\n protected readonly state = ngpToggle({\n selected: this.selected,\n disabled: this.disabled,\n onSelectedChange: value => this.selectedChange.emit(value),\n });\n\n /**\n * Toggle the selected state.\n */\n toggle(): void {\n this.state.toggle();\n }\n\n /**\n * Set the selected state.\n */\n setSelected(value: boolean): void {\n this.state.setSelected(value);\n }\n\n /*\n * Set the disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AA8DO,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAClF,eAAe,CACb,WAAW,EACX,CAAC,EACC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,EACnC,gBAAgB,GACD,KAAoB;AACnC,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAe;AAC/C,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;AACtC,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC;AACtC,IAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ;AAEzE,IAAA,MAAM,cAAc,GAAG,OAAO,EAAW;AAEzC,IAAA,eAAe,CAAC;AACd,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,KAAK,EAAE,IAAI;AACX,QAAA,YAAY,EAAE,IAAI;QAClB,QAAQ;AACT,KAAA,CAAC;IAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;;IAGtD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,QAAQ,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC;AAChE,IAAA,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC;AAC9C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;AAC/C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;AAC/C,IAAA,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC;AAC/C,IAAA,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;;AAG7D,IAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC,KAAoB,KAAI;AACpD,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,UAAU,EAAE;YACjD,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,KAAK,GAAG,EAAE;gBACtD,KAAK,CAAC,cAAc,EAAE;gBACtB,MAAM,CAAC,KAAK,CAAC;YACf;QACF;AACF,IAAA,CAAC,CAAC;IAEF,SAAS,MAAM,CAAC,KAAa,EAAA;QAC3B,IAAI,QAAQ,EAAE,EAAE;YACd;QACF;AAEA,QAAA,KAAK,EAAE,cAAc,IAAI;AACzB,QAAA,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1B;IAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AACnB,QAAA,gBAAgB,GAAG,KAAK,CAAC;AACzB,QAAA,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5B;IAEA,SAAS,WAAW,CAAC,KAAc,EAAA;AACjC,QAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;IACrB;IAEA,OAAO;AACL,QAAA,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC;AACnD,QAAA,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC;AACnD,QAAA,cAAc,EAAE,cAAc,CAAC,YAAY,EAAE;QAC7C,MAAM;QACN,WAAW;QACX,WAAW;
|
|
1
|
+
{"version":3,"file":"ng-primitives-toggle.mjs","sources":["../../../../packages/ng-primitives/toggle/src/toggle/toggle-state.ts","../../../../packages/ng-primitives/toggle/src/toggle/toggle.ts","../../../../packages/ng-primitives/toggle/src/ng-primitives-toggle.ts"],"sourcesContent":["import { computed, Signal, signal, WritableSignal } from '@angular/core';\nimport { ngpInteractions } from 'ng-primitives/interactions';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n emitter,\n listener,\n} from 'ng-primitives/state';\nimport { Observable } from 'rxjs';\n\n/**\n * Public state surface for the Toggle primitive.\n */\nexport interface NgpToggleState {\n /**\n * Whether the toggle is selected.\n */\n readonly selected: WritableSignal<boolean>;\n /**\n * Whether the toggle is disabled.\n */\n readonly disabled: WritableSignal<boolean>;\n /**\n * Emits when the selected state changes.\n */\n readonly selectedChange: Observable<boolean>;\n /**\n * Toggle the selected state.\n */\n toggle(event?: Event): void;\n /**\n * Set the selected state.\n */\n setSelected(value: boolean): void;\n /**\n * Set the disabled state.\n */\n setDisabled(value: boolean): void;\n}\n\n/**\n * Inputs for configuring the Toggle primitive.\n */\nexport interface NgpToggleProps {\n /**\n * Whether the toggle is selected.\n */\n readonly selected?: Signal<boolean>;\n /**\n * Whether the toggle is disabled.\n */\n readonly disabled?: Signal<boolean>;\n /**\n * Callback fired when the selected state changes.\n */\n readonly onSelectedChange?: (selected: boolean) => void;\n}\n\nexport const [NgpToggleStateToken, ngpToggle, injectToggleState, provideToggleState] =\n createPrimitive(\n 'NgpToggle',\n ({\n selected: _selected = signal(false),\n disabled: _disabled = signal(false),\n onSelectedChange,\n }: NgpToggleProps): NgpToggleState => {\n const element = injectElementRef<HTMLElement>();\n const selected = controlled(_selected);\n const disabled = controlled(_disabled);\n const isButton = element.nativeElement.tagName.toLowerCase() === 'button';\n\n const selectedChange = emitter<boolean>();\n\n ngpInteractions({\n hover: true,\n press: true,\n focusVisible: true,\n disabled,\n });\n\n const tabindex = computed(() => (disabled() ? -1 : 0));\n\n // Host bindings\n attrBinding(element, 'type', () => (isButton ? 'button' : null));\n attrBinding(element, 'aria-pressed', selected);\n dataBinding(element, 'data-selected', selected);\n dataBinding(element, 'data-disabled', disabled);\n attrBinding(element, 'aria-disabled', disabled);\n attrBinding(element, 'tabindex', () => tabindex().toString());\n\n // Listeners\n listener(element, 'click', event => toggle(event));\n listener(element, 'keydown', (event: KeyboardEvent) => {\n if (event.key === ' ' || event.key === 'Spacebar') {\n if (!isButton && element.nativeElement.tagName !== 'a') {\n event.preventDefault();\n toggle(event);\n }\n }\n });\n\n function toggle(event?: Event): void {\n if (disabled()) {\n return;\n }\n\n event?.preventDefault?.();\n setSelected(!selected());\n }\n\n function setSelected(value: boolean): void {\n selected.set(value);\n onSelectedChange?.(value);\n selectedChange.emit(value);\n }\n\n function setDisabled(value: boolean): void {\n disabled.set(value);\n }\n\n return {\n selected: deprecatedSetter(selected, 'setSelected'),\n disabled: deprecatedSetter(disabled, 'setDisabled'),\n selectedChange: selectedChange.asObservable(),\n toggle,\n setSelected,\n setDisabled,\n } satisfies NgpToggleState;\n },\n );\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, Directive, input, output } from '@angular/core';\nimport { ngpToggle, provideToggleState } from './toggle-state';\n\n/**\n * Apply the `ngpToggle` directive to an element to manage the toggle state. This must be applied to a `button` element.\n */\n@Directive({\n selector: '[ngpToggle]',\n exportAs: 'ngpToggle',\n providers: [provideToggleState({ inherit: false })],\n})\nexport class NgpToggle {\n /**\n * Whether the toggle is selected.\n * @default false\n */\n readonly selected = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleSelected',\n transform: booleanAttribute,\n });\n\n /**\n * Emits when the selected state changes.\n */\n readonly selectedChange = output<boolean>({\n alias: 'ngpToggleSelectedChange',\n });\n\n /**\n * Whether the toggle is disabled.\n * @default false\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpToggleDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The state for the toggle primitive.\n * @internal\n */\n protected readonly state = ngpToggle({\n selected: this.selected,\n disabled: this.disabled,\n onSelectedChange: value => this.selectedChange.emit(value),\n });\n\n /**\n * Toggle the selected state.\n */\n toggle(): void {\n this.state.toggle();\n }\n\n /**\n * Set the selected state.\n */\n setSelected(value: boolean): void {\n this.state.setSelected(value);\n }\n\n /*\n * Set the disabled state.\n */\n setDisabled(value: boolean): void {\n this.state.setDisabled(value);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-toolbar.mjs","sources":["../../../../packages/ng-primitives/toolbar/src/toolbar/toolbar-state.ts","../../../../packages/ng-primitives/toolbar/src/toolbar/toolbar.ts","../../../../packages/ng-primitives/toolbar/src/ng-primitives-toolbar.ts"],"sourcesContent":["import { Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { NgpRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n} from 'ng-primitives/state';\n\nexport interface NgpToolbarState {\n /**\n * The orientation of the toolbar.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n /**\n * Set the orientation of the toolbar.\n * @param value The orientation value\n */\n setOrientation(value: NgpOrientation): void;\n}\n\nexport interface NgpToolbarProps {\n /**\n * The roving focus group state.\n */\n readonly rovingFocusGroup: NgpRovingFocusGroupState;\n /**\n * The orientation of the toolbar.\n */\n readonly orientation: Signal<NgpOrientation>;\n}\n\nexport const [NgpToolbarStateToken, ngpToolbar, injectToolbarState, provideToolbarState] =\n createPrimitive(\n 'NgpToolbar',\n ({ rovingFocusGroup, orientation: _orientation }: NgpToolbarProps) => {\n const element = injectElementRef();\n const orientation = controlled(_orientation);\n\n // Setup host attribute bindings\n attrBinding(element, 'role', 'toolbar');\n attrBinding(element, 'aria-orientation', orientation);\n dataBinding(element, 'data-orientation', orientation);\n\n function setOrientation(value: NgpOrientation) {\n orientation.set(value);\n rovingFocusGroup.setOrientation(value);\n }\n\n return {\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n setOrientation,\n };\n },\n );\n","import { Directive, input } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport { ngpToolbar, provideToolbarState } from './toolbar-state';\n\n@Directive({\n selector: '[ngpToolbar]',\n exportAs: 'ngpToolbar',\n providers: [provideToolbarState(), provideRovingFocusGroupState()],\n})\nexport class NgpToolbar {\n /**\n * The orientation of the toolbar.\n */\n readonly orientation = input<NgpOrientation>('horizontal', {\n alias: 'ngpToolbarOrientation',\n });\n\n /**\n * The toolbar state.\n */\n protected readonly state = ngpToolbar({\n rovingFocusGroup: ngpRovingFocusGroup({ orientation: this.orientation }),\n orientation: this.orientation,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAmCO,MAAM,CAAC,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,GACtF,eAAe,CACb,YAAY,EACZ,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAmB,KAAI;AACnE,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;;AAG5C,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AACvC,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC;AACrD,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC;IAErD,SAAS,cAAc,CAAC,KAAqB,EAAA;AAC3C,QAAA,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;IACxC;IAEA,OAAO;AACL,QAAA,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC5D,cAAc;
|
|
1
|
+
{"version":3,"file":"ng-primitives-toolbar.mjs","sources":["../../../../packages/ng-primitives/toolbar/src/toolbar/toolbar-state.ts","../../../../packages/ng-primitives/toolbar/src/toolbar/toolbar.ts","../../../../packages/ng-primitives/toolbar/src/ng-primitives-toolbar.ts"],"sourcesContent":["import { Signal, WritableSignal } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { NgpRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport {\n attrBinding,\n controlled,\n createPrimitive,\n dataBinding,\n deprecatedSetter,\n} from 'ng-primitives/state';\n\nexport interface NgpToolbarState {\n /**\n * The orientation of the toolbar.\n */\n readonly orientation: WritableSignal<NgpOrientation>;\n /**\n * Set the orientation of the toolbar.\n * @param value The orientation value\n */\n setOrientation(value: NgpOrientation): void;\n}\n\nexport interface NgpToolbarProps {\n /**\n * The roving focus group state.\n */\n readonly rovingFocusGroup: NgpRovingFocusGroupState;\n /**\n * The orientation of the toolbar.\n */\n readonly orientation: Signal<NgpOrientation>;\n}\n\nexport const [NgpToolbarStateToken, ngpToolbar, injectToolbarState, provideToolbarState] =\n createPrimitive(\n 'NgpToolbar',\n ({ rovingFocusGroup, orientation: _orientation }: NgpToolbarProps) => {\n const element = injectElementRef();\n const orientation = controlled(_orientation);\n\n // Setup host attribute bindings\n attrBinding(element, 'role', 'toolbar');\n attrBinding(element, 'aria-orientation', orientation);\n dataBinding(element, 'data-orientation', orientation);\n\n function setOrientation(value: NgpOrientation) {\n orientation.set(value);\n rovingFocusGroup.setOrientation(value);\n }\n\n return {\n orientation: deprecatedSetter(orientation, 'setOrientation'),\n setOrientation,\n } satisfies NgpToolbarState;\n },\n );\n","import { Directive, input } from '@angular/core';\nimport { NgpOrientation } from 'ng-primitives/common';\nimport { ngpRovingFocusGroup, provideRovingFocusGroupState } from 'ng-primitives/roving-focus';\nimport { ngpToolbar, provideToolbarState } from './toolbar-state';\n\n@Directive({\n selector: '[ngpToolbar]',\n exportAs: 'ngpToolbar',\n providers: [provideToolbarState(), provideRovingFocusGroupState()],\n})\nexport class NgpToolbar {\n /**\n * The orientation of the toolbar.\n */\n readonly orientation = input<NgpOrientation>('horizontal', {\n alias: 'ngpToolbarOrientation',\n });\n\n /**\n * The toolbar state.\n */\n protected readonly state = ngpToolbar({\n rovingFocusGroup: ngpRovingFocusGroup({ orientation: this.orientation }),\n orientation: this.orientation,\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAmCO,MAAM,CAAC,oBAAoB,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,CAAC,GACtF,eAAe,CACb,YAAY,EACZ,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAmB,KAAI;AACnE,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;;AAG5C,IAAA,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC;AACvC,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC;AACrD,IAAA,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC;IAErD,SAAS,cAAc,CAAC,KAAqB,EAAA;AAC3C,QAAA,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AACtB,QAAA,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC;IACxC;IAEA,OAAO;AACL,QAAA,WAAW,EAAE,gBAAgB,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC5D,cAAc;KACW;AAC7B,CAAC;;MC9CQ,UAAU,CAAA;AALvB,IAAA,WAAA,GAAA;AAME;;AAEG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAiB,YAAY,+CACvD,KAAK,EAAE,uBAAuB,EAAA,CAAA,GAAA,CAD2B;AACzD,gBAAA,KAAK,EAAE,uBAAuB;AAC/B,aAAA,CAAA,CAAA,CAAC;AAEF;;AAEG;QACgB,IAAA,CAAA,KAAK,GAAG,UAAU,CAAC;YACpC,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACxE,WAAW,EAAE,IAAI,CAAC,WAAW;AAC9B,SAAA,CAAC;AACH,IAAA;8GAfY,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,2NAFV,CAAC,mBAAmB,EAAE,EAAE,4BAA4B,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEvD,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,SAAS,EAAE,CAAC,mBAAmB,EAAE,EAAE,4BAA4B,EAAE,CAAC;AACnE,iBAAA;;;ACTD;;AAEG;;;;"}
|
package/file-upload/index.d.ts
CHANGED
|
@@ -47,51 +47,55 @@ declare class NgpFileDropzone {
|
|
|
47
47
|
|
|
48
48
|
declare const injectFileDropzoneState: {
|
|
49
49
|
(): Signal<{
|
|
50
|
-
disabled:
|
|
51
|
-
fileTypes: Signal<string[] | undefined
|
|
52
|
-
multiple: Signal<boolean
|
|
53
|
-
directory: Signal<boolean
|
|
50
|
+
disabled: _angular_core.WritableSignal<boolean>;
|
|
51
|
+
fileTypes: Signal<string[] | undefined>;
|
|
52
|
+
multiple: Signal<boolean>;
|
|
53
|
+
directory: Signal<boolean>;
|
|
54
54
|
isDragOver: _angular_core.WritableSignal<boolean>;
|
|
55
55
|
selected: Observable<FileList | null>;
|
|
56
56
|
rejected: Observable<void>;
|
|
57
57
|
dragOver: Observable<boolean>;
|
|
58
|
+
setDisabled: (value: boolean) => void;
|
|
58
59
|
}>;
|
|
59
60
|
(options: {
|
|
60
61
|
hoisted: true;
|
|
61
62
|
optional?: boolean;
|
|
62
63
|
skipSelf?: boolean;
|
|
63
64
|
}): Signal<{
|
|
64
|
-
disabled:
|
|
65
|
-
fileTypes: Signal<string[] | undefined
|
|
66
|
-
multiple: Signal<boolean
|
|
67
|
-
directory: Signal<boolean
|
|
65
|
+
disabled: _angular_core.WritableSignal<boolean>;
|
|
66
|
+
fileTypes: Signal<string[] | undefined>;
|
|
67
|
+
multiple: Signal<boolean>;
|
|
68
|
+
directory: Signal<boolean>;
|
|
68
69
|
isDragOver: _angular_core.WritableSignal<boolean>;
|
|
69
70
|
selected: Observable<FileList | null>;
|
|
70
71
|
rejected: Observable<void>;
|
|
71
72
|
dragOver: Observable<boolean>;
|
|
73
|
+
setDisabled: (value: boolean) => void;
|
|
72
74
|
} | null>;
|
|
73
75
|
(options?: {
|
|
74
76
|
hoisted?: boolean;
|
|
75
77
|
optional?: boolean;
|
|
76
78
|
skipSelf?: boolean;
|
|
77
79
|
}): Signal<{
|
|
78
|
-
disabled:
|
|
79
|
-
fileTypes: Signal<string[] | undefined
|
|
80
|
-
multiple: Signal<boolean
|
|
81
|
-
directory: Signal<boolean
|
|
80
|
+
disabled: _angular_core.WritableSignal<boolean>;
|
|
81
|
+
fileTypes: Signal<string[] | undefined>;
|
|
82
|
+
multiple: Signal<boolean>;
|
|
83
|
+
directory: Signal<boolean>;
|
|
82
84
|
isDragOver: _angular_core.WritableSignal<boolean>;
|
|
83
85
|
selected: Observable<FileList | null>;
|
|
84
86
|
rejected: Observable<void>;
|
|
85
87
|
dragOver: Observable<boolean>;
|
|
88
|
+
setDisabled: (value: boolean) => void;
|
|
86
89
|
}> | Signal<{
|
|
87
|
-
disabled:
|
|
88
|
-
fileTypes: Signal<string[] | undefined
|
|
89
|
-
multiple: Signal<boolean
|
|
90
|
-
directory: Signal<boolean
|
|
90
|
+
disabled: _angular_core.WritableSignal<boolean>;
|
|
91
|
+
fileTypes: Signal<string[] | undefined>;
|
|
92
|
+
multiple: Signal<boolean>;
|
|
93
|
+
directory: Signal<boolean>;
|
|
91
94
|
isDragOver: _angular_core.WritableSignal<boolean>;
|
|
92
95
|
selected: Observable<FileList | null>;
|
|
93
96
|
rejected: Observable<void>;
|
|
94
97
|
dragOver: Observable<boolean>;
|
|
98
|
+
setDisabled: (value: boolean) => void;
|
|
95
99
|
} | null>;
|
|
96
100
|
};
|
|
97
101
|
declare const provideFileDropzoneState: (opts?: {
|