@unipin/angular-applet 21.3.2 → 21.6.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/README.md +4 -2
- package/fesm2022/unipin-angular-applet-accordion.mjs +39 -37
- package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs +9 -9
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert.mjs +16 -19
- package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-approval.mjs +124 -15
- package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -1
- package/fesm2022/{unipin-angular-applet-audit-audit-modal.component-wPoNvU2r.mjs → unipin-angular-applet-audit-audit-modal.component-DNlMbUda.mjs} +6 -7
- package/fesm2022/unipin-angular-applet-audit-audit-modal.component-DNlMbUda.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-audit.mjs +14 -14
- package/fesm2022/unipin-angular-applet-audit.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-auth.mjs +23 -26
- package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-avatar.mjs +6 -7
- package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-badge.mjs +6 -7
- package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-buttons.mjs +13 -15
- package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-calendar.mjs +23 -27
- package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-collapsible.mjs +17 -20
- package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-common.mjs +25 -30
- package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-containers.mjs +23 -26
- package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-dialog.mjs +64 -70
- package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-forms.mjs +328 -277
- package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-froala.mjs +10 -11
- package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-grids.mjs +408 -5
- package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +5 -6
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-json-viewer.mjs +8 -9
- package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-kbd.mjs +5 -6
- package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs +8 -9
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-markdown.mjs +24 -22
- package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-popover.mjs +26 -30
- package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-progress-bar.mjs +8 -9
- package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-skeleton.mjs +5 -6
- package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-spinner.mjs +7 -7
- package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-stepper.mjs +17 -19
- package/fesm2022/unipin-angular-applet-stepper.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-swipeable.mjs +26 -30
- package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tabs.mjs +22 -25
- package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tooltip.mjs +5 -6
- package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
- package/package.json +5 -2
- package/types/unipin-angular-applet-accordion.d.ts +4 -2
- package/types/unipin-angular-applet-approval.d.ts +42 -11
- package/types/unipin-angular-applet-forms.d.ts +29 -5
- package/types/unipin-angular-applet-grids.d.ts +101 -14
- package/types/unipin-angular-applet-popover.d.ts +3 -3
- package/fesm2022/unipin-angular-applet-audit-audit-modal.component-wPoNvU2r.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-buttons.mjs","sources":["../../../projects/unipin-angular/buttons/button/button-variant.type.ts","../../../projects/unipin-angular/buttons/button/button.directive.ts","../../../projects/unipin-angular/buttons/split-button/split-button.component.ts","../../../projects/unipin-angular/buttons/unipin-angular-applet-buttons.ts"],"sourcesContent":["import { type VariantProps, cva } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_ng-icon]:pointer-events-none shrink-0 [&_ng-icon]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer disabled:cursor-not-allowed',\n {\n variants: {\n size: {\n default: 'h-9 px-4 py-2 has-[>ng-icon]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>ng-icon]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>ng-icon]:px-4',\n icon: 'size-9',\n },\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive: 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'border border-border hover:border-primary bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n }\n },\n defaultVariants: {\n size: 'default',\n variant: 'default',\n },\n }\n);\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import { Directive, computed, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { buttonVariants, ButtonVariants } from './button-variant.type';\n\n@Directive({\n standalone: true,\n exportAs: 'upButton',\n selector: '[upButton]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpButtonDirective {\n\n public readonly size = input<ButtonVariants['size']>('default');\n public readonly variant = input<ButtonVariants['variant']>('default');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n buttonVariants(\n {\n size: this.size(),\n variant: this.variant(),\n }\n ),\n this.inlineClass(),\n );\n }\n );\n}\n","import { Component, ChangeDetectionStrategy, contentChildren, ElementRef, ModelSignal, model, effect } from '@angular/core';\nimport { provideIcons, NgIcon } from '@ng-icons/core';\nimport { matCheckRound, matArrowDropDownRound } from '@ng-icons/material-icons/round';\nimport { UpPopoverCloseDirective, UpPopoverTriggerDirective, UpPopoverContentDirective, UpPopoverContentRefDirective, UpPopoverComponent } from '@unipin/angular-applet/popover';\nimport { ButtonVariants } from '../button/button-variant.type';\nimport { UpButtonDirective } from '../button/button.directive';\n\n@Component({\n standalone: true,\n selector: 'up-split-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'flex'\n },\n providers: [\n provideIcons(\n { \n matCheckRound, \n matArrowDropDownRound \n }\n )\n ],\n imports: [\n NgIcon,\n UpButtonDirective,\n UpPopoverComponent,\n UpPopoverCloseDirective,\n UpPopoverTriggerDirective,\n UpPopoverContentDirective,\n UpPopoverContentRefDirective,\n ],\n template: `\n <ng-content />\n\n @if (_buttons().length > 1) {\n <up-popover \n alignment=\"end\" \n placementOffset=\"2\"\n >\n <button\n upButton\n upPopoverTrigger\n size=\"icon\"\n class=\"border-l border-border rounded-tl-none rounded-bl-none\" \n [variant]=\"splitBtnItems.variant[activeIndex()]\"\n >\n <ng-icon \n size=\"24\" \n name=\"matArrowDropDownRound\"\n />\n </button>\n\n <div\n upPopoverContent\n class=\"p-1 w-63\"\n *upPopoverContentRef\n >\n @for (label of splitBtnItems.labels; track $index) {\n <button \n upPopoverClose \n class=\"\n relative flex w-full items-start gap-2 rounded-sm px-2 py-1.5\n text-sm text-popover-foreground cursor-pointer select-none\n hover:bg-accent hover:text-accent-foreground appearance-none focus:outline-none \n after:absolute after:bottom-0 after:left-7 after:right-2 after:h-px after:bg-border last:after:hidden\n \"\n (click)=\"activeIndex.set($index)\"\n >\n @if ($index !== activeIndex()) {\n <span class=\"w-4 shrink-0\"></span>\n } \n @else {\n <ng-icon \n size=\"16\" \n class=\"shrink-0 mt-0.5\"\n name=\"matCheckRound\" \n />\n }\n \n <div class=\"flex-1 text-left\">\n <div class=\"font-medium truncate\">{{ label }}</div>\n\n @if (splitBtnItems.descriptions[$index]) {\n <div class=\"text-xs text-muted-foreground mt-0.5\">{{ splitBtnItems.descriptions[$index] }}</div>\n } \n </div>\n </button>\n }\n </div>\n </up-popover>\n }\n `\n})\nexport class UpSplitButtonComponent {\n\n public readonly _buttons = contentChildren(\n 'upSplitBtnItem', \n { \n read: ElementRef \n }\n );\n public readonly _descriptions = contentChildren(\n 'upSplitBtnDescription', \n {\n read: ElementRef\n }\n );\n \n public readonly activeIndex: ModelSignal<number> = model(0);\n \n public splitBtnItems = {\n labels: [] as string[],\n descriptions: [] as string[],\n variant: [] as ButtonVariants['variant'][],\n };\n\n constructor() {\n effect(\n () => {\n this.splitBtnItems.labels = [];\n this.splitBtnItems.variant = [];\n\n this._buttons().forEach(\n (btn) => {\n this.splitBtnItems.labels.push(btn.nativeElement.textContent?.trim()?? '');\n \n this.splitBtnItems.variant.push(\n (btn.nativeElement.getAttribute('variant')?? 'default') as ButtonVariants['variant']\n );\n }\n );\n \n this.splitBtnItems.descriptions = this._descriptions().map(\n (desc) => desc.nativeElement.textContent?.trim()?? ''\n );\n \n if (this._buttons().length > 1) {\n this._buttons().forEach(\n (btn) => {\n btn.nativeElement.classList.add('rounded-tr-none', 'rounded-br-none');\n }\n );\n }\n \n if (this._descriptions().length > 0) {\n this._descriptions().forEach(\n (desc) => {\n desc.nativeElement.style.display = 'none';\n }\n );\n }\n }\n );\n\n effect(\n () => {\n this._buttons().forEach(\n (btn, index) => {\n btn.nativeElement.style.display = index === this.activeIndex()? 'inline-block' : 'none';\n }\n );\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-buttons.mjs","sources":["../../../projects/unipin-angular/buttons/button/button-variant.type.ts","../../../projects/unipin-angular/buttons/button/button.directive.ts","../../../projects/unipin-angular/buttons/split-button/split-button.component.ts","../../../projects/unipin-angular/buttons/unipin-angular-applet-buttons.ts"],"sourcesContent":["import { type VariantProps, cva } from 'class-variance-authority';\n\nexport const buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_ng-icon]:pointer-events-none shrink-0 [&_ng-icon]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer disabled:cursor-not-allowed',\n {\n variants: {\n size: {\n default: 'h-9 px-4 py-2 has-[>ng-icon]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>ng-icon]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>ng-icon]:px-4',\n icon: 'size-9',\n },\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive: 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'border border-border hover:border-primary bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n }\n },\n defaultVariants: {\n size: 'default',\n variant: 'default',\n },\n }\n);\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","import { Directive, computed, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { buttonVariants, ButtonVariants } from './button-variant.type';\n\n\n@Directive({\n exportAs: 'upButton',\n selector: '[upButton]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpButtonDirective {\n\n public readonly size = input<ButtonVariants['size']>('default');\n public readonly variant = input<ButtonVariants['variant']>('default');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n buttonVariants(\n {\n size: this.size(),\n variant: this.variant(),\n }\n ),\n this.inlineClass(),\n );\n }\n );\n}\n","import { Component, ChangeDetectionStrategy, contentChildren, ElementRef, ModelSignal, model, effect } from '@angular/core';\nimport { provideIcons, NgIcon } from '@ng-icons/core';\nimport { matCheckRound, matArrowDropDownRound } from '@ng-icons/material-icons/round';\nimport { UpPopoverCloseDirective, UpPopoverTriggerDirective, UpPopoverContentDirective, UpPopoverContentRefDirective, UpPopoverComponent } from '@unipin/angular-applet/popover';\nimport { ButtonVariants } from '../button/button-variant.type';\nimport { UpButtonDirective } from '../button/button.directive';\n\n\n@Component({\n selector: 'up-split-button',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'flex'\n },\n providers: [\n provideIcons(\n { \n matCheckRound, \n matArrowDropDownRound \n }\n )\n ],\n imports: [\n NgIcon,\n UpButtonDirective,\n UpPopoverComponent,\n UpPopoverCloseDirective,\n UpPopoverTriggerDirective,\n UpPopoverContentDirective,\n UpPopoverContentRefDirective,\n ],\n template: `\n <ng-content />\n\n @if (_buttons().length > 1) {\n <up-popover \n alignment=\"end\" \n placementOffset=\"2\"\n >\n <button\n upButton\n upPopoverTrigger\n size=\"icon\"\n class=\"border-l border-border rounded-tl-none rounded-bl-none\" \n [variant]=\"splitBtnItems.variant[activeIndex()]\"\n >\n <ng-icon \n size=\"24\" \n name=\"matArrowDropDownRound\"\n />\n </button>\n\n <div\n upPopoverContent\n class=\"p-1 w-63\"\n *upPopoverContentRef\n >\n @for (label of splitBtnItems.labels; track $index) {\n <button \n upPopoverClose \n class=\"\n relative flex w-full items-start gap-2 rounded-sm px-2 py-1.5\n text-sm text-popover-foreground cursor-pointer select-none\n hover:bg-accent hover:text-accent-foreground appearance-none focus:outline-none \n after:absolute after:bottom-0 after:left-7 after:right-2 after:h-px after:bg-border last:after:hidden\n \"\n (click)=\"activeIndex.set($index)\"\n >\n @if ($index !== activeIndex()) {\n <span class=\"w-4 shrink-0\"></span>\n } \n @else {\n <ng-icon \n size=\"16\" \n class=\"shrink-0 mt-0.5\"\n name=\"matCheckRound\" \n />\n }\n \n <div class=\"flex-1 text-left\">\n <div class=\"font-medium truncate\">{{ label }}</div>\n\n @if (splitBtnItems.descriptions[$index]) {\n <div class=\"text-xs text-muted-foreground mt-0.5\">{{ splitBtnItems.descriptions[$index] }}</div>\n } \n </div>\n </button>\n }\n </div>\n </up-popover>\n }\n `\n})\nexport class UpSplitButtonComponent {\n\n public readonly _buttons = contentChildren(\n 'upSplitBtnItem', \n { \n read: ElementRef \n }\n );\n public readonly _descriptions = contentChildren(\n 'upSplitBtnDescription', \n {\n read: ElementRef\n }\n );\n \n public readonly activeIndex: ModelSignal<number> = model(0);\n \n public splitBtnItems = {\n labels: [] as string[],\n descriptions: [] as string[],\n variant: [] as ButtonVariants['variant'][],\n };\n\n constructor() {\n effect(\n () => {\n this.splitBtnItems.labels = [];\n this.splitBtnItems.variant = [];\n\n this._buttons().forEach(\n (btn) => {\n this.splitBtnItems.labels.push(btn.nativeElement.textContent?.trim()?? '');\n \n this.splitBtnItems.variant.push(\n (btn.nativeElement.getAttribute('variant')?? 'default') as ButtonVariants['variant']\n );\n }\n );\n \n this.splitBtnItems.descriptions = this._descriptions().map(\n (desc) => desc.nativeElement.textContent?.trim()?? ''\n );\n \n if (this._buttons().length > 1) {\n this._buttons().forEach(\n (btn) => {\n btn.nativeElement.classList.add('rounded-tr-none', 'rounded-br-none');\n }\n );\n }\n \n if (this._descriptions().length > 0) {\n this._descriptions().forEach(\n (desc) => {\n desc.nativeElement.style.display = 'none';\n }\n );\n }\n }\n );\n\n effect(\n () => {\n this._buttons().forEach(\n (btn, index) => {\n btn.nativeElement.style.display = index === this.activeIndex()? 'inline-block' : 'none';\n }\n );\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -13,14 +13,13 @@ class UpDateIsInRangePipe {
|
|
|
13
13
|
}
|
|
14
14
|
return date >= startOfDay(from) && date <= endOfDay(to);
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsInRangePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
17
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsInRangePipe, isStandalone: true, name: "upDateIsInRange" }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsInRangePipe, decorators: [{
|
|
20
20
|
type: Pipe,
|
|
21
21
|
args: [{
|
|
22
22
|
pure: true,
|
|
23
|
-
standalone: true,
|
|
24
23
|
name: 'upDateIsInRange',
|
|
25
24
|
}]
|
|
26
25
|
}] });
|
|
@@ -37,14 +36,13 @@ class UpDateIsWeekEdgePipe {
|
|
|
37
36
|
return 'right';
|
|
38
37
|
return null;
|
|
39
38
|
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
41
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsWeekEdgePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
40
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsWeekEdgePipe, isStandalone: true, name: "upDateIsWeekEdge" }); }
|
|
42
41
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsWeekEdgePipe, decorators: [{
|
|
44
43
|
type: Pipe,
|
|
45
44
|
args: [{
|
|
46
45
|
pure: true,
|
|
47
|
-
standalone: true,
|
|
48
46
|
name: 'upDateIsWeekEdge',
|
|
49
47
|
}]
|
|
50
48
|
}] });
|
|
@@ -59,40 +57,39 @@ class UpDateIsSelectablePipe {
|
|
|
59
57
|
return false;
|
|
60
58
|
return true;
|
|
61
59
|
}
|
|
62
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
63
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsSelectablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
61
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsSelectablePipe, isStandalone: true, name: "upDateIsSelectable" }); }
|
|
64
62
|
}
|
|
65
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpDateIsSelectablePipe, decorators: [{
|
|
66
64
|
type: Pipe,
|
|
67
65
|
args: [{
|
|
68
66
|
pure: true,
|
|
69
|
-
standalone: true,
|
|
70
67
|
name: 'upDateIsSelectable',
|
|
71
68
|
}]
|
|
72
69
|
}] });
|
|
73
70
|
|
|
74
71
|
class UpCalendarComponent {
|
|
75
72
|
constructor() {
|
|
76
|
-
this.minDate = input(null, ...(ngDevMode ? [{ debugName: "minDate" }] : []));
|
|
77
|
-
this.maxDate = input(null, ...(ngDevMode ? [{ debugName: "maxDate" }] : []));
|
|
78
|
-
this.variant = input('single', ...(ngDevMode ? [{ debugName: "variant" }] : []));
|
|
73
|
+
this.minDate = input(null, ...(ngDevMode ? [{ debugName: "minDate" }] : /* istanbul ignore next */ []));
|
|
74
|
+
this.maxDate = input(null, ...(ngDevMode ? [{ debugName: "maxDate" }] : /* istanbul ignore next */ []));
|
|
75
|
+
this.variant = input('single', ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
79
76
|
this.selected = output();
|
|
80
77
|
this.rangeSelected = output();
|
|
81
78
|
this.today = new Date();
|
|
82
|
-
this.activeDay = model(this.today, ...(ngDevMode ? [{ debugName: "activeDay" }] : []));
|
|
83
|
-
this.activeRangeDay = model({ from: null, to: null }, ...(ngDevMode ? [{ debugName: "activeRangeDay" }] : []));
|
|
84
|
-
this.rangeTo = signal(null, ...(ngDevMode ? [{ debugName: "rangeTo" }] : []));
|
|
85
|
-
this.rangeFrom = signal(null, ...(ngDevMode ? [{ debugName: "rangeFrom" }] : []));
|
|
86
|
-
this.selectedYear = signal(getYear(this.today), ...(ngDevMode ? [{ debugName: "selectedYear" }] : []));
|
|
87
|
-
this.selectedMonth = signal(getMonth(this.today), ...(ngDevMode ? [{ debugName: "selectedMonth" }] : []));
|
|
79
|
+
this.activeDay = model(this.today, ...(ngDevMode ? [{ debugName: "activeDay" }] : /* istanbul ignore next */ []));
|
|
80
|
+
this.activeRangeDay = model({ from: null, to: null }, ...(ngDevMode ? [{ debugName: "activeRangeDay" }] : /* istanbul ignore next */ []));
|
|
81
|
+
this.rangeTo = signal(null, ...(ngDevMode ? [{ debugName: "rangeTo" }] : /* istanbul ignore next */ []));
|
|
82
|
+
this.rangeFrom = signal(null, ...(ngDevMode ? [{ debugName: "rangeFrom" }] : /* istanbul ignore next */ []));
|
|
83
|
+
this.selectedYear = signal(getYear(this.today), ...(ngDevMode ? [{ debugName: "selectedYear" }] : /* istanbul ignore next */ []));
|
|
84
|
+
this.selectedMonth = signal(getMonth(this.today), ...(ngDevMode ? [{ debugName: "selectedMonth" }] : /* istanbul ignore next */ []));
|
|
88
85
|
this.firstDayOfActiveMonth = computed(() => {
|
|
89
86
|
return startOfMonth(new Date(this.selectedYear(), this.selectedMonth(), 1));
|
|
90
|
-
}, ...(ngDevMode ? [{ debugName: "firstDayOfActiveMonth" }] : []));
|
|
87
|
+
}, ...(ngDevMode ? [{ debugName: "firstDayOfActiveMonth" }] : /* istanbul ignore next */ []));
|
|
91
88
|
this.daysOfMonth = computed(() => {
|
|
92
89
|
const start = startOfWeek(this.firstDayOfActiveMonth(), { weekStartsOn: 1 });
|
|
93
90
|
const end = endOfWeek(endOfMonth(this.firstDayOfActiveMonth()), { weekStartsOn: 1 });
|
|
94
91
|
return eachDayOfInterval({ start, end });
|
|
95
|
-
}, ...(ngDevMode ? [{ debugName: "daysOfMonth" }] : []));
|
|
92
|
+
}, ...(ngDevMode ? [{ debugName: "daysOfMonth" }] : /* istanbul ignore next */ []));
|
|
96
93
|
this.weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
|
|
97
94
|
this.months = Array.from({ length: 12 }, (_, i) => format(new Date(2000, i), 'MMM'));
|
|
98
95
|
this.years = Array.from({
|
|
@@ -186,8 +183,8 @@ class UpCalendarComponent {
|
|
|
186
183
|
this.rangeFrom.set(from);
|
|
187
184
|
this.rangeSelected.emit({ from, to });
|
|
188
185
|
}
|
|
189
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
190
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
186
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
187
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.10", type: UpCalendarComponent, isStandalone: true, selector: "up-calendar", inputs: { minDate: { classPropertyName: "minDate", publicName: "minDate", isSignal: true, isRequired: false, transformFunction: null }, maxDate: { classPropertyName: "maxDate", publicName: "maxDate", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, activeDay: { classPropertyName: "activeDay", publicName: "activeDay", isSignal: true, isRequired: false, transformFunction: null }, activeRangeDay: { classPropertyName: "activeRangeDay", publicName: "activeRangeDay", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selected: "selected", rangeSelected: "rangeSelected", activeDay: "activeDayChange", activeRangeDay: "activeRangeDayChange" }, providers: [
|
|
191
188
|
provideIcons({
|
|
192
189
|
matArrowBackIosRound,
|
|
193
190
|
matArrowForwardIosRound
|
|
@@ -334,10 +331,9 @@ class UpCalendarComponent {
|
|
|
334
331
|
</div>
|
|
335
332
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: UpButtonDirective, selector: "[upButton]", inputs: ["size", "variant", "class"], exportAs: ["upButton"] }, { kind: "pipe", type: UpDateIsInRangePipe, name: "upDateIsInRange" }, { kind: "pipe", type: UpDateIsWeekEdgePipe, name: "upDateIsWeekEdge" }, { kind: "pipe", type: UpDateIsSelectablePipe, name: "upDateIsSelectable" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
336
333
|
}
|
|
337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCalendarComponent, decorators: [{
|
|
338
335
|
type: Component,
|
|
339
336
|
args: [{
|
|
340
|
-
standalone: true,
|
|
341
337
|
selector: 'up-calendar',
|
|
342
338
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
343
339
|
providers: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-calendar.mjs","sources":["../../../projects/unipin-angular/calendar/pipes/date-is-in-range.pipe.ts","../../../projects/unipin-angular/calendar/pipes/date-is-week-edge.pipe.ts","../../../projects/unipin-angular/calendar/pipes/date-is-selectable.pipe.ts","../../../projects/unipin-angular/calendar/components/calendar.component.ts","../../../projects/unipin-angular/calendar/unipin-angular-applet-calendar.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { startOfDay, endOfDay } from 'date-fns';\n\n@Pipe({\n pure: true,\n standalone: true,\n name: 'upDateIsInRange',\n})\nexport class UpDateIsInRangePipe implements PipeTransform {\n \n public transform(date: Date, from?: Date | null, to?: Date | null): boolean{\n if (!date || !from || !to) {\n return false;\n }\n return date >= startOfDay(from) && date <= endOfDay(to);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getDay } from 'date-fns';\n\n@Pipe({\n pure: true,\n standalone: true,\n name: 'upDateIsWeekEdge',\n})\nexport class UpDateIsWeekEdgePipe implements PipeTransform {\n\n public transform(date: Date | null): 'left' | 'right' | null{\n if (!date) {\n return null;\n }\n const day = getDay(date);\n\n if (day === 1) return 'left';\n if (day === 0) return 'right';\n return null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { startOfDay, endOfDay } from 'date-fns';\n\n@Pipe({\n pure: true,\n standalone: true,\n name: 'upDateIsSelectable',\n})\nexport class UpDateIsSelectablePipe implements PipeTransform {\n \n public transform(date: Date, minDate?: Date | null, maxDate?: Date | null): boolean{\n if (!date) return false;\n \n if (minDate && date < startOfDay(minDate)) return false;\n if (maxDate && date > endOfDay(maxDate)) return false;\n return true;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, input, model, output, signal } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matArrowBackIosRound, matArrowForwardIosRound } from '@ng-icons/material-icons/round';\nimport { addMonths, eachDayOfInterval, endOfMonth, endOfWeek, format, getMonth, getYear, startOfMonth, startOfWeek, subMonths } from 'date-fns';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { SingleDate, RangeDate } from '../types/calendar-date.type';\nimport { UpDateIsInRangePipe } from '../pipes/date-is-in-range.pipe';\nimport { UpDateIsWeekEdgePipe } from '../pipes/date-is-week-edge.pipe';\nimport { UpDateIsSelectablePipe } from '../pipes/date-is-selectable.pipe';\n\n\n@Component({\n standalone: true,\n selector: 'up-calendar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n provideIcons(\n { \n matArrowBackIosRound, \n matArrowForwardIosRound \n }\n )\n ],\n imports: [\n NgClass,\n NgIcon,\n UpButtonDirective,\n UpDateIsInRangePipe,\n UpDateIsWeekEdgePipe,\n UpDateIsSelectablePipe,\n ],\n template: `\n <div class=\"w-fit rounded-xl border border-border bg-white p-3 shadow-lg [--cell-size:2rem]\">\n <div class=\"flex items-center justify-between mb-4 gap-1\">\n <button\n upButton\n type=\"icon\"\n variant=\"ghost\"\n (click)=\"previousMonth()\"\n class=\"h-[--cell-size] w-[--cell-size]\"\n >\n <ng-icon name=\"matArrowBackIosRound\" size=\"14\" />\n </button>\n\n <div class=\"flex items-center justify-center h-[--cell-size] gap-1.5\">\n <div\n class=\"\n relative border border-input rounded-md shadow-xs \n has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]\n \"\n >\n <select\n class=\"\n h-8 bg-background px-2 pr-6 text-sm font-medium text-foreground \n appearance-none cursor-pointer focus:outline-none relative z-10 opacity-0\n \"\n (change)=\"changeMonth($event)\"\n >\n @for (month of months; track $index) {\n <option \n [value]=\"$index\" \n [selected]=\"$index === selectedMonth()\"\n >\n {{ month }}\n </option>\n }\n </select>\n \n <div class=\"absolute inset-0 flex items-center px-2\">\n <span class=\"text-sm font-medium flex-1 truncate\">\n {{ months[selectedMonth()] }}\n </span>\n \n <ng-icon\n size=\"10\"\n name=\"matArrowForwardIosRound\"\n class=\"text-muted-foreground rotate-90 absolute right-2 pointer-events-none\"\n />\n </div>\n </div>\n\n <div\n class=\"\n relative border border-input rounded-md shadow-xs \n has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]\n \"\n >\n <select\n class=\"\n h-8 bg-background px-2 pr-6 text-sm font-medium text-foreground \n appearance-none cursor-pointer focus:outline-none relative z-10 opacity-0\n \"\n (change)=\"changeYear($event)\"\n >\n @for (year of years; track $index) {\n <option \n [value]=\"year\" \n [selected]=\"year === selectedYear()\"\n >\n {{ year }}\n </option>\n }\n </select>\n \n <div class=\"absolute inset-0 flex items-center px-2\">\n <span class=\"text-sm font-medium flex-1 truncate\">\n {{ selectedYear() }}\n </span>\n \n <ng-icon\n size=\"10\"\n name=\"matArrowForwardIosRound\"\n class=\"text-muted-foreground rotate-90 absolute right-2 pointer-events-none\"\n />\n </div>\n </div>\n </div>\n\n <button\n upButton\n type=\"icon\"\n variant=\"ghost\"\n (click)=\"nextMonth()\"\n class=\"h-[--cell-size] w-[--cell-size]\"\n >\n <ng-icon name=\"matArrowForwardIosRound\" size=\"14\" />\n </button>\n </div>\n\n <div class=\"grid grid-cols-7 text-center text-[0.8rem] font-normal text-muted-foreground\">\n @for (day of weekDays; track $index) {\n <div class=\"select-none py-1\">\n {{ day }}\n </div>\n }\n </div>\n\n <div class=\"grid grid-cols-7 text-sm mt-2\">\n @for (day of daysOfMonth(); track $index) {\n <div \n class=\"relative aspect-square select-none mt-2 outline-none\"\n [ngClass]=\"{\n 'bg-primary/20': variant() === 'range' && (day | upDateIsInRange:rangeFrom():rangeTo()),\n 'rounded-l-md': day.toDateString() === rangeFrom()?.toDateString() || ((day | upDateIsInRange:rangeFrom():rangeTo()) && (day | upDateIsWeekEdge) === 'left'),\n 'rounded-r-md': day.toDateString() === rangeTo()?.toDateString() || ((day | upDateIsInRange:rangeFrom():rangeTo()) && (day | upDateIsWeekEdge) === 'right')\n }\"\n >\n <button\n class=\"flex aspect-square w-full min-w-[--cell-size] items-center justify-center rounded-md font-normal leading-none transition-colors duration-150 not-disabled:cursor-pointer outline-none\"\n [disabled]=\"!(day | upDateIsSelectable:minDate():maxDate())\"\n [ngClass]=\"{\n 'bg-accent text-accent-foreground': day.toDateString() === today.toDateString(),\n 'opacity-40 pointer-events-none': !(day | upDateIsSelectable:minDate():maxDate()),\n 'text-foreground hover:bg-accent hover:text-accent-foreground': day.getMonth() === firstDayOfActiveMonth().getMonth(),\n 'text-muted-foreground/40 hover:text-muted-foreground/60 hover:bg-accent/30': day.getMonth() !== firstDayOfActiveMonth().getMonth(),\n \n 'bg-primary text-primary-foreground':\n (variant() === 'single' && activeDay()?.toDateString() === day.toDateString()) ||\n (variant() === 'range' && (\n day.toDateString() === rangeFrom()?.toDateString() ||\n day.toDateString() === rangeTo()?.toDateString()\n )),\n }\"\n (click)=\"selectDate(day)\"\n >\n {{ day.getDate() }}\n </button>\n </div>\n }\n </div>\n </div>\n `,\n})\nexport class UpCalendarComponent {\n \n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n public readonly variant = input<'single' | 'range'>('single');\n \n public readonly selected = output<SingleDate>();\n public readonly rangeSelected = output<RangeDate>();\n\n public readonly today = new Date();\n public readonly activeDay = model<SingleDate>(this.today);\n public readonly activeRangeDay = model<RangeDate>({from: null, to: null});\n\n public readonly rangeTo = signal<SingleDate>(null);\n public readonly rangeFrom = signal<SingleDate>(null);\n\n public readonly selectedYear = signal(getYear(this.today));\n public readonly selectedMonth = signal(getMonth(this.today));\n\n public readonly firstDayOfActiveMonth = computed(\n () => {\n return startOfMonth(new Date(this.selectedYear(), this.selectedMonth(), 1));\n }\n );\n \n public readonly daysOfMonth = computed(\n () => {\n const start = startOfWeek(this.firstDayOfActiveMonth(), { weekStartsOn: 1 });\n const end = endOfWeek(endOfMonth(this.firstDayOfActiveMonth()), { weekStartsOn: 1 });\n \n return eachDayOfInterval({ start, end });\n }\n );\n\n public readonly weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\n public readonly months = Array.from(\n { length: 12 }, \n (_, i) => format(new Date(2000, i), 'MMM')\n );\n public readonly years = Array.from(\n { \n length: (new Date().getFullYear() + 2) - 1970 + 1\n },\n (_, i) => 1970 + i\n );\n\n constructor() {\n effect(\n () => {\n if (this.variant() !== 'range') {\n return;\n }\n const range = this.activeRangeDay();\n\n if (!range.from && !range.to) {\n this.rangeTo.set(null);\n this.rangeFrom.set(null);\n \n return;\n }\n \n if (range.from && range.to) {\n this.rangeTo.set(range.to);\n this.rangeFrom.set(range.from);\n \n return;\n }\n const singleDate = range.from || range.to;\n \n this.rangeTo.set(singleDate);\n this.rangeFrom.set(singleDate);\n }\n );\n\n effect(\n () => {\n const active = this.activeDay();\n if (!active) return;\n \n this.selectedYear.set(active.getFullYear());\n this.selectedMonth.set(active.getMonth());\n }\n );\n\n effect(\n () => {\n const active = this.activeRangeDay();\n if (!active.from) return;\n \n this.selectedYear.set(active.from.getFullYear());\n this.selectedMonth.set(active.from.getMonth());\n }\n );\n }\n\n public changeMonth(event: Event): void{\n this.selectedMonth.set(\n +(event.target as HTMLSelectElement).value\n );\n }\n \n public changeYear(event: Event): void{\n this.selectedYear.set(\n +(event.target as HTMLSelectElement).value\n );\n }\n\n public previousMonth(): void{\n const prev = subMonths(this.firstDayOfActiveMonth(), 1);\n \n this.selectedYear.set(getYear(prev));\n this.selectedMonth.set(getMonth(prev));\n }\n \n public nextMonth(): void{\n const next = addMonths(this.firstDayOfActiveMonth(), 1);\n \n this.selectedYear.set(getYear(next));\n this.selectedMonth.set(getMonth(next));\n }\n\n public selectDate(day: Date): void{\n if (this.variant() === 'single') {\n const active = this.activeDay();\n const value = active && active.toDateString() === day.toDateString() ? null : day;\n \n this.activeDay.set(value);\n this.selected.emit(value);\n \n return;\n }\n this.handleRangeSelection(day);\n }\n\n protected handleRangeSelection(day: Date): void{\n const from = this.rangeFrom();\n const to = this.rangeTo();\n \n const time = day.getTime();\n if (!from && !to) {\n return this.setRange(day, day);\n }\n \n if (\n from?.getTime() === to?.getTime() && \n from?.getTime() === time\n ) {\n return this.setRange(null, null);\n }\n \n if (from && to) {\n const fromTime = from.getTime();\n const toTime = to.getTime();\n \n if (time === fromTime) return this.setRange(from, day);\n if (time === toTime) return this.setRange(day, to);\n if (time < fromTime) return this.setRange(day, to);\n \n return this.setRange(from, day);\n }\n }\n \n protected setRange(from: SingleDate, to: SingleDate): void{\n this.rangeTo.set(to);\n this.rangeFrom.set(from);\n \n this.rangeSelected.emit({ from, to });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-calendar.mjs","sources":["../../../projects/unipin-angular/calendar/pipes/date-is-in-range.pipe.ts","../../../projects/unipin-angular/calendar/pipes/date-is-week-edge.pipe.ts","../../../projects/unipin-angular/calendar/pipes/date-is-selectable.pipe.ts","../../../projects/unipin-angular/calendar/components/calendar.component.ts","../../../projects/unipin-angular/calendar/unipin-angular-applet-calendar.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { startOfDay, endOfDay } from 'date-fns';\n\n\n@Pipe({\n pure: true,\n name: 'upDateIsInRange',\n})\nexport class UpDateIsInRangePipe implements PipeTransform {\n \n public transform(date: Date, from?: Date | null, to?: Date | null): boolean{\n if (!date || !from || !to) {\n return false;\n }\n return date >= startOfDay(from) && date <= endOfDay(to);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getDay } from 'date-fns';\n\n\n@Pipe({\n pure: true,\n name: 'upDateIsWeekEdge',\n})\nexport class UpDateIsWeekEdgePipe implements PipeTransform {\n\n public transform(date: Date | null): 'left' | 'right' | null{\n if (!date) {\n return null;\n }\n const day = getDay(date);\n\n if (day === 1) return 'left';\n if (day === 0) return 'right';\n return null;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { startOfDay, endOfDay } from 'date-fns';\n\n\n@Pipe({\n pure: true,\n name: 'upDateIsSelectable',\n})\nexport class UpDateIsSelectablePipe implements PipeTransform {\n \n public transform(date: Date, minDate?: Date | null, maxDate?: Date | null): boolean{\n if (!date) return false;\n \n if (minDate && date < startOfDay(minDate)) return false;\n if (maxDate && date > endOfDay(maxDate)) return false;\n return true;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, input, model, output, signal } from '@angular/core';\nimport { NgClass } from '@angular/common';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { matArrowBackIosRound, matArrowForwardIosRound } from '@ng-icons/material-icons/round';\nimport { addMonths, eachDayOfInterval, endOfMonth, endOfWeek, format, getMonth, getYear, startOfMonth, startOfWeek, subMonths } from 'date-fns';\nimport { UpButtonDirective } from '@unipin/angular-applet/buttons';\nimport { SingleDate, RangeDate } from '../types/calendar-date.type';\nimport { UpDateIsInRangePipe } from '../pipes/date-is-in-range.pipe';\nimport { UpDateIsWeekEdgePipe } from '../pipes/date-is-week-edge.pipe';\nimport { UpDateIsSelectablePipe } from '../pipes/date-is-selectable.pipe';\n\n\n@Component({\n selector: 'up-calendar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n provideIcons(\n { \n matArrowBackIosRound, \n matArrowForwardIosRound \n }\n )\n ],\n imports: [\n NgClass,\n NgIcon,\n UpButtonDirective,\n UpDateIsInRangePipe,\n UpDateIsWeekEdgePipe,\n UpDateIsSelectablePipe,\n ],\n template: `\n <div class=\"w-fit rounded-xl border border-border bg-white p-3 shadow-lg [--cell-size:2rem]\">\n <div class=\"flex items-center justify-between mb-4 gap-1\">\n <button\n upButton\n type=\"icon\"\n variant=\"ghost\"\n (click)=\"previousMonth()\"\n class=\"h-[--cell-size] w-[--cell-size]\"\n >\n <ng-icon name=\"matArrowBackIosRound\" size=\"14\" />\n </button>\n\n <div class=\"flex items-center justify-center h-[--cell-size] gap-1.5\">\n <div\n class=\"\n relative border border-input rounded-md shadow-xs \n has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]\n \"\n >\n <select\n class=\"\n h-8 bg-background px-2 pr-6 text-sm font-medium text-foreground \n appearance-none cursor-pointer focus:outline-none relative z-10 opacity-0\n \"\n (change)=\"changeMonth($event)\"\n >\n @for (month of months; track $index) {\n <option \n [value]=\"$index\" \n [selected]=\"$index === selectedMonth()\"\n >\n {{ month }}\n </option>\n }\n </select>\n \n <div class=\"absolute inset-0 flex items-center px-2\">\n <span class=\"text-sm font-medium flex-1 truncate\">\n {{ months[selectedMonth()] }}\n </span>\n \n <ng-icon\n size=\"10\"\n name=\"matArrowForwardIosRound\"\n class=\"text-muted-foreground rotate-90 absolute right-2 pointer-events-none\"\n />\n </div>\n </div>\n\n <div\n class=\"\n relative border border-input rounded-md shadow-xs \n has-focus:border-ring has-focus:ring-ring/50 has-focus:ring-[3px]\n \"\n >\n <select\n class=\"\n h-8 bg-background px-2 pr-6 text-sm font-medium text-foreground \n appearance-none cursor-pointer focus:outline-none relative z-10 opacity-0\n \"\n (change)=\"changeYear($event)\"\n >\n @for (year of years; track $index) {\n <option \n [value]=\"year\" \n [selected]=\"year === selectedYear()\"\n >\n {{ year }}\n </option>\n }\n </select>\n \n <div class=\"absolute inset-0 flex items-center px-2\">\n <span class=\"text-sm font-medium flex-1 truncate\">\n {{ selectedYear() }}\n </span>\n \n <ng-icon\n size=\"10\"\n name=\"matArrowForwardIosRound\"\n class=\"text-muted-foreground rotate-90 absolute right-2 pointer-events-none\"\n />\n </div>\n </div>\n </div>\n\n <button\n upButton\n type=\"icon\"\n variant=\"ghost\"\n (click)=\"nextMonth()\"\n class=\"h-[--cell-size] w-[--cell-size]\"\n >\n <ng-icon name=\"matArrowForwardIosRound\" size=\"14\" />\n </button>\n </div>\n\n <div class=\"grid grid-cols-7 text-center text-[0.8rem] font-normal text-muted-foreground\">\n @for (day of weekDays; track $index) {\n <div class=\"select-none py-1\">\n {{ day }}\n </div>\n }\n </div>\n\n <div class=\"grid grid-cols-7 text-sm mt-2\">\n @for (day of daysOfMonth(); track $index) {\n <div \n class=\"relative aspect-square select-none mt-2 outline-none\"\n [ngClass]=\"{\n 'bg-primary/20': variant() === 'range' && (day | upDateIsInRange:rangeFrom():rangeTo()),\n 'rounded-l-md': day.toDateString() === rangeFrom()?.toDateString() || ((day | upDateIsInRange:rangeFrom():rangeTo()) && (day | upDateIsWeekEdge) === 'left'),\n 'rounded-r-md': day.toDateString() === rangeTo()?.toDateString() || ((day | upDateIsInRange:rangeFrom():rangeTo()) && (day | upDateIsWeekEdge) === 'right')\n }\"\n >\n <button\n class=\"flex aspect-square w-full min-w-[--cell-size] items-center justify-center rounded-md font-normal leading-none transition-colors duration-150 not-disabled:cursor-pointer outline-none\"\n [disabled]=\"!(day | upDateIsSelectable:minDate():maxDate())\"\n [ngClass]=\"{\n 'bg-accent text-accent-foreground': day.toDateString() === today.toDateString(),\n 'opacity-40 pointer-events-none': !(day | upDateIsSelectable:minDate():maxDate()),\n 'text-foreground hover:bg-accent hover:text-accent-foreground': day.getMonth() === firstDayOfActiveMonth().getMonth(),\n 'text-muted-foreground/40 hover:text-muted-foreground/60 hover:bg-accent/30': day.getMonth() !== firstDayOfActiveMonth().getMonth(),\n \n 'bg-primary text-primary-foreground':\n (variant() === 'single' && activeDay()?.toDateString() === day.toDateString()) ||\n (variant() === 'range' && (\n day.toDateString() === rangeFrom()?.toDateString() ||\n day.toDateString() === rangeTo()?.toDateString()\n )),\n }\"\n (click)=\"selectDate(day)\"\n >\n {{ day.getDate() }}\n </button>\n </div>\n }\n </div>\n </div>\n `,\n})\nexport class UpCalendarComponent {\n \n public readonly minDate = input<SingleDate>(null);\n public readonly maxDate = input<SingleDate>(null);\n public readonly variant = input<'single' | 'range'>('single');\n \n public readonly selected = output<SingleDate>();\n public readonly rangeSelected = output<RangeDate>();\n\n public readonly today = new Date();\n public readonly activeDay = model<SingleDate>(this.today);\n public readonly activeRangeDay = model<RangeDate>({from: null, to: null});\n\n public readonly rangeTo = signal<SingleDate>(null);\n public readonly rangeFrom = signal<SingleDate>(null);\n\n public readonly selectedYear = signal(getYear(this.today));\n public readonly selectedMonth = signal(getMonth(this.today));\n\n public readonly firstDayOfActiveMonth = computed(\n () => {\n return startOfMonth(new Date(this.selectedYear(), this.selectedMonth(), 1));\n }\n );\n \n public readonly daysOfMonth = computed(\n () => {\n const start = startOfWeek(this.firstDayOfActiveMonth(), { weekStartsOn: 1 });\n const end = endOfWeek(endOfMonth(this.firstDayOfActiveMonth()), { weekStartsOn: 1 });\n \n return eachDayOfInterval({ start, end });\n }\n );\n\n public readonly weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];\n public readonly months = Array.from(\n { length: 12 }, \n (_, i) => format(new Date(2000, i), 'MMM')\n );\n public readonly years = Array.from(\n { \n length: (new Date().getFullYear() + 2) - 1970 + 1\n },\n (_, i) => 1970 + i\n );\n\n constructor() {\n effect(\n () => {\n if (this.variant() !== 'range') {\n return;\n }\n const range = this.activeRangeDay();\n\n if (!range.from && !range.to) {\n this.rangeTo.set(null);\n this.rangeFrom.set(null);\n \n return;\n }\n \n if (range.from && range.to) {\n this.rangeTo.set(range.to);\n this.rangeFrom.set(range.from);\n \n return;\n }\n const singleDate = range.from || range.to;\n \n this.rangeTo.set(singleDate);\n this.rangeFrom.set(singleDate);\n }\n );\n\n effect(\n () => {\n const active = this.activeDay();\n if (!active) return;\n \n this.selectedYear.set(active.getFullYear());\n this.selectedMonth.set(active.getMonth());\n }\n );\n\n effect(\n () => {\n const active = this.activeRangeDay();\n if (!active.from) return;\n \n this.selectedYear.set(active.from.getFullYear());\n this.selectedMonth.set(active.from.getMonth());\n }\n );\n }\n\n public changeMonth(event: Event): void{\n this.selectedMonth.set(\n +(event.target as HTMLSelectElement).value\n );\n }\n \n public changeYear(event: Event): void{\n this.selectedYear.set(\n +(event.target as HTMLSelectElement).value\n );\n }\n\n public previousMonth(): void{\n const prev = subMonths(this.firstDayOfActiveMonth(), 1);\n \n this.selectedYear.set(getYear(prev));\n this.selectedMonth.set(getMonth(prev));\n }\n \n public nextMonth(): void{\n const next = addMonths(this.firstDayOfActiveMonth(), 1);\n \n this.selectedYear.set(getYear(next));\n this.selectedMonth.set(getMonth(next));\n }\n\n public selectDate(day: Date): void{\n if (this.variant() === 'single') {\n const active = this.activeDay();\n const value = active && active.toDateString() === day.toDateString() ? null : day;\n \n this.activeDay.set(value);\n this.selected.emit(value);\n \n return;\n }\n this.handleRangeSelection(day);\n }\n\n protected handleRangeSelection(day: Date): void{\n const from = this.rangeFrom();\n const to = this.rangeTo();\n \n const time = day.getTime();\n if (!from && !to) {\n return this.setRange(day, day);\n }\n \n if (\n from?.getTime() === to?.getTime() && \n from?.getTime() === time\n ) {\n return this.setRange(null, null);\n }\n \n if (from && to) {\n const fromTime = from.getTime();\n const toTime = to.getTime();\n \n if (time === fromTime) return this.setRange(from, day);\n if (time === toTime) return this.setRange(day, to);\n if (time < fromTime) return this.setRange(day, to);\n \n return this.setRange(from, day);\n }\n }\n \n protected setRange(from: SingleDate, to: SingleDate): void{\n this.rangeTo.set(to);\n this.rangeFrom.set(from);\n \n this.rangeSelected.emit({ from, to });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -4,22 +4,21 @@ import { up } from '@unipin/angular-applet/common';
|
|
|
4
4
|
|
|
5
5
|
class UpCollapsibleDirective {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.isOpened = model(false, ...(ngDevMode ? [{ debugName: "isOpened" }] : []));
|
|
8
|
-
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
|
|
9
|
-
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
7
|
+
this.isOpened = model(false, ...(ngDevMode ? [{ debugName: "isOpened" }] : /* istanbul ignore next */ []));
|
|
8
|
+
this.disabled = input(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
9
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
10
10
|
}
|
|
11
11
|
setOpen(value) {
|
|
12
12
|
if (!this.disabled()) {
|
|
13
13
|
this.isOpened.set(value);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
17
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCollapsibleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.10", type: UpCollapsibleDirective, isStandalone: true, selector: "[upCollapsible]", inputs: { isOpened: { classPropertyName: "isOpened", publicName: "isOpened", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isOpened: "isOpenedChange" }, host: { properties: { "class": "inlineClass()", "attr.data-state": "isOpened()? 'open' : 'closed'" } }, exportAs: ["upCollapsible"], ngImport: i0 }); }
|
|
18
18
|
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCollapsibleDirective, decorators: [{
|
|
20
20
|
type: Directive,
|
|
21
21
|
args: [{
|
|
22
|
-
standalone: true,
|
|
23
22
|
exportAs: 'upCollapsible',
|
|
24
23
|
selector: '[upCollapsible]',
|
|
25
24
|
host: {
|
|
@@ -32,21 +31,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
32
31
|
class UpCollapsibleTriggerDirective {
|
|
33
32
|
constructor(parent) {
|
|
34
33
|
this.parent = parent;
|
|
35
|
-
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
34
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
36
35
|
this._computedClass = computed(() => {
|
|
37
36
|
return up('cursor-pointer', this.inlineClass());
|
|
38
|
-
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
37
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
39
38
|
}
|
|
40
39
|
toggleState() {
|
|
41
40
|
this.parent.setOpen(!this.parent.isOpened());
|
|
42
41
|
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
44
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCollapsibleTriggerDirective, deps: [{ token: UpCollapsibleDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
43
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.10", type: UpCollapsibleTriggerDirective, isStandalone: true, selector: "[upCollapsibleTrigger]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggleState()" }, properties: { "class": "_computedClass()", "attr.disabled": "parent.disabled() || null", "attr.data-state": "parent.isOpened()? 'open' : 'closed'" } }, exportAs: ["upCollapsibleTrigger"], ngImport: i0 }); }
|
|
45
44
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCollapsibleTriggerDirective, decorators: [{
|
|
47
46
|
type: Directive,
|
|
48
47
|
args: [{
|
|
49
|
-
standalone: true,
|
|
50
48
|
exportAs: 'upCollapsibleTrigger',
|
|
51
49
|
selector: '[upCollapsibleTrigger]',
|
|
52
50
|
host: {
|
|
@@ -62,22 +60,21 @@ class UpCollapsibleContentDirective {
|
|
|
62
60
|
constructor(elementRef, parent) {
|
|
63
61
|
this.elementRef = elementRef;
|
|
64
62
|
this.parent = parent;
|
|
65
|
-
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
63
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : /* istanbul ignore next */ {}), alias: 'class' });
|
|
66
64
|
this._contentHeight = computed(() => {
|
|
67
65
|
const element = this.elementRef.nativeElement;
|
|
68
66
|
return element ? `${element.scrollHeight}px` : '0px';
|
|
69
|
-
}, ...(ngDevMode ? [{ debugName: "_contentHeight" }] : []));
|
|
67
|
+
}, ...(ngDevMode ? [{ debugName: "_contentHeight" }] : /* istanbul ignore next */ []));
|
|
70
68
|
this._computedClass = computed(() => {
|
|
71
69
|
return up('overflow-hidden transition-all duration-300 ease-in-out', 'h-0 data-[state="open"]:h-[var(--up-collapsible-content-height)]', 'invisible data-[state="open"]:visible', this.inlineClass());
|
|
72
|
-
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
70
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : /* istanbul ignore next */ []));
|
|
73
71
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
75
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCollapsibleContentDirective, deps: [{ token: i0.ElementRef }, { token: UpCollapsibleDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
73
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.10", type: UpCollapsibleContentDirective, isStandalone: true, selector: "[upCollapsibleContent]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()", "attr.data-disabled": "parent.disabled() || null", "attr.data-state": "parent.isOpened()? 'open' : 'closed'", "style.--up-collapsible-content-height": "_contentHeight()" } }, exportAs: ["upCollapsibleContent"], ngImport: i0 }); }
|
|
76
74
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCollapsibleContentDirective, decorators: [{
|
|
78
76
|
type: Directive,
|
|
79
77
|
args: [{
|
|
80
|
-
standalone: true,
|
|
81
78
|
exportAs: 'upCollapsibleContent',
|
|
82
79
|
selector: '[upCollapsibleContent]',
|
|
83
80
|
host: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-collapsible.mjs","sources":["../../../projects/unipin-angular/collapsible/directives/collapsible.directive.ts","../../../projects/unipin-angular/collapsible/directives/collapsible-trigger.directive.ts","../../../projects/unipin-angular/collapsible/directives/collapsible-content.directive.ts","../../../projects/unipin-angular/collapsible/unipin-angular-applet-collapsible.ts"],"sourcesContent":["import { Directive, input, model } from '@angular/core';\nimport { ClassValue } from 'clsx';\n\n@Directive({\n
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-collapsible.mjs","sources":["../../../projects/unipin-angular/collapsible/directives/collapsible.directive.ts","../../../projects/unipin-angular/collapsible/directives/collapsible-trigger.directive.ts","../../../projects/unipin-angular/collapsible/directives/collapsible-content.directive.ts","../../../projects/unipin-angular/collapsible/unipin-angular-applet-collapsible.ts"],"sourcesContent":["import { Directive, input, model } from '@angular/core';\nimport { ClassValue } from 'clsx';\n\n\n@Directive({\n exportAs: 'upCollapsible',\n selector: '[upCollapsible]',\n host: {\n '[class]': 'inlineClass()',\n '[attr.data-state]': `isOpened()? 'open' : 'closed'`,\n }\n})\nexport class UpCollapsibleDirective {\n \n public readonly isOpened= model<boolean>(false);\n public readonly disabled = input<boolean>(false);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public setOpen(value: boolean): void{\n if (!this.disabled()) {\n this.isOpened.set(value);\n }\n }\n}\n","import { computed, Directive, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpCollapsibleDirective } from './collapsible.directive';\n\n\n@Directive({\n exportAs: 'upCollapsibleTrigger',\n selector: '[upCollapsibleTrigger]',\n host: {\n '[class]': '_computedClass()',\n '[attr.disabled]': 'parent.disabled() || null',\n '[attr.data-state]': `parent.isOpened()? 'open' : 'closed'`,\n '(click)': 'toggleState()'\n }\n})\nexport class UpCollapsibleTriggerDirective {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'cursor-pointer',\n this.inlineClass(),\n );\n }\n );\n\n constructor(\n protected readonly parent: UpCollapsibleDirective\n ) { }\n\n public toggleState(): void{\n this.parent.setOpen(\n !this.parent.isOpened()\n );\n }\n}\n","import { computed, Directive, ElementRef, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpCollapsibleDirective } from './collapsible.directive';\n\n\n@Directive({\n exportAs: 'upCollapsibleContent',\n selector: '[upCollapsibleContent]',\n host: {\n '[class]': '_computedClass()',\n '[attr.data-disabled]': 'parent.disabled() || null',\n '[attr.data-state]': `parent.isOpened()? 'open' : 'closed'`,\n '[style.--up-collapsible-content-height]': '_contentHeight()',\n }\n})\nexport class UpCollapsibleContentDirective {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _contentHeight = computed(\n () => {\n const element = this.elementRef.nativeElement as HTMLElement;\n return element? `${ element.scrollHeight }px` : '0px';\n }\n );\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'overflow-hidden transition-all duration-300 ease-in-out',\n 'h-0 data-[state=\"open\"]:h-[var(--up-collapsible-content-height)]',\n 'invisible data-[state=\"open\"]:visible',\n this.inlineClass(),\n );\n }\n );\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly parent: UpCollapsibleDirective,\n ) { }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UpCollapsibleDirective"],"mappings":"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"}
|
|
@@ -64,14 +64,13 @@ class UpPricePipe {
|
|
|
64
64
|
transform(value, magnifyValue = 1, format = 'number') {
|
|
65
65
|
return formatPrice(+value, +magnifyValue, format);
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
68
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpPricePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
68
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpPricePipe, isStandalone: true, name: "upPrice" }); }
|
|
69
69
|
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpPricePipe, decorators: [{
|
|
71
71
|
type: Pipe,
|
|
72
72
|
args: [{
|
|
73
73
|
pure: true,
|
|
74
|
-
standalone: true,
|
|
75
74
|
name: 'upPrice'
|
|
76
75
|
}]
|
|
77
76
|
}] });
|
|
@@ -95,14 +94,13 @@ class UpInitialPipe {
|
|
|
95
94
|
transform(value) {
|
|
96
95
|
return formatInitial(value);
|
|
97
96
|
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
99
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpInitialPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
98
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpInitialPipe, isStandalone: true, name: "upInitial" }); }
|
|
100
99
|
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpInitialPipe, decorators: [{
|
|
102
101
|
type: Pipe,
|
|
103
102
|
args: [{
|
|
104
103
|
pure: true,
|
|
105
|
-
standalone: true,
|
|
106
104
|
name: 'upInitial'
|
|
107
105
|
}]
|
|
108
106
|
}] });
|
|
@@ -123,14 +121,13 @@ class UpLinkifyPipe {
|
|
|
123
121
|
transform(value) {
|
|
124
122
|
return formatLinkify(value, this.sanitizer);
|
|
125
123
|
}
|
|
126
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
127
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
124
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpLinkifyPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
125
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpLinkifyPipe, isStandalone: true, name: "upLinkify" }); }
|
|
128
126
|
}
|
|
129
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpLinkifyPipe, decorators: [{
|
|
130
128
|
type: Pipe,
|
|
131
129
|
args: [{
|
|
132
130
|
pure: true,
|
|
133
|
-
standalone: true,
|
|
134
131
|
name: 'upLinkify'
|
|
135
132
|
}]
|
|
136
133
|
}], ctorParameters: () => [{ type: i1.DomSanitizer }] });
|
|
@@ -147,14 +144,13 @@ class UpCapitalizaPipe {
|
|
|
147
144
|
transform(value, onlyFirstWord = true) {
|
|
148
145
|
return formatCapitalize(value, onlyFirstWord);
|
|
149
146
|
}
|
|
150
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
151
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.
|
|
147
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCapitalizaPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
148
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.10", ngImport: i0, type: UpCapitalizaPipe, isStandalone: true, name: "upCapitalize" }); }
|
|
152
149
|
}
|
|
153
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
150
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpCapitalizaPipe, decorators: [{
|
|
154
151
|
type: Pipe,
|
|
155
152
|
args: [{
|
|
156
153
|
pure: true,
|
|
157
|
-
standalone: true,
|
|
158
154
|
name: 'upCapitalize',
|
|
159
155
|
}]
|
|
160
156
|
}] });
|
|
@@ -225,10 +221,10 @@ class CountryService {
|
|
|
225
221
|
});
|
|
226
222
|
}));
|
|
227
223
|
}
|
|
228
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
229
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
224
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CountryService, deps: [{ token: i1$1.GqlParser }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
225
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CountryService, providedIn: 'root' }); }
|
|
230
226
|
}
|
|
231
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
227
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CountryService, decorators: [{
|
|
232
228
|
type: Injectable,
|
|
233
229
|
args: [{
|
|
234
230
|
providedIn: 'root'
|
|
@@ -275,10 +271,10 @@ class CurrencyService {
|
|
|
275
271
|
});
|
|
276
272
|
}));
|
|
277
273
|
}
|
|
278
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
279
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
274
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CurrencyService, deps: [{ token: i1$1.GqlParser }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
275
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CurrencyService, providedIn: 'root' }); }
|
|
280
276
|
}
|
|
281
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
277
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: CurrencyService, decorators: [{
|
|
282
278
|
type: Injectable,
|
|
283
279
|
args: [{
|
|
284
280
|
providedIn: 'root'
|
|
@@ -312,10 +308,10 @@ class RateGroupCodeService {
|
|
|
312
308
|
});
|
|
313
309
|
}));
|
|
314
310
|
}
|
|
315
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
316
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
311
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: RateGroupCodeService, deps: [{ token: i1$1.GqlParser }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
312
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: RateGroupCodeService, providedIn: 'root' }); }
|
|
317
313
|
}
|
|
318
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
314
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: RateGroupCodeService, decorators: [{
|
|
319
315
|
type: Injectable,
|
|
320
316
|
args: [{
|
|
321
317
|
providedIn: 'root'
|
|
@@ -325,7 +321,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
|
|
|
325
321
|
class UpFileDragNDropDirective {
|
|
326
322
|
constructor(el) {
|
|
327
323
|
this.el = el;
|
|
328
|
-
this.draggedClass = input('', ...(ngDevMode ? [{ debugName: "draggedClass" }] : []));
|
|
324
|
+
this.draggedClass = input('', ...(ngDevMode ? [{ debugName: "draggedClass" }] : /* istanbul ignore next */ []));
|
|
329
325
|
this.fileDropped = output();
|
|
330
326
|
}
|
|
331
327
|
ngOnInit() {
|
|
@@ -350,13 +346,12 @@ class UpFileDragNDropDirective {
|
|
|
350
346
|
this.fileDropped.emit(files);
|
|
351
347
|
}
|
|
352
348
|
}
|
|
353
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
354
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.
|
|
349
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpFileDragNDropDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
350
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.10", type: UpFileDragNDropDirective, isStandalone: true, selector: "[upFileDragNDrop]", inputs: { draggedClass: { classPropertyName: "draggedClass", publicName: "draggedClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fileDropped: "fileDropped" }, host: { listeners: { "dragover": "dragOver($event)", "dragleave": "leave($event)", "drop": "drop($event)" } }, exportAs: ["upFileDragNDrop"], ngImport: i0 }); }
|
|
355
351
|
}
|
|
356
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImport: i0, type: UpFileDragNDropDirective, decorators: [{
|
|
357
353
|
type: Directive,
|
|
358
354
|
args: [{
|
|
359
|
-
standalone: true,
|
|
360
355
|
exportAs: 'upFileDragNDrop',
|
|
361
356
|
selector: '[upFileDragNDrop]'
|
|
362
357
|
}]
|