@unipin/angular-applet 21.0.1 → 21.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +334 -37
  2. package/common/assets/styles/theme.css +3 -0
  3. package/fesm2022/unipin-angular-applet-accordion.mjs +30 -30
  4. package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
  5. package/fesm2022/unipin-angular-applet-alert-dialog.mjs +92 -93
  6. package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
  7. package/fesm2022/unipin-angular-applet-alert.mjs +16 -16
  8. package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
  9. package/fesm2022/unipin-angular-applet-approval.mjs +129 -0
  10. package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -0
  11. package/fesm2022/unipin-angular-applet-auth.mjs +45 -26
  12. package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
  13. package/fesm2022/unipin-angular-applet-avatar.mjs +6 -6
  14. package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
  15. package/fesm2022/unipin-angular-applet-badge.mjs +6 -6
  16. package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
  17. package/fesm2022/unipin-angular-applet-buttons.mjs +13 -17
  18. package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
  19. package/fesm2022/unipin-angular-applet-calendar.mjs +25 -25
  20. package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
  21. package/fesm2022/unipin-angular-applet-collapsible.mjs +17 -17
  22. package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
  23. package/fesm2022/unipin-angular-applet-common.mjs +60 -23
  24. package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
  25. package/fesm2022/unipin-angular-applet-containers.mjs +22 -22
  26. package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
  27. package/fesm2022/unipin-angular-applet-dialog.mjs +62 -73
  28. package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
  29. package/fesm2022/unipin-angular-applet-forms.mjs +394 -152
  30. package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
  31. package/fesm2022/unipin-angular-applet-froala.mjs +10 -12
  32. package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
  33. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +5 -5
  34. package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
  35. package/fesm2022/unipin-angular-applet-json-viewer.mjs +8 -8
  36. package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
  37. package/fesm2022/unipin-angular-applet-kbd.mjs +32 -0
  38. package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -0
  39. package/fesm2022/unipin-angular-applet-loading-dialog.mjs +8 -8
  40. package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
  41. package/fesm2022/unipin-angular-applet-markdown.mjs +19 -21
  42. package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
  43. package/fesm2022/unipin-angular-applet-popover.mjs +21 -25
  44. package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
  45. package/fesm2022/unipin-angular-applet-progress-bar.mjs +8 -8
  46. package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
  47. package/fesm2022/unipin-angular-applet-skeleton.mjs +5 -5
  48. package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
  49. package/fesm2022/unipin-angular-applet-spinner.mjs +6 -6
  50. package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
  51. package/fesm2022/unipin-angular-applet-swipeable.mjs +26 -26
  52. package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
  53. package/fesm2022/unipin-angular-applet-tabs.mjs +22 -22
  54. package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
  55. package/fesm2022/unipin-angular-applet-tooltip.mjs +5 -5
  56. package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
  57. package/package.json +9 -1
  58. package/types/unipin-angular-applet-alert-dialog.d.ts +3 -1
  59. package/types/unipin-angular-applet-approval.d.ts +55 -0
  60. package/types/unipin-angular-applet-common.d.ts +12 -2
  61. package/types/unipin-angular-applet-dialog.d.ts +1 -2
  62. package/types/unipin-angular-applet-forms.d.ts +70 -2
  63. package/types/unipin-angular-applet-kbd.d.ts +11 -0
