@bootkit/ng0 0.0.0-alpha.5 → 0.0.0-alpha.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +2 -2
  2. package/common/index.d.ts +288 -28
  3. package/components/accordion/index.d.ts +20 -10
  4. package/components/button/index.d.ts +7 -10
  5. package/components/card/index.d.ts +2 -6
  6. package/components/code/index.d.ts +2 -4
  7. package/components/collapse/index.d.ts +4 -41
  8. package/components/confirmation/index.d.ts +14 -16
  9. package/components/dropdown/index.d.ts +156 -0
  10. package/components/form-field/index.d.ts +24 -41
  11. package/components/list/index.d.ts +260 -0
  12. package/components/modal/index.d.ts +33 -11
  13. package/components/nav/index.d.ts +34 -32
  14. package/components/offcanvas/index.d.ts +13 -5
  15. package/components/pagination/index.d.ts +39 -13
  16. package/components/popover/index.d.ts +6 -6
  17. package/components/select/index.d.ts +160 -0
  18. package/components/sidenav/index.d.ts +122 -0
  19. package/components/stepper/index.d.ts +3 -4
  20. package/components/table/index.d.ts +205 -72
  21. package/components/toast/index.d.ts +14 -8
  22. package/components/tooltip/index.d.ts +36 -22
  23. package/components/vertical-menu/index.d.ts +79 -42
  24. package/data/index.d.ts +98 -38
  25. package/date/index.d.ts +34 -0
  26. package/fesm2022/bootkit-ng0-common.mjs +289 -12
  27. package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
  28. package/fesm2022/bootkit-ng0-components-accordion.mjs +38 -33
  29. package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
  30. package/fesm2022/bootkit-ng0-components-button.mjs +21 -29
  31. package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
  32. package/fesm2022/bootkit-ng0-components-card.mjs +18 -26
  33. package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
  34. package/fesm2022/bootkit-ng0-components-code.mjs +16 -20
  35. package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
  36. package/fesm2022/bootkit-ng0-components-collapse.mjs +20 -132
  37. package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
  38. package/fesm2022/bootkit-ng0-components-confirmation.mjs +24 -34
  39. package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
  40. package/fesm2022/bootkit-ng0-components-dropdown.mjs +308 -0
  41. package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -0
  42. package/fesm2022/bootkit-ng0-components-form-field.mjs +62 -84
  43. package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
  44. package/fesm2022/bootkit-ng0-components-list.mjs +564 -0
  45. package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -0
  46. package/fesm2022/bootkit-ng0-components-modal.mjs +48 -29
  47. package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
  48. package/fesm2022/bootkit-ng0-components-nav.mjs +60 -68
  49. package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
  50. package/fesm2022/bootkit-ng0-components-offcanvas.mjs +20 -13
  51. package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
  52. package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -1
  53. package/fesm2022/bootkit-ng0-components-pagination.mjs +61 -26
  54. package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
  55. package/fesm2022/bootkit-ng0-components-popover.mjs +12 -12
  56. package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
  57. package/fesm2022/bootkit-ng0-components-select.mjs +448 -0
  58. package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -0
  59. package/fesm2022/bootkit-ng0-components-sidenav.mjs +296 -0
  60. package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -0
  61. package/fesm2022/bootkit-ng0-components-stepper.mjs +15 -42
  62. package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
  63. package/fesm2022/bootkit-ng0-components-table.mjs +323 -165
  64. package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
  65. package/fesm2022/bootkit-ng0-components-toast.mjs +62 -84
  66. package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
  67. package/fesm2022/bootkit-ng0-components-tooltip.mjs +87 -74
  68. package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
  69. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +171 -114
  70. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
  71. package/fesm2022/bootkit-ng0-data.mjs +152 -39
  72. package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
  73. package/fesm2022/bootkit-ng0-date.mjs +50 -0
  74. package/fesm2022/bootkit-ng0-date.mjs.map +1 -0
  75. package/fesm2022/bootkit-ng0-file.mjs.map +1 -1
  76. package/fesm2022/bootkit-ng0-form.mjs +575 -264
  77. package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
  78. package/fesm2022/bootkit-ng0-http.mjs +61 -34
  79. package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
  80. package/fesm2022/bootkit-ng0-layouts-layout1.mjs +317 -0
  81. package/fesm2022/bootkit-ng0-layouts-layout1.mjs.map +1 -0
  82. package/fesm2022/bootkit-ng0-localization-locales.mjs +103 -0
  83. package/fesm2022/bootkit-ng0-localization-locales.mjs.map +1 -0
  84. package/fesm2022/bootkit-ng0-localization.mjs +431 -105
  85. package/fesm2022/bootkit-ng0-localization.mjs.map +1 -1
  86. package/fesm2022/bootkit-ng0-platform-browser.mjs +179 -0
  87. package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -0
  88. package/fesm2022/bootkit-ng0-routing.mjs +80 -0
  89. package/fesm2022/bootkit-ng0-routing.mjs.map +1 -0
  90. package/fesm2022/bootkit-ng0-script.mjs +3 -3
  91. package/fesm2022/bootkit-ng0-script.mjs.map +1 -1
  92. package/fesm2022/bootkit-ng0-security.mjs +175 -40
  93. package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
  94. package/fesm2022/bootkit-ng0-utils.mjs +122 -0
  95. package/fesm2022/bootkit-ng0-utils.mjs.map +1 -0
  96. package/fesm2022/bootkit-ng0.mjs +2 -2
  97. package/fesm2022/bootkit-ng0.mjs.map +1 -1
  98. package/form/index.d.ts +153 -56
  99. package/http/index.d.ts +45 -14
  100. package/index.d.ts +2 -2
  101. package/layouts/layout1/index.d.ts +201 -0
  102. package/localization/index.d.ts +231 -42
  103. package/localization/locales/index.d.ts +7 -0
  104. package/package.json +57 -17
  105. package/platform/browser/index.d.ts +88 -0
  106. package/routing/index.d.ts +124 -0
  107. package/security/index.d.ts +76 -11
  108. package/utils/index.d.ts +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootkit-ng0-components-list.mjs","sources":["../../../projects/ng0/components/list/list-item.ts","../../../projects/ng0/components/list/list.component.ts","../../../projects/ng0/components/list/list.component.html","../../../projects/ng0/components/list/list.module.ts","../../../projects/ng0/components/list/public-api.ts","../../../projects/ng0/components/list/bootkit-ng0-components-list.ts"],"sourcesContent":["import { inject, input, ElementRef, Directive } from '@angular/core';\nimport { ListComponent } from './list.component';\n\n/**\n * ListItem represents an individual item within a ListComponent.\n */\n@Directive({\n selector: 'ng0-list-item',\n exportAs: 'ng0ListItem',\n standalone: true,\n host: {\n '[attr.id]': 'id()',\n '[attr.tabIndex]': '_getTabIndex()'\n }\n})\nexport class ListItem {\n /**\n * The value associated with the item. This can be of any type.\n */\n public readonly value = input<any>();\n\n /**\n * The id of the item.\n */\n public readonly id = input<any>();\n\n /**\n * Reference to the parent list component\n */\n public readonly list = inject(ListComponent);\n\n /**\n * Reference to the host element\n */\n public readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Indicates whether the item is active.\n * @returns True if the item is active, false otherwise.\n */\n public isActive() {\n return this.list.isActive(this);\n }\n\n /**\n * Indicates whether the item is selected.\n * @returns True if the item is selected, false otherwise.\n */\n public isSelected() {\n return this.list.isSelected(this.value());\n }\n\n /**\n * Selects the item.\n * @returns \n */\n public select() {\n return this.list.select(this.value());\n }\n\n /**\n * Deselects the item.\n * @returns \n */\n public deselect() {\n this.list.deselect(this);\n }\n\n /**\n * Toggles the selection state of the item.\n * @returns void\n */\n public toggle() {\n this.list.toggle(this.value());\n }\n\n // /**\n // * Indicates whether the item is disabled. Default is false.\n // */\n // public readonly disabled = input(false, { transform: booleanAttribute });\n\n /**\n * Scrolls the item into view within its parent container.\n * @param position The vertical alignment of the item after scrolling.\n * Can be 'start', 'center', 'end', or 'nearest'.\n * Default is 'nearest'.\n * @param behavior The scrolling behavior.\n */\n public scrollIntoView(position?: ScrollLogicalPosition, behavior?: ScrollBehavior) {\n this.elementRef.nativeElement.scrollIntoView({ block: position, behavior: behavior });\n }\n\n /**\n * Sets focus on the item.\n */\n public focus() {\n this.elementRef.nativeElement.focus();\n }\n\n protected _getTabIndex() {\n let focus = this.list.focusMode();\n // if (this.list.isDisabled()) {\n // return undefined;\n // }\n\n if (focus == 'none' || focus == 'activeDescendant') {\n return undefined;\n } else {\n // focus: roving\n return this.isActive() ? 0 : -1\n }\n }\n}\n","import { Component, ElementRef, input, signal, HostListener, inject, forwardRef, TemplateRef, ContentChild, ChangeDetectionStrategy, booleanAttribute, ChangeDetectorRef, effect, EventEmitter, Output, computed, ViewChildren, QueryList, ViewEncapsulation, ViewContainerRef, HostBinding, OnInit, AfterViewInit, untracked, model, Renderer2, EnvironmentInjector, runInInjectionContext } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { dataSourceAttribute, DataRequest, DataSource, DataSourceLike } from '@bootkit/ng0/data';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { objectFormatterAttribute, defaultFormatter, LocalizationService } from '@bootkit/ng0/localization';\nimport { ListItem } from \"./list-item\";\nimport {\n CssClassAttribute, defaultEqualityComparer, equalityComparerAttribute, valueWriterAttribute,\n defaultValueWriter, filterPredicateAttribute, noopFilter, IdGeneratorAttribute, TrackByAttribute, trackByIndex, IfDirective\n} from '@bootkit/ng0/common';\n\n/** \n * ListComponent is a versatile component that displays a list of items with support for single or multiple selection,\n * custom item templates, filtering, and keyboard navigation.\n */\n@Component({\n selector: 'ng0-list, ng0-select-list',\n exportAs: 'ng0List',\n templateUrl: './list.component.html',\n styleUrl: './list.component.scss',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n CommonModule,\n IfDirective,\n ListItem\n ],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ListComponent),\n multi: true\n }],\n host: {\n '[class.ng0-list-loading]': 'source().isLoading()',\n '[attr.aria-activedescendant]': '_hostAriaActiveDescendant()',\n '[attr.disabled]': '_isDisabled() ? \"\" : undefined',\n '[attr.aria-disabled]': '_isDisabled() ? \"\" : undefined',\n '[attr.tabindex]': '_hostTabIndex()',\n }\n})\nexport class ListComponent implements ControlValueAccessor {\n private _localizationService = inject(LocalizationService);\n private _changeDetector = inject(ChangeDetectorRef);\n private _injector = inject(EnvironmentInjector);\n private _changeCallback?: (value: any) => void;\n private _touchCallback?: () => void;\n private readonly _selectedItems = new Set<any>();\n\n protected readonly _sourceItems = signal<any[]>([]);\n @ContentChild(TemplateRef) protected _itemTemplate?: TemplateRef<any>;\n protected readonly _activeItem = signal<ListItem | undefined>(undefined);\n protected readonly _isDisabled = signal<boolean>(false);\n private readonly _value = signal<any>(undefined);\n private _renderer = inject(Renderer2);\n\n /**\n * A list of all visible list items.\n */\n @ViewChildren(ListItem) public readonly listItems?: QueryList<ListItem>;\n\n /**\n * Reference to the host element\n */\n public elementRef = inject<ElementRef<HTMLElement>>(ElementRef<HTMLElement>);\n\n /**\n * The data source for the select component.\n * This can be an array of data, a function that returns an observable of data,\n * or an instance of DataSource.\n */\n public readonly source = input.required<DataSource<any>, DataSourceLike<any>>({\n transform: v => dataSourceAttribute(v)\n });\n\n /** \n * Indicates whether multi selection is enabled or not.\n */\n public readonly multiple = input(false, {\n transform: booleanAttribute\n });\n\n /**\n * Indicates whether to show selection indicator (checkbox/radio) next to each item.\n * Default is false.\n */\n public readonly showSelectionIndicator = input(false, {\n transform: booleanAttribute\n });\n\n /**\n * A comparer to compare items for selection.\n * Default uses strict equality (===).\n */\n public readonly compareBy = input(defaultEqualityComparer, {\n transform: equalityComparerAttribute\n });\n\n /**\n * A fromatter to convert each item to a string for display.\n * Default converts the item to a string using its toString method.\n */\n public readonly formatBy = input(defaultFormatter, {\n transform: objectFormatterAttribute(this._injector)\n });\n\n /**\n * Custom value writer to extract the value of any object while writing values.\n */\n public readonly writeBy = input(defaultValueWriter, {\n transform: valueWriterAttribute\n });\n\n /**\n * Custom filter function to filter items.\n * Default is a noop filter that does not filter any items.\n */\n public readonly filterBy = input(noopFilter, {\n transform: filterPredicateAttribute\n });\n\n /**\n * A function that uniquely identifies each item in the list.\n * If set to a function, it will be called with the index and item as arguments to generate the unique id.\n * If set to a string, it will be used as the property name to extract the unique id from each item.\n * Two predifined trackBy options are available:\n * - '@index': uses the index of the item as its unique id.\n * - '@item': uses the item itself as its unique id.\n * @example\n * trackBy=\"@index\"\n * trackBy=\"@item\"\n * trackBy=\"objectFieldName\"\n * [trackBy]=\"customTrackByFunction\"\n * @default trackByIndex\n */\n public readonly trackBy = input(trackByIndex, {\n transform: TrackByAttribute\n });\n\n /**\n * CSS class or classes to apply to the list container.\n * Default is undefined.\n */\n public readonly itemClass = input(undefined, {\n transform: CssClassAttribute\n });\n\n /**\n * Defines the focus behavior of the list component.\n * - 'none': No keyboard interaction is possible. The list cannot be focused.\n * - 'roving': Roving tabindex is enabled. The list can be focused and the active item is tabbable.\n * - 'activeDescendant': The list can be focused, but no item is tabbable. The active item is indicated using aria-activedescendant.\n * @default 'activeDescendant'.\n */\n public readonly focusMode = input<'none' | 'roving' | 'activeDescendant'>('activeDescendant');\n\n /**\n * A function that generates unique ids for each item in the list.\n * If set to a function, it will be called with the item as an argument to generate the id.\n * If set to undefined, no ids will be generated for the items.\n * @default undefined\n */\n public readonly idGenerator = input(undefined, {\n transform: IdGeneratorAttribute\n });\n\n /**\n * Event emitted when the selection state of an item changes by user interaction.\n */\n @Output() public readonly itemSelect = new EventEmitter<ListItemSelectEvent>();\n\n /**\n * The template to use for each item in the list.\n */\n public readonly itemTemplate = input<TemplateRef<any> | undefined>(undefined);\n\n constructor() {\n effect(() => {\n this.source().load(new DataRequest()).subscribe(res => {\n untracked(() => {\n this._activeItem.set(undefined);\n this._sourceItems.set(res.data);\n this._updateSelectedItems();\n this._activateFirstSelectedItem();\n });\n });\n });\n }\n\n /**\n * Indicates whether an item is active.\n * @param item \n * @returns \n */\n public isActive(item: ListItem): boolean {\n return item === this._activeItem();\n }\n\n /**\n * Indicates whether the given value is selected.\n * @param item \n * @returns \n */\n public isSelected(value: any): boolean {\n return this._selectedItems.has(value);\n }\n\n /**\n * Selects the given value.\n * @param item \n */\n public select(value: any): void {\n if (this.multiple()) {\n if (!this._selectedItems.has(value)) {\n this._selectedItems.add(value);\n this._updateValue();\n this._changeCallback?.(this._value())\n }\n } else {\n this._selectedItems.clear();\n this._selectedItems.add(value);\n this._updateValue();\n this._changeCallback?.(this._value())\n }\n }\n\n /**\n * Deselects the given value.\n * @param item \n */\n public deselect(value: any): void {\n this._selectedItems.delete(value);\n this._updateValue();\n this._changeCallback?.(this._value());\n }\n\n /**\n * Toggles the selection state of the given value.\n * @param item\n */\n public toggle(value: any): void {\n if (this.isSelected(value)) {\n this.deselect(value);\n } else {\n this.select(value);\n }\n }\n\n /**\n * Deselects all items in the list.\n */\n public deselectAll(): void {\n this._selectedItems.clear();\n this._updateValue();\n this._changeCallback?.(this._value());\n }\n\n /**\n * Selects all items in the list. Only applicable in multiple selection mode.\n */\n public selectAll(): void {\n if (this.multiple()) {\n this._selectedItems.clear();\n this._sourceItems().forEach(i => this._selectedItems.add(i));\n this._updateValue();\n this._changeCallback?.(this._value());\n } else {\n throw new Error('selectAll is only available in multiple selection mode.');\n }\n }\n\n /**\n * Gets the current value(s) of the list.\n */\n public get value(): ReadonlyArray<any | any[]> {\n return this._value();\n }\n\n /**\n * Gets the current items in the list.\n */\n public get items(): ReadonlyArray<any[]> {\n return this._sourceItems();\n }\n\n writeValue(value: any): void {\n if (this.multiple()) {\n if (value === null || value === undefined) {\n value = [];\n } else if (!Array.isArray(value)) {\n throw Error('invalid value. Expected an array in multiple selection mode.');\n }\n }\n\n this._value.set(value);\n this._updateSelectedItems();\n this._activateFirstSelectedItem();\n this._changeDetector.markForCheck();\n }\n\n registerOnChange(fn: any): void {\n this._changeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this._touchCallback = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._isDisabled.set(isDisabled);\n }\n\n protected _handleUserSelection(item: ListItem, index: number) {\n let value = item.value();\n\n if (this.multiple()) {\n this.toggle(value);\n } else {\n this.select(value);\n }\n\n this._activeItem.set(item);\n this.itemSelect.emit({ value: item.value(), item: item, list: this });\n this._changeDetector.detectChanges();\n }\n\n protected _showLoadingSppiner = computed(() => {\n let source = this.source();\n return source.isLoading() && source.type == 'remote';\n });\n\n private _updateSelectedItems(): void {\n let value = this._value();\n let compareBy = this.compareBy();\n let findAndSelect = (v: any) => {\n let index = this._sourceItems().findIndex(i => compareBy(i, v));\n if (index > -1) {\n let item = this._sourceItems().at(index)!;\n this._selectedItems.add(item);\n }\n\n return index;\n };\n\n this._selectedItems.clear();\n if (this.multiple()) {\n if (Array.isArray(value)) {\n (value as any[]).forEach(v => findAndSelect(v));\n }\n } else {\n findAndSelect(value);\n }\n }\n\n private _activateFirstSelectedItem(): void {\n if (this._selectedItems.size > 0) {\n let value = this._selectedItems.values().next().value;\n let item = this.listItems?.find(i => i.value() === value);\n if (item) {\n this._activeItem.set(item);\n }\n }\n }\n\n private _updateValue(): void {\n let value: any;\n\n if (this.multiple()) {\n let values: any[] = [];\n this._selectedItems.forEach(v => {\n values.push(this.writeBy()(v));\n });\n value = values;\n } else {\n if (this._selectedItems.size > 0) {\n let first = this._selectedItems.values().next().value;\n value = this.writeBy()(first);\n } else {\n value = undefined;\n }\n }\n\n this._value.set(value);\n }\n\n protected _hostAriaActiveDescendant = computed(() => {\n if (this._activeItem() && !this._isDisabled() && this.focusMode() == 'activeDescendant') {\n return this._activeItem()!.id();\n }\n\n return undefined;\n });\n\n protected _hostTabIndex = computed(() => {\n let isDisabled = this._isDisabled(); // track the value\n let activeItem = this._activeItem(); // track the value\n\n if (isDisabled) {\n return undefined;\n }\n\n switch (this.focusMode()) {\n case 'none':\n return undefined;\n case 'activeDescendant':\n return 0;\n case 'roving':\n\n return activeItem ? undefined : 0;\n }\n });\n\n @HostListener('blur')\n protected _onHostBlur() {\n this._touchCallback?.();\n }\n\n @HostListener('keydown', ['$event'])\n protected _onKeydown(e: KeyboardEvent) {\n if (this._isDisabled())\n return;\n\n let listLength = this.listItems!.length;\n if (listLength == 0) {\n return;\n }\n\n let activeItem = this._activeItem();\n let activeItemindex = activeItem ? this.listItems!.toArray().findIndex(i => i === activeItem) : -1;\n\n switch (e.key) {\n case 'ArrowDown':\n if (activeItemindex < listLength - 1) {\n const next = this.listItems!.get(activeItemindex + 1);\n this._activeItem.set(next);\n }\n e.preventDefault();\n break;\n case 'ArrowUp':\n if (activeItemindex == -1) {\n const last = this.listItems!.get(listLength - 1);\n this._activeItem.set(last);\n } else if (activeItemindex > 0) {\n const previous = this.listItems!.get(activeItemindex - 1);\n this._activeItem.set(previous);\n }\n e.preventDefault();\n break;\n case 'Enter':\n if (activeItem) {\n this._handleUserSelection(activeItem, activeItemindex);\n }\n break;\n case 'Home':\n const first = this.listItems!.get(0);\n this._activeItem.set(first);\n e.preventDefault();\n break;\n case 'End':\n const last = this.listItems!.get(listLength - 1);\n this._activeItem.set(last);\n e.preventDefault();\n break;\n }\n\n this._activeItem()?.scrollIntoView('nearest', listLength > 100 ? 'instant' : 'smooth');\n if (this.focusMode() === 'roving') {\n this._activeItem()?.focus();\n }\n }\n}\n\n\n/**\n * Event emitted when the selection state of the list changes by user interaction.\n */\nexport interface ListItemSelectEvent {\n /**\n * The value of the item that was selected or deselected.\n */\n value: any;\n\n /**\n * The item that was selected or deselected.\n */\n readonly item: ListItem;\n\n /**\n * The list component that emitted the event.\n */\n readonly list: ListComponent\n}\n","@let filter = filterBy();\n@let formatter = formatBy();\n\n@for (item of _sourceItems(); track trackBy()($index, item)) {\n\n<ng0-list-item #listItem=\"ng0ListItem\"\n *ng0If=\"!filter || filter(item)\"\n [value]=\"item\"\n [id]=\"idGenerator()?.(item)\"\n [class.active]=\"isActive(listItem)\"\n [class.selected]=\"isSelected(item)\"\n [ngClass]=\"itemClass()?.(item)\"\n (click)=\"_handleUserSelection(listItem, $index);\">\n\n @if(itemTemplate() || _itemTemplate) {\n @let template = itemTemplate() || _itemTemplate;\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: {item: listItem, value: item}}\" />\n } @else {\n @if(showSelectionIndicator()) {\n <input class=\"form-check-input ng0-selection-indicator\"\n tabindex=\"-1\"\n [checked]=\"isSelected(item)\"\n [attr.type]=\"multiple() ? 'checkbox' : 'radio'\">\n }\n\n {{formatter(item)}}\n }\n</ng0-list-item>\n}\n\n@if(_showLoadingSppiner()) {\n@if(_sourceItems().length == 0) {\n<div style=\"text-align: center; padding: 0.5rem 0;\">\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\n</div>\n}@else {\n<div class=\"ng0-list-loading-cover\">\n <ng-container *ngTemplateOutlet=\"spinner\"></ng-container>\n</div>\n}\n}\n\n<ng-template #spinner>\n <div class=\"spinner-border spinner-sm text-primary ng0-list-loading-indicator\" role=\"status\">\n <span class=\"visually-hidden\">Loading...</span>\n </div>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { ListComponent } from './list.component';\n\nconst Items = [ListComponent]\n\n/**\n * List module.\n */\n@NgModule({\n imports: Items,\n exports: Items\n})\nexport class ListModule { }\n","// export * from './types';\nexport * from './list.component';\nexport * from './list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,54 +1,71 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, EventEmitter, signal, HostListener, Output, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { signal, input, booleanAttribute, EventEmitter, HostListener, Output, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import { CommonModule } from '@angular/common';
4
4
 
5
5
  class ModalComponent {
6
- scrollable = input(false);
6
+ _modalStatic = signal(false, ...(ngDevMode ? [{ debugName: "_modalStatic" }] : []));
7
+ /**
8
+ * Is modal open?
9
+ */
10
+ open = input(true, ...(ngDevMode ? [{ debugName: "open", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
11
+ /**
12
+ * Is modal scrollable?
13
+ */
14
+ scrollable = input(false, ...(ngDevMode ? [{ debugName: "scrollable", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
7
15
  /** Is modal vertically centered? */
8
- centered = input(false);
9
- size = input('default');
10
- fullscreen = input();
16
+ centered = input(false, ...(ngDevMode ? [{ debugName: "centered", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
17
+ /**
18
+ * Size of the modal.
19
+ */
20
+ size = input('default', ...(ngDevMode ? [{ debugName: "size" }] : []));
21
+ /**
22
+ * Is modal fullscreen?
23
+ */
24
+ fullscreen = input(...(ngDevMode ? [undefined, { debugName: "fullscreen" }] : []));
25
+ /**
26
+ * Emitted when user clicks the backdrop or presses the escape key.
27
+ */
11
28
  closeRequest = new EventEmitter();
29
+ /**
30
+ * Emitted when the backdrop is clicked.
31
+ */
12
32
  backdropClick = new EventEmitter();
13
- _modalStatic = signal(false);
14
- constructor() {
33
+ _onBackdropClick(event) {
34
+ this.closeRequest.emit({ reason: 'backdrop', event });
35
+ this.backdropClick.emit(event);
36
+ this._shakeModal(); // if user closes the modal, shake will not occure.
15
37
  }
16
- _onBackdropClick() {
17
- this.backdropClick.emit();
18
- this._modalStatic.set(true);
19
- var timeout = setTimeout(() => {
20
- this._modalStatic.set(false);
21
- clearTimeout(timeout);
22
- }, 100);
23
- }
24
- onKeyDown(event) {
38
+ _onDocumentKeyDown(event) {
25
39
  if (event.key === 'Escape') {
26
- this.closeRequest.emit();
40
+ this.closeRequest.emit({ reason: 'escape', event });
41
+ this._shakeModal();
27
42
  }
28
43
  }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: ModalComponent, isStandalone: true, selector: "ng0-modal", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeRequest: "closeRequest", backdropClick: "backdropClick" }, host: { listeners: { "document:keydown": "onKeyDown($event)" } }, exportAs: ["ng0Modal"], ngImport: i0, template: "@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick(): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
44
+ _shakeModal() {
45
+ this._modalStatic.set(true);
46
+ setTimeout(() => this._modalStatic.set(false), 100);
47
+ }
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
49
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: ModalComponent, isStandalone: true, selector: "ng0-modal", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null }, centered: { classPropertyName: "centered", publicName: "centered", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, fullscreen: { classPropertyName: "fullscreen", publicName: "fullscreen", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closeRequest: "closeRequest", backdropClick: "backdropClick" }, host: { listeners: { "document:keydown": "_onDocumentKeyDown($event)" } }, exportAs: ["ng0Modal"], ngImport: i0, template: "@let fullscreenValue=fullscreen();\n@let sizeValue=size();\n\n@if(open()) {\n<div class=\"modal\"\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\n [class.modal-static]=\"_modalStatic()\"\n animate.enter=\"ng0-modal-enter\"\n animate.leave=\"ng0-modal-leave\">\n\n <div class=\"modal-dialog\"\n [class]=\"{\n 'modal-dialog-scrollable': scrollable(),\n 'modal-dialog-centered': centered(),\n 'modal-fullscreen': fullscreenValue == 'always',\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\n 'modal-sm': sizeValue == 'sm',\n 'modal-lg': sizeValue == 'lg',\n 'modal-xl': sizeValue == 'xl',\n }\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"modal-backdrop\"\n animate.enter=\"ng0-modal-backdrop-enter\"\n animate.leave=\"ng0-modal-backdrop-leave\">\n</div>\n}", styles: ["@keyframes ng0-modal-enter{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes ng0-modal-leave{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes ng0-modal-backdrop-enter{0%{opacity:0}to{opacity:.5}}@keyframes ng0-modal-backdrop-leave{0%{opacity:.5}to{opacity:0}}.modal{display:block;animation-duration:.3s;animation-fill-mode:both}.ng0-modal-enter{animation-name:ng0-modal-enter}.ng0-modal-leave{animation-name:ng0-modal-leave}.modal-backdrop{animation-duration:.3s;animation-fill-mode:both;opacity:.5}.ng0-modal-backdrop-enter{animation-name:ng0-modal-backdrop-enter}.ng0-modal-backdrop-leave{animation-name:ng0-modal-backdrop-leave}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
50
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ModalComponent, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalComponent, decorators: [{
33
52
  type: Component,
34
- args: [{ selector: 'ng0-modal', exportAs: 'ng0Modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
35
- CommonModule,
36
- ], template: "@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick(): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>" }]
37
- }], ctorParameters: () => [], propDecorators: { closeRequest: [{
53
+ args: [{ selector: 'ng0-modal', exportAs: 'ng0Modal', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@let fullscreenValue=fullscreen();\n@let sizeValue=size();\n\n@if(open()) {\n<div class=\"modal\"\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\n [class.modal-static]=\"_modalStatic()\"\n animate.enter=\"ng0-modal-enter\"\n animate.leave=\"ng0-modal-leave\">\n\n <div class=\"modal-dialog\"\n [class]=\"{\n 'modal-dialog-scrollable': scrollable(),\n 'modal-dialog-centered': centered(),\n 'modal-fullscreen': fullscreenValue == 'always',\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\n 'modal-sm': sizeValue == 'sm',\n 'modal-lg': sizeValue == 'lg',\n 'modal-xl': sizeValue == 'xl',\n }\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"modal-backdrop\"\n animate.enter=\"ng0-modal-backdrop-enter\"\n animate.leave=\"ng0-modal-backdrop-leave\">\n</div>\n}", styles: ["@keyframes ng0-modal-enter{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes ng0-modal-leave{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@keyframes ng0-modal-backdrop-enter{0%{opacity:0}to{opacity:.5}}@keyframes ng0-modal-backdrop-leave{0%{opacity:.5}to{opacity:0}}.modal{display:block;animation-duration:.3s;animation-fill-mode:both}.ng0-modal-enter{animation-name:ng0-modal-enter}.ng0-modal-leave{animation-name:ng0-modal-leave}.modal-backdrop{animation-duration:.3s;animation-fill-mode:both;opacity:.5}.ng0-modal-backdrop-enter{animation-name:ng0-modal-backdrop-enter}.ng0-modal-backdrop-leave{animation-name:ng0-modal-backdrop-leave}\n"] }]
54
+ }], propDecorators: { open: [{ type: i0.Input, args: [{ isSignal: true, alias: "open", required: false }] }], scrollable: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollable", required: false }] }], centered: [{ type: i0.Input, args: [{ isSignal: true, alias: "centered", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], fullscreen: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullscreen", required: false }] }], closeRequest: [{
38
55
  type: Output
39
56
  }], backdropClick: [{
40
57
  type: Output
41
- }], onKeyDown: [{
58
+ }], _onDocumentKeyDown: [{
42
59
  type: HostListener,
43
60
  args: ['document:keydown', ['$event']]
44
61
  }] } });
45
62
 
46
63
  class ModalModule {
47
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
48
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: ModalModule, imports: [ModalComponent], exports: [ModalComponent] });
49
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ModalModule, imports: [ModalComponent] });
64
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
65
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, imports: [ModalComponent], exports: [ModalComponent] });
66
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, imports: [ModalComponent] });
50
67
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ModalModule, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: ModalModule, decorators: [{
52
69
  type: NgModule,
53
70
  args: [{
54
71
  imports: [
@@ -60,6 +77,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
60
77
  }]
61
78
  }] });
62
79
 
80
+ ;
81
+
63
82
  /**
64
83
  * Generated bundle index. Do not edit.
65
84
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-modal.mjs","sources":["../../../projects/ng0/components/modal/modal.component.ts","../../../projects/ng0/components/modal/modal.component.html","../../../projects/ng0/components/modal/modal.module.ts","../../../projects/ng0/components/modal/bootkit-ng0-components-modal.ts"],"sourcesContent":["import { Component, Output, EventEmitter, ChangeDetectionStrategy, input, signal, HostListener } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ModalCloseRequest } from './types';\r\n\r\n@Component({\r\n selector: 'ng0-modal',\r\n exportAs: 'ng0Modal',\r\n templateUrl: 'modal.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n ]\r\n})\r\nexport class ModalComponent {\r\n public scrollable = input<boolean>(false);\r\n\r\n /** Is modal vertically centered? */\r\n public centered = input<boolean>(false);\r\n public size = input<'sm' | 'default' | 'lg' | 'xl'>('default');\r\n public fullscreen = input<'always' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\r\n @Output() public closeRequest = new EventEmitter<ModalCloseRequest>();\r\n @Output() public backdropClick = new EventEmitter();\r\n\r\n protected _modalStatic = signal(false);\r\n\r\n constructor() {\r\n }\r\n\r\n protected _onBackdropClick() {\r\n this.backdropClick.emit();\r\n this._modalStatic.set(true)\r\n var timeout = setTimeout(() => {\r\n this._modalStatic.set(false)\r\n clearTimeout(timeout);\r\n }, 100);\r\n }\r\n\r\n @HostListener('document:keydown', ['$event'])\r\n onKeyDown(event: KeyboardEvent) {\r\n if (event.key === 'Escape') {\r\n this.closeRequest.emit();\r\n }\r\n }\r\n}\r\n","@let fullscreenValue=fullscreen();\r\n@let sizeValue=size();\r\n\r\n<div class=\"modal d-block\"\r\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick(): ''\"\r\n [class.modal-static]=\"_modalStatic()\">\r\n\r\n <div class=\"modal-dialog\"\r\n [class]=\"{\r\n 'modal-dialog-scrollable': scrollable(),\r\n 'modal-dialog-centered': centered(),\r\n 'modal-fullscreen': fullscreenValue == 'always',\r\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\r\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\r\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\r\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\r\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\r\n 'modal-sm': sizeValue == 'sm',\r\n 'modal-lg': sizeValue == 'lg',\r\n 'modal-xl': sizeValue == 'xl',\r\n }\">\r\n <div class=\"modal-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"modal-backdrop fade show\"></div>","import { NgModule } from '@angular/core';\r\nimport { ModalComponent } from './modal.component';\r\n\r\n@NgModule({\r\n imports: [\r\n ModalComponent,\r\n ],\r\n exports: [\r\n ModalComponent,\r\n ]\r\n})\r\nexport class ModalModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-modal.mjs","sources":["../../../projects/ng0/components/modal/modal.component.ts","../../../projects/ng0/components/modal/modal.component.html","../../../projects/ng0/components/modal/modal.module.ts","../../../projects/ng0/components/modal/types.ts","../../../projects/ng0/components/modal/bootkit-ng0-components-modal.ts"],"sourcesContent":["import { Component, Output, EventEmitter, ChangeDetectionStrategy, input, signal, HostListener, booleanAttribute } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ModalCloseRequest } from './types';\n\n@Component({\n selector: 'ng0-modal',\n exportAs: 'ng0Modal',\n templateUrl: 'modal.component.html',\n styleUrls: ['./modal.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class ModalComponent {\n protected readonly _modalStatic = signal(false);\n\n /**\n * Is modal open?\n */\n public readonly open = input(true, { transform: booleanAttribute });\n\n /**\n * Is modal scrollable?\n */\n public readonly scrollable = input(false, { transform: booleanAttribute });\n\n /** Is modal vertically centered? */\n public readonly centered = input(false, { transform: booleanAttribute });\n\n /**\n * Size of the modal.\n */\n public readonly size = input<'sm' | 'default' | 'lg' | 'xl'>('default');\n\n /**\n * Is modal fullscreen?\n */\n public readonly fullscreen = input<'always' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl'>();\n\n /**\n * Emitted when user clicks the backdrop or presses the escape key.\n */\n @Output() public readonly closeRequest = new EventEmitter<ModalCloseRequest>();\n\n /**\n * Emitted when the backdrop is clicked.\n */\n @Output() public readonly backdropClick = new EventEmitter<Event>();\n\n protected _onBackdropClick(event: MouseEvent) {\n this.closeRequest.emit({ reason: 'backdrop', event });\n this.backdropClick.emit(event);\n this._shakeModal(); // if user closes the modal, shake will not occure.\n }\n\n @HostListener('document:keydown', ['$event'])\n protected _onDocumentKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.closeRequest.emit({ reason: 'escape', event });\n this._shakeModal();\n }\n }\n\n private _shakeModal() {\n this._modalStatic.set(true);\n setTimeout(() => this._modalStatic.set(false), 100);\n }\n}\n","@let fullscreenValue=fullscreen();\n@let sizeValue=size();\n\n@if(open()) {\n<div class=\"modal\"\n (click)=\"$event.target == $event.currentTarget ? _onBackdropClick($event): ''\"\n [class.modal-static]=\"_modalStatic()\"\n animate.enter=\"ng0-modal-enter\"\n animate.leave=\"ng0-modal-leave\">\n\n <div class=\"modal-dialog\"\n [class]=\"{\n 'modal-dialog-scrollable': scrollable(),\n 'modal-dialog-centered': centered(),\n 'modal-fullscreen': fullscreenValue == 'always',\n 'modal-fullscreen-sm-down': fullscreenValue == 'sm',\n 'modal-fullscreen-md-down': fullscreenValue == 'md',\n 'modal-fullscreen-lg-down': fullscreenValue == 'lg',\n 'modal-fullscreen-xl-down': fullscreenValue == 'xl',\n 'modal-fullscreen-xxl-down': fullscreenValue == 'xxl',\n 'modal-sm': sizeValue == 'sm',\n 'modal-lg': sizeValue == 'lg',\n 'modal-xl': sizeValue == 'xl',\n }\">\n <div class=\"modal-content\">\n <ng-content></ng-content>\n </div>\n </div>\n</div>\n\n<div class=\"modal-backdrop\"\n animate.enter=\"ng0-modal-backdrop-enter\"\n animate.leave=\"ng0-modal-backdrop-leave\">\n</div>\n}","import { NgModule } from '@angular/core';\nimport { ModalComponent } from './modal.component';\n\n@NgModule({\n imports: [\n ModalComponent,\n ],\n exports: [\n ModalComponent,\n ]\n})\nexport class ModalModule {\n}\n","export interface ModalCloseRequest {\n reason: 'backdrop' | 'escape';\n event: Event;\n}; \n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,65 +1,54 @@
1
1
  import * as i0 from '@angular/core';
2
- import { model, input, Directive, HostBinding, HostListener, ContentChildren, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { model, input, Directive, inject, ElementRef, HostBinding, HostListener, computed, ContentChildren, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
 
6
6
  class NavDirective {
7
- _elementRef;
8
- _renderer;
9
- activeItem = model(0);
10
- disabled = input(false);
11
- constructor(_elementRef, _renderer) {
12
- this._elementRef = _elementRef;
13
- this._renderer = _renderer;
14
- }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
16
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: NavDirective, isStandalone: true, selector: "[ng0Nav]", inputs: { activeItem: { classPropertyName: "activeItem", publicName: "activeItem", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItem: "activeItemChange" }, exportAs: ["ng0Nav"], ngImport: i0 });
7
+ /**
8
+ * The active item.
9
+ */
10
+ activeItem = model(0, ...(ngDevMode ? [{ debugName: "activeItem" }] : []));
11
+ /**
12
+ * Whether the navigation is disabled.
13
+ */
14
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
16
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: NavDirective, isStandalone: true, selector: "[ng0Nav]", inputs: { activeItem: { classPropertyName: "activeItem", publicName: "activeItem", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItem: "activeItemChange" }, exportAs: ["ng0Nav"], ngImport: i0 });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavDirective, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavDirective, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[ng0Nav]',
22
22
  exportAs: 'ng0Nav',
23
23
  standalone: true,
24
24
  }]
25
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
25
+ }], propDecorators: { activeItem: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeItem", required: false }] }, { type: i0.Output, args: ["activeItemChange"] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
26
26
 
27
27
  class NavItemDirective {
28
28
  elementRef;
29
- _renderer;
30
- _nav;
31
- id = input.required({ alias: 'ng0NavItem' });
32
- disabled = input(false);
33
- constructor(elementRef, _renderer, _nav) {
29
+ id = input.required(...(ngDevMode ? [{ debugName: "id", alias: 'ng0NavItem' }] : [{ alias: 'ng0NavItem' }]));
30
+ disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
31
+ constructor(elementRef) {
34
32
  this.elementRef = elementRef;
35
- this._renderer = _renderer;
36
- this._nav = _nav;
37
33
  }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NavDirective }], target: i0.ɵɵFactoryTarget.Directive });
