UNPKG

@sixbell-telco/sdk

Version:

A collection of reusable components designed for use in Sixbell Telco Angular projects

1 lines 21 kB
{"version":3,"file":"sixbell-telco-sdk-components-paginator.mjs","sources":["../../../projects/sdk/components/paginator/components/pagination-item/pagination-item.component.ts","../../../projects/sdk/components/paginator/components/pagination-item/pagination-item.component.html","../../../projects/sdk/components/paginator/src/paginator.component.ts","../../../projects/sdk/components/paginator/src/paginator.component.html","../../../projects/sdk/components/paginator/sixbell-telco-sdk-components-paginator.ts"],"sourcesContent":["import { Component, computed, input } from '@angular/core';\nimport { IconComponent } from '@sixbell-telco/sdk/components/icon';\nimport { matKeyboardArrowLeftOutline } from '@sixbell-telco/sdk/components/icon/material/outline';\nimport { TypographyDirective } from '@sixbell-telco/sdk/directives/typography';\nimport { cn } from '@sixbell-telco/sdk/utils/cn';\nimport { cva } from 'class-variance-authority';\n\n/**\n * @internal\n * Generates base pagination item classes with style variants\n */\nexport const paginationItemComponent = cva([], {\n\tvariants: {\n\t\tvariant: {\n\t\t\tnumeric: [\n\t\t\t\t'btn',\n\t\t\t\t'btn-outline',\n\t\t\t\t'flex',\n\t\t\t\t'text-base-content',\n\t\t\t\t'border-secondary',\n\t\t\t\t'hover:text-secondary-content',\n\t\t\t\t'hover:bg-secondary/40',\n\t\t\t\t'hover:border-secondary',\n\t\t\t\t'active:hover:bg-secondary-content',\n\t\t\t\t'active:hover:bg-secondary',\n\t\t\t\t'active:focus:border-secondary',\n\t\t\t\t'min-h-[30px]',\n\t\t\t\t'h-[30px]',\n\t\t\t\t'min-w-[30px]',\n\t\t\t\t'w-[30px]',\n\t\t\t\t'p-0',\n\t\t\t],\n\t\t\ticon: [\n\t\t\t\t'btn',\n\t\t\t\t'btn-outline',\n\t\t\t\t'flex',\n\t\t\t\t'text-base-content',\n\t\t\t\t'border-secondary',\n\t\t\t\t'hover:text-secondary-content',\n\t\t\t\t'hover:bg-secondary/40',\n\t\t\t\t'hover:border-secondary',\n\t\t\t\t'active:hover:bg-secondary-content',\n\t\t\t\t'active:hover:bg-secondary',\n\t\t\t\t'active:focus:border-secondary',\n\t\t\t\t'min-h-[30px]',\n\t\t\t\t'h-[30px]',\n\t\t\t\t'min-w-[30px]',\n\t\t\t\t'w-[30px]',\n\t\t\t\t'p-0',\n\t\t\t],\n\t\t\tdots: [\n\t\t\t\t'btn',\n\t\t\t\t'btn-circle',\n\t\t\t\t'flex',\n\t\t\t\t'border-secondary',\n\t\t\t\t'bg-secondary',\n\t\t\t\t'hover:bg-secondary/40',\n\t\t\t\t'hover:border-secondary',\n\t\t\t\t'hover:scale-150',\n\t\t\t\t'active:hover:bg-secondary',\n\t\t\t\t'active:border-secondary',\n\t\t\t\t'active:scale-150',\n\t\t\t\t'active:focus:border-secondary',\n\t\t\t\t'h-[10px]',\n\t\t\t\t'min-h-[10px]',\n\t\t\t\t'w-[10px]',\n\t\t\t\t'min-w-[10px]',\n\t\t\t\t'p-0',\n\t\t\t],\n\t\t},\n\t},\n\tcompoundVariants: [],\n\tdefaultVariants: {\n\t\tvariant: 'numeric',\n\t},\n});\n\n/** Possible pagination item style variants */\nexport type PaginationItemVariantProps = 'numeric' | 'icon' | 'dots' | null | undefined;\n\n/** Configuration object for pagination item styling */\nexport type PaginationItemProps = {\n\tvariant?: PaginationItemVariantProps;\n};\n\n/**\n * A compact pagination control component with interactive states\n *\n * @remarks\n * Built with Tailwind CSS and class-variance-authority for style management.\n * Supports three variants: numeric pages, navigation icons, and dot indicators.\n * Provides visual feedback for active and hover states.\n *\n * @example\n * ```html\n * <!-- Numeric page item -->\n * <st-pagination-item\n * variant=\"numeric\"\n * [number]=\"2\"\n * [active]=\"true\"\n * ></st-pagination-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Icon navigation -->\n * <st-pagination-item\n * variant=\"icon\"\n * icon=\"chevron-right\"\n * ></st-pagination-item>\n * ```\n *\n * @example\n * ```html\n * <!-- Active dot indicator -->\n * <st-pagination-item\n * variant=\"dots\"\n * [active]=\"true\"\n * ></st-pagination-item>\n * ```\n */\n@Component({\n\tselector: 'st-pagination-item',\n\timports: [IconComponent, TypographyDirective],\n\ttemplateUrl: './pagination-item.component.html',\n\tstyles: '',\n})\nexport class PaginationItemComponent {\n\t/**\n\t * Style variant for the pagination item\n\t * @defaultValue 'numeric'\n\t */\n\tvariant = input<PaginationItemVariantProps>();\n\n\t/**\n\t * Icon name from the icon library\n\t * @defaultValue matKeyboardArrowLeftOutline\n\t */\n\ticon = input<string>(matKeyboardArrowLeftOutline);\n\n\t/**\n\t * Display number or custom content\n\t * @defaultValue 1\n\t */\n\tnumber = input<number | string>(1);\n\n\t/**\n\t * Active state styling\n\t * @defaultValue false\n\t */\n\tactive = input<boolean>(false);\n\n\t/**\n\t * @internal\n\t * Computed class string for the pagination item\n\t */\n\tcomponentClass = computed(() => {\n\t\treturn cn(\n\t\t\tpaginationItemComponent({\n\t\t\t\tvariant: this.variant(),\n\t\t\t}),\n\t\t\t{\n\t\t\t\t'bg-secondary-content bg-secondary border-secondary text-secondary-content': this.active() && this.variant() !== 'dots',\n\t\t\t},\n\t\t\t{\n\t\t\t\t'hover:scale-100 hover:bg-secondary/100 w-[16px] h-[16px] bg-secondary border-secondary text-secondary-content':\n\t\t\t\t\tthis.active() && this.variant() === 'dots',\n\t\t\t},\n\t\t);\n\t});\n}\n","@let variantVar = this.variant();\n@let componentClassVar = this.componentClass();\n\n@if (variantVar === 'numeric') {\n\t<button [class]=\"componentClassVar\" type=\"button\">\n\t\t<span typography [tyVariant]=\"'body-sm'\" [tyColor]=\"'inherit'\" [tyFontWeight]=\"'normal'\">{{ number() }}</span>\n\t</button>\n} @else if (variantVar === 'icon') {\n\t<button [class]=\"componentClassVar\" type=\"button\">\n\t\t<st-icon [icon]=\"this.icon()\" color=\"inherit\" size=\"sm\"></st-icon>\n\t</button>\n} @else if (variantVar === 'dots') {\n\t<button [class]=\"componentClassVar\" type=\"button\">\n\t\t<span></span>\n\t</button>\n} @else {\n\t<button [class]=\"componentClassVar\" type=\"button\">\n\t\t<span typography [tyVariant]=\"'body-sm'\" [tyColor]=\"'inherit'\" [tyFontWeight]=\"'normal'\">{{ number() }}</span>\n\t</button>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output } from '@angular/core';\nimport {\n\tmatKeyboardArrowLeftOutline,\n\tmatKeyboardArrowRightOutline,\n\tmatKeyboardDoubleArrowLeftOutline,\n\tmatKeyboardDoubleArrowRightOutline,\n} from '@sixbell-telco/sdk/components/icon/material/outline';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { PaginationItemComponent } from '../components/pagination-item/pagination-item.component';\n\n/** Type of pagination display variant */\nexport type PaginationType = 'default' | 'dots';\n\n/**\n * A customizable pagination component with navigation controls\n *\n * @remarks\n * Supports both traditional numbered pagination and dot indicators.\n * Integrates with NgxPagination for advanced features while providing\n * custom styling and navigation controls.\n *\n * @example\n * ```html\n * <st-paginator\n * [pages]=\"10\"\n * type=\"default\"\n * (pageChanged)=\"onPageChange($event)\"\n * ></st-paginator>\n * ```\n *\n * @example\n * ```html\n * <st-paginator\n * [pages]=\"5\"\n * type=\"dots\"\n * [maxSize]=\"3\"\n * ></st-paginator>\n * ```\n */\n@Component({\n\tselector: 'st-paginator',\n\timports: [NgxPaginationModule, CommonModule, PaginationItemComponent],\n\ttemplateUrl: './paginator.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PaginatorComponent {\n\t/**\n\t * Unique identifier for the paginator instance\n\t * @defaultValue 'paginator'\n\t */\n\tpaginatorId = input<string>('paginator');\n\n\t/**\n\t * Maximum number of visible page items\n\t * @defaultValue 5\n\t */\n\tmaxSize = input<number>(5);\n\n\t/**\n\t * Pagination display variant\n\t * @defaultValue 'default'\n\t */\n\ttype = input<PaginationType>('default');\n\n\t/**\n\t * Event emitted when the current page changes\n\t */\n\tpageChanged = output<number>();\n\n\t/**\n\t * Total number of pages\n\t * @defaultValue 0\n\t */\n\tpages = input<number>(0);\n\n\t/**\n\t * @internal\n\t * Computed array of page numbers\n\t */\n\tpageCounter = computed(() => Array.from({ length: this.pages() }, (_, i) => i + 1));\n\n\t/**\n\t * Current active page\n\t * @defaultValue 1\n\t */\n\tcurrentPage = model<number>(1);\n\n\t/**\n\t * @internal\n\t * Left arrow icon reference\n\t */\n\ticonArrowLeft = matKeyboardArrowLeftOutline;\n\n\t/**\n\t * @internal\n\t * Double left arrow icon reference\n\t */\n\ticonDoubleArrowLeft = matKeyboardDoubleArrowLeftOutline;\n\n\t/**\n\t * @internal\n\t * Right arrow icon reference\n\t */\n\ticonArrowRight = matKeyboardArrowRightOutline;\n\n\t/**\n\t * @internal\n\t * Double right arrow icon reference\n\t */\n\ticonDoubleArrowRight = matKeyboardDoubleArrowRightOutline;\n\n\t/**\n\t * @internal\n\t * Handles page navigation changes\n\t * @param page - New page number\n\t */\n\thandlePageChange(page: number) {\n\t\tthis.currentPage.set(page);\n\t\tthis.pageChanged.emit(page);\n\t}\n\n\t/**\n\t * @internal\n\t * Navigates to previous page if available\n\t */\n\tpreviousPage() {\n\t\tif (this.currentPage() > 1) {\n\t\t\tthis.currentPage.set(this.currentPage() - 1);\n\t\t\tthis.pageChanged.emit(this.currentPage());\n\t\t}\n\t}\n\n\t/**\n\t * @internal\n\t * Navigates to next page if available\n\t */\n\tnextPage() {\n\t\tif (this.currentPage() < this.pages()) {\n\t\t\tthis.currentPage.set(this.currentPage() + 1);\n\t\t\tthis.pageChanged.emit(this.currentPage());\n\t\t}\n\t}\n\n\t/**\n\t * @internal\n\t * Jumps to first page\n\t */\n\tfirstPage() {\n\t\tthis.currentPage.set(1);\n\t\tthis.pageChanged.emit(1);\n\t}\n\n\t/**\n\t * @internal\n\t * Jumps to last page\n\t */\n\tlastPage() {\n\t\tthis.currentPage.set(this.pages());\n\t\tthis.pageChanged.emit(this.pages());\n\t}\n}\n","@if (type() === 'default') {\n\t<div class=\"flex\">\n\t\t<pagination-template [id]=\"paginatorId()\" #p=\"paginationApi\" [maxSize]=\"maxSize()\" (pageChange)=\"handlePageChange($event)\">\n\t\t\t<div class=\"flex items-center justify-center gap-2\">\n\t\t\t\t@if (pages()) {\n\t\t\t\t\t<!-- Standalone pagination -->\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconDoubleArrowLeft\"\n\t\t\t\t\t\t(click)=\"firstPage()\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconArrowLeft\"\n\t\t\t\t\t\t(click)=\"previousPage()\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t@for (page of pageCounter(); track $index) {\n\t\t\t\t\t\t@if (currentPage() !== page) {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\t(click)=\"handlePageChange(page)\"\n\t\t\t\t\t\t\t\tvariant=\"numeric\"\n\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[number]=\"page\"\n\t\t\t\t\t\t\t\t[active]=\"currentPage() === page\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\tvariant=\"numeric\"\n\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[number]=\"page\"\n\t\t\t\t\t\t\t\t[active]=\"currentPage() === page\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconArrowRight\"\n\t\t\t\t\t\t(click)=\"nextPage()\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconDoubleArrowRight\"\n\t\t\t\t\t\t(click)=\"lastPage()\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t} @else {\n\t\t\t\t\t<!-- Table pagination -->\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconDoubleArrowLeft\"\n\t\t\t\t\t\t(click)=\"!p.isFirstPage() ? handlePageChange(1) : null\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconArrowLeft\"\n\t\t\t\t\t\t(click)=\"!p.isFirstPage() ? p.previous() : null\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\n\t\t\t\t\t@for (page of p.pages; track $index) {\n\t\t\t\t\t\t@if (p.getCurrent() !== page.value) {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\t(click)=\"p.setCurrent(page.value)\"\n\t\t\t\t\t\t\t\tvariant=\"numeric\"\n\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[number]=\"page.label\"\n\t\t\t\t\t\t\t\t[active]=\"p.getCurrent() === page.value\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\tvariant=\"numeric\"\n\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[number]=\"page.label\"\n\t\t\t\t\t\t\t\t[active]=\"p.getCurrent() === page.value\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconArrowRight\"\n\t\t\t\t\t\t(click)=\"!p.isLastPage() ? p.next() : null\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t[icon]=\"iconDoubleArrowRight\"\n\t\t\t\t\t\t(click)=\"!p.isLastPage() ? handlePageChange(p.getLastPage()) : null\"\n\t\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\tshape=\"round-xs\"\n\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t></st-pagination-item>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</pagination-template>\n\t</div>\n}\n@if (type() === 'dots') {\n\t<div class=\"flex\">\n\t\t<pagination-template [id]=\"paginatorId()\" #p=\"paginationApi\" (pageChange)=\"handlePageChange($event)\" [maxSize]=\"10000\">\n\t\t\t<div class=\"flex items-center justify-center gap-2\">\n\t\t\t\t@if (pages()) {\n\t\t\t\t\t<!-- Standalone pagination -->\n\t\t\t\t\t@for (page of pageCounter(); track $index) {\n\t\t\t\t\t\t@if (currentPage() !== page) {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\t(click)=\"handlePageChange(page)\"\n\t\t\t\t\t\t\t\tvariant=\"dots\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tshape=\"round-lg\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[active]=\"currentPage() === page\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<st-pagination-item variant=\"dots\" size=\"xs\" shape=\"round-lg\" padding=\"none\" [active]=\"currentPage() === page\"></st-pagination-item>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} @else {\n\t\t\t\t\t<!-- Table pagination -->\n\t\t\t\t\t@for (page of p.pages; track $index) {\n\t\t\t\t\t\t@if (p.getCurrent() !== page.value) {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\t(click)=\"p.setCurrent(page.value)\"\n\t\t\t\t\t\t\t\tvariant=\"dots\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tshape=\"round-lg\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[active]=\"p.getCurrent() === page.value\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<st-pagination-item\n\t\t\t\t\t\t\t\tvariant=\"dots\"\n\t\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\t\tshape=\"round-lg\"\n\t\t\t\t\t\t\t\tpadding=\"none\"\n\t\t\t\t\t\t\t\t[active]=\"p.getCurrent() === page.value\"\n\t\t\t\t\t\t\t></st-pagination-item>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t</div>\n\t\t</pagination-template>\n\t</div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}