@shival99/z-ui 1.2.40 → 1.3.0
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/fesm2022/shival99-z-ui-components-z-icon.mjs +5 -1
- package/fesm2022/shival99-z-ui-components-z-icon.mjs.map +1 -1
- package/fesm2022/shival99-z-ui-components-z-steps.mjs +320 -0
- package/fesm2022/shival99-z-ui-components-z-steps.mjs.map +1 -0
- package/fesm2022/shival99-z-ui-i18n.mjs +4 -0
- package/fesm2022/shival99-z-ui-i18n.mjs.map +1 -1
- package/package.json +5 -1
- package/types/shival99-z-ui-components-z-breadcrumb.d.ts +2 -2
- package/types/shival99-z-ui-components-z-button.d.ts +1 -1
- package/types/shival99-z-ui-components-z-calendar.d.ts +4 -4
- package/types/shival99-z-ui-components-z-dropdown-menu.d.ts +1 -1
- package/types/shival99-z-ui-components-z-empty.d.ts +1 -1
- package/types/shival99-z-ui-components-z-filter.d.ts +1 -1
- package/types/shival99-z-ui-components-z-icon.d.ts +5 -1
- package/types/shival99-z-ui-components-z-input.d.ts +2 -2
- package/types/shival99-z-ui-components-z-modal.d.ts +1 -1
- package/types/shival99-z-ui-components-z-select.d.ts +3 -3
- package/types/shival99-z-ui-components-z-steps.d.ts +104 -0
- package/types/shival99-z-ui-components-z-timeline.d.ts +6 -6
- package/types/shival99-z-ui-components-z-upload.d.ts +3 -3
|
@@ -5,7 +5,7 @@ import { zMergeClasses } from '@shival99/z-ui/utils';
|
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
6
6
|
import { saxRefreshBold, saxCloudChangeBold, saxPauseBold } from '@ng-icons/iconsax/bold';
|
|
7
7
|
import { saxEditOutline } from '@ng-icons/iconsax/outline';
|
|
8
|
-
import { lucideEllipsisVertical, lucideSquarePlay, lucidePlay, lucideAudioLines, lucideMic, lucideMessageSquareText, lucideWandSparkles, lucideSparkle, lucideDumbbell, lucideCpu, lucideBrainCog, lucideBrainCircuit, lucideBrain, lucideBotOff, lucideBotMessageSquare, lucidePlug2, lucidePlug, lucideRecycle, lucideIdCard, lucideContact, lucideClipboardCopy, lucideBadge, lucideZoomOut, lucideZoomIn, lucideWand2, lucideTicket, lucideTags, lucideTag, lucideShoppingBag, lucidePackageCheck, lucideClipboardPen, lucideReceipt, lucidePercent, lucideType, lucideBuilding, lucideBan, lucideFunnelX, lucideFilter, lucideAlertTriangle, lucideGitBranch, lucideMoreVertical, lucideSearchX, lucidePin, lucideGripVertical, lucideTable2, lucideFileArchive, lucideFileJson, lucideFileCode, lucideMusic, lucideFile, lucideDownload, lucideUploadCloud, lucideUpload, lucideToggleLeft, lucideCircleDot, lucideSquareCheck, lucideSparkles, lucideFolders, lucideUserSearch, lucidePieChart, lucideTextCursor, lucideListFilter, lucideNavigation, lucideFileEdit, lucideSliders, lucideCheckCircle, lucideFolderTree, lucideGrid3x3, lucideUsers2, lucideBarChart3, lucideRocket, lucideSquare, lucidePenTool, lucideMegaphone, lucideHash, lucideList, lucideImage, lucideGripHorizontal, lucideCircleHelp, lucideFileOutput, lucideLayoutTemplate, lucideSquarePen, lucideFolderOpen, lucideHome, lucideBarChart, lucideCloud, lucideLifeBuoy, lucideGithub, lucideLoader2, lucidePanelRightOpen, lucideComponent, lucideMessageCircleQuestion, lucideCircleAlert, lucideMessageCircle, lucideAlertOctagon, lucideLoader, lucideMoon, lucideSun, lucideListChevronsUpDown, lucideListChevronsDownUp, lucideFileCheck, lucideDatabaseBackup, lucideLink, lucideXCircle, lucideAlertCircle, lucideCheckCircle2, lucideBell, lucideChartColumnIncreasing, lucideBrushCleaning, lucideFastForward, lucideListChecks, lucideRefreshCwOff, lucideFileClock, lucideBookUp2, lucideFilePlus2, lucideFilePlus, lucideListPlus, lucideScanLine, lucideQrCode, lucideScanQrCode, lucideCode, lucideBarcode, lucideHardDriveDownload, lucideMailPlus, lucideCloudCheck, lucideWifiZero, lucideFileSymlink, lucideLockKeyholeOpen, lucideBadgeX, lucideCircleCheckBig, lucideShieldCheck, lucideBadgeCheck, lucideCheckLine, lucideCircleX, lucideArrowDownUp, lucideFilePenLine, lucideUserRoundPen, lucideCopy, lucidePaperclip, lucidePause, lucideSend, lucideBot, lucideTableOfContents, lucideFileUp, lucideNotepadText, lucideCalendarCheck, lucideCalendar1, lucideCalendarRange, lucideChartLine, lucideChartPie, lucideChartBar, lucideHouse, lucideCircleCheck, lucideUserLock, lucideArrowUp, lucideArrowDown, lucideLockKeyhole, lucideRefreshCcw, lucideWifi, lucideTruck, lucideTerminal, lucideTablet, lucideSmartphone, lucideServer, lucideRadio, lucidePrinter, lucidePhoneCall, lucidePalette, lucideNetwork, lucideMailCheck, lucideLightbulb, lucideKey, lucideHeadphones, lucideGlobe, lucideFileSpreadsheet, lucideCreditCard, lucideCar, lucideBuilding2, lucideWrench, lucideWallet, lucideVideo, lucideUserPlus, lucideTrendingDown, lucideTimer, lucideStethoscope, lucideStar, lucideShield, lucidePhone, lucideMonitor, lucideMapPin, lucideHospital, lucideHeart, lucideGraduationCap, lucideFileText, lucideDollarSign, lucideDatabase, lucideClipboardList, lucideCalculator, lucideCalendar, lucideBookOpen, lucideClock, lucideInbox, lucidePackageOpen, lucideBellMinus, lucideCog, lucideBox, lucideMinus, lucideBadgeInfo, lucideCrown, lucideFiles, lucideX, lucideAlignJustify, lucideFunnel, lucideFileDown, lucideTrash2, lucideSlidersHorizontal, lucideBellRing, lucideChevronsRight, lucideChevronsLeft, lucideLoaderCircle, lucideWarehouse, lucideWorkflow, lucideTarget, lucideBriefcase, lucideLayers, lucideInfo, lucideMousePointer, lucideZap, lucideActivity, lucideUserCheck, lucideShoppingCart, lucidePackage, lucideTrendingUp, lucideChevronUp, lucideLogs, lucideUsersRound, lucideChartColumn, lucideLayoutDashboard, lucidePanelLeftOpen, lucidePanelLeftClose, lucideEllipsis, lucideEyeOff, lucideEye, lucideUsers, lucideSearch, lucidePlus, lucideChevronDown, lucideChevronRight, lucideChevronLeft, lucideSettings2, lucideCalendarFold, lucidePill, lucideSettings, lucideUser, lucideLogOut, lucideLock, lucideMenu, lucideArrowRight, lucideArrowLeft, lucideLayoutGrid, lucideMail, lucidePencil, lucideCheck, lucideMessageSquareWarning, lucideTriangleAlert, lucideCheckCheck, lucideMessageSquareDot, lucideFlagTriangleRight, lucideFlag, lucideSaveAll, lucideSave, lucideClipboardPlus, lucideAlarmClock, lucideBookCheck, lucideChartBarStacked, lucideStore, lucideLayers2 } from '@ng-icons/lucide';
|
|
8
|
+
import { lucideHelpCircle, lucideFolder, lucideCircle, lucideUserSquare, lucideEllipsisVertical, lucideSquarePlay, lucidePlay, lucideAudioLines, lucideMic, lucideMessageSquareText, lucideWandSparkles, lucideSparkle, lucideDumbbell, lucideCpu, lucideBrainCog, lucideBrainCircuit, lucideBrain, lucideBotOff, lucideBotMessageSquare, lucidePlug2, lucidePlug, lucideRecycle, lucideIdCard, lucideContact, lucideClipboardCopy, lucideBadge, lucideZoomOut, lucideZoomIn, lucideWand2, lucideTicket, lucideTags, lucideTag, lucideShoppingBag, lucidePackageCheck, lucideClipboardPen, lucideReceipt, lucidePercent, lucideType, lucideBuilding, lucideBan, lucideFunnelX, lucideFilter, lucideAlertTriangle, lucideGitBranch, lucideMoreVertical, lucideSearchX, lucidePin, lucideGripVertical, lucideTable2, lucideFileArchive, lucideFileJson, lucideFileCode, lucideMusic, lucideFile, lucideDownload, lucideUploadCloud, lucideUpload, lucideToggleLeft, lucideCircleDot, lucideSquareCheck, lucideSparkles, lucideFolders, lucideUserSearch, lucidePieChart, lucideTextCursor, lucideListFilter, lucideNavigation, lucideFileEdit, lucideSliders, lucideCheckCircle, lucideFolderTree, lucideGrid3x3, lucideUsers2, lucideBarChart3, lucideRocket, lucideSquare, lucidePenTool, lucideMegaphone, lucideHash, lucideList, lucideImage, lucideGripHorizontal, lucideCircleHelp, lucideFileOutput, lucideLayoutTemplate, lucideSquarePen, lucideFolderOpen, lucideHome, lucideBarChart, lucideCloud, lucideLifeBuoy, lucideGithub, lucideLoader2, lucidePanelRightOpen, lucideComponent, lucideMessageCircleQuestion, lucideCircleAlert, lucideMessageCircle, lucideAlertOctagon, lucideLoader, lucideMoon, lucideSun, lucideListChevronsUpDown, lucideListChevronsDownUp, lucideFileCheck, lucideDatabaseBackup, lucideLink, lucideXCircle, lucideAlertCircle, lucideCheckCircle2, lucideBell, lucideChartColumnIncreasing, lucideBrushCleaning, lucideFastForward, lucideListChecks, lucideRefreshCwOff, lucideFileClock, lucideBookUp2, lucideFilePlus2, lucideFilePlus, lucideListPlus, lucideScanLine, lucideQrCode, lucideScanQrCode, lucideCode, lucideBarcode, lucideHardDriveDownload, lucideMailPlus, lucideCloudCheck, lucideWifiZero, lucideFileSymlink, lucideLockKeyholeOpen, lucideBadgeX, lucideCircleCheckBig, lucideShieldCheck, lucideBadgeCheck, lucideCheckLine, lucideCircleX, lucideArrowDownUp, lucideFilePenLine, lucideUserRoundPen, lucideCopy, lucidePaperclip, lucidePause, lucideSend, lucideBot, lucideTableOfContents, lucideFileUp, lucideNotepadText, lucideCalendarCheck, lucideCalendar1, lucideCalendarRange, lucideChartLine, lucideChartPie, lucideChartBar, lucideHouse, lucideCircleCheck, lucideUserLock, lucideArrowUp, lucideArrowDown, lucideLockKeyhole, lucideRefreshCcw, lucideWifi, lucideTruck, lucideTerminal, lucideTablet, lucideSmartphone, lucideServer, lucideRadio, lucidePrinter, lucidePhoneCall, lucidePalette, lucideNetwork, lucideMailCheck, lucideLightbulb, lucideKey, lucideHeadphones, lucideGlobe, lucideFileSpreadsheet, lucideCreditCard, lucideCar, lucideBuilding2, lucideWrench, lucideWallet, lucideVideo, lucideUserPlus, lucideTrendingDown, lucideTimer, lucideStethoscope, lucideStar, lucideShield, lucidePhone, lucideMonitor, lucideMapPin, lucideHospital, lucideHeart, lucideGraduationCap, lucideFileText, lucideDollarSign, lucideDatabase, lucideClipboardList, lucideCalculator, lucideCalendar, lucideBookOpen, lucideClock, lucideInbox, lucidePackageOpen, lucideBellMinus, lucideCog, lucideBox, lucideMinus, lucideBadgeInfo, lucideCrown, lucideFiles, lucideX, lucideAlignJustify, lucideFunnel, lucideFileDown, lucideTrash2, lucideSlidersHorizontal, lucideBellRing, lucideChevronsRight, lucideChevronsLeft, lucideLoaderCircle, lucideWarehouse, lucideWorkflow, lucideTarget, lucideBriefcase, lucideLayers, lucideInfo, lucideMousePointer, lucideZap, lucideActivity, lucideUserCheck, lucideShoppingCart, lucidePackage, lucideTrendingUp, lucideChevronUp, lucideLogs, lucideUsersRound, lucideChartColumn, lucideLayoutDashboard, lucidePanelLeftOpen, lucidePanelLeftClose, lucideEllipsis, lucideEyeOff, lucideEye, lucideUsers, lucideSearch, lucidePlus, lucideChevronDown, lucideChevronRight, lucideChevronLeft, lucideSettings2, lucideCalendarFold, lucidePill, lucideSettings, lucideUser, lucideLogOut, lucideLock, lucideMenu, lucideArrowRight, lucideArrowLeft, lucideLayoutGrid, lucideMail, lucidePencil, lucideCheck, lucideMessageSquareWarning, lucideTriangleAlert, lucideCheckCheck, lucideMessageSquareDot, lucideFlagTriangleRight, lucideFlag, lucideSaveAll, lucideSave, lucideClipboardPlus, lucideAlarmClock, lucideBookCheck, lucideChartBarStacked, lucideStore, lucideLayers2 } from '@ng-icons/lucide';
|
|
9
9
|
import { HttpClient } from '@angular/common/http';
|
|
10
10
|
import { ZIndexDbService } from '@shival99/z-ui/services';
|
|
11
11
|
import { from, switchMap, of, map, tap, catchError } from 'rxjs';
|
|
@@ -352,6 +352,10 @@ const Z_ICONS = {
|
|
|
352
352
|
lucideSquarePlay,
|
|
353
353
|
lucideEllipsisVertical,
|
|
354
354
|
saxEditOutline,
|
|
355
|
+
lucideUserSquare,
|
|
356
|
+
lucideCircle,
|
|
357
|
+
lucideFolder,
|
|
358
|
+
lucideHelpCircle,
|
|
355
359
|
};
|
|
356
360
|
|
|
357
361
|
const iconCacheDb = new ZIndexDbService({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shival99-z-ui-components-z-icon.mjs","sources":["../../../../libs/core-ui/components/z-icon/z-icon.variants.ts","../../../../libs/core-ui/components/z-icon/z-icon.component.ts","../../../../libs/core-ui/components/z-icon/z-icon.component.html","../../../../libs/core-ui/components/z-icon/z-icons.ts","../../../../libs/core-ui/components/z-icon/z-icon-loader.provider.ts","../../../../libs/core-ui/components/z-icon/shival99-z-ui-components-z-icon.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zIconVariants = cva('', {\n variants: {\n zSize: {\n '10': 'size-10',\n '11': 'size-11',\n '12': 'size-12',\n '13': 'size-13',\n '14': 'size-14',\n '15': 'size-15',\n '16': 'size-16',\n '17': 'size-17',\n '18': 'size-18',\n '19': 'size-19',\n '20': 'size-20',\n '21': 'size-21',\n '22': 'size-22',\n '23': 'size-23',\n '24': 'size-24',\n '25': 'size-25',\n '26': 'size-26',\n '27': 'size-27',\n '28': 'size-28',\n '29': 'size-29',\n '30': 'size-30',\n '31': 'size-31',\n '32': 'size-32',\n '33': 'size-33',\n '34': 'size-34',\n '35': 'size-35',\n '36': 'size-36',\n '37': 'size-37',\n '38': 'size-38',\n '39': 'size-39',\n '40': 'size-40',\n },\n },\n defaultVariants: {\n zSize: '16',\n },\n});\n\nexport type ZIconVariants = VariantProps<typeof zIconVariants>;\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { NgIconComponent as NgIcon } from '@ng-icons/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { zIconVariants, ZIconVariants } from './z-icon.variants';\nimport { type ZIcon } from './z-icons';\n\n@Component({\n selector: 'z-icon, [z-icon]',\n imports: [NgIcon],\n standalone: true,\n templateUrl: './z-icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n '[style.width]': 'zSize() + \"px\"',\n '[style.height]': 'zSize() + \"px\"',\n },\n})\nexport class ZIconComponent {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZIcon>();\n public readonly zSize = input<ZIconVariants['zSize']>('16');\n public readonly zStrokeWidth = input<number>(2);\n public readonly zSvg = input<string>('');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zIconVariants({ zSize: this.zSize() }),\n this.class(),\n this.zStrokeWidth() === 0 ? 'stroke-none' : '',\n 'inline-flex shrink-0'\n )\n );\n}\n","@if (zSvg()) {\n <ng-icon [svg]=\"zSvg()\" [size]=\"zSize() || '16'\" [strokeWidth]=\"zStrokeWidth()\" />\n} @else {\n <ng-icon [name]=\"zType()\" [size]=\"zSize() || '16'\" [strokeWidth]=\"zStrokeWidth()\" />\n}\n","import { type IconType } from '@ng-icons/core';\nimport { saxCloudChangeBold, saxPauseBold, saxRefreshBold } from '@ng-icons/iconsax/bold';\nimport { saxEditOutline } from '@ng-icons/iconsax/outline';\nimport {\n lucideMoreVertical,\n lucideSearchX,\n lucidePin,\n lucideGripVertical,\n lucideSparkles,\n lucideList,\n lucideHash,\n lucideImage,\n lucideGripHorizontal,\n lucideHome,\n lucideFolderOpen,\n lucideGithub,\n lucideLifeBuoy,\n lucideCloud,\n lucideActivity,\n lucideAlarmClock,\n lucideAlertCircle,\n lucideAlertOctagon,\n lucideAlignJustify,\n lucideArrowDown,\n lucideArrowDownUp,\n lucideArrowLeft,\n lucideArrowRight,\n lucideArrowUp,\n lucideBadgeCheck,\n lucideBadgeInfo,\n lucideBadgeX,\n lucideBarcode,\n lucideBell,\n lucideBellMinus,\n lucideBellRing,\n lucideBookCheck,\n lucideBookOpen,\n lucideBookUp2,\n lucideBot,\n lucideBotMessageSquare,\n lucideBotOff,\n lucideBrain,\n lucideBrainCircuit,\n lucideBrainCog,\n lucideBox,\n lucideBriefcase,\n lucideBrushCleaning,\n lucideBuilding2,\n lucideCalculator,\n lucideCalendar,\n lucideCalendar1,\n lucideCalendarCheck,\n lucideCalendarFold,\n lucideCalendarRange,\n lucideCar,\n lucideChartBar,\n lucideChartBarStacked,\n lucideChartColumn,\n lucideChartColumnIncreasing,\n lucideChartLine,\n lucideChartPie,\n lucideCheck,\n lucideEllipsisVertical,\n lucideCheckCheck,\n lucideCheckCircle2,\n lucideCheckLine,\n lucideChevronDown,\n lucideChevronLeft,\n lucideChevronRight,\n lucideChevronsLeft,\n lucideChevronsRight,\n lucideChevronUp,\n lucideCircleAlert,\n lucideCircleCheck,\n lucideCircleCheckBig,\n lucideCircleX,\n lucideClipboardList,\n lucideClipboardPlus,\n lucideClock,\n lucideCloudCheck,\n lucideCode,\n lucideCog,\n lucideComponent,\n lucideCopy,\n lucideCreditCard,\n lucideCrown,\n lucideDatabase,\n lucideDatabaseBackup,\n lucideDollarSign,\n lucideEllipsis,\n lucideEye,\n lucideEyeOff,\n lucideFastForward,\n lucideFileCheck,\n lucideFileClock,\n lucideFileDown,\n lucideFilePenLine,\n lucideFilePlus,\n lucideFilePlus2,\n lucideFiles,\n lucideFileSpreadsheet,\n lucideFileSymlink,\n lucideFileText,\n lucideFileUp,\n lucideFlag,\n lucideFlagTriangleRight,\n lucideFilter,\n lucideFunnel,\n lucideFunnelX,\n lucideGlobe,\n lucideGraduationCap,\n lucideHardDriveDownload,\n lucideHeadphones,\n lucideHeart,\n lucideHospital,\n lucideHouse,\n lucideInbox,\n lucideInfo,\n lucideKey,\n lucideLayers,\n lucideLayers2,\n lucideLayoutDashboard,\n lucideLayoutGrid,\n lucideLightbulb,\n lucideLink,\n lucideListChecks,\n lucideListChevronsDownUp,\n lucideListChevronsUpDown,\n lucideListPlus,\n lucideLoader,\n lucideLoader2,\n lucideLoaderCircle,\n lucideLock,\n lucideLockKeyhole,\n lucideLockKeyholeOpen,\n lucideLogOut,\n lucideLogs,\n lucideMail,\n lucideMailCheck,\n lucideMailPlus,\n lucideMapPin,\n lucideMenu,\n lucideMessageCircle,\n lucideMessageCircleQuestion,\n lucideMessageSquareDot,\n lucideMessageSquareWarning,\n lucideMinus,\n lucideMonitor,\n lucideMoon,\n lucideMousePointer,\n lucideNetwork,\n lucideNotepadText,\n lucidePackage,\n lucidePackageOpen,\n lucidePalette,\n lucidePanelLeftClose,\n lucidePanelLeftOpen,\n lucidePanelRightOpen,\n lucidePaperclip,\n lucidePause,\n lucidePencil,\n lucidePhone,\n lucidePhoneCall,\n lucidePill,\n lucidePlus,\n lucidePrinter,\n lucideQrCode,\n lucideRadio,\n lucideRefreshCcw,\n lucideRefreshCwOff,\n lucideSave,\n lucideSaveAll,\n lucideScanLine,\n lucideScanQrCode,\n lucideSearch,\n lucideSend,\n lucideServer,\n lucideSettings,\n lucideSettings2,\n lucideShield,\n lucideShieldCheck,\n lucideShoppingCart,\n lucideSlidersHorizontal,\n lucideSmartphone,\n lucideStar,\n lucideStethoscope,\n lucideStore,\n lucideSun,\n lucideTableOfContents,\n lucideTablet,\n lucideTarget,\n lucideTerminal,\n lucideTimer,\n lucideTrash2,\n lucideTrendingDown,\n lucideTrendingUp,\n lucideTriangleAlert,\n lucideTruck,\n lucideUser,\n lucideUserCheck,\n lucideUserLock,\n lucideUserPlus,\n lucideUserRoundPen,\n lucideUsers,\n lucideUsersRound,\n lucideVideo,\n lucideWallet,\n lucideWarehouse,\n lucideWifi,\n lucideWifiZero,\n lucideWorkflow,\n lucideWrench,\n lucideX,\n lucideXCircle,\n lucideZap,\n lucideBarChart,\n lucideFileOutput,\n lucideLayoutTemplate,\n lucideSquarePen,\n lucideCircleHelp,\n lucideMegaphone,\n lucideSquare,\n lucidePenTool,\n lucideRocket,\n lucideBarChart3,\n lucideCheckCircle,\n lucideFolderTree,\n lucideGrid3x3,\n lucideSliders,\n lucideUsers2,\n lucideFileEdit,\n lucideNavigation,\n lucideListFilter,\n lucideTextCursor,\n lucidePieChart,\n lucideFolders,\n lucideUserSearch,\n lucideSquareCheck,\n lucideCircleDot,\n lucideToggleLeft,\n lucideUpload,\n lucideUploadCloud,\n lucideDownload,\n lucideFile,\n lucideMusic,\n lucideFileCode,\n lucideFileJson,\n lucideFileArchive,\n lucideTable2,\n lucideGitBranch,\n lucideAlertTriangle,\n lucideBan,\n lucideBuilding,\n lucideType,\n lucidePercent,\n lucideReceipt,\n lucideClipboardPen,\n lucidePackageCheck,\n lucideShoppingBag,\n lucideTag,\n lucideTags,\n lucideTicket,\n lucideWand2,\n lucideZoomIn,\n lucideZoomOut,\n lucideBadge,\n lucideClipboardCopy,\n lucideContact,\n lucideIdCard,\n lucideRecycle,\n lucidePlug2,\n lucidePlug,\n lucideCpu,\n lucideDumbbell,\n lucideSparkle,\n lucideWandSparkles,\n lucideMessageSquareText,\n lucideMic,\n lucideAudioLines,\n lucidePlay,\n lucideSquarePlay,\n} from '@ng-icons/lucide';\n\nexport const Z_ICONS = {\n lucideLayers2,\n lucideStore,\n lucideChartBarStacked,\n lucideBookCheck,\n lucideAlarmClock,\n lucideClipboardPlus,\n lucideSave,\n lucideSaveAll,\n lucideFlag,\n lucideFlagTriangleRight,\n lucideMessageSquareDot,\n lucideCheckCheck,\n lucideTriangleAlert,\n lucideMessageSquareWarning,\n lucideCheck,\n lucidePencil,\n lucideMail,\n lucideLayoutGrid,\n lucideArrowLeft,\n lucideArrowRight,\n lucideMenu,\n lucideLock,\n lucideLogOut,\n lucideUser,\n lucideSettings,\n lucidePill,\n lucideCalendarFold,\n lucideSettings2,\n lucideChevronLeft,\n lucideChevronRight,\n lucideChevronDown,\n lucidePlus,\n lucideSearch,\n lucideUsers,\n lucideEye,\n lucideEyeOff,\n lucideEllipsis,\n lucidePanelLeftClose,\n lucidePanelLeftOpen,\n lucideLayoutDashboard,\n lucideChartColumn,\n lucideUsersRound,\n lucideLogs,\n lucideChevronUp,\n lucideTrendingUp,\n lucidePackage,\n lucideShoppingCart,\n lucideUserCheck,\n lucideActivity,\n lucideZap,\n lucideMousePointer,\n lucideInfo,\n lucideLayers,\n lucideBriefcase,\n lucideTarget,\n lucideWorkflow,\n lucideWarehouse,\n lucideLoaderCircle,\n lucideChevronsLeft,\n lucideChevronsRight,\n lucideBellRing,\n lucideSlidersHorizontal,\n lucideTrash2,\n lucideFileDown,\n lucideFunnel,\n lucideAlignJustify,\n lucideX,\n lucideFiles,\n lucideCrown,\n lucideBadgeInfo,\n lucideMinus,\n lucideBox,\n lucideCog,\n lucideBellMinus,\n lucidePackageOpen,\n lucideInbox,\n lucideClock,\n lucideBookOpen,\n lucideCalendar,\n lucideCalculator,\n lucideClipboardList,\n lucideDatabase,\n lucideDollarSign,\n lucideFileText,\n lucideGraduationCap,\n lucideHeart,\n lucideHospital,\n lucideMapPin,\n lucideMonitor,\n lucidePhone,\n lucideShield,\n lucideStar,\n lucideStethoscope,\n lucideTimer,\n lucideTrendingDown,\n lucideUserPlus,\n lucideVideo,\n lucideWallet,\n lucideWrench,\n lucideBuilding2,\n lucideCar,\n lucideCreditCard,\n lucideFileSpreadsheet,\n lucideGlobe,\n lucideHeadphones,\n lucideKey,\n lucideLightbulb,\n lucideMailCheck,\n lucideNetwork,\n lucidePalette,\n lucidePhoneCall,\n lucidePrinter,\n lucideRadio,\n lucideServer,\n lucideSmartphone,\n lucideTablet,\n lucideTerminal,\n lucideTruck,\n lucideWifi,\n lucideRefreshCcw,\n lucideLockKeyhole,\n lucideArrowDown,\n lucideArrowUp,\n lucideUserLock,\n lucideCircleCheck,\n lucideHouse,\n lucideChartBar,\n lucideChartPie,\n lucideChartLine,\n lucideCalendarRange,\n lucideCalendar1,\n lucideCalendarCheck,\n lucideNotepadText,\n lucideFileUp,\n lucideTableOfContents,\n lucideBot,\n lucideSend,\n lucidePause,\n lucidePaperclip,\n saxPauseBold,\n lucideCopy,\n lucideUserRoundPen,\n lucideFilePenLine,\n lucideArrowDownUp,\n lucideCircleX,\n lucideCheckLine,\n lucideBadgeCheck,\n lucideShieldCheck,\n lucideCircleCheckBig,\n lucideBadgeX,\n lucideLockKeyholeOpen,\n lucideFileSymlink,\n lucideWifiZero,\n lucideCloudCheck,\n lucideMailPlus,\n lucideHardDriveDownload,\n saxCloudChangeBold,\n saxRefreshBold,\n lucideBarcode,\n lucideCode,\n lucideScanQrCode,\n lucideQrCode,\n lucideScanLine,\n lucideListPlus,\n lucideFilePlus,\n lucideFilePlus2,\n lucideBookUp2,\n lucideFileClock,\n lucideRefreshCwOff,\n lucideListChecks,\n lucideFastForward,\n lucideBrushCleaning,\n lucideChartColumnIncreasing,\n lucideBell,\n lucideCheckCircle2,\n lucideAlertCircle,\n lucideXCircle,\n lucideLink,\n lucideDatabaseBackup,\n lucideFileCheck,\n lucideListChevronsDownUp,\n lucideListChevronsUpDown,\n lucideSun,\n lucideMoon,\n lucideLoader,\n lucideAlertOctagon,\n lucideMessageCircle,\n lucideCircleAlert,\n lucideMessageCircleQuestion,\n lucideComponent,\n lucidePanelRightOpen,\n lucideLoader2,\n lucideGithub,\n lucideLifeBuoy,\n lucideCloud,\n lucideBarChart,\n lucideHome,\n lucideFolderOpen,\n lucideSquarePen,\n lucideLayoutTemplate,\n lucideFileOutput,\n lucideCircleHelp,\n lucideGripHorizontal,\n lucideImage,\n lucideList,\n lucideHash,\n lucideMegaphone,\n lucidePenTool,\n lucideSquare,\n lucideRocket,\n lucideBarChart3,\n lucideUsers2,\n lucideGrid3x3,\n lucideFolderTree,\n lucideCheckCircle,\n lucideSliders,\n lucideFileEdit,\n lucideNavigation,\n lucideListFilter,\n lucideTextCursor,\n lucidePieChart,\n lucideUserSearch,\n lucideFolders,\n lucideSparkles,\n lucideSquareCheck,\n lucideCircleDot,\n lucideToggleLeft,\n lucideUpload,\n lucideUploadCloud,\n lucideDownload,\n lucideFile,\n lucideMusic,\n lucideFileCode,\n lucideFileJson,\n lucideFileArchive,\n lucideTable2,\n lucideGripVertical,\n lucidePin,\n lucideSearchX,\n lucideMoreVertical,\n lucideGitBranch,\n lucideAlertTriangle,\n lucideFilter,\n lucideFunnelX,\n lucideBan,\n lucideBuilding,\n lucideType,\n lucidePercent,\n lucideReceipt,\n lucideClipboardPen,\n lucidePackageCheck,\n lucideShoppingBag,\n lucideTag,\n lucideTags,\n lucideTicket,\n lucideWand2,\n lucideZoomIn,\n lucideZoomOut,\n lucideBadge,\n lucideClipboardCopy,\n lucideContact,\n lucideIdCard,\n lucideRecycle,\n lucidePlug,\n lucidePlug2,\n lucideBotMessageSquare,\n lucideBotOff,\n lucideBrain,\n lucideBrainCircuit,\n lucideBrainCog,\n lucideCpu,\n lucideDumbbell,\n lucideSparkle,\n lucideWandSparkles,\n lucideMessageSquareText,\n lucideMic,\n lucideAudioLines,\n lucidePlay,\n lucideSquarePlay,\n lucideEllipsisVertical,\n saxEditOutline,\n} as const satisfies Record<string, IconType>;\n\nexport declare type ZIcon = keyof typeof Z_ICONS;\n","import { HttpClient } from '@angular/common/http';\nimport { type EnvironmentProviders, inject, makeEnvironmentProviders } from '@angular/core';\nimport { provideNgIconLoader, withCaching } from '@ng-icons/core';\nimport { ZIndexDbService } from '@shival99/z-ui/services';\nimport { catchError, from, map, type Observable, of, switchMap, tap } from 'rxjs';\nimport { Z_ICONS } from './z-icons';\n\nconst iconCacheDb = new ZIndexDbService({\n dbName: 'ZIconCache',\n version: 1,\n stores: [{ name: 'zIcons', encrypt: true }],\n defaultStore: 'zIcons',\n});\n\n/**\n * Normalizes Sax SVG to use currentColor and CSS variable for stroke-width.\n * This allows the icon to inherit color and strokeWidth from ng-icon props.\n */\nfunction normalizeSaxSvg(svg: string): string {\n const cssVar = 'style=\"stroke-width: var(--ng-icon__stroke-width, 2)\"';\n const normalized = svg.replace(/fill=\"#292D32\"/gi, 'fill=\"currentColor\"');\n return normalized.replace(/stroke-width=\"[^\"]*\"/gi, cssVar);\n}\n\n/**\n * Normalizes Lucide SVG to use CSS variable for stroke-width.\n * This allows ng-icon strokeWidth prop to work correctly.\n * Replaces hardcoded stroke-width with var(--ng-icon__stroke-width, 2).\n */\nfunction normalizeLucideSvg(svg: string): string {\n const cssVar = 'style=\"stroke-width: var(--ng-icon__stroke-width, 2)\"';\n return svg.replace(/stroke-width=\"[^\"]*\"/gi, cssVar);\n}\n\nfunction getFallbackIcon(name: string): string {\n const icon = Z_ICONS[name as keyof typeof Z_ICONS];\n if (icon) {\n // console.warn(`[ZIcon] Using bundled fallback for \"${name}\"`);\n return icon;\n }\n return '';\n}\n\n/**\n * Converts ng-icons icon name to Lucide CDN format.\n * Examples:\n * - lucideArrowLeft -> arrow-left\n * - lucideAlertCircle -> alert-circle\n * - lucideTrash2 -> trash-2\n * - lucideGrid3x3 -> grid-3-x-3\n */\nfunction convertLucideIconName(name: string): string {\n return name\n .replace(/^lucide/, '')\n .replace(/([A-Z])/g, '-$1')\n .replace(/(\\d+)/g, '-$1')\n .replace(/(\\d)([a-z])/g, '$1-$2')\n .toLowerCase()\n .replace(/^-/, '')\n .replace(/--+/g, '-');\n}\n\n/**\n * Converts ng-icons Sax icon name to CDN format.\n * Examples:\n * - saxCloudChangeBold -> bold/cloud-change\n * - saxPauseBold -> bold/pause\n * - saxRefreshBold -> bold/refresh\n * - saxHomeOutline -> outline/home\n * - saxUserLinear -> linear/user\n */\nfunction convertIconSaxIconName(name: string): { style: string; iconName: string } | null {\n let iconPart = name.replace(/^sax/, '');\n // Extract style suffix (Bold, Outline, Linear, Bulk, Broken, TwoTone)\n const styleMatch = iconPart.match(/(Bold|Outline|Linear|Bulk|Broken|TwoTone)$/i);\n if (!styleMatch) {\n return null;\n }\n\n const style = styleMatch[1].toLowerCase();\n const styleFolder = style === 'twotone' ? 'twotone' : style;\n iconPart = iconPart.replace(/(Bold|Outline|Linear|Bulk|Broken|TwoTone)$/i, '');\n const iconName = iconPart\n .replace(/([A-Z])/g, '-$1')\n .replace(/(\\d+)/g, '-$1')\n .toLowerCase()\n .replace(/^-/, '')\n .replace(/--+/g, '-');\n\n return { style: styleFolder, iconName };\n}\n\nconst LUCIDE_CDN_URL = 'https://cdn.jsdelivr.net/npm/lucide-static@latest/icons';\nconst SAX_CDN_URL = 'https://cdn.jsdelivr.net/gh/placetopay-org/iconsax-vue@main/src/Base';\n\n/**\n * Provides hybrid icon loading from CDN with fallback to bundled icons:\n * - Primary: Load icons from CDN (Lucide & Iconsax)\n * - Fallback: Use bundled icons from Z_ICONS if CDN fails\n *\n * @example\n * ```typescript\n * // app.config.ts\n * providers: [\n * provideHttpClient(),\n * provideZIconLoader(),\n * ]\n * ```\n */\nfunction loadWithCache(\n name: string,\n url: string,\n http: HttpClient,\n normalizer: (svg: string) => string\n): Observable<string> {\n return from(iconCacheDb.get<string>(name)).pipe(\n switchMap(cached => {\n if (cached) {\n return of(cached);\n }\n\n return http.get(url, { responseType: 'text' }).pipe(\n map(normalizer),\n tap(svg => {\n void iconCacheDb.set(name, svg);\n }),\n catchError(error => {\n console.error(`[ZIcon] Failed to load \"${name}\" from ${url}`, error);\n return of(getFallbackIcon(name));\n })\n );\n }),\n catchError(() => of(getFallbackIcon(name)))\n );\n}\n\nexport function provideZIconLoader(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideNgIconLoader(name => {\n const http = inject(HttpClient);\n\n if (name.startsWith('sax')) {\n const parsed = convertIconSaxIconName(name);\n if (!parsed) {\n console.warn(`[ZIcon] Invalid Sax icon name: \"${name}\"`);\n return of(getFallbackIcon(name));\n }\n\n const url = `${SAX_CDN_URL}/${parsed.style}/${parsed.iconName}.svg`;\n return loadWithCache(name, url, http, normalizeSaxSvg);\n }\n\n if (name.startsWith('lucide')) {\n const iconName = convertLucideIconName(name);\n const url = `${LUCIDE_CDN_URL}/${iconName}.svg`;\n return loadWithCache(name, url, http, normalizeLucideSvg);\n }\n\n console.warn(`[ZIcon] Unknown icon: \"${name}\"`);\n return of(getFallbackIcon(name));\n }, withCaching()),\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shival99-z-ui-components-z-icon.mjs","sources":["../../../../libs/core-ui/components/z-icon/z-icon.variants.ts","../../../../libs/core-ui/components/z-icon/z-icon.component.ts","../../../../libs/core-ui/components/z-icon/z-icon.component.html","../../../../libs/core-ui/components/z-icon/z-icons.ts","../../../../libs/core-ui/components/z-icon/z-icon-loader.provider.ts","../../../../libs/core-ui/components/z-icon/shival99-z-ui-components-z-icon.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const zIconVariants = cva('', {\n variants: {\n zSize: {\n '10': 'size-10',\n '11': 'size-11',\n '12': 'size-12',\n '13': 'size-13',\n '14': 'size-14',\n '15': 'size-15',\n '16': 'size-16',\n '17': 'size-17',\n '18': 'size-18',\n '19': 'size-19',\n '20': 'size-20',\n '21': 'size-21',\n '22': 'size-22',\n '23': 'size-23',\n '24': 'size-24',\n '25': 'size-25',\n '26': 'size-26',\n '27': 'size-27',\n '28': 'size-28',\n '29': 'size-29',\n '30': 'size-30',\n '31': 'size-31',\n '32': 'size-32',\n '33': 'size-33',\n '34': 'size-34',\n '35': 'size-35',\n '36': 'size-36',\n '37': 'size-37',\n '38': 'size-38',\n '39': 'size-39',\n '40': 'size-40',\n },\n },\n defaultVariants: {\n zSize: '16',\n },\n});\n\nexport type ZIconVariants = VariantProps<typeof zIconVariants>;\n","import { ChangeDetectionStrategy, Component, computed, input, ViewEncapsulation } from '@angular/core';\nimport { NgIconComponent as NgIcon } from '@ng-icons/core';\nimport { zMergeClasses } from '@shival99/z-ui/utils';\nimport type { ClassValue } from 'clsx';\nimport { zIconVariants, ZIconVariants } from './z-icon.variants';\nimport { type ZIcon } from './z-icons';\n\n@Component({\n selector: 'z-icon, [z-icon]',\n imports: [NgIcon],\n standalone: true,\n templateUrl: './z-icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': 'zClasses()',\n '[style.width]': 'zSize() + \"px\"',\n '[style.height]': 'zSize() + \"px\"',\n },\n})\nexport class ZIconComponent {\n public readonly class = input<ClassValue>('');\n public readonly zType = input<ZIcon>();\n public readonly zSize = input<ZIconVariants['zSize']>('16');\n public readonly zStrokeWidth = input<number>(2);\n public readonly zSvg = input<string>('');\n\n protected readonly zClasses = computed(() =>\n zMergeClasses(\n zIconVariants({ zSize: this.zSize() }),\n this.class(),\n this.zStrokeWidth() === 0 ? 'stroke-none' : '',\n 'inline-flex shrink-0'\n )\n );\n}\n","@if (zSvg()) {\n <ng-icon [svg]=\"zSvg()\" [size]=\"zSize() || '16'\" [strokeWidth]=\"zStrokeWidth()\" />\n} @else {\n <ng-icon [name]=\"zType()\" [size]=\"zSize() || '16'\" [strokeWidth]=\"zStrokeWidth()\" />\n}\n","import { type IconType } from '@ng-icons/core';\nimport { saxCloudChangeBold, saxPauseBold, saxRefreshBold } from '@ng-icons/iconsax/bold';\nimport { saxEditOutline } from '@ng-icons/iconsax/outline';\nimport {\n lucideHelpCircle,\n lucideCircle,\n lucideMoreVertical,\n lucideSearchX,\n lucidePin,\n lucideGripVertical,\n lucideSparkles,\n lucideList,\n lucideHash,\n lucideImage,\n lucideGripHorizontal,\n lucideHome,\n lucideFolderOpen,\n lucideGithub,\n lucideLifeBuoy,\n lucideCloud,\n lucideActivity,\n lucideAlarmClock,\n lucideAlertCircle,\n lucideAlertOctagon,\n lucideAlignJustify,\n lucideArrowDown,\n lucideArrowDownUp,\n lucideArrowLeft,\n lucideArrowRight,\n lucideArrowUp,\n lucideBadgeCheck,\n lucideBadgeInfo,\n lucideBadgeX,\n lucideBarcode,\n lucideBell,\n lucideBellMinus,\n lucideBellRing,\n lucideBookCheck,\n lucideBookOpen,\n lucideBookUp2,\n lucideBot,\n lucideBotMessageSquare,\n lucideBotOff,\n lucideBrain,\n lucideBrainCircuit,\n lucideBrainCog,\n lucideBox,\n lucideBriefcase,\n lucideBrushCleaning,\n lucideBuilding2,\n lucideCalculator,\n lucideCalendar,\n lucideCalendar1,\n lucideCalendarCheck,\n lucideCalendarFold,\n lucideCalendarRange,\n lucideCar,\n lucideChartBar,\n lucideChartBarStacked,\n lucideChartColumn,\n lucideChartColumnIncreasing,\n lucideChartLine,\n lucideChartPie,\n lucideCheck,\n lucideEllipsisVertical,\n lucideCheckCheck,\n lucideCheckCircle2,\n lucideCheckLine,\n lucideChevronDown,\n lucideChevronLeft,\n lucideChevronRight,\n lucideChevronsLeft,\n lucideChevronsRight,\n lucideChevronUp,\n lucideCircleAlert,\n lucideCircleCheck,\n lucideCircleCheckBig,\n lucideCircleX,\n lucideClipboardList,\n lucideClipboardPlus,\n lucideClock,\n lucideCloudCheck,\n lucideCode,\n lucideCog,\n lucideComponent,\n lucideCopy,\n lucideCreditCard,\n lucideCrown,\n lucideDatabase,\n lucideDatabaseBackup,\n lucideDollarSign,\n lucideEllipsis,\n lucideEye,\n lucideEyeOff,\n lucideFastForward,\n lucideFileCheck,\n lucideFileClock,\n lucideFileDown,\n lucideFilePenLine,\n lucideFilePlus,\n lucideFilePlus2,\n lucideFiles,\n lucideFileSpreadsheet,\n lucideFileSymlink,\n lucideFileText,\n lucideFileUp,\n lucideFlag,\n lucideFlagTriangleRight,\n lucideFilter,\n lucideFunnel,\n lucideFunnelX,\n lucideGlobe,\n lucideGraduationCap,\n lucideHardDriveDownload,\n lucideHeadphones,\n lucideHeart,\n lucideHospital,\n lucideHouse,\n lucideInbox,\n lucideInfo,\n lucideKey,\n lucideLayers,\n lucideLayers2,\n lucideLayoutDashboard,\n lucideLayoutGrid,\n lucideLightbulb,\n lucideLink,\n lucideListChecks,\n lucideListChevronsDownUp,\n lucideListChevronsUpDown,\n lucideListPlus,\n lucideLoader,\n lucideLoader2,\n lucideLoaderCircle,\n lucideLock,\n lucideLockKeyhole,\n lucideLockKeyholeOpen,\n lucideLogOut,\n lucideLogs,\n lucideMail,\n lucideMailCheck,\n lucideMailPlus,\n lucideMapPin,\n lucideMenu,\n lucideMessageCircle,\n lucideMessageCircleQuestion,\n lucideMessageSquareDot,\n lucideMessageSquareWarning,\n lucideMinus,\n lucideMonitor,\n lucideMoon,\n lucideMousePointer,\n lucideNetwork,\n lucideNotepadText,\n lucidePackage,\n lucidePackageOpen,\n lucidePalette,\n lucidePanelLeftClose,\n lucidePanelLeftOpen,\n lucidePanelRightOpen,\n lucidePaperclip,\n lucidePause,\n lucidePencil,\n lucidePhone,\n lucidePhoneCall,\n lucidePill,\n lucidePlus,\n lucidePrinter,\n lucideQrCode,\n lucideRadio,\n lucideRefreshCcw,\n lucideRefreshCwOff,\n lucideSave,\n lucideSaveAll,\n lucideScanLine,\n lucideScanQrCode,\n lucideSearch,\n lucideSend,\n lucideServer,\n lucideSettings,\n lucideSettings2,\n lucideShield,\n lucideShieldCheck,\n lucideShoppingCart,\n lucideSlidersHorizontal,\n lucideSmartphone,\n lucideStar,\n lucideStethoscope,\n lucideStore,\n lucideSun,\n lucideTableOfContents,\n lucideTablet,\n lucideTarget,\n lucideTerminal,\n lucideTimer,\n lucideTrash2,\n lucideTrendingDown,\n lucideTrendingUp,\n lucideTriangleAlert,\n lucideTruck,\n lucideUser,\n lucideUserCheck,\n lucideUserLock,\n lucideUserPlus,\n lucideUserRoundPen,\n lucideUsers,\n lucideUsersRound,\n lucideVideo,\n lucideWallet,\n lucideWarehouse,\n lucideWifi,\n lucideWifiZero,\n lucideWorkflow,\n lucideWrench,\n lucideX,\n lucideXCircle,\n lucideZap,\n lucideBarChart,\n lucideFileOutput,\n lucideLayoutTemplate,\n lucideSquarePen,\n lucideCircleHelp,\n lucideMegaphone,\n lucideSquare,\n lucidePenTool,\n lucideRocket,\n lucideBarChart3,\n lucideCheckCircle,\n lucideFolderTree,\n lucideGrid3x3,\n lucideSliders,\n lucideUsers2,\n lucideFileEdit,\n lucideNavigation,\n lucideListFilter,\n lucideTextCursor,\n lucidePieChart,\n lucideFolders,\n lucideUserSearch,\n lucideSquareCheck,\n lucideCircleDot,\n lucideToggleLeft,\n lucideUpload,\n lucideUploadCloud,\n lucideDownload,\n lucideFile,\n lucideMusic,\n lucideFileCode,\n lucideFileJson,\n lucideFileArchive,\n lucideTable2,\n lucideGitBranch,\n lucideAlertTriangle,\n lucideBan,\n lucideBuilding,\n lucideType,\n lucidePercent,\n lucideReceipt,\n lucideClipboardPen,\n lucidePackageCheck,\n lucideShoppingBag,\n lucideTag,\n lucideTags,\n lucideTicket,\n lucideWand2,\n lucideZoomIn,\n lucideZoomOut,\n lucideBadge,\n lucideClipboardCopy,\n lucideContact,\n lucideIdCard,\n lucideRecycle,\n lucidePlug2,\n lucidePlug,\n lucideCpu,\n lucideDumbbell,\n lucideSparkle,\n lucideWandSparkles,\n lucideMessageSquareText,\n lucideMic,\n lucideAudioLines,\n lucidePlay,\n lucideSquarePlay,\n lucideUserSquare,\n lucideFolder,\n} from '@ng-icons/lucide';\n\nexport const Z_ICONS = {\n lucideLayers2,\n lucideStore,\n lucideChartBarStacked,\n lucideBookCheck,\n lucideAlarmClock,\n lucideClipboardPlus,\n lucideSave,\n lucideSaveAll,\n lucideFlag,\n lucideFlagTriangleRight,\n lucideMessageSquareDot,\n lucideCheckCheck,\n lucideTriangleAlert,\n lucideMessageSquareWarning,\n lucideCheck,\n lucidePencil,\n lucideMail,\n lucideLayoutGrid,\n lucideArrowLeft,\n lucideArrowRight,\n lucideMenu,\n lucideLock,\n lucideLogOut,\n lucideUser,\n lucideSettings,\n lucidePill,\n lucideCalendarFold,\n lucideSettings2,\n lucideChevronLeft,\n lucideChevronRight,\n lucideChevronDown,\n lucidePlus,\n lucideSearch,\n lucideUsers,\n lucideEye,\n lucideEyeOff,\n lucideEllipsis,\n lucidePanelLeftClose,\n lucidePanelLeftOpen,\n lucideLayoutDashboard,\n lucideChartColumn,\n lucideUsersRound,\n lucideLogs,\n lucideChevronUp,\n lucideTrendingUp,\n lucidePackage,\n lucideShoppingCart,\n lucideUserCheck,\n lucideActivity,\n lucideZap,\n lucideMousePointer,\n lucideInfo,\n lucideLayers,\n lucideBriefcase,\n lucideTarget,\n lucideWorkflow,\n lucideWarehouse,\n lucideLoaderCircle,\n lucideChevronsLeft,\n lucideChevronsRight,\n lucideBellRing,\n lucideSlidersHorizontal,\n lucideTrash2,\n lucideFileDown,\n lucideFunnel,\n lucideAlignJustify,\n lucideX,\n lucideFiles,\n lucideCrown,\n lucideBadgeInfo,\n lucideMinus,\n lucideBox,\n lucideCog,\n lucideBellMinus,\n lucidePackageOpen,\n lucideInbox,\n lucideClock,\n lucideBookOpen,\n lucideCalendar,\n lucideCalculator,\n lucideClipboardList,\n lucideDatabase,\n lucideDollarSign,\n lucideFileText,\n lucideGraduationCap,\n lucideHeart,\n lucideHospital,\n lucideMapPin,\n lucideMonitor,\n lucidePhone,\n lucideShield,\n lucideStar,\n lucideStethoscope,\n lucideTimer,\n lucideTrendingDown,\n lucideUserPlus,\n lucideVideo,\n lucideWallet,\n lucideWrench,\n lucideBuilding2,\n lucideCar,\n lucideCreditCard,\n lucideFileSpreadsheet,\n lucideGlobe,\n lucideHeadphones,\n lucideKey,\n lucideLightbulb,\n lucideMailCheck,\n lucideNetwork,\n lucidePalette,\n lucidePhoneCall,\n lucidePrinter,\n lucideRadio,\n lucideServer,\n lucideSmartphone,\n lucideTablet,\n lucideTerminal,\n lucideTruck,\n lucideWifi,\n lucideRefreshCcw,\n lucideLockKeyhole,\n lucideArrowDown,\n lucideArrowUp,\n lucideUserLock,\n lucideCircleCheck,\n lucideHouse,\n lucideChartBar,\n lucideChartPie,\n lucideChartLine,\n lucideCalendarRange,\n lucideCalendar1,\n lucideCalendarCheck,\n lucideNotepadText,\n lucideFileUp,\n lucideTableOfContents,\n lucideBot,\n lucideSend,\n lucidePause,\n lucidePaperclip,\n saxPauseBold,\n lucideCopy,\n lucideUserRoundPen,\n lucideFilePenLine,\n lucideArrowDownUp,\n lucideCircleX,\n lucideCheckLine,\n lucideBadgeCheck,\n lucideShieldCheck,\n lucideCircleCheckBig,\n lucideBadgeX,\n lucideLockKeyholeOpen,\n lucideFileSymlink,\n lucideWifiZero,\n lucideCloudCheck,\n lucideMailPlus,\n lucideHardDriveDownload,\n saxCloudChangeBold,\n saxRefreshBold,\n lucideBarcode,\n lucideCode,\n lucideScanQrCode,\n lucideQrCode,\n lucideScanLine,\n lucideListPlus,\n lucideFilePlus,\n lucideFilePlus2,\n lucideBookUp2,\n lucideFileClock,\n lucideRefreshCwOff,\n lucideListChecks,\n lucideFastForward,\n lucideBrushCleaning,\n lucideChartColumnIncreasing,\n lucideBell,\n lucideCheckCircle2,\n lucideAlertCircle,\n lucideXCircle,\n lucideLink,\n lucideDatabaseBackup,\n lucideFileCheck,\n lucideListChevronsDownUp,\n lucideListChevronsUpDown,\n lucideSun,\n lucideMoon,\n lucideLoader,\n lucideAlertOctagon,\n lucideMessageCircle,\n lucideCircleAlert,\n lucideMessageCircleQuestion,\n lucideComponent,\n lucidePanelRightOpen,\n lucideLoader2,\n lucideGithub,\n lucideLifeBuoy,\n lucideCloud,\n lucideBarChart,\n lucideHome,\n lucideFolderOpen,\n lucideSquarePen,\n lucideLayoutTemplate,\n lucideFileOutput,\n lucideCircleHelp,\n lucideGripHorizontal,\n lucideImage,\n lucideList,\n lucideHash,\n lucideMegaphone,\n lucidePenTool,\n lucideSquare,\n lucideRocket,\n lucideBarChart3,\n lucideUsers2,\n lucideGrid3x3,\n lucideFolderTree,\n lucideCheckCircle,\n lucideSliders,\n lucideFileEdit,\n lucideNavigation,\n lucideListFilter,\n lucideTextCursor,\n lucidePieChart,\n lucideUserSearch,\n lucideFolders,\n lucideSparkles,\n lucideSquareCheck,\n lucideCircleDot,\n lucideToggleLeft,\n lucideUpload,\n lucideUploadCloud,\n lucideDownload,\n lucideFile,\n lucideMusic,\n lucideFileCode,\n lucideFileJson,\n lucideFileArchive,\n lucideTable2,\n lucideGripVertical,\n lucidePin,\n lucideSearchX,\n lucideMoreVertical,\n lucideGitBranch,\n lucideAlertTriangle,\n lucideFilter,\n lucideFunnelX,\n lucideBan,\n lucideBuilding,\n lucideType,\n lucidePercent,\n lucideReceipt,\n lucideClipboardPen,\n lucidePackageCheck,\n lucideShoppingBag,\n lucideTag,\n lucideTags,\n lucideTicket,\n lucideWand2,\n lucideZoomIn,\n lucideZoomOut,\n lucideBadge,\n lucideClipboardCopy,\n lucideContact,\n lucideIdCard,\n lucideRecycle,\n lucidePlug,\n lucidePlug2,\n lucideBotMessageSquare,\n lucideBotOff,\n lucideBrain,\n lucideBrainCircuit,\n lucideBrainCog,\n lucideCpu,\n lucideDumbbell,\n lucideSparkle,\n lucideWandSparkles,\n lucideMessageSquareText,\n lucideMic,\n lucideAudioLines,\n lucidePlay,\n lucideSquarePlay,\n lucideEllipsisVertical,\n saxEditOutline,\n lucideUserSquare,\n lucideCircle,\n lucideFolder,\n lucideHelpCircle,\n} as const satisfies Record<string, IconType>;\n\nexport declare type ZIcon = keyof typeof Z_ICONS;\n","import { HttpClient } from '@angular/common/http';\nimport { type EnvironmentProviders, inject, makeEnvironmentProviders } from '@angular/core';\nimport { provideNgIconLoader, withCaching } from '@ng-icons/core';\nimport { ZIndexDbService } from '@shival99/z-ui/services';\nimport { catchError, from, map, type Observable, of, switchMap, tap } from 'rxjs';\nimport { Z_ICONS } from './z-icons';\n\nconst iconCacheDb = new ZIndexDbService({\n dbName: 'ZIconCache',\n version: 1,\n stores: [{ name: 'zIcons', encrypt: true }],\n defaultStore: 'zIcons',\n});\n\n/**\n * Normalizes Sax SVG to use currentColor and CSS variable for stroke-width.\n * This allows the icon to inherit color and strokeWidth from ng-icon props.\n */\nfunction normalizeSaxSvg(svg: string): string {\n const cssVar = 'style=\"stroke-width: var(--ng-icon__stroke-width, 2)\"';\n const normalized = svg.replace(/fill=\"#292D32\"/gi, 'fill=\"currentColor\"');\n return normalized.replace(/stroke-width=\"[^\"]*\"/gi, cssVar);\n}\n\n/**\n * Normalizes Lucide SVG to use CSS variable for stroke-width.\n * This allows ng-icon strokeWidth prop to work correctly.\n * Replaces hardcoded stroke-width with var(--ng-icon__stroke-width, 2).\n */\nfunction normalizeLucideSvg(svg: string): string {\n const cssVar = 'style=\"stroke-width: var(--ng-icon__stroke-width, 2)\"';\n return svg.replace(/stroke-width=\"[^\"]*\"/gi, cssVar);\n}\n\nfunction getFallbackIcon(name: string): string {\n const icon = Z_ICONS[name as keyof typeof Z_ICONS];\n if (icon) {\n // console.warn(`[ZIcon] Using bundled fallback for \"${name}\"`);\n return icon;\n }\n return '';\n}\n\n/**\n * Converts ng-icons icon name to Lucide CDN format.\n * Examples:\n * - lucideArrowLeft -> arrow-left\n * - lucideAlertCircle -> alert-circle\n * - lucideTrash2 -> trash-2\n * - lucideGrid3x3 -> grid-3-x-3\n */\nfunction convertLucideIconName(name: string): string {\n return name\n .replace(/^lucide/, '')\n .replace(/([A-Z])/g, '-$1')\n .replace(/(\\d+)/g, '-$1')\n .replace(/(\\d)([a-z])/g, '$1-$2')\n .toLowerCase()\n .replace(/^-/, '')\n .replace(/--+/g, '-');\n}\n\n/**\n * Converts ng-icons Sax icon name to CDN format.\n * Examples:\n * - saxCloudChangeBold -> bold/cloud-change\n * - saxPauseBold -> bold/pause\n * - saxRefreshBold -> bold/refresh\n * - saxHomeOutline -> outline/home\n * - saxUserLinear -> linear/user\n */\nfunction convertIconSaxIconName(name: string): { style: string; iconName: string } | null {\n let iconPart = name.replace(/^sax/, '');\n // Extract style suffix (Bold, Outline, Linear, Bulk, Broken, TwoTone)\n const styleMatch = iconPart.match(/(Bold|Outline|Linear|Bulk|Broken|TwoTone)$/i);\n if (!styleMatch) {\n return null;\n }\n\n const style = styleMatch[1].toLowerCase();\n const styleFolder = style === 'twotone' ? 'twotone' : style;\n iconPart = iconPart.replace(/(Bold|Outline|Linear|Bulk|Broken|TwoTone)$/i, '');\n const iconName = iconPart\n .replace(/([A-Z])/g, '-$1')\n .replace(/(\\d+)/g, '-$1')\n .toLowerCase()\n .replace(/^-/, '')\n .replace(/--+/g, '-');\n\n return { style: styleFolder, iconName };\n}\n\nconst LUCIDE_CDN_URL = 'https://cdn.jsdelivr.net/npm/lucide-static@latest/icons';\nconst SAX_CDN_URL = 'https://cdn.jsdelivr.net/gh/placetopay-org/iconsax-vue@main/src/Base';\n\n/**\n * Provides hybrid icon loading from CDN with fallback to bundled icons:\n * - Primary: Load icons from CDN (Lucide & Iconsax)\n * - Fallback: Use bundled icons from Z_ICONS if CDN fails\n *\n * @example\n * ```typescript\n * // app.config.ts\n * providers: [\n * provideHttpClient(),\n * provideZIconLoader(),\n * ]\n * ```\n */\nfunction loadWithCache(\n name: string,\n url: string,\n http: HttpClient,\n normalizer: (svg: string) => string\n): Observable<string> {\n return from(iconCacheDb.get<string>(name)).pipe(\n switchMap(cached => {\n if (cached) {\n return of(cached);\n }\n\n return http.get(url, { responseType: 'text' }).pipe(\n map(normalizer),\n tap(svg => {\n void iconCacheDb.set(name, svg);\n }),\n catchError(error => {\n console.error(`[ZIcon] Failed to load \"${name}\" from ${url}`, error);\n return of(getFallbackIcon(name));\n })\n );\n }),\n catchError(() => of(getFallbackIcon(name)))\n );\n}\n\nexport function provideZIconLoader(): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideNgIconLoader(name => {\n const http = inject(HttpClient);\n\n if (name.startsWith('sax')) {\n const parsed = convertIconSaxIconName(name);\n if (!parsed) {\n console.warn(`[ZIcon] Invalid Sax icon name: \"${name}\"`);\n return of(getFallbackIcon(name));\n }\n\n const url = `${SAX_CDN_URL}/${parsed.style}/${parsed.iconName}.svg`;\n return loadWithCache(name, url, http, normalizeSaxSvg);\n }\n\n if (name.startsWith('lucide')) {\n const iconName = convertLucideIconName(name);\n const url = `${LUCIDE_CDN_URL}/${iconName}.svg`;\n return loadWithCache(name, url, http, normalizeLucideSvg);\n }\n\n console.warn(`[ZIcon] Unknown icon: \"${name}\"`);\n return of(getFallbackIcon(name));\n }, withCaching()),\n ]);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, DestroyRef, input, output, signal, computed, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { ZIconComponent } from '@shival99/z-ui/components/z-icon';
|
|
4
|
+
import { ZTooltipDirective } from '@shival99/z-ui/components/z-tooltip';
|
|
5
|
+
import { zTransform, zMergeClasses } from '@shival99/z-ui/utils';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
|
+
|
|
8
|
+
const zStepsContainerVariants = cva(['relative list-none m-0 p-0'], {
|
|
9
|
+
variants: {
|
|
10
|
+
orientation: {
|
|
11
|
+
vertical: 'text-foreground',
|
|
12
|
+
horizontal: 'flex items-center w-full',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
orientation: 'vertical',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const zStepsItemVariants = cva(['relative flex items-start'], {
|
|
20
|
+
variants: {
|
|
21
|
+
orientation: {
|
|
22
|
+
vertical: 'last:mb-0',
|
|
23
|
+
horizontal: 'flex-1 last:flex-none',
|
|
24
|
+
},
|
|
25
|
+
size: {
|
|
26
|
+
sm: 'mb-6 ps-10 min-h-6',
|
|
27
|
+
default: 'mb-8 ps-12 min-h-8',
|
|
28
|
+
lg: 'mb-10 ps-14 min-h-10',
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
compoundVariants: [{ orientation: 'horizontal', class: 'mb-0 ps-0 min-h-0' }],
|
|
32
|
+
defaultVariants: {
|
|
33
|
+
orientation: 'vertical',
|
|
34
|
+
size: 'default',
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
const zStepsIconVariants = cva([
|
|
38
|
+
'absolute start-0 z-10 flex items-center justify-center rounded-full ring-6 ring-background transform-gpu transition-transform duration-200 ease-out hover:scale-110',
|
|
39
|
+
], {
|
|
40
|
+
variants: {
|
|
41
|
+
size: {
|
|
42
|
+
sm: 'w-6 h-6 text-xs',
|
|
43
|
+
default: 'w-8 h-8 text-sm',
|
|
44
|
+
lg: 'w-10 h-10 text-base',
|
|
45
|
+
},
|
|
46
|
+
status: {
|
|
47
|
+
pending: 'bg-background border border-input text-muted-foreground ring-muted',
|
|
48
|
+
current: 'bg-primary text-primary-foreground ring-primary/20',
|
|
49
|
+
completed: 'bg-primary text-primary-foreground ring-primary/20',
|
|
50
|
+
error: 'bg-destructive text-destructive-foreground ring-destructive/20',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
defaultVariants: {
|
|
54
|
+
size: 'default',
|
|
55
|
+
status: 'pending',
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
const zStepsLineVariants = cva(['absolute border-s border-input'], {
|
|
59
|
+
variants: {
|
|
60
|
+
size: {
|
|
61
|
+
sm: 'start-3 top-3 bottom-0',
|
|
62
|
+
default: 'start-4 top-4 bottom-0',
|
|
63
|
+
lg: 'start-5 top-5 bottom-0',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
defaultVariants: {
|
|
67
|
+
size: 'default',
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
const zStepsConnectorVariants = cva(['transition-colors duration-200'], {
|
|
71
|
+
variants: {
|
|
72
|
+
orientation: {
|
|
73
|
+
vertical: 'hidden',
|
|
74
|
+
horizontal: 'flex-1 h-1 mx-4 rounded-full',
|
|
75
|
+
},
|
|
76
|
+
status: {
|
|
77
|
+
pending: 'bg-input',
|
|
78
|
+
current: 'bg-input',
|
|
79
|
+
completed: 'bg-primary',
|
|
80
|
+
error: 'bg-destructive/30',
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
defaultVariants: {
|
|
84
|
+
orientation: 'vertical',
|
|
85
|
+
status: 'pending',
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
const zStepsArrowItemVariants = cva(['z-steps-arrow-item relative flex flex-1 flex-col justify-center transition-all duration-200'], {
|
|
89
|
+
variants: {
|
|
90
|
+
size: {
|
|
91
|
+
sm: 'min-w-[120px] py-2 px-4',
|
|
92
|
+
default: 'min-w-[150px] py-3 px-5',
|
|
93
|
+
lg: 'min-w-[180px] py-4 px-6',
|
|
94
|
+
},
|
|
95
|
+
status: {
|
|
96
|
+
pending: 'bg-muted text-muted-foreground',
|
|
97
|
+
current: 'bg-primary text-primary-foreground z-steps-arrow-active',
|
|
98
|
+
completed: 'bg-primary text-primary-foreground z-steps-arrow-active',
|
|
99
|
+
error: 'bg-destructive text-destructive-foreground',
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
defaultVariants: {
|
|
103
|
+
size: 'default',
|
|
104
|
+
status: 'pending',
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
const RESPONSIVE_BREAKPOINT = 640;
|
|
109
|
+
class ZStepsComponent {
|
|
110
|
+
_elementRef = inject(ElementRef);
|
|
111
|
+
_destroyRef = inject(DestroyRef);
|
|
112
|
+
_resizeObserver = null;
|
|
113
|
+
class = input('', ...(ngDevMode ? [{ debugName: "class" }] : []));
|
|
114
|
+
zSteps = input.required(...(ngDevMode ? [{ debugName: "zSteps" }] : []));
|
|
115
|
+
zCurrent = input(0, ...(ngDevMode ? [{ debugName: "zCurrent" }] : []));
|
|
116
|
+
zOrientation = input('vertical', ...(ngDevMode ? [{ debugName: "zOrientation" }] : []));
|
|
117
|
+
zType = input('default', ...(ngDevMode ? [{ debugName: "zType" }] : []));
|
|
118
|
+
zSize = input('default', ...(ngDevMode ? [{ debugName: "zSize" }] : []));
|
|
119
|
+
zClickable = input(false, { ...(ngDevMode ? { debugName: "zClickable" } : {}), transform: zTransform });
|
|
120
|
+
zShowNumber = input(true, { ...(ngDevMode ? { debugName: "zShowNumber" } : {}), transform: zTransform });
|
|
121
|
+
zResponsive = input(true, { ...(ngDevMode ? { debugName: "zResponsive" } : {}), transform: zTransform });
|
|
122
|
+
zOnStepClick = output();
|
|
123
|
+
zControl = output();
|
|
124
|
+
_internalCurrent = signal(null, ...(ngDevMode ? [{ debugName: "_internalCurrent" }] : []));
|
|
125
|
+
_stepOverrides = signal(new Map(), ...(ngDevMode ? [{ debugName: "_stepOverrides" }] : []));
|
|
126
|
+
isResponsiveVertical = signal(false, ...(ngDevMode ? [{ debugName: "isResponsiveVertical" }] : []));
|
|
127
|
+
currentStep = computed(() => this._internalCurrent() ?? this.zCurrent(), ...(ngDevMode ? [{ debugName: "currentStep" }] : []));
|
|
128
|
+
mergedSteps = computed(() => {
|
|
129
|
+
const steps = this.zSteps();
|
|
130
|
+
const overrides = this._stepOverrides();
|
|
131
|
+
return steps.map((step, index) => {
|
|
132
|
+
const override = overrides.get(index);
|
|
133
|
+
return override ? { ...step, ...override } : step;
|
|
134
|
+
});
|
|
135
|
+
}, ...(ngDevMode ? [{ debugName: "mergedSteps" }] : []));
|
|
136
|
+
effectiveOrientation = computed(() => {
|
|
137
|
+
if (this.zResponsive() && this.isResponsiveVertical()) {
|
|
138
|
+
return 'vertical';
|
|
139
|
+
}
|
|
140
|
+
return this.zOrientation();
|
|
141
|
+
}, ...(ngDevMode ? [{ debugName: "effectiveOrientation" }] : []));
|
|
142
|
+
containerClasses = computed(() => zMergeClasses(zStepsContainerVariants({
|
|
143
|
+
orientation: this.effectiveOrientation(),
|
|
144
|
+
}), this.class()), ...(ngDevMode ? [{ debugName: "containerClasses" }] : []));
|
|
145
|
+
getItemClasses = computed(() => zStepsItemVariants({
|
|
146
|
+
orientation: this.effectiveOrientation(),
|
|
147
|
+
size: this.zSize(),
|
|
148
|
+
}), ...(ngDevMode ? [{ debugName: "getItemClasses" }] : []));
|
|
149
|
+
getIconClassesByStatus = computed(() => {
|
|
150
|
+
const size = this.zSize();
|
|
151
|
+
const steps = this.mergedSteps();
|
|
152
|
+
const current = this.currentStep();
|
|
153
|
+
return steps.map((step, index) => {
|
|
154
|
+
const status = this._getStepStatus(step, index, current);
|
|
155
|
+
const baseClasses = zStepsIconVariants({ size, status });
|
|
156
|
+
return zMergeClasses(baseClasses, step.iconClass);
|
|
157
|
+
});
|
|
158
|
+
}, ...(ngDevMode ? [{ debugName: "getIconClassesByStatus" }] : []));
|
|
159
|
+
lineClasses = computed(() => zStepsLineVariants({ size: this.zSize() }), ...(ngDevMode ? [{ debugName: "lineClasses" }] : []));
|
|
160
|
+
getConnectorClassesByIndex = computed(() => {
|
|
161
|
+
const orientation = this.effectiveOrientation();
|
|
162
|
+
const steps = this.mergedSteps();
|
|
163
|
+
const current = this.currentStep();
|
|
164
|
+
return steps.map((step, index) => {
|
|
165
|
+
const status = this._getConnectorStatus(step, index, current);
|
|
166
|
+
return zStepsConnectorVariants({ orientation, status });
|
|
167
|
+
});
|
|
168
|
+
}, ...(ngDevMode ? [{ debugName: "getConnectorClassesByIndex" }] : []));
|
|
169
|
+
stepStatuses = computed(() => {
|
|
170
|
+
const steps = this.mergedSteps();
|
|
171
|
+
const current = this.currentStep();
|
|
172
|
+
return steps.map((step, index) => this._getStepStatus(step, index, current));
|
|
173
|
+
}, ...(ngDevMode ? [{ debugName: "stepStatuses" }] : []));
|
|
174
|
+
getArrowClassesByIndex = computed(() => {
|
|
175
|
+
const size = this.zSize();
|
|
176
|
+
const steps = this.mergedSteps();
|
|
177
|
+
const current = this.currentStep();
|
|
178
|
+
const total = steps.length;
|
|
179
|
+
return steps.map((step, index) => {
|
|
180
|
+
const status = this._getStepStatus(step, index, current);
|
|
181
|
+
const baseClasses = zStepsArrowItemVariants({ size, status });
|
|
182
|
+
let positionClass = 'z-steps-arrow-middle';
|
|
183
|
+
if (index === 0) {
|
|
184
|
+
positionClass = 'z-steps-arrow-first';
|
|
185
|
+
}
|
|
186
|
+
else if (index === total - 1) {
|
|
187
|
+
positionClass = 'z-steps-arrow-last';
|
|
188
|
+
}
|
|
189
|
+
return zMergeClasses(baseClasses, positionClass);
|
|
190
|
+
});
|
|
191
|
+
}, ...(ngDevMode ? [{ debugName: "getArrowClassesByIndex" }] : []));
|
|
192
|
+
defaultIconSize = computed(() => {
|
|
193
|
+
const size = this.zSize();
|
|
194
|
+
if (size === 'sm') {
|
|
195
|
+
return '16';
|
|
196
|
+
}
|
|
197
|
+
if (size === 'lg') {
|
|
198
|
+
return '24';
|
|
199
|
+
}
|
|
200
|
+
return '20';
|
|
201
|
+
}, ...(ngDevMode ? [{ debugName: "defaultIconSize" }] : []));
|
|
202
|
+
getIconSizeByIndex = computed(() => {
|
|
203
|
+
const defaultSize = this.defaultIconSize();
|
|
204
|
+
const steps = this.mergedSteps();
|
|
205
|
+
return steps.map(step => step.iconSize ?? defaultSize);
|
|
206
|
+
}, ...(ngDevMode ? [{ debugName: "getIconSizeByIndex" }] : []));
|
|
207
|
+
iconWidth = computed(() => {
|
|
208
|
+
const size = this.zSize();
|
|
209
|
+
if (size === 'sm') {
|
|
210
|
+
return 24;
|
|
211
|
+
}
|
|
212
|
+
if (size === 'lg') {
|
|
213
|
+
return 40;
|
|
214
|
+
}
|
|
215
|
+
return 32;
|
|
216
|
+
}, ...(ngDevMode ? [{ debugName: "iconWidth" }] : []));
|
|
217
|
+
ngAfterViewInit() {
|
|
218
|
+
if (this.zResponsive() && this.zOrientation() === 'horizontal') {
|
|
219
|
+
this._setupResizeObserver();
|
|
220
|
+
}
|
|
221
|
+
this._destroyRef.onDestroy(() => {
|
|
222
|
+
this._resizeObserver?.disconnect();
|
|
223
|
+
});
|
|
224
|
+
this.zControl.emit(this._createControl());
|
|
225
|
+
}
|
|
226
|
+
_createControl() {
|
|
227
|
+
return {
|
|
228
|
+
setActive: (index) => {
|
|
229
|
+
if (index >= 0 && index < this.zSteps().length) {
|
|
230
|
+
this._internalCurrent.set(index);
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
next: () => {
|
|
234
|
+
const current = this.currentStep();
|
|
235
|
+
const total = this.zSteps().length;
|
|
236
|
+
if (current < total - 1) {
|
|
237
|
+
this._internalCurrent.set(current + 1);
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
prev: () => {
|
|
241
|
+
const current = this.currentStep();
|
|
242
|
+
if (current > 0) {
|
|
243
|
+
this._internalCurrent.set(current - 1);
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
reset: () => {
|
|
247
|
+
this._internalCurrent.set(0);
|
|
248
|
+
this._stepOverrides.set(new Map());
|
|
249
|
+
},
|
|
250
|
+
setDisabled: (index, disabled) => {
|
|
251
|
+
this._updateStepOverride(index, { disabled });
|
|
252
|
+
},
|
|
253
|
+
setStatus: (index, status) => {
|
|
254
|
+
this._updateStepOverride(index, { status });
|
|
255
|
+
},
|
|
256
|
+
getCurrent: () => this.currentStep(),
|
|
257
|
+
getTotal: () => this.zSteps().length,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
_updateStepOverride(index, override) {
|
|
261
|
+
const overrides = new Map(this._stepOverrides());
|
|
262
|
+
const existing = overrides.get(index) || {};
|
|
263
|
+
overrides.set(index, { ...existing, ...override });
|
|
264
|
+
this._stepOverrides.set(overrides);
|
|
265
|
+
}
|
|
266
|
+
_setupResizeObserver() {
|
|
267
|
+
const container = this._elementRef.nativeElement;
|
|
268
|
+
this._resizeObserver = new ResizeObserver(entries => {
|
|
269
|
+
const width = entries[0]?.contentRect.width || 0;
|
|
270
|
+
this.isResponsiveVertical.set(width < RESPONSIVE_BREAKPOINT);
|
|
271
|
+
});
|
|
272
|
+
this._resizeObserver.observe(container);
|
|
273
|
+
}
|
|
274
|
+
_getStepStatus(step, index, current) {
|
|
275
|
+
if (step.status) {
|
|
276
|
+
return step.status;
|
|
277
|
+
}
|
|
278
|
+
if (index < current) {
|
|
279
|
+
return 'completed';
|
|
280
|
+
}
|
|
281
|
+
if (index === current) {
|
|
282
|
+
return 'current';
|
|
283
|
+
}
|
|
284
|
+
return 'pending';
|
|
285
|
+
}
|
|
286
|
+
_getConnectorStatus(step, index, current) {
|
|
287
|
+
if (step.status === 'error') {
|
|
288
|
+
return 'error';
|
|
289
|
+
}
|
|
290
|
+
if (index < current) {
|
|
291
|
+
return 'completed';
|
|
292
|
+
}
|
|
293
|
+
return 'pending';
|
|
294
|
+
}
|
|
295
|
+
onStepClick(index) {
|
|
296
|
+
const step = this.zSteps()[index];
|
|
297
|
+
if (step.disabled) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
if (!this.zClickable()) {
|
|
301
|
+
return;
|
|
302
|
+
}
|
|
303
|
+
this.zOnStepClick.emit(index);
|
|
304
|
+
}
|
|
305
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZStepsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
306
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: ZStepsComponent, isStandalone: true, selector: "z-steps", inputs: { class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, zSteps: { classPropertyName: "zSteps", publicName: "zSteps", isSignal: true, isRequired: true, transformFunction: null }, zCurrent: { classPropertyName: "zCurrent", publicName: "zCurrent", isSignal: true, isRequired: false, transformFunction: null }, zOrientation: { classPropertyName: "zOrientation", publicName: "zOrientation", isSignal: true, isRequired: false, transformFunction: null }, zType: { classPropertyName: "zType", publicName: "zType", isSignal: true, isRequired: false, transformFunction: null }, zSize: { classPropertyName: "zSize", publicName: "zSize", isSignal: true, isRequired: false, transformFunction: null }, zClickable: { classPropertyName: "zClickable", publicName: "zClickable", isSignal: true, isRequired: false, transformFunction: null }, zShowNumber: { classPropertyName: "zShowNumber", publicName: "zShowNumber", isSignal: true, isRequired: false, transformFunction: null }, zResponsive: { classPropertyName: "zResponsive", publicName: "zResponsive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { zOnStepClick: "zOnStepClick", zControl: "zControl" }, host: { classAttribute: "block" }, ngImport: i0, template: "<ol [class]=\"containerClasses()\">\n @for (step of mergedSteps(); track $index; let i = $index; let last = $last) {\n @if (effectiveOrientation() === 'vertical') {\n <!-- Vertical Layout -->\n <li\n [class]=\"getItemClasses()\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"lineClasses()\"></div>\n }\n\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content -->\n @if (step.title || step.description) {\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3 class=\"leading-tight font-medium\">{{ step.title }}</h3>\n }\n @if (step.description) {\n <p class=\"text-muted-foreground mt-1 text-sm\">{{ step.description }}</p>\n }\n </div>\n }\n </li>\n } @else {\n <!-- Horizontal Layout -->\n <li\n [class]=\"zType() === 'arrow' ? 'flex-1' : 'flex-1 last:flex-none'\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n @if (zType() === 'arrow') {\n <!-- Arrow Style -->\n <div [class]=\"getArrowClassesByIndex()[i]\">\n <div class=\"flex items-center gap-3.5\">\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" class=\"shrink-0\" />\n }\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-semibold whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"mt-1 truncate text-xs whitespace-nowrap opacity-80\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n </div>\n } @else if (zType() === 'inline') {\n <!-- Inline: Icon + Content + Line in one row -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content Inline -->\n @if (step.title || step.description) {\n <div class=\"ms-3 flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"max-w-30 truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 max-w-30 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n } @else {\n <!-- Default: Icon + Line row, Content below -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n\n <!-- Content Below -->\n @if (step.title || step.description) {\n <div\n class=\"z-steps-content mt-2 flex flex-col text-center\"\n [style.width.px]=\"150\"\n [style.margin-left.px]=\"(iconWidth() - 150) / 2\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n }\n </li>\n }\n }\n</ol>\n", styles: ["z-steps ol li:not(:last-child)>div[class*=border-s]{height:calc(100% + 2rem)}z-steps ol li[class*=mb-6]:not(:last-child)>div[class*=border-s]{height:calc(100% + 1.5rem)}z-steps ol li[class*=mb-10]:not(:last-child)>div[class*=border-s]{height:calc(100% + 2.5rem)}z-steps .z-steps-arrow-item{position:relative;display:flex;flex-direction:column;justify-content:center;transition:all .2s ease-out}z-steps .z-steps-arrow-item:hover{filter:brightness(.92)}z-steps .z-steps-arrow-first{border-radius:6px 0 0 6px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%)}z-steps .z-steps-arrow-middle{margin-left:-8px;padding-left:calc(16px + 1rem);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%,16px 50%)}z-steps .z-steps-arrow-last{margin-left:-8px;padding-left:calc(16px + 1rem);border-radius:0 6px 6px 0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,16px 50%)}\n"], dependencies: [{ kind: "component", type: ZIconComponent, selector: "z-icon, [z-icon]", inputs: ["class", "zType", "zSize", "zStrokeWidth", "zSvg"] }, { kind: "directive", type: ZTooltipDirective, selector: "[z-tooltip], [zTooltip]", inputs: ["zContent", "zPosition", "zTrigger", "zTooltipType", "zTooltipSize", "zClass", "zShowDelay", "zHideDelay", "zArrow", "zDisabled", "zOffset", "zAutoDetect", "zTriggerElement", "zAlwaysShow", "zMaxWidth"], outputs: ["zShow", "zHide"], exportAs: ["zTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
307
|
+
}
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ZStepsComponent, decorators: [{
|
|
309
|
+
type: Component,
|
|
310
|
+
args: [{ selector: 'z-steps', imports: [ZIconComponent, ZTooltipDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
311
|
+
class: 'block',
|
|
312
|
+
}, template: "<ol [class]=\"containerClasses()\">\n @for (step of mergedSteps(); track $index; let i = $index; let last = $last) {\n @if (effectiveOrientation() === 'vertical') {\n <!-- Vertical Layout -->\n <li\n [class]=\"getItemClasses()\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n <!-- Vertical Line -->\n @if (!last) {\n <div [class]=\"lineClasses()\"></div>\n }\n\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content -->\n @if (step.title || step.description) {\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3 class=\"leading-tight font-medium\">{{ step.title }}</h3>\n }\n @if (step.description) {\n <p class=\"text-muted-foreground mt-1 text-sm\">{{ step.description }}</p>\n }\n </div>\n }\n </li>\n } @else {\n <!-- Horizontal Layout -->\n <li\n [class]=\"zType() === 'arrow' ? 'flex-1' : 'flex-1 last:flex-none'\"\n [class.cursor-pointer]=\"zClickable() && !step.disabled\"\n [class.cursor-not-allowed]=\"step.disabled\"\n [class.opacity-50]=\"step.disabled\"\n (click)=\"onStepClick(i)\">\n @if (zType() === 'arrow') {\n <!-- Arrow Style -->\n <div [class]=\"getArrowClassesByIndex()[i]\">\n <div class=\"flex items-center gap-3.5\">\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" class=\"shrink-0\" />\n }\n <div class=\"flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-semibold whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"mt-1 truncate text-xs whitespace-nowrap opacity-80\">\n {{ step.description }}\n </p>\n }\n </div>\n </div>\n </div>\n } @else if (zType() === 'inline') {\n <!-- Inline: Icon + Content + Line in one row -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Content Inline -->\n @if (step.title || step.description) {\n <div class=\"ms-3 flex min-w-0 flex-col\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"max-w-30 truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 max-w-30 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n } @else {\n <!-- Default: Icon + Line row, Content below -->\n <div class=\"flex items-center\">\n <!-- Step Icon -->\n <span [class]=\"getIconClassesByStatus()[i]\" class=\"relative! start-auto! shrink-0\">\n @switch (stepStatuses()[i]) {\n @case ('completed') {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else {\n <z-icon zType=\"lucideCheck\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n }\n @case ('error') {\n <z-icon zType=\"lucideX\" [zSize]=\"getIconSizeByIndex()[i]\" />\n }\n @default {\n @if (step.icon) {\n <z-icon [zType]=\"step.icon\" [zSize]=\"getIconSizeByIndex()[i]\" />\n } @else if (zShowNumber()) {\n <span class=\"font-medium\">{{ i + 1 }}</span>\n }\n }\n }\n </span>\n\n <!-- Horizontal Line -->\n @if (!last) {\n <div [class]=\"getConnectorClassesByIndex()[i]\"></div>\n }\n </div>\n\n <!-- Content Below -->\n @if (step.title || step.description) {\n <div\n class=\"z-steps-content mt-2 flex flex-col text-center\"\n [style.width.px]=\"150\"\n [style.margin-left.px]=\"(iconWidth() - 150) / 2\">\n @if (step.title) {\n <h3\n z-tooltip\n [zContent]=\"step.title\"\n [zAutoDetect]=\"true\"\n zPosition=\"top\"\n class=\"truncate text-sm leading-tight font-medium whitespace-nowrap\">\n {{ step.title }}\n </h3>\n }\n @if (step.description) {\n <p\n z-tooltip\n [zContent]=\"step.description\"\n [zAutoDetect]=\"true\"\n zPosition=\"bottom\"\n class=\"text-muted-foreground mt-1 truncate text-xs whitespace-nowrap\">\n {{ step.description }}\n </p>\n }\n </div>\n }\n }\n </li>\n }\n }\n</ol>\n", styles: ["z-steps ol li:not(:last-child)>div[class*=border-s]{height:calc(100% + 2rem)}z-steps ol li[class*=mb-6]:not(:last-child)>div[class*=border-s]{height:calc(100% + 1.5rem)}z-steps ol li[class*=mb-10]:not(:last-child)>div[class*=border-s]{height:calc(100% + 2.5rem)}z-steps .z-steps-arrow-item{position:relative;display:flex;flex-direction:column;justify-content:center;transition:all .2s ease-out}z-steps .z-steps-arrow-item:hover{filter:brightness(.92)}z-steps .z-steps-arrow-first{border-radius:6px 0 0 6px;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%)}z-steps .z-steps-arrow-middle{margin-left:-8px;padding-left:calc(16px + 1rem);clip-path:polygon(0 0,calc(100% - 16px) 0,100% 50%,calc(100% - 16px) 100%,0 100%,16px 50%)}z-steps .z-steps-arrow-last{margin-left:-8px;padding-left:calc(16px + 1rem);border-radius:0 6px 6px 0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,16px 50%)}\n"] }]
|
|
313
|
+
}], propDecorators: { class: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], zSteps: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSteps", required: true }] }], zCurrent: [{ type: i0.Input, args: [{ isSignal: true, alias: "zCurrent", required: false }] }], zOrientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "zOrientation", required: false }] }], zType: [{ type: i0.Input, args: [{ isSignal: true, alias: "zType", required: false }] }], zSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "zSize", required: false }] }], zClickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "zClickable", required: false }] }], zShowNumber: [{ type: i0.Input, args: [{ isSignal: true, alias: "zShowNumber", required: false }] }], zResponsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "zResponsive", required: false }] }], zOnStepClick: [{ type: i0.Output, args: ["zOnStepClick"] }], zControl: [{ type: i0.Output, args: ["zControl"] }] } });
|
|
314
|
+
|
|
315
|
+
/**
|
|
316
|
+
* Generated bundle index. Do not edit.
|
|
317
|
+
*/
|
|
318
|
+
|
|
319
|
+
export { ZStepsComponent, zStepsArrowItemVariants, zStepsConnectorVariants, zStepsContainerVariants, zStepsIconVariants, zStepsItemVariants, zStepsLineVariants };
|
|
320
|
+
//# sourceMappingURL=shival99-z-ui-components-z-steps.mjs.map
|