39
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: NavItemDirective, isStandalone: true, selector: "[ng0NavItem]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavItem", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0NavItem"], ngImport: i0 });
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
35
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: NavItemDirective, isStandalone: true, selector: "[ng0NavItem]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavItem", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ng0NavItem"], ngImport: i0 });
40
36
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavItemDirective, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavItemDirective, decorators: [{
42
38
  type: Directive,
43
39
  args: [{
44
40
  selector: '[ng0NavItem]',
45
41
  exportAs: 'ng0NavItem',
46
42
  standalone: true,
47
43
  }]
48
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NavDirective }] });
44
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "ng0NavItem", required: true }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }] } });
49
45
 
50
46
  class NavLinkDirective {
51
- elementRef;
52
- _renderer;
53
- _nav;
54
- _navItem;
55
- constructor(elementRef, _renderer, _nav, _navItem) {
56
- this.elementRef = elementRef;
57
- this._renderer = _renderer;
58
- this._nav = _nav;
59
- this._navItem = _navItem;
60
- }
47
+ _nav = inject(NavDirective);
48
+ _navItem = inject(NavItemDirective);
49
+ elementRef = inject(ElementRef);
61
50
  _onClick() {
62
- this._nav.activeItem.set(this._navItem.id);
51
+ this._nav.activeItem.set(this._navItem.id());
63
52
  }
64
53
  get _active() {
65
54
  return this._nav.activeItem() === this._navItem.id();
@@ -67,17 +56,17 @@ class NavLinkDirective {
67
56
  get _disabled() {
68
57
  return this._nav.disabled() || this._navItem.disabled();
69
58
  }
70
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavLinkDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NavDirective }, { token: NavItemDirective }], target: i0.ɵɵFactoryTarget.Directive });
71
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: NavLinkDirective, isStandalone: true, selector: "[ng0NavLink]", host: { listeners: { "click": "_onClick()" }, properties: { "class.active": "this._active", "class.disabled": "this._disabled" } }, exportAs: ["ng0NavLink"], ngImport: i0 });
59
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavLinkDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
60
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.11", type: NavLinkDirective, isStandalone: true, selector: "[ng0NavLink]", host: { listeners: { "click": "_onClick()" }, properties: { "class.active": "this._active", "class.disabled": "this._disabled" } }, exportAs: ["ng0NavLink"], ngImport: i0 });
72
61
  }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavLinkDirective, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavLinkDirective, decorators: [{
74
63
  type: Directive,
75
64
  args: [{
76
65
  selector: '[ng0NavLink]',
77
66
  exportAs: 'ng0NavLink',
78
67
  standalone: true,
79
68
  }]
80
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: NavDirective }, { type: NavItemDirective }], propDecorators: { _onClick: [{
69
+ }], propDecorators: { _onClick: [{
81
70
  type: HostListener,
82
71
  args: ['click']
83
72
  }], _active: [{
@@ -88,30 +77,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
88
77
  args: ['class.disabled']
89
78
  }] } });
