@bootkit/ng0 0.0.0-alpha.2 → 0.0.0-alpha.21
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/common/index.d.ts +118 -6
- package/components/accordion/index.d.ts +1 -1
- package/components/backdrop/index.d.ts +12 -0
- package/components/button/index.d.ts +48 -0
- package/components/card/index.d.ts +27 -0
- package/components/code/index.d.ts +35 -0
- package/components/confirmation/index.d.ts +66 -0
- package/components/dropdown/index.d.ts +78 -0
- package/components/form-field/index.d.ts +72 -0
- package/components/list/index.d.ts +127 -0
- package/components/modal/index.d.ts +22 -4
- package/components/nav/index.d.ts +23 -19
- package/components/pagination/index.d.ts +35 -9
- package/components/popover/index.d.ts +1 -1
- package/components/select/index.d.ts +116 -0
- package/components/sidenav/index.d.ts +59 -0
- package/components/stepper/index.d.ts +26 -0
- package/components/table/index.d.ts +273 -0
- package/components/toast/index.d.ts +1 -1
- package/components/tooltip/index.d.ts +1 -1
- package/components/vertical-menu/index.d.ts +61 -0
- package/data/index.d.ts +258 -46
- package/date/index.d.ts +34 -0
- package/fesm2022/bootkit-ng0-common.mjs +89 -11
- package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-accordion.mjs +13 -13
- package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-backdrop.mjs +46 -0
- package/fesm2022/bootkit-ng0-components-backdrop.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-button.mjs +119 -0
- package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-card.mjs +62 -0
- package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-code.mjs +70 -0
- package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-collapse.mjs +14 -14
- package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-confirmation.mjs +167 -0
- package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-dropdown.mjs +189 -0
- package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-form-field.mjs +147 -0
- package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-list.mjs +331 -0
- package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-modal.mjs +40 -23
- package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-nav.mjs +58 -59
- package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs +9 -9
- package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-pagination.mjs +58 -23
- package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-popover.mjs +10 -10
- package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-select.mjs +427 -0
- package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-sidenav.mjs +153 -0
- package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-stepper.mjs +91 -0
- package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-table.mjs +461 -0
- package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-components-toast.mjs +7 -7
- package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-tooltip.mjs +8 -8
- package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +161 -0
- package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-data.mjs +291 -90
- package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-date.mjs +50 -0
- package/fesm2022/bootkit-ng0-date.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-file.mjs +50 -0
- package/fesm2022/bootkit-ng0-file.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-form.mjs +514 -0
- package/fesm2022/bootkit-ng0-form.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-http.mjs +225 -179
- package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
- package/fesm2022/bootkit-ng0-localization-locales.mjs +115 -0
- package/fesm2022/bootkit-ng0-localization-locales.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-localization.mjs +481 -0
- package/fesm2022/bootkit-ng0-localization.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-platform-browser.mjs +51 -0
- package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-script.mjs +59 -0
- package/fesm2022/bootkit-ng0-script.mjs.map +1 -0
- package/fesm2022/bootkit-ng0-security.mjs +17 -15
- package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
- package/file/index.d.ts +22 -0
- package/form/index.d.ts +127 -0
- package/http/index.d.ts +141 -40
- package/localization/index.d.ts +305 -0
- package/localization/locales/index.d.ts +7 -0
- package/package.json +90 -10
- package/platform/browser/index.d.ts +22 -0
- package/script/index.d.ts +27 -0
- package/security/index.d.ts +3 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-select.mjs","sources":["../../../projects/ng0/components/select/select.component.ts","../../../projects/ng0/components/select/select.component.html","../../../projects/ng0/components/select/select.module.ts","../../../projects/ng0/components/select/public-api.ts","../../../projects/ng0/components/select/bootkit-ng0-components-select.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, input, OnInit, DestroyRef, signal, model, HostListener, inject, forwardRef, ViewChild, TemplateRef, ContentChild, ViewEncapsulation, DOCUMENT, ChangeDetectionStrategy, booleanAttribute, ChangeDetectorRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { dataSourceAttribute, DataRequest, DataSource, DataSourceLike, ValueExtractorAttribute, defaultValueExtractor, stringFilter, FilterPredicate, BooleanValueComparerAttribute, defaultBooleanValueComparer } from '@bootkit/ng0/data';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FlexibleConnectedPositionStrategy, Overlay, OverlayModule, ScrollStrategy, ViewportRuler } from '@angular/cdk/overlay';\r\nimport { Subscription } from 'rxjs';\r\nimport { CssClassAttribute, SelectOption, _IdGenerator } from '@bootkit/ng0/common';\r\nimport { ValueFormatterAttribute, defaultValueFormatter, LocalizationService } from '@bootkit/ng0/localization';\r\nimport { CdkListboxModule } from '@angular/cdk/listbox';\r\n\r\n/**\r\n * Select component that allows users to choose an option from a dropdown list.\r\n */\r\n@Component({\r\n selector: 'ng0-select',\r\n exportAs: 'ng0Select',\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n standalone: true,\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [\r\n CommonModule,\r\n OverlayModule,\r\n CdkListboxModule\r\n ],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true\r\n }],\r\n host: {\r\n '[class.ng0-select-open]': 'open()',\r\n '[class.ng0-select-loading]': 'source().isLoading()',\r\n '[attr.aria-activedescendant]': '_activeOptionIndex() > -1 ? (_options()[_activeOptionIndex()].id) : undefined',\r\n '[attr.disabled]': '_isDisabled()',\r\n '[attr.aria-disabled]': '_isDisabled()'\r\n }\r\n})\r\nexport class SelectComponent implements OnInit, ControlValueAccessor {\r\n private _resizeObserver?: ResizeObserver;\r\n private _resizeObserverInitialized = false;\r\n private _viewpoerRulerSubscription?: Subscription;\r\n protected _cdkListboxValue = signal<any>(undefined);\r\n @ViewChild('filterInput') private _filterElementRef?: ElementRef;\r\n private _onChangeCallback!: (value: any) => void;\r\n private _onTouchedCallback!: (value: any) => void;\r\n protected readonly _options = signal<SelectOption[]>([]);\r\n protected readonly _isDisabled = signal<boolean>(false);\r\n protected readonly _selectedOptionIndex = signal<number>(-1);\r\n protected readonly _activeOptionIndex = signal<number>(-1);\r\n @ContentChild(TemplateRef) protected _optionTemplate?: TemplateRef<any>;\r\n protected _positionStrategy!: FlexibleConnectedPositionStrategy;\r\n protected _scrollStrategy!: ScrollStrategy;\r\n\r\n private _overlay = inject(Overlay);\r\n private _document = inject(DOCUMENT);\r\n private _ls = inject(LocalizationService);\r\n private _destroyRef = inject(DestroyRef);\r\n protected _el = inject(ElementRef<HTMLDivElement>);\r\n private _renderer = inject(Renderer2);\r\n private _viewportRuler = inject(ViewportRuler);\r\n private _changeDetector = inject(ChangeDetectorRef);\r\n\r\n /**\r\n * The data source for the select component.\r\n * This can be an array of data, a function that returns an observable of data,\r\n * or an instance of DataSource.\r\n */\r\n public readonly source = input.required<DataSource<any>, DataSourceLike<any>>({\r\n transform: v => dataSourceAttribute(v)\r\n });\r\n\r\n /** \r\n * Indicates whether multi selection is enabled or not.\r\n */\r\n public readonly multiple = input(false, {\r\n transform: booleanAttribute\r\n });\r\n\r\n /** \r\n * Indicates whether the dropdown is open or closed.\r\n */\r\n public readonly open = model(false);\r\n\r\n /**\r\n * A custom comparer function or the name of a field for comparing two objects.\r\n */\r\n public readonly compareBy = input(defaultBooleanValueComparer, {\r\n transform: BooleanValueComparerAttribute\r\n });\r\n\r\n /**\r\n * Custom format function to convert an item to a string for display.\r\n * Default converts the item to a string using its toString method.\r\n */\r\n public readonly formatBy = input(defaultValueFormatter, {\r\n transform: ValueFormatterAttribute(this._ls.get())\r\n });\r\n\r\n /**\r\n * Custom value extractor function to extract the value of any object while writing values.\r\n */\r\n public readonly writeBy = input(defaultValueExtractor, {\r\n transform: ValueExtractorAttribute\r\n });\r\n\r\n /**\r\n * Indicates whether the dropdown is filterable.\r\n */\r\n public readonly filterable = input(false, { transform: booleanAttribute });\r\n\r\n /**\r\n * Placeholder text for the filter input field.\r\n */\r\n public readonly filterPlaceholder = input('');\r\n\r\n /**\r\n * Custom filter function to filter items based on a filter value.\r\n * Default checks if the item contains the filter value (case-insensitive).\r\n */\r\n public readonly filterBy = input<FilterPredicate>(stringFilter);\r\n\r\n /**\r\n * CSS class or classes to apply to the list container.\r\n */\r\n public readonly itemClass = input((item) => undefined, {\r\n transform: CssClassAttribute\r\n });\r\n\r\n constructor() {\r\n this._renderer.addClass(this._el.nativeElement, 'form-select');\r\n this._renderer.setAttribute(this._el.nativeElement, 'tabindex', '0');\r\n this._scrollStrategy = this._overlay.scrollStrategies.block();\r\n }\r\n\r\n ngOnInit(): void {\r\n this._loadItems();\r\n this._handleDataSourceChange();\r\n }\r\n\r\n private _loadItems() {\r\n var r = new DataRequest();\r\n this.source().load(r).pipe(takeUntilDestroyed(this._destroyRef)).subscribe(res => {\r\n this._insertOptions(0, ...res.data);\r\n });\r\n }\r\n\r\n private _handleDataSourceChange() {\r\n let options = this._options();\r\n this.source().change.subscribe(e => {\r\n e.changes.forEach(change => {\r\n switch (change.type) {\r\n case 'insert':\r\n this._insertOptions(change.index!, ...change.items);\r\n break;\r\n case 'replace':\r\n options[change.index].value = change.value;\r\n break;\r\n case 'remove':\r\n options.splice(change.index, change.count);\r\n }\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Selects an option by index\r\n */\r\n protected _selectByIndex(index: number) {\r\n let optionsCount = this._options().length;\r\n if (optionsCount == 0 || index < 0 || index > optionsCount - 1) {\r\n throw new Error('Index out of range');\r\n }\r\n\r\n if (index == this._selectedOptionIndex()) {\r\n return;\r\n }\r\n\r\n let option = this._options()[index];\r\n this._cdkListboxValue.set(this.writeBy()(option.value));\r\n this._onChangeCallback(this._cdkListboxValue());\r\n }\r\n\r\n // /**\r\n // * Sets an option as active\r\n // */\r\n // public active(index: number) {\r\n // if (index < 0) {\r\n // throw Error();\r\n // }\r\n\r\n // this._activeOptionIndex.set(index);\r\n // if (this.open()) {\r\n // this.scrollItemIntoView(this._activeOptionIndex(), 'nearest');\r\n // }\r\n // }\r\n\r\n // /**\r\n // * Scrolls the item at the specified index into view within the dropdown list.\r\n // * @param index The index of the item to scroll into view.\r\n // * @param position The vertical alignment of the item after scrolling.\r\n // * Can be 'start', 'center', 'end', or 'nearest'.\r\n // * Default is 'nearest'.\r\n // * @param behavior The scrolling behavior.\r\n // */\r\n // public scrollItemIntoView(index: number, position?: ScrollLogicalPosition, behavior?: ScrollBehavior) {\r\n // let item = this._options()[index];\r\n // let elm = this._document.getElementById(item.id) as HTMLUListElement;\r\n // elm!.scrollIntoView({ block: position, behavior: behavior });\r\n // }\r\n\r\n protected _insertOptions(index?: number, ...items: any[]) {\r\n // let filter = this.filterBy()()\r\n var options = items.map(x => ({\r\n id: this._getNextOptionId(),\r\n value: x,\r\n show: true\r\n }) as SelectOption)\r\n\r\n if (Number.isInteger(index)) {\r\n this._options().splice(index!, 0, ...options);\r\n } else {\r\n this._options().push(...options);\r\n }\r\n\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n let value;\r\n\r\n if (this.multiple()) {\r\n if (Array.isArray(obj)) {\r\n value = obj;\r\n } else if (obj === null || obj === undefined) {\r\n value = [];\r\n } else {\r\n throw Error('Provide an array or null as the value of ng0-select component.');\r\n }\r\n } else {\r\n value = [obj];\r\n }\r\n \r\n this._cdkListboxValue.set(value);\r\n\r\n // Update selection state of items\r\n // let compareBy = this.compareBy();\r\n // if (this.multiple()) {\r\n // this._items().forEach(x => x.selected = (value as any[]).some(y => compareBy(x.value, y)));\r\n // } else {\r\n // this._items().forEach(x => x.selected = compareBy(x.value, value));\r\n // }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onChangeCallback = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedCallback = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this._isDisabled.set(isDisabled);\r\n }\r\n\r\n @HostListener('keydown', ['$event'])\r\n protected _onKeydown(e: KeyboardEvent, firedByFilter: boolean = false) {\r\n let open = this.open();\r\n\r\n if (this._isDisabled())\r\n return;\r\n\r\n let optionsCount = this._options().length;\r\n if (optionsCount == 0) {\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case 'ArrowDown':\r\n if (open) {\r\n if (this._activeOptionIndex() < optionsCount - 1) {\r\n // this.active(this._activeOptionIndex() + 1);\r\n }\r\n } else {\r\n if (this._selectedOptionIndex()! < optionsCount - 1) {\r\n this._selectByIndex(this._selectedOptionIndex() + 1)\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case 'ArrowUp':\r\n if (open) {\r\n if (this._activeOptionIndex() > 0) {\r\n // this.active(this._activeOptionIndex()! - 1);\r\n }\r\n } else {\r\n if (this._selectedOptionIndex() > 0) {\r\n this._selectByIndex(this._selectedOptionIndex()! - 1)\r\n }\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case 'Enter':\r\n if (open) {\r\n if (this._activeOptionIndex() == this._selectedOptionIndex()) {\r\n this.open.set(false);\r\n } else {\r\n this._selectByIndex(this._activeOptionIndex());\r\n this.open.set(false);\r\n }\r\n } else {\r\n this.open.set(true);\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case ' ':\r\n if (!open) {\r\n this.open.set(true);\r\n }\r\n e.preventDefault();\r\n break;\r\n\r\n case 'Escape':\r\n this.open.set(false);\r\n e.preventDefault();\r\n break;\r\n\r\n case 'Home':\r\n if (open) {\r\n // this.active(0);\r\n } else {\r\n this._selectByIndex(0)\r\n }\r\n\r\n e.preventDefault();\r\n break;\r\n\r\n case 'End':\r\n if (open) {\r\n // this.active(optionsCount - 1);\r\n } else {\r\n this._selectByIndex(optionsCount - 1);\r\n }\r\n\r\n e.preventDefault();\r\n break;\r\n }\r\n }\r\n\r\n protected _onFilterBlur() {\r\n // use setTimeout to allow next element receives the focus.\r\n setTimeout(() => {\r\n if (!this._el.nativeElement.matches(':focus')) {\r\n this.open.set(false);\r\n }\r\n }, 0);\r\n }\r\n\r\n protected _filterItems(filter: string) {\r\n let filterFunc = this.filterBy();\r\n this._options().forEach(x => x.show = filterFunc(x.value, filter));\r\n }\r\n\r\n protected _onOverlayAttach() {\r\n this._activeOptionIndex.set(this._selectedOptionIndex())\r\n\r\n this._listenToResizeEvents();\r\n\r\n if (this.filterable()) {\r\n setTimeout(() => {\r\n this._filterElementRef?.nativeElement.focus();\r\n }, 0);\r\n }\r\n\r\n if (this._selectedOptionIndex() > -1) {\r\n // this.scrollItemIntoView(this._selectedOptionIndex(), 'start', 'instant');\r\n }\r\n }\r\n\r\n protected _onOverlayDetach() {\r\n this._unlistenFromResizeEvents();\r\n if (this.filterable()) {\r\n this._el?.nativeElement.focus();\r\n this._options().forEach(x => x.show = false);\r\n }\r\n }\r\n\r\n private _getNextOptionId() {\r\n return `ng0-select-item-${_IdGenerator.next().toString()}`;\r\n }\r\n\r\n private _listenToResizeEvents() {\r\n this._viewportRuler.change().subscribe(x => {\r\n this.open.set(false);\r\n });\r\n\r\n this._resizeObserver = new ResizeObserver(e => {\r\n // Sterategy 1: close overlay\r\n if (!this._resizeObserverInitialized) {\r\n this._resizeObserverInitialized = true;\r\n return;\r\n } else {\r\n this.open.set(false);\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n // Sterategy 2: update overlay size\r\n // const width = (e[0].target as HTMLDivElement).offsetWidth;\r\n // this._connectedOverlay.overlayRef.updateSize({ width });\r\n });\r\n\r\n this._resizeObserver.observe(this._el.nativeElement);\r\n }\r\n\r\n private _unlistenFromResizeEvents() {\r\n this._viewpoerRulerSubscription?.unsubscribe();\r\n this._viewpoerRulerSubscription = undefined;\r\n\r\n this._resizeObserver?.disconnect();\r\n this._resizeObserver = undefined;\r\n this._resizeObserverInitialized = false;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n private _onHostClick(e: MouseEvent) {\r\n if (this._isDisabled())\r\n return;\r\n\r\n this.open.update(x => !x);\r\n // this._onTouchedCallback?.(this._selectedValue());\r\n }\r\n}\r\n","@let formattedValue = formatBy()(_cdkListboxValue());\r\n\r\n@if(formattedValue == null || formattedValue == '') {\r\n \r\n}@else {\r\n{{formattedValue}}\r\n}\r\n\r\n@if(source().isLoading()) {\r\n<div class=\"spinner-border text-success spinner-border-sm ng0-select-spinner\" role=\"status\">\r\n <span class=\"visually-hidden\">Loading...</span>\r\n</div>\r\n}\r\n\r\n<ng-template cdkConnectedOverlay\r\n [cdkConnectedOverlayOrigin]=\"_el.nativeElement\"\r\n [cdkConnectedOverlayScrollStrategy]=\"_scrollStrategy\"\r\n [cdkConnectedOverlayOpen]=\"open()\"\r\n [cdkConnectedOverlayPush]=\"false\"\r\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\r\n [cdkConnectedOverlayPanelClass]=\"['ng0-select-dropdown-container', 'shadow']\"\r\n [cdkConnectedOverlayWidth]=\"_el.nativeElement.clientWidth\"\r\n (overlayOutsideClick)=\"open.set(false)\"\r\n (attach)=\"_onOverlayAttach()\"\r\n (detach)=\"_onOverlayDetach()\">\r\n\r\n @if(filterable()) {\r\n <div class=\"ng0-select-filter-container border-bottom\">\r\n <input #filterInput\r\n type=\"text\"\r\n class=\"ng0-select-filter-input form-control form-control-sm\"\r\n [attr.placeholder]=\"filterPlaceholder()\"\r\n (keydown)=\"_onKeydown($event, true)\"\r\n (blur)=\"_onFilterBlur()\"\r\n (input)=\"_filterItems($event.target.value)\">\r\n </div>\r\n }\r\n\r\n <ul class=\"ng0-select-dropdown\"\r\n cdkListbox\r\n [cdkListboxValue]=\"_cdkListboxValue()\"\r\n [attr.tabindex]=\"_isDisabled() ? undefined : -1\"\r\n [class.is-open]=\"open()\">\r\n\r\n @for (option of _options(); track $index) {\r\n <li [cdkOption]=\"option.value\"\r\n #cdkOption=\"cdkOption\"\r\n [attr.id]=\"option.id\"\r\n class=\"ng0-select-option\"\r\n [class.ng0-select-option-active]=\"cdkOption.isActive()\"\r\n [class.ng0-select-option-selected]=\"cdkOption.isSelected()\"\r\n [class.ng0-select-option-filtered]=\"!option.show\"\r\n (click)=\"cdkOption.select(); open.set(false)\"\r\n (keyup.enter)=\"open.set(false)\">\r\n @if(_optionTemplate) {\r\n <ng-container *ngTemplateOutlet=\"_optionTemplate; context: { $implicit: option}\" />\r\n } @else {\r\n @let v = formatBy()(option.value);\r\n @if(v) {\r\n {{v}}\r\n }@else {\r\n \r\n }\r\n }\r\n </li>\r\n }\r\n </ul>\r\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { SelectComponent } from './select.component';\r\n\r\nconst Items = [SelectComponent]\r\n\r\n/**\r\n * Select module.\r\n */\r\n@NgModule({\r\n imports: Items,\r\n exports: Items\r\n})\r\nexport class SelectModule { }\r\n","// export * from './types';\r\nexport * from './select.component';\r\nexport * from './select.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, EventEmitter, effect, Output, Component, computed, ContentChildren, NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { BackdropComponent } from '@bootkit/ng0/components/backdrop';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This component is used to display a sidenav panel.
|
|
8
|
+
* It can be positioned on the left or right side of the screen.
|
|
9
|
+
* It can be opened or closed and can have a backdrop.
|
|
10
|
+
*/
|
|
11
|
+
class SidenavComponent {
|
|
12
|
+
_vcr;
|
|
13
|
+
_elmentRef;
|
|
14
|
+
_renderer;
|
|
15
|
+
open = input(true, ...(ngDevMode ? [{ debugName: "open" }] : []));
|
|
16
|
+
mode = input('push', ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
17
|
+
hasBackdrop = input(true, ...(ngDevMode ? [{ debugName: "hasBackdrop" }] : []));
|
|
18
|
+
zIndex = input(...(ngDevMode ? [undefined, { debugName: "zIndex" }] : []));
|
|
19
|
+
position = input('start', ...(ngDevMode ? [{ debugName: "position" }] : []));
|
|
20
|
+
sidenavWidth = input.required(...(ngDevMode ? [{ debugName: "sidenavWidth" }] : []));
|
|
21
|
+
fixedInViewport = input(false, ...(ngDevMode ? [{ debugName: "fixedInViewport" }] : []));
|
|
22
|
+
backdropClick = new EventEmitter();
|
|
23
|
+
_backdropRef;
|
|
24
|
+
_backdropClickHandlerUnlisten;
|
|
25
|
+
constructor(_vcr, _elmentRef, _renderer) {
|
|
26
|
+
this._vcr = _vcr;
|
|
27
|
+
this._elmentRef = _elmentRef;
|
|
28
|
+
this._renderer = _renderer;
|
|
29
|
+
effect(() => {
|
|
30
|
+
var hasBackdrop = this.hasBackdrop();
|
|
31
|
+
var mode = this.mode();
|
|
32
|
+
var open = this.open();
|
|
33
|
+
if (mode == 'over' && hasBackdrop && open) {
|
|
34
|
+
this._createBackdrop();
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this._destroyBackdrop();
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
}
|
|
43
|
+
_createBackdrop() {
|
|
44
|
+
this._backdropRef = this._vcr.createComponent(BackdropComponent);
|
|
45
|
+
const backdropElm = this._backdropRef.location.nativeElement;
|
|
46
|
+
this._backdropRef.instance.fixed.set(this.fixedInViewport());
|
|
47
|
+
if (this.zIndex() != undefined) {
|
|
48
|
+
this._renderer.setStyle(backdropElm, 'z-index', this.zIndex());
|
|
49
|
+
}
|
|
50
|
+
this._backdropClickHandlerUnlisten = this._renderer.listen(backdropElm, 'click', (e) => {
|
|
51
|
+
this.backdropClick.emit(e);
|
|
52
|
+
});
|
|
53
|
+
// Move backdrop element before Host element
|
|
54
|
+
const hostElm = this._elmentRef.nativeElement;
|
|
55
|
+
const parentElm = hostElm.parentNode;
|
|
56
|
+
this._renderer.insertBefore(parentElm, backdropElm, hostElm);
|
|
57
|
+
}
|
|
58
|
+
_destroyBackdrop() {
|
|
59
|
+
this._backdropClickHandlerUnlisten?.();
|
|
60
|
+
this._backdropRef?.destroy();
|
|
61
|
+
this._backdropClickHandlerUnlisten = undefined;
|
|
62
|
+
this._backdropRef = undefined;
|
|
63
|
+
}
|
|
64
|
+
ngOnDestroy() {
|
|
65
|
+
this._destroyBackdrop();
|
|
66
|
+
}
|
|
67
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.1", type: SidenavComponent, isStandalone: true, selector: "ng0-sidenav", inputs: { open: { classPropertyName: "open", publicName: "open", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, sidenavWidth: { classPropertyName: "sidenavWidth", publicName: "sidenavWidth", isSignal: true, isRequired: true, transformFunction: null }, fixedInViewport: { classPropertyName: "fixedInViewport", publicName: "fixedInViewport", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { properties: { "style.width": "sidenavWidth() + 'px'", "style.z-index": "zIndex()", "class.ng0-sidenav-start": "position() == 'start'", "class.ng0-sidenav-end": "position() == 'end'", "class.ng0-sidenav-open": "open()", "class.ng0-sidenav-show-backdrop": "true", "class.ng0-sidenav-fixed": "fixedInViewport()" } }, providers: [], ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n<!-- @if(open() && mode() == 'over' && hasBackdrop()) {\r\n<div class=\"ng0-sidenav-backdrop\"></div>\r\n} -->", styles: [":host{display:block;position:absolute;top:0;bottom:0;overflow-x:hidden;transition:transform var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function)}:host.ng0-sidenav-fixed{position:fixed!important}:host.ng0-sidenav-start{inset-inline-start:0;transform:translate(-100%)}:dir(rtl) :host.ng0-sidenav-start,body[dir=rtl] :host.ng0-sidenav-start{transform:translate(100%)}:host.ng0-sidenav-start.ng0-sidenav-open{transform:translate(0)!important}:host.ng0-sidenav-end{inset-inline-end:0;transform:translate(100%)}:dir(rtl) :host.ng0-sidenav-end,body[dir=rtl] :host.ng0-sidenav-end{transform:translate(-100%)}:host.ng0-sidenav-end.ng0-sidenav-open{transform:translate(0)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavComponent, decorators: [{
|
|
71
|
+
type: Component,
|
|
72
|
+
args: [{ selector: 'ng0-sidenav', providers: [], standalone: true, imports: [
|
|
73
|
+
CommonModule,
|
|
74
|
+
], host: {
|
|
75
|
+
"[style.width]": "sidenavWidth() + 'px'",
|
|
76
|
+
"[style.z-index]": "zIndex()",
|
|
77
|
+
"[class.ng0-sidenav-start]": "position() == 'start'",
|
|
78
|
+
"[class.ng0-sidenav-end]": "position() == 'end'",
|
|
79
|
+
"[class.ng0-sidenav-open]": "open()",
|
|
80
|
+
"[class.ng0-sidenav-show-backdrop]": "true",
|
|
81
|
+
"[class.ng0-sidenav-fixed]": "fixedInViewport()",
|
|
82
|
+
}, template: "<ng-content></ng-content>\r\n\r\n<!-- @if(open() && mode() == 'over' && hasBackdrop()) {\r\n<div class=\"ng0-sidenav-backdrop\"></div>\r\n} -->", styles: [":host{display:block;position:absolute;top:0;bottom:0;overflow-x:hidden;transition:transform var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function)}:host.ng0-sidenav-fixed{position:fixed!important}:host.ng0-sidenav-start{inset-inline-start:0;transform:translate(-100%)}:dir(rtl) :host.ng0-sidenav-start,body[dir=rtl] :host.ng0-sidenav-start{transform:translate(100%)}:host.ng0-sidenav-start.ng0-sidenav-open{transform:translate(0)!important}:host.ng0-sidenav-end{inset-inline-end:0;transform:translate(100%)}:dir(rtl) :host.ng0-sidenav-end,body[dir=rtl] :host.ng0-sidenav-end{transform:translate(-100%)}:host.ng0-sidenav-end.ng0-sidenav-open{transform:translate(0)!important}\n"] }]
|
|
83
|
+
}], ctorParameters: () => [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { backdropClick: [{
|
|
84
|
+
type: Output
|
|
85
|
+
}] } });
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* This component is used to contain multiple sidenav components and manage their layout.
|
|
89
|
+
*/
|
|
90
|
+
class SidenavContainerComponent {
|
|
91
|
+
backdropClick = new EventEmitter();
|
|
92
|
+
_sidenavs;
|
|
93
|
+
_contentPaddingStart = computed(() => {
|
|
94
|
+
let widths = this._sidenavs.filter(x => x.open() && x.position() == 'start' && x.mode() == 'push').map(x => x.sidenavWidth());
|
|
95
|
+
return widths.length == 0 ? '0' : `${Math.max(...widths)}px`;
|
|
96
|
+
}, ...(ngDevMode ? [{ debugName: "_contentPaddingStart" }] : []));
|
|
97
|
+
_contentPaddingEnd = computed(() => {
|
|
98
|
+
let widths = this._sidenavs.filter(x => x.open() && x.position() == 'end' && x.mode() == 'push').map(x => x.sidenavWidth());
|
|
99
|
+
return widths.length == 0 ? '0' : `${Math.max(...widths)}px`;
|
|
100
|
+
}, ...(ngDevMode ? [{ debugName: "_contentPaddingEnd" }] : []));
|
|
101
|
+
constructor() {
|
|
102
|
+
}
|
|
103
|
+
ngOnInit() {
|
|
104
|
+
}
|
|
105
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: SidenavContainerComponent, isStandalone: true, selector: "ng0-sidenav-container", outputs: { backdropClick: "backdropClick" }, host: { properties: { "style.padding-inline-start": "_contentPaddingStart()", "style.padding-inline-end": "_contentPaddingEnd()" } }, providers: [], queries: [{ propertyName: "_sidenavs", predicate: SidenavComponent }], ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: [":host{--ng0-sidenav-transition-duration: .1s;--ng0-sidenav-transition-function: ease-in-out;position:relative;transition:padding var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function);display:block;overflow-x:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] });
|
|
107
|
+
}
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavContainerComponent, decorators: [{
|
|
109
|
+
type: Component,
|
|
110
|
+
args: [{ selector: 'ng0-sidenav-container', providers: [], standalone: true, imports: [
|
|
111
|
+
CommonModule,
|
|
112
|
+
], host: {
|
|
113
|
+
"[style.padding-inline-start]": "_contentPaddingStart()",
|
|
114
|
+
"[style.padding-inline-end]": "_contentPaddingEnd()",
|
|
115
|
+
}, template: "<ng-content></ng-content>\r\n", styles: [":host{--ng0-sidenav-transition-duration: .1s;--ng0-sidenav-transition-function: ease-in-out;position:relative;transition:padding var(--ng0-sidenav-transition-duration) var(--ng0-sidenav-transition-function);display:block;overflow-x:hidden}\n"] }]
|
|
116
|
+
}], ctorParameters: () => [], propDecorators: { backdropClick: [{
|
|
117
|
+
type: Output
|
|
118
|
+
}], _sidenavs: [{
|
|
119
|
+
type: ContentChildren,
|
|
120
|
+
args: [SidenavComponent]
|
|
121
|
+
}] } });
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* This module is used to contain the sidenav components and provide their functionality.
|
|
125
|
+
*/
|
|
126
|
+
class SidenavModule {
|
|
127
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
128
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: SidenavModule, imports: [SidenavContainerComponent,
|
|
129
|
+
SidenavComponent], exports: [SidenavContainerComponent,
|
|
130
|
+
SidenavComponent] });
|
|
131
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavModule, imports: [SidenavContainerComponent,
|
|
132
|
+
SidenavComponent] });
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: SidenavModule, decorators: [{
|
|
135
|
+
type: NgModule,
|
|
136
|
+
args: [{
|
|
137
|
+
imports: [
|
|
138
|
+
SidenavContainerComponent,
|
|
139
|
+
SidenavComponent
|
|
140
|
+
],
|
|
141
|
+
exports: [
|
|
142
|
+
SidenavContainerComponent,
|
|
143
|
+
SidenavComponent
|
|
144
|
+
]
|
|
145
|
+
}]
|
|
146
|
+
}] });
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Generated bundle index. Do not edit.
|
|
150
|
+
*/
|
|
151
|
+
|
|
152
|
+
export { SidenavComponent, SidenavContainerComponent, SidenavModule };
|
|
153
|
+
//# sourceMappingURL=bootkit-ng0-components-sidenav.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-sidenav.mjs","sources":["../../../projects/ng0/components/sidenav/sidenav.component.ts","../../../projects/ng0/components/sidenav/sidenav.component.html","../../../projects/ng0/components/sidenav/sidenav-container.component.ts","../../../projects/ng0/components/sidenav/sidenav-container.component.html","../../../projects/ng0/components/sidenav/sidenav.module.ts","../../../projects/ng0/components/sidenav/bootkit-ng0-components-sidenav.ts"],"sourcesContent":["import { Component, ComponentRef, effect, ElementRef, EventEmitter, input, OnDestroy, OnInit, Output, Renderer2, ViewContainerRef } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SidenavMode, SidenavPosition } from './types';\r\nimport { BackdropComponent } from '@bootkit/ng0/components/backdrop';\r\n\r\n/**\r\n * This component is used to display a sidenav panel.\r\n * It can be positioned on the left or right side of the screen.\r\n * It can be opened or closed and can have a backdrop.\r\n */\r\n@Component({\r\n selector: 'ng0-sidenav',\r\n templateUrl: './sidenav.component.html',\r\n styleUrls: ['./sidenav.component.scss'],\r\n providers: [],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ],\r\n host: {\r\n \"[style.width]\": \"sidenavWidth() + 'px'\",\r\n \"[style.z-index]\": \"zIndex()\",\r\n \"[class.ng0-sidenav-start]\": \"position() == 'start'\",\r\n \"[class.ng0-sidenav-end]\": \"position() == 'end'\",\r\n \"[class.ng0-sidenav-open]\": \"open()\",\r\n \"[class.ng0-sidenav-show-backdrop]\": \"true\",\r\n \"[class.ng0-sidenav-fixed]\": \"fixedInViewport()\",\r\n }\r\n})\r\nexport class SidenavComponent implements OnInit, OnDestroy {\r\n public open = input(true);\r\n public mode = input<SidenavMode>('push');\r\n public hasBackdrop = input(true);\r\n public zIndex = input<number>();\r\n public position = input<SidenavPosition>('start');\r\n public sidenavWidth = input.required<number>();\r\n public fixedInViewport = input(false);\r\n @Output() public backdropClick = new EventEmitter<MouseEvent>();\r\n private _backdropRef?: ComponentRef<BackdropComponent>;\r\n private _backdropClickHandlerUnlisten?: () => void;\r\n\r\n\r\n constructor(private _vcr: ViewContainerRef, private _elmentRef: ElementRef, private _renderer: Renderer2) {\r\n effect(() => {\r\n var hasBackdrop = this.hasBackdrop();\r\n var mode = this.mode();\r\n var open = this.open();\r\n\r\n if (mode == 'over' && hasBackdrop && open) {\r\n this._createBackdrop();\r\n } else {\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private _createBackdrop() {\r\n this._backdropRef = this._vcr.createComponent(BackdropComponent);\r\n const backdropElm = this._backdropRef.location.nativeElement;\r\n this._backdropRef.instance.fixed.set(this.fixedInViewport());\r\n if(this.zIndex() != undefined) {\r\n this._renderer.setStyle(backdropElm, 'z-index', this.zIndex());\r\n }\r\n this._backdropClickHandlerUnlisten = this._renderer.listen(backdropElm, 'click', (e) => {\r\n this.backdropClick.emit(e);\r\n });\r\n\r\n // Move backdrop element before Host element\r\n const hostElm = this._elmentRef.nativeElement;\r\n const parentElm = hostElm.parentNode;\r\n this._renderer.insertBefore(parentElm, backdropElm, hostElm);\r\n }\r\n\r\n private _destroyBackdrop() {\r\n this._backdropClickHandlerUnlisten?.();\r\n this._backdropRef?.destroy();\r\n\r\n this._backdropClickHandlerUnlisten = undefined;\r\n this._backdropRef = undefined;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyBackdrop();\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n\r\n<!-- @if(open() && mode() == 'over' && hasBackdrop()) {\r\n<div class=\"ng0-sidenav-backdrop\"></div>\r\n} -->","import { Component, computed, ContentChildren, EventEmitter, HostBinding, OnInit, Output, QueryList } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SidenavComponent } from './sidenav.component';\r\n\r\n/**\r\n * This component is used to contain multiple sidenav components and manage their layout.\r\n */\r\n@Component({\r\n selector: 'ng0-sidenav-container',\r\n templateUrl: './sidenav-container.component.html',\r\n styleUrls: ['./sidenav-container.component.scss'],\r\n providers: [],\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ],\r\n host: {\r\n \"[style.padding-inline-start]\": \"_contentPaddingStart()\",\r\n \"[style.padding-inline-end]\": \"_contentPaddingEnd()\",\r\n }\r\n})\r\nexport class SidenavContainerComponent implements OnInit {\r\n\r\n @Output() backdropClick = new EventEmitter();\r\n @ContentChildren(SidenavComponent) protected _sidenavs!: QueryList<SidenavComponent>;\r\n\r\n protected _contentPaddingStart = computed(() => {\r\n let widths = this._sidenavs.filter(x => x.open() && x.position() == 'start' && x.mode() == 'push').map(x => x.sidenavWidth());\r\n return widths.length == 0 ? '0' : `${Math.max(...widths)}px`;\r\n });\r\n\r\n protected _contentPaddingEnd = computed(() => {\r\n let widths = this._sidenavs.filter(x => x.open() && x.position() == 'end' && x.mode() == 'push').map(x => x.sidenavWidth());\r\n return widths.length == 0 ? '0' : `${Math.max(...widths)}px`;\r\n });\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import { NgModule } from '@angular/core';\r\nimport { SidenavContainerComponent } from './sidenav-container.component';\r\nimport { SidenavComponent } from './sidenav.component';\r\n\r\n/**\r\n * This module is used to contain the sidenav components and provide their functionality.\r\n */\r\n@NgModule({\r\n imports: [\r\n SidenavContainerComponent,\r\n SidenavComponent\r\n ],\r\n exports: [\r\n SidenavContainerComponent,\r\n SidenavComponent\r\n ]\r\n})\r\nexport class SidenavModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, Directive, model, ContentChildren, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import { trigger, state, transition, style, animate } from '@angular/animations';
|
|
6
|
+
|
|
7
|
+
class StepDirective {
|
|
8
|
+
templateRef;
|
|
9
|
+
id = input.required(...(ngDevMode ? [{ debugName: "id", alias: 'iscStep' }] : [{ alias: 'iscStep' }]));
|
|
10
|
+
constructor(templateRef) {
|
|
11
|
+
this.templateRef = templateRef;
|
|
12
|
+
}
|
|
13
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.2.1", type: StepDirective, isStandalone: true, selector: "[ng0Step]", inputs: { id: { classPropertyName: "id", publicName: "iscStep", isSignal: true, isRequired: true, transformFunction: null } }, exportAs: ["ng0Step"], ngImport: i0 });
|
|
15
|
+
}
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
selector: '[ng0Step]',
|
|
20
|
+
exportAs: 'ng0Step',
|
|
21
|
+
standalone: true
|
|
22
|
+
}]
|
|
23
|
+
}], ctorParameters: () => [{ type: i0.TemplateRef }] });
|
|
24
|
+
|
|
25
|
+
class StepperComponent {
|
|
26
|
+
step = model.required(...(ngDevMode ? [{ debugName: "step" }] : []));
|
|
27
|
+
_steps;
|
|
28
|
+
constructor() {
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: StepperComponent, isStandalone: true, selector: "ng0-stepper", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { step: "stepChange" }, queries: [{ propertyName: "_steps", predicate: StepDirective }], exportAs: ["ng0Stepper"], ngImport: i0, template: "@for(s of _steps; track s.id(); let index = $index) {\r\n@let show=s.id() === step();\r\n\r\n<div [@stepAnimation]=\"show ? 'show' : 'hide'\" [class.d-none]=\"!show\">\r\n @if(show) {\r\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\r\n }\r\n</div>\r\n}", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
32
|
+
trigger('stepAnimation', [
|
|
33
|
+
state('hide', style({
|
|
34
|
+
opacity: 0,
|
|
35
|
+
})),
|
|
36
|
+
state('show', style({
|
|
37
|
+
opacity: 1,
|
|
38
|
+
})),
|
|
39
|
+
transition('show <=> hide', [
|
|
40
|
+
animate('.3s ease-out')
|
|
41
|
+
])
|
|
42
|
+
])
|
|
43
|
+
] });
|
|
44
|
+
}
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepperComponent, decorators: [{
|
|
46
|
+
type: Component,
|
|
47
|
+
args: [{ selector: 'ng0-stepper', exportAs: 'ng0Stepper', standalone: true, imports: [
|
|
48
|
+
CommonModule
|
|
49
|
+
], animations: [
|
|
50
|
+
trigger('stepAnimation', [
|
|
51
|
+
state('hide', style({
|
|
52
|
+
opacity: 0,
|
|
53
|
+
})),
|
|
54
|
+
state('show', style({
|
|
55
|
+
opacity: 1,
|
|
56
|
+
})),
|
|
57
|
+
transition('show <=> hide', [
|
|
58
|
+
animate('.3s ease-out')
|
|
59
|
+
])
|
|
60
|
+
])
|
|
61
|
+
], template: "@for(s of _steps; track s.id(); let index = $index) {\r\n@let show=s.id() === step();\r\n\r\n<div [@stepAnimation]=\"show ? 'show' : 'hide'\" [class.d-none]=\"!show\">\r\n @if(show) {\r\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\r\n }\r\n</div>\r\n}", styles: [":host{display:block}\n"] }]
|
|
62
|
+
}], ctorParameters: () => [], propDecorators: { _steps: [{
|
|
63
|
+
type: ContentChildren,
|
|
64
|
+
args: [StepDirective]
|
|
65
|
+
}] } });
|
|
66
|
+
|
|
67
|
+
const items = [
|
|
68
|
+
StepperComponent,
|
|
69
|
+
StepDirective
|
|
70
|
+
];
|
|
71
|
+
class StepperModule {
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
73
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.2.1", ngImport: i0, type: StepperModule, imports: [StepperComponent,
|
|
74
|
+
StepDirective], exports: [StepperComponent,
|
|
75
|
+
StepDirective] });
|
|
76
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepperModule, imports: [StepperComponent] });
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: StepperModule, decorators: [{
|
|
79
|
+
type: NgModule,
|
|
80
|
+
args: [{
|
|
81
|
+
imports: items,
|
|
82
|
+
exports: items
|
|
83
|
+
}]
|
|
84
|
+
}] });
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Generated bundle index. Do not edit.
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
export { StepDirective, StepperComponent, StepperModule };
|
|
91
|
+
//# sourceMappingURL=bootkit-ng0-components-stepper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bootkit-ng0-components-stepper.mjs","sources":["../../../projects/ng0/components/stepper/step.directive.ts","../../../projects/ng0/components/stepper/stepper.component.ts","../../../projects/ng0/components/stepper/stepper.component.html","../../../projects/ng0/components/stepper/stepper.module.ts","../../../projects/ng0/components/stepper/bootkit-ng0-components-stepper.ts"],"sourcesContent":["import { Directive, input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Step]',\r\n exportAs: 'ng0Step',\r\n standalone: true\r\n})\r\nexport class StepDirective {\r\n public id = input.required<any>({alias: 'iscStep'});\r\n\r\n constructor(public readonly templateRef: TemplateRef<any>) {\r\n }\r\n}\r\n","import { Component, ContentChildren, QueryList, model } from '@angular/core';\r\nimport { StepDirective } from './step.directive';\r\nimport { CommonModule } from '@angular/common';\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\n@Component({\r\n selector: 'ng0-stepper',\r\n exportAs: 'ng0Stepper',\r\n templateUrl: './stepper.component.html',\r\n styles: `:host{display: block}`,\r\n standalone: true,\r\n imports: [\r\n CommonModule\r\n ],\r\n animations: [\r\n trigger('stepAnimation', [\r\n state('hide', style({\r\n opacity: 0,\r\n })),\r\n state('show', style({\r\n opacity: 1,\r\n })),\r\n transition('show <=> hide', [\r\n animate('.3s ease-out')\r\n ])\r\n ])\r\n ]\r\n})\r\nexport class StepperComponent {\r\n public step = model.required<any>();\r\n @ContentChildren(StepDirective) protected _steps!: QueryList<StepDirective>;\r\n\r\n constructor() {\r\n }\r\n}\r\n","@for(s of _steps; track s.id(); let index = $index) {\r\n@let show=s.id() === step();\r\n\r\n<div [@stepAnimation]=\"show ? 'show' : 'hide'\" [class.d-none]=\"!show\">\r\n @if(show) {\r\n <ng-container [ngTemplateOutlet]=\"s.templateRef\"></ng-container>\r\n }\r\n</div>\r\n}","import { NgModule } from '@angular/core';\r\nimport { StepDirective } from './step.directive';\r\nimport { StepperComponent } from './stepper.component';\r\n\r\nconst items = [\r\n StepperComponent,\r\n StepDirective\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class StepperModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|