@@ -1 +1 @@
1
- {"version":3,"file":"unipin-angular-applet-avatar.mjs","sources":["../../../projects/unipin-angular/avatar/avatar.directive.ts","../../../projects/unipin-angular/avatar/unipin-angular-applet-avatar.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, effect, computed, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up, formatInitial } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upAvatar',\n selector: '[upAvatar]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpAvatarDirective {\n\n public readonly initialText = input<string>('', { alias: 'initial' });\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'inline-flex items-center justify-center rounded-full overflow-hidden select-none size-16',\n this.initialText()? 'bg-gray-400 text-white font-semibold text-3xl' : 'object-cover',\n this.inlineClass()\n );\n }\n );\n\n constructor(\n protected readonly el: ElementRef,\n protected readonly renderer: Renderer2\n ) {\n effect(\n () => {\n if (this.initialText()) {\n const el = this.el.nativeElement as HTMLElement;\n \n this.renderer.setProperty(\n el, \n 'textContent', \n formatInitial(this.initialText())\n );\n }\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,iBAAiB,CAAA;IAe5B,WAAA,CACqB,EAAc,EACd,QAAmB,EAAA;QADnB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;AAfb,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,+CAAI,KAAK,EAAE,SAAS,EAAA,CAAA,GAAA,CAAlB,EAAE,KAAK,EAAE,SAAS,EAAE,GAAC;AACrD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,0FAA0F,EAC1F,IAAI,CAAC,WAAW,EAAE,GAAE,+CAA+C,GAAG,cAAc,EACpF,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;QAMC,MAAM,CACJ,MAAK;AACH,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B;AAE/C,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,EAAE,EACF,aAAa,EACb,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAClC;YACH;AACF,QAAA,CAAC,CACF;IACH;8GAhCW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
1
+ {"version":3,"file":"unipin-angular-applet-avatar.mjs","sources":["../../../projects/unipin-angular/avatar/avatar.directive.ts","../../../projects/unipin-angular/avatar/unipin-angular-applet-avatar.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, effect, computed, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up, formatInitial } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upAvatar',\n selector: '[upAvatar]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpAvatarDirective {\n\n public readonly initialText = input<string>('', { alias: 'initial' });\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'inline-flex items-center justify-center rounded-full overflow-hidden select-none size-16',\n this.initialText()? 'bg-gray-400 text-white font-semibold text-3xl' : 'object-cover',\n this.inlineClass()\n );\n }\n );\n\n constructor(\n protected readonly el: ElementRef,\n protected readonly renderer: Renderer2\n ) {\n effect(\n () => {\n if (this.initialText()) {\n const el = this.el.nativeElement as HTMLElement;\n \n this.renderer.setProperty(\n el, \n 'textContent', \n formatInitial(this.initialText())\n );\n }\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,iBAAiB,CAAA;IAe5B,WAAA,CACqB,EAAc,EACd,QAAmB,EAAA;QADnB,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAfb,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,EAAE,wDAAI,KAAK,EAAE,SAAS,EAAA,CAAG;QACrD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,0FAA0F,EAC1F,IAAI,CAAC,WAAW,EAAE,GAAE,+CAA+C,GAAG,cAAc,EACpF,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;QAMC,MAAM,CACJ,MAAK;AACH,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,aAA4B;AAE/C,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,EAAE,EACF,aAAa,EACb,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAClC;YACH;AACF,QAAA,CAAC,CACF;IACH;8GAhCW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
@@ -19,18 +19,18 @@ const badgeVariants = cva('inline-flex items-center justify-center rounded-md bo
19
19
 
20
20
  class UpBadgeDirective {
21
21
  constructor() {
22
- this.variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : []));
23
- this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
22
+ this.variant = input('default', { ...(ngDevMode ? { debugName: "variant" } : {}) });
23
+ this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
24
24
  this._computedClass = computed(() => {
25
25
  return up(badgeVariants({
26
26
  variant: this.variant()
27
27
  }), this.inlineClass());
28
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
28
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpBadgeDirective, isStandalone: true, selector: "[upBadge]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upBadge"], ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpBadgeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpBadgeDirective, isStandalone: true, selector: "[upBadge]", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upBadge"], ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpBadgeDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpBadgeDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"unipin-angular-applet-badge.mjs","sources":["../../../projects/unipin-angular/badge/badge-variant.type.ts","../../../projects/unipin-angular/badge/badge.directive.ts","../../../projects/unipin-angular/badge/unipin-angular-applet-badge.ts"],"sourcesContent":["import { type VariantProps, cva } from 'class-variance-authority';\n\nexport const badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&_ng-icon]:size-3 gap-1 [&_ng-icon]:pointer-events-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 transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary: 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive: 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground border-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport type BadgeVariants = VariantProps<typeof badgeVariants>;\n","import { computed, Directive, input } from \"@angular/core\";\nimport { ClassValue } from \"clsx\";\nimport { up } from '@unipin/angular-applet/common';\nimport { BadgeVariants, badgeVariants } from \"./badge-variant.type\";\n\n@Directive({\n standalone: true,\n exportAs: 'upBadge',\n selector: '[upBadge]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpBadgeDirective {\n\n public readonly variant = input<BadgeVariants['variant']>('default');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n badgeVariants(\n {\n variant: this.variant()\n }\n ), \n this.inlineClass(),\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,GAAG,CAC9B,wZAAwZ,EACxZ;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,gFAAgF;AACzF,YAAA,SAAS,EAAE,sFAAsF;AACjG,YAAA,WAAW,EAAE,2KAA2K;AACxL,YAAA,OAAO,EAAE,sFAAsF;AAChG,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;;MCHU,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;AAUkB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA2B,SAAS,mDAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,aAAa,CACX;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CACF,EACD,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AACF,IAAA;8GAjBY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
1
+ {"version":3,"file":"unipin-angular-applet-badge.mjs","sources":["../../../projects/unipin-angular/badge/badge-variant.type.ts","../../../projects/unipin-angular/badge/badge.directive.ts","../../../projects/unipin-angular/badge/unipin-angular-applet-badge.ts"],"sourcesContent":["import { type VariantProps, cva } from 'class-variance-authority';\n\nexport const badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&_ng-icon]:size-3 gap-1 [&_ng-icon]:pointer-events-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 transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default: 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary: 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive: 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline: 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground border-border',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n },\n);\n\nexport type BadgeVariants = VariantProps<typeof badgeVariants>;\n","import { computed, Directive, input } from \"@angular/core\";\nimport { ClassValue } from \"clsx\";\nimport { up } from '@unipin/angular-applet/common';\nimport { BadgeVariants, badgeVariants } from \"./badge-variant.type\";\n\n@Directive({\n standalone: true,\n exportAs: 'upBadge',\n selector: '[upBadge]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpBadgeDirective {\n\n public readonly variant = input<BadgeVariants['variant']>('default');\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n badgeVariants(\n {\n variant: this.variant()\n }\n ), \n this.inlineClass(),\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAEO,MAAM,aAAa,GAAG,GAAG,CAC9B,wZAAwZ,EACxZ;AACE,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,gFAAgF;AACzF,YAAA,SAAS,EAAE,sFAAsF;AACjG,YAAA,WAAW,EAAE,2KAA2K;AACxL,YAAA,OAAO,EAAE,sFAAsF;AAChG,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AACnB,KAAA;AACF,CAAA;;MCHU,gBAAgB,CAAA;AAR7B,IAAA,WAAA,GAAA;AAUkB,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK,CAA2B,SAAS,qDAAC;QACpD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,aAAa,CACX;AACE,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO;AACtB,aAAA,CACF,EACD,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AACF,IAAA;8GAjBY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
@@ -31,20 +31,20 @@ const buttonVariants = cva('inline-flex items-center justify-center gap-2 whites
31
31
 
32
32
  class UpButtonDirective {
33
33
  constructor() {
34
- this.size = input('default', ...(ngDevMode ? [{ debugName: "size" }] : []));
35
- this.variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : []));
36
- this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
34
+ this.size = input('default', { ...(ngDevMode ? { debugName: "size" } : {}) });
35
+ this.variant = input('default', { ...(ngDevMode ? { debugName: "variant" } : {}) });
36
+ this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
37
37
  this._computedClass = computed(() => {
38
38
  return up(buttonVariants({
39
39
  size: this.size(),
40
40
  variant: this.variant(),
41
41
  }), this.inlineClass());
42
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
42
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpButtonDirective, isStandalone: true, selector: "[upButton]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upButton"], ngImport: i0 }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpButtonDirective, isStandalone: true, selector: "[upButton]", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upButton"], ngImport: i0 }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpButtonDirective, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpButtonDirective, decorators: [{
48
48
  type: Directive,
49
49
  args: [{
50
50
  standalone: true,
@@ -58,13 +58,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
58
58
 
59
59
  class UpSplitButtonComponent {
60
60
  constructor() {
61
- this._buttons = contentChildren('upSplitBtnItem', ...(ngDevMode ? [{ debugName: "_buttons", read: ElementRef }] : [{
62
- read: ElementRef
63
- }]));
64
- this._descriptions = contentChildren('upSplitBtnDescription', ...(ngDevMode ? [{ debugName: "_descriptions", read: ElementRef }] : [{
65
- read: ElementRef
66
- }]));
67
- this.activeIndex = model(0, ...(ngDevMode ? [{ debugName: "activeIndex" }] : []));
61
+ this._buttons = contentChildren('upSplitBtnItem', { ...(ngDevMode ? { debugName: "_buttons" } : {}), read: ElementRef });
62
+ this._descriptions = contentChildren('upSplitBtnDescription', { ...(ngDevMode ? { debugName: "_descriptions" } : {}), read: ElementRef });
63
+ this.activeIndex = model(0, { ...(ngDevMode ? { debugName: "activeIndex" } : {}) });
68
64
  this.splitBtnItems = {
69
65
  labels: [],
70
66
  descriptions: [],
@@ -95,8 +91,8 @@ class UpSplitButtonComponent {
95
91
  });
96
92
  });
97
93
  }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", type: UpSplitButtonComponent, isStandalone: true, selector: "up-split-button", inputs: { activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeIndex: "activeIndexChange" }, host: { classAttribute: "flex" }, providers: [
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSplitButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", type: UpSplitButtonComponent, isStandalone: true, selector: "up-split-button", inputs: { activeIndex: { classPropertyName: "activeIndex", publicName: "activeIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeIndex: "activeIndexChange" }, host: { classAttribute: "flex" }, providers: [
100
96
  provideIcons({
101
97
  matCheckRound,
102
98
  matArrowDropDownRound
@@ -163,7 +159,7 @@ class UpSplitButtonComponent {
163
159
  }
164
160
  `, isInline: true, dependencies: [{ 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: "component", type: UpPopoverComponent, selector: "up-popover", inputs: ["placement", "alignment", "placementOffset", "alignmentOffset"] }, { kind: "directive", type: UpPopoverCloseDirective, selector: "[upPopoverClose]", exportAs: ["upPopoverClose"] }, { kind: "directive", type: UpPopoverTriggerDirective, selector: "[upPopoverTrigger]", exportAs: ["upPopoverTrigger"] }, { kind: "directive", type: UpPopoverContentDirective, selector: "[upPopoverContent]", inputs: ["class"], exportAs: ["upPopoverContent"] }, { kind: "directive", type: UpPopoverContentRefDirective, selector: "[upPopoverContentRef]", exportAs: ["upPopoverContentRef"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
165
161
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSplitButtonComponent, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSplitButtonComponent, decorators: [{
167
163
  type: Component,
168
164
  args: [{
169
165
  standalone: true,
@@ -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@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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"}
@@ -13,10 +13,10 @@ 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.0.0", ngImport: i0, type: UpDateIsInRangePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsInRangePipe, isStandalone: true, name: "upDateIsInRange" }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsInRangePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
17
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsInRangePipe, isStandalone: true, name: "upDateIsInRange" }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsInRangePipe, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsInRangePipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{
22
22
  pure: true,
@@ -37,10 +37,10 @@ class UpDateIsWeekEdgePipe {
37
37
  return 'right';
38
38
  return null;
39
39
  }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsWeekEdgePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
41
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsWeekEdgePipe, isStandalone: true, name: "upDateIsWeekEdge" }); }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsWeekEdgePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
41
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsWeekEdgePipe, isStandalone: true, name: "upDateIsWeekEdge" }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsWeekEdgePipe, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsWeekEdgePipe, decorators: [{
44
44
  type: Pipe,
45
45
  args: [{
46
46
  pure: true,
@@ -59,10 +59,10 @@ class UpDateIsSelectablePipe {
59
59
  return false;
60
60
  return true;
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsSelectablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
63
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsSelectablePipe, isStandalone: true, name: "upDateIsSelectable" }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsSelectablePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
63
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsSelectablePipe, isStandalone: true, name: "upDateIsSelectable" }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpDateIsSelectablePipe, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpDateIsSelectablePipe, decorators: [{
66
66
  type: Pipe,
67
67
  args: [{
68
68
  pure: true,
@@ -73,26 +73,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
73
73
 
74
74
  class UpCalendarComponent {
75
75
  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" }] : []));
76
+ this.minDate = input(null, { ...(ngDevMode ? { debugName: "minDate" } : {}) });
77
+ this.maxDate = input(null, { ...(ngDevMode ? { debugName: "maxDate" } : {}) });
78
+ this.variant = input('single', { ...(ngDevMode ? { debugName: "variant" } : {}) });
79
79
  this.selected = output();
80
80
  this.rangeSelected = output();
81
81
  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" }] : []));
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" } : {}) });
88
88
  this.firstDayOfActiveMonth = computed(() => {
89
89
  return startOfMonth(new Date(this.selectedYear(), this.selectedMonth(), 1));
90
- }, ...(ngDevMode ? [{ debugName: "firstDayOfActiveMonth" }] : []));
90
+ }, { ...(ngDevMode ? { debugName: "firstDayOfActiveMonth" } : {}) });
91
91
  this.daysOfMonth = computed(() => {
92
92
  const start = startOfWeek(this.firstDayOfActiveMonth(), { weekStartsOn: 1 });
93
93
  const end = endOfWeek(endOfMonth(this.firstDayOfActiveMonth()), { weekStartsOn: 1 });
94
94
  return eachDayOfInterval({ start, end });
95
- }, ...(ngDevMode ? [{ debugName: "daysOfMonth" }] : []));
95
+ }, { ...(ngDevMode ? { debugName: "daysOfMonth" } : {}) });
96
96
  this.weekDays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
97
97
  this.months = Array.from({ length: 12 }, (_, i) => format(new Date(2000, i), 'MMM'));
98
98
  this.years = Array.from({
@@ -172,14 +172,14 @@ class UpCalendarComponent {
172
172
  this.rangeFrom.set(from);
173
173
  this.rangeSelected.emit({ from, to });
174
174
  }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.0", 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: [
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.2", 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: [
177
177
  provideIcons({
178
178
  matArrowBackIosRound,
179
179
  matArrowForwardIosRound
180
180
  })
181
181
  ], ngImport: i0, template: `
182
- <div class="w-fit rounded-xl border border-border bg-card p-3 shadow-lg [--cell-size:2rem]">
182
+ <div class="w-fit rounded-xl border border-border bg-white p-3 shadow-lg [--cell-size:2rem]">
183
183
  <div class="flex items-center justify-between mb-4 gap-1">
184
184
  <button
185
185
  upButton
@@ -320,7 +320,7 @@ class UpCalendarComponent {
320
320
  </div>
321
321
  `, 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 }); }
322
322
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpCalendarComponent, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCalendarComponent, decorators: [{
324
324
  type: Component,
325
325
  args: [{
326
326
  standalone: true,
@@ -341,7 +341,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
341
341
  UpDateIsSelectablePipe,
342
342
  ],
343
343
  template: `
344
- <div class="w-fit rounded-xl border border-border bg-card p-3 shadow-lg [--cell-size:2rem]">
344
+ <div class="w-fit rounded-xl border border-border bg-white p-3 shadow-lg [--cell-size:2rem]">
345
345
  <div class="flex items-center justify-between mb-4 gap-1">
346
346
  <button
347
347
  upButton
@@ -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-card 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\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@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\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,19 +4,19 @@ 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' }] : [{ alias: 'class' }]));
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' });
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.0.0", ngImport: i0, type: UpCollapsibleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", 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 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCollapsibleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", 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.0.0", ngImport: i0, type: UpCollapsibleDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCollapsibleDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  standalone: true,
@@ -32,18 +32,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
32
32
  class UpCollapsibleTriggerDirective {
33
33
  constructor(parent) {
34
34
  this.parent = parent;
35
- this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
35
+ this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
36
36
  this._computedClass = computed(() => {
37
37
  return up('cursor-pointer', this.inlineClass());
38
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
38
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
39
39
  }
40
40
  toggleState() {
41
41
  this.parent.setOpen(!this.parent.isOpened());
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpCollapsibleTriggerDirective, deps: [{ token: UpCollapsibleDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
44
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", 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 }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCollapsibleTriggerDirective, deps: [{ token: UpCollapsibleDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
44
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", 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
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpCollapsibleTriggerDirective, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCollapsibleTriggerDirective, decorators: [{
47
47
  type: Directive,
48
48
  args: [{
49
49
  standalone: true,
@@ -62,19 +62,19 @@ class UpCollapsibleContentDirective {
62
62
  constructor(elementRef, parent) {
63
63
  this.elementRef = elementRef;
64
64
  this.parent = parent;
65
- this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
65
+ this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
66
66
  this._contentHeight = computed(() => {
67
67
  const element = this.elementRef.nativeElement;
68
68
  return element ? `${element.scrollHeight}px` : '0px';
69
- }, ...(ngDevMode ? [{ debugName: "_contentHeight" }] : []));
69
+ }, { ...(ngDevMode ? { debugName: "_contentHeight" } : {}) });
70
70
  this._computedClass = computed(() => {
71
71
  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" }] : []));
72
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpCollapsibleContentDirective, deps: [{ token: i0.ElementRef }, { token: UpCollapsibleDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
75
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", 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 }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCollapsibleContentDirective, deps: [{ token: i0.ElementRef }, { token: UpCollapsibleDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
75
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", 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
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpCollapsibleContentDirective, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpCollapsibleContentDirective, decorators: [{
78
78
  type: Directive,
79
79
  args: [{
80
80
  standalone: true,
@@ -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 standalone: true,\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@Directive({\n standalone: true,\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@Directive({\n standalone: true,\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":";;;;MAYa,sBAAsB,CAAA;AATnC,IAAA,WAAA,GAAA;AAWkB,QAAA,IAAA,CAAA,QAAQ,GAAE,KAAK,CAAU,KAAK,oDAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,oDAAC;AAChC,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAOxE,IAAA;AALQ,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B;IACF;8GAVW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,mBAAmB,EAAE,CAAA,6BAAA,CAA+B;AACrD;AACF,iBAAA;;;MCKY,6BAA6B,CAAA;AAaxC,IAAA,WAAA,CACqB,MAA8B,EAAA;QAA9B,IAAA,CAAA,MAAM,GAAN,MAAM;AAZX,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,gBAAgB,EAChB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;IAIG;IAEG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACxB;IACH;8GArBW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAXzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,iBAAiB,EAAE,2BAA2B;AAC9C,wBAAA,mBAAmB,EAAE,CAAA,oCAAA,CAAsC;AAC3D,wBAAA,SAAS,EAAE;AACZ;AACF,iBAAA;;;MCCY,6BAA6B,CAAA;IAsBxC,WAAA,CACqB,UAAsB,EACtB,MAA8B,EAAA;QAD9B,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,MAAM,GAAN,MAAM;AAtBX,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,+CAAI,KAAK,EAAE,OAAO,EAAA,CAAA,GAAA,CAAhB,EAAE,KAAK,EAAE,OAAO,EAAE,GAAC;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B;AAC5D,YAAA,OAAO,OAAO,GAAE,CAAA,EAAI,OAAO,CAAC,YAAa,CAAA,EAAA,CAAI,GAAG,KAAK;AACvD,QAAA,CAAC,0DACF;AAEkB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,EAAE,CACP,yDAAyD,EACzD,kEAAkE,EAClE,uCAAuC,EACvC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;IAKG;8GAzBO,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,sCAAA,EAAA,uCAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAXzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,sBAAsB,EAAE,2BAA2B;AACnD,wBAAA,mBAAmB,EAAE,CAAA,oCAAA,CAAsC;AAC3D,wBAAA,yCAAyC,EAAE,kBAAkB;AAC9D;AACF,iBAAA;;;ACfD;;AAEG;;;;"}
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 standalone: true,\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@Directive({\n standalone: true,\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@Directive({\n standalone: true,\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":";;;;MAYa,sBAAsB,CAAA;AATnC,IAAA,WAAA,GAAA;AAWkB,QAAA,IAAA,CAAA,QAAQ,GAAE,KAAK,CAAU,KAAK,sDAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAU,KAAK,sDAAC;QAChC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAOxE,IAAA;AALQ,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B;IACF;8GAVW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,mBAAmB,EAAE,CAAA,6BAAA,CAA+B;AACrD;AACF,iBAAA;;;MCKY,6BAA6B,CAAA;AAaxC,IAAA,WAAA,CACqB,MAA8B,EAAA;QAA9B,IAAA,CAAA,MAAM,GAAN,MAAM;QAZX,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,gBAAgB,EAChB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;IAIG;IAEG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CACjB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACxB;IACH;8GArBW,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,sCAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAXzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,iBAAiB,EAAE,2BAA2B;AAC9C,wBAAA,mBAAmB,EAAE,CAAA,oCAAA,CAAsC;AAC3D,wBAAA,SAAS,EAAE;AACZ;AACF,iBAAA;;;MCCY,6BAA6B,CAAA;IAsBxC,WAAA,CACqB,UAAsB,EACtB,MAA8B,EAAA;QAD9B,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,MAAM,GAAN,MAAM;QAtBX,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,wDAAI,KAAK,EAAE,OAAO,EAAA,CAAG;AAEpD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAA4B;AAC5D,YAAA,OAAO,OAAO,GAAE,CAAA,EAAI,OAAO,CAAC,YAAa,CAAA,EAAA,CAAI,GAAG,KAAK;AACvD,QAAA,CAAC,4DACF;AAEkB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,EAAE,CACP,yDAAyD,EACzD,kEAAkE,EAClE,uCAAuC,EACvC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;IAKG;8GAzBO,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,sCAAA,EAAA,uCAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAXzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC7B,wBAAA,sBAAsB,EAAE,2BAA2B;AACnD,wBAAA,mBAAmB,EAAE,CAAA,oCAAA,CAAsC;AAC3D,wBAAA,yCAAyC,EAAE,kBAAkB;AAC9D;AACF,iBAAA;;;ACfD;;AAEG;;;;"}