90
79
 
91
- class TabPaneDirective {
80
+ class NavContentDirective {
92
81
  templateRef;
93
- id = input.required({ alias: 'ng0TabPane' });
82
+ id = input.required(...(ngDevMode ? [{ debugName: "id", alias: 'ng0NavContent' }] : [{ alias: 'ng0NavContent' }]));
94
83
  constructor(templateRef) {
95
84
  this.templateRef = templateRef;
96
85
  }
97
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TabPaneDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
98
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: TabPaneDirective, isStandalone: true, selector: "[ng0TabPane]", inputs: { id: { classPropertyName: "id", publicName: "ng0TabPane", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["ng0TabPane"], ngImport: i0 });
86
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
87
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: NavContentDirective, isStandalone: true, selector: "[ng0NavContent]", inputs: { id: { classPropertyName: "id", publicName: "ng0NavContent", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["ng0NavContent"], ngImport: i0 });
99
88
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TabPaneDirective, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentDirective, decorators: [{
101
90
  type: Directive,
102
91
  args: [{
103
- selector: '[ng0TabPane]',
104
- exportAs: 'ng0TabPane',
92
+ selector: '[ng0NavContent]',
93
+ exportAs: 'ng0NavContent',
105
94
  standalone: true,
106
95
  }]
107
- }], ctorParameters: () => [{ type: i0.TemplateRef }] });
96
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "ng0NavContent", required: true }] }] } });
108
97
 
109
- class TabContentComponent {
98
+ class NavContentContainerComponent {
110
99
  _elementRef;
111
100
  _renderer;
112
- nav = input.required();
113
- _panes;
114
- disabled = input(false);
101
+ /**
102
+ * The navigation directive that this content belongs to.
103
+ */
104
+ nav = input.required(...(ngDevMode ? [{ debugName: "nav" }] : []));
105
+ _contents;
106
+ _activeItem = computed(() => this.nav().activeItem(), ...(ngDevMode ? [{ debugName: "_activeItem" }] : []));
115
107
  constructor(_elementRef, _renderer) {
116
108
  this._elementRef = _elementRef;
117
109
  this._renderer = _renderer;
@@ -119,38 +111,38 @@ class TabContentComponent {
119
111
  ngOnInit() {
120
112
  this._renderer.addClass(this._elementRef.nativeElement, 'tab-content');
121
113
  }
122
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TabContentComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: TabContentComponent, isStandalone: true, selector: "ng0-tab-content", inputs: { nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "_panes", predicate: TabPaneDirective }], exportAs: ["ng0TabContent"], ngImport: i0, template: "@for (pane of _panes; track $index) {\r\n @if(pane.id() === nav().activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"pane.templateRef;\"></ng-container>\r\n }\r\n}\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentContainerComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
115
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: NavContentContainerComponent, isStandalone: true, selector: "ng0-navcontent-container", inputs: { nav: { classPropertyName: "nav", publicName: "nav", isSignal: true, isRequired: true, transformFunction: null } }, queries: [{ propertyName: "_contents", predicate: NavContentDirective }], exportAs: ["ng0Navcontent"], ngImport: i0, template: "@for (content of _contents; track $index) {\n @if(content.id() === _activeItem()) {\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\n }\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
116
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: TabContentComponent, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavContentContainerComponent, decorators: [{
126
118
  type: Component,
127
- args: [{ selector: 'ng0-tab-content', exportAs: 'ng0TabContent', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@for (pane of _panes; track $index) {\r\n @if(pane.id() === nav().activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"pane.templateRef;\"></ng-container>\r\n }\r\n}\r\n" }]
128
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { _panes: [{
119
+ args: [{ selector: 'ng0-navcontent-container', exportAs: 'ng0Navcontent', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: "@for (content of _contents; track $index) {\n @if(content.id() === _activeItem()) {\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\n }\n}\n", styles: [":host{display:block}\n"] }]
120
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { nav: [{ type: i0.Input, args: [{ isSignal: true, alias: "nav", required: true }] }], _contents: [{
129
121
  type: ContentChildren,
130
- args: [TabPaneDirective]
122
+ args: [NavContentDirective]
131
123
  }] } });
132
124
 
133
125
  const items = [
134
126
  NavDirective,
135
127
  NavItemDirective,
136
128
  NavLinkDirective,
137
- TabContentComponent,
138
- TabPaneDirective
129
+ NavContentContainerComponent,
130
+ NavContentDirective
139
131
  ];
140
132
  class NavModule {
141
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
142
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: NavModule, imports: [NavDirective,
133
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
134
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: NavModule, imports: [NavDirective,
143
135
  NavItemDirective,
144
136
  NavLinkDirective,
145
- TabContentComponent,
146
- TabPaneDirective], exports: [NavDirective,
137
+ NavContentContainerComponent,
138
+ NavContentDirective], exports: [NavDirective,
147
139
  NavItemDirective,
148
140
  NavLinkDirective,
149
- TabContentComponent,
150
- TabPaneDirective] });
151
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavModule, imports: [TabContentComponent] });
141
+ NavContentContainerComponent,
142
+ NavContentDirective] });
143
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavModule, imports: [NavContentContainerComponent] });
152
144
  }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: NavModule, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: NavModule, decorators: [{
154
146
  type: NgModule,
155
147
  args: [{
156
148
  imports: items,
@@ -162,5 +154,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImpor
162
154
  * Generated bundle index. Do not edit.
163
155
  */
164
156
 
165
- export { NavDirective, NavItemDirective, NavLinkDirective, NavModule, TabContentComponent, TabPaneDirective };
157
+ export { NavContentContainerComponent, NavContentDirective, NavDirective, NavItemDirective, NavLinkDirective, NavModule };
166
158
  //# sourceMappingURL=bootkit-ng0-components-nav.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-nav.mjs","sources":["../../../projects/ng0/components/nav/nav.directive.ts","../../../projects/ng0/components/nav/nav-item.directive.ts","../../../projects/ng0/components/nav/nav-link.directive.ts","../../../projects/ng0/components/nav/tab-pane.directive.ts","../../../projects/ng0/components/nav/tab-content.component.ts","../../../projects/ng0/components/nav/tab-content.component.html","../../../projects/ng0/components/nav/nav.module.ts","../../../projects/ng0/components/nav/bootkit-ng0-components-nav.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, input, model } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Nav]',\r\n exportAs: 'ng0Nav',\r\n standalone: true,\r\n})\r\nexport class NavDirective {\r\n activeItem = model<any>(0);\r\n disabled = input(false);\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {\r\n }\r\n}\r\n","import { Directive, ElementRef, Renderer2, input } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\n\r\n@Directive({\r\n selector: '[ng0NavItem]',\r\n exportAs: 'ng0NavItem',\r\n standalone: true,\r\n})\r\nexport class NavItemDirective {\r\n id = input.required<any>({alias: 'ng0NavItem'});\r\n disabled = input(false);\r\n\r\n constructor(public elementRef: ElementRef, private _renderer: Renderer2, private _nav: NavDirective) {\r\n }\r\n}\r\n","import { Directive, ElementRef, HostBinding, HostListener, Renderer2, input } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\nimport { NavItemDirective } from './nav-item.directive';\r\n\r\n@Directive({\r\n selector: '[ng0NavLink]',\r\n exportAs: 'ng0NavLink',\r\n standalone: true,\r\n})\r\nexport class NavLinkDirective {\r\n constructor(public elementRef: ElementRef, private _renderer: Renderer2, private _nav: NavDirective, private _navItem: NavItemDirective) {\r\n }\r\n\r\n @HostListener('click')\r\n private _onClick() {\r\n this._nav.activeItem.set(this._navItem.id);\r\n }\r\n\r\n @HostBinding('class.active') \r\n private get _active() {\r\n return this._nav.activeItem() === this._navItem.id();\r\n }\r\n\r\n @HostBinding('class.disabled') \r\n private get _disabled() {\r\n return this._nav.disabled() || this._navItem.disabled();\r\n }\r\n}\r\n","import { Directive, input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0TabPane]',\r\n exportAs: 'ng0TabPane',\r\n standalone: true,\r\n})\r\nexport class TabPaneDirective {\r\n id = input.required<any>({alias: 'ng0TabPane'});\r\n \r\n constructor(public templateRef: TemplateRef<any>) {\r\n }\r\n}\r\n","import { Component, ContentChildren, QueryList, ElementRef, Renderer2, OnInit, input, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TabPaneDirective } from './tab-pane.directive';\r\nimport { NavDirective } from './nav.directive';\r\n\r\n@Component({\r\n selector: 'ng0-tab-content',\r\n exportAs: 'ng0TabContent',\r\n templateUrl: './tab-content.component.html',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule]\r\n})\r\nexport class TabContentComponent implements OnInit {\r\n nav = input.required<NavDirective>();\r\n\r\n @ContentChildren(TabPaneDirective) protected _panes!: QueryList<TabPaneDirective>;\r\n\r\n disabled = input(false);\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._renderer.addClass(this._elementRef.nativeElement, 'tab-content');\r\n }\r\n}\r\n","@for (pane of _panes; track $index) {\r\n @if(pane.id() === nav().activeItem()) {\r\n <ng-container *ngTemplateOutlet=\"pane.templateRef;\"></ng-container>\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NavDirective } from './nav.directive';\r\nimport { NavLinkDirective } from './nav-link.directive';\r\nimport { TabContentComponent } from './tab-content.component';\r\nimport { TabPaneDirective } from './tab-pane.directive';\r\nimport { NavItemDirective } from './nav-item.directive';\r\n\r\nconst items = [\r\n NavDirective,\r\n NavItemDirective,\r\n NavLinkDirective,\r\n TabContentComponent,\r\n TabPaneDirective\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class NavModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NavDirective","i2.NavItemDirective"],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-nav.mjs","sources":["../../../projects/ng0/components/nav/nav.directive.ts","../../../projects/ng0/components/nav/nav-item.directive.ts","../../../projects/ng0/components/nav/nav-link.directive.ts","../../../projects/ng0/components/nav/nav-content.directive.ts","../../../projects/ng0/components/nav/nav-content-container.component.ts","../../../projects/ng0/components/nav/nav-content-container.component.html","../../../projects/ng0/components/nav/nav.module.ts","../../../projects/ng0/components/nav/bootkit-ng0-components-nav.ts"],"sourcesContent":["import { Directive, input, model } from '@angular/core';\n\n@Directive({\n selector: '[ng0Nav]',\n exportAs: 'ng0Nav',\n standalone: true,\n})\nexport class NavDirective {\n /**\n * The active item.\n */\n public readonly activeItem = model<any>(0);\n\n /**\n * Whether the navigation is disabled.\n */\n public readonly disabled = input(false);\n}\n","import { Directive, ElementRef, Renderer2, input } from '@angular/core';\nimport { NavDirective } from './nav.directive';\n\n@Directive({\n selector: '[ng0NavItem]',\n exportAs: 'ng0NavItem',\n standalone: true,\n})\nexport class NavItemDirective {\n id = input.required<any>({alias: 'ng0NavItem'});\n disabled = input(false);\n\n constructor(public elementRef: ElementRef) {\n }\n}\n","import { Directive, ElementRef, HostBinding, HostListener, Renderer2, inject, input } from '@angular/core';\nimport { NavDirective } from './nav.directive';\nimport { NavItemDirective } from './nav-item.directive';\n\n@Directive({\n selector: '[ng0NavLink]',\n exportAs: 'ng0NavLink',\n standalone: true,\n})\nexport class NavLinkDirective {\n private _nav = inject(NavDirective);\n private _navItem = inject(NavItemDirective);\n public elementRef = inject(ElementRef);\n\n\n @HostListener('click')\n protected _onClick() {\n this._nav.activeItem.set(this._navItem.id());\n }\n\n @HostBinding('class.active') \n protected get _active() {\n return this._nav.activeItem() === this._navItem.id();\n }\n\n @HostBinding('class.disabled') \n protected get _disabled() {\n return this._nav.disabled() || this._navItem.disabled();\n }\n}\n","import { Directive, input, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[ng0NavContent]',\n exportAs: 'ng0NavContent',\n standalone: true,\n})\nexport class NavContentDirective {\n id = input.required<any>({alias: 'ng0NavContent'});\n \n constructor(public templateRef: TemplateRef<any>) {\n }\n}\n","import { Component, ContentChildren, QueryList, ElementRef, Renderer2, OnInit, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NavContentDirective } from './nav-content.directive';\nimport { NavDirective } from './nav.directive';\n\n@Component({\n selector: 'ng0-navcontent-container',\n exportAs: 'ng0Navcontent',\n templateUrl: './nav-content-container.component.html',\n styles: `:host{display: block;}`,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule]\n})\nexport class NavContentContainerComponent implements OnInit {\n /** \n * The navigation directive that this content belongs to.\n */\n nav = input.required<NavDirective>();\n\n @ContentChildren(NavContentDirective) protected _contents!: QueryList<NavContentDirective>;\n protected _activeItem = computed(() => this.nav().activeItem());\n\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n this._renderer.addClass(this._elementRef.nativeElement, 'tab-content');\n }\n}\n","@for (content of _contents; track $index) {\n @if(content.id() === _activeItem()) {\n <ng-container *ngTemplateOutlet=\"content.templateRef;\"></ng-container>\n }\n}\n","import { NgModule } from '@angular/core';\nimport { NavDirective } from './nav.directive';\nimport { NavLinkDirective } from './nav-link.directive';\nimport { NavContentContainerComponent } from './nav-content-container.component';\nimport { NavContentDirective } from './nav-content.directive';\nimport { NavItemDirective } from './nav-item.directive';\n\nconst items = [\n NavDirective,\n NavItemDirective,\n NavLinkDirective,\n NavContentContainerComponent,\n NavContentDirective\n];\n\n@NgModule({\n imports: items,\n exports: items\n})\nexport class NavModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}