@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
@@ -4,14 +4,14 @@ import { up } from '@unipin/angular-applet/common';
4
4
 
5
5
  class UpSpinnerComponent {
6
6
  constructor() {
7
- this.stokeWidth = input(8, ...(ngDevMode ? [{ debugName: "stokeWidth", transform: numberAttribute }] : [{ transform: numberAttribute }]));
8
- this.inlineClass = input({ alias: 'class' }, ...(ngDevMode ? [{ debugName: "inlineClass" }] : []));
7
+ this.stokeWidth = input(8, { ...(ngDevMode ? { debugName: "stokeWidth" } : {}), transform: numberAttribute });
8
+ this.inlineClass = input({ alias: 'class' }, { ...(ngDevMode ? { debugName: "inlineClass" } : {}) });
9
9
  this._computedClass = computed(() => {
10
10
  return up('inline-block size-8 text-primary', this.inlineClass());
11
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
11
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: UpSpinnerComponent, isStandalone: true, selector: "up-spinner", inputs: { stokeWidth: { classPropertyName: "stokeWidth", publicName: "stokeWidth", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "inlineClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0, template: `
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: UpSpinnerComponent, isStandalone: true, selector: "up-spinner", inputs: { stokeWidth: { classPropertyName: "stokeWidth", publicName: "stokeWidth", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "inlineClass", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, ngImport: i0, template: `
15
15
  <svg
16
16
  aria-hidden="true"
17
17
  viewBox="0 0 80 80"
@@ -71,7 +71,7 @@ class UpSpinnerComponent {
71
71
  </svg>
72
72
  `, isInline: true, styles: ["@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-ring-1{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.45s;transform-origin:50% 50%}.animate-ring-2{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.3s;transform-origin:50% 50%}.animate-ring-3{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:-.15s;transform-origin:50% 50%}.animate-ring-4{animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;animation-delay:0s;transform-origin:50% 50%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSpinnerComponent, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSpinnerComponent, decorators: [{
75
75
  type: Component,
76
76
  args: [{ standalone: true, selector: 'up-spinner', changeDetection: ChangeDetectionStrategy.OnPush, host: {
77
77
  '[class]': '_computedClass()',
@@ -1 +1 @@
1
- {"version":3,"file":"unipin-angular-applet-spinner.mjs","sources":["../../../projects/unipin-angular/spinner/spinner.component.ts","../../../projects/unipin-angular/spinner/unipin-angular-applet-spinner.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Component({\n standalone: true,\n selector: 'up-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 80 80\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-1\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\" \n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-2\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-3\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-4\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n </svg>\n `,\n styles: `\n @keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n \n .animate-ring-1 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.45s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-2 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.3s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-3 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.15s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-4 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: 0s;\n transform-origin: 50% 50%;\n }\n `\n})\nexport class UpSpinnerComponent {\n \n public readonly stokeWidth = input(8, { transform: numberAttribute });\n public readonly inlineClass = input<ClassValue>({ alias: 'class' });\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'inline-block size-8 text-primary', \n this.inlineClass()\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAyGa,kBAAkB,CAAA;AArG/B,IAAA,WAAA,GAAA;AAuGkB,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,8CAAI,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAA5B,EAAE,SAAS,EAAE,eAAe,EAAE,GAAC;QACrD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,kCAAkC,EAClC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AACF,IAAA;8GAbY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,EAAA,EAAA,QAAA,EA9FnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wiBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAoCU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArG9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,SAAS,EAAE,kBAAkB;qBAC9B,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wiBAAA,CAAA,EAAA;;;ACrEH;;AAEG;;;;"}
1
+ {"version":3,"file":"unipin-angular-applet-spinner.mjs","sources":["../../../projects/unipin-angular/spinner/spinner.component.ts","../../../projects/unipin-angular/spinner/unipin-angular-applet-spinner.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Component({\n standalone: true,\n selector: 'up-spinner',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <svg\n aria-hidden=\"true\"\n viewBox=\"0 0 80 80\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dashoffset=\"0\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-1\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\" \n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-2\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-3\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n \n <circle\n r=\"28\"\n cx=\"40\"\n cy=\"40\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-linecap=\"round\"\n stroke-dasharray=\"44 132\"\n class=\"animate-ring-4\"\n [attr.stroke-width]=\"stokeWidth()\"\n />\n </svg>\n `,\n styles: `\n @keyframes lds-ring {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n \n .animate-ring-1 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.45s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-2 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.3s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-3 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: -0.15s;\n transform-origin: 50% 50%;\n }\n \n .animate-ring-4 {\n animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n animation-delay: 0s;\n transform-origin: 50% 50%;\n }\n `\n})\nexport class UpSpinnerComponent {\n \n public readonly stokeWidth = input(8, { transform: numberAttribute });\n public readonly inlineClass = input<ClassValue>({ alias: 'class' });\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'inline-block size-8 text-primary', \n this.inlineClass()\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAyGa,kBAAkB,CAAA;AArG/B,IAAA,WAAA,GAAA;QAuGkB,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,CAAC,uDAAI,SAAS,EAAE,eAAe,EAAA,CAAG;QACrD,IAAA,CAAA,WAAW,GAAG,KAAK,CAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,aAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAC;AAEhD,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;YACH,OAAO,EAAE,CACP,kCAAkC,EAClC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,4DACF;AACF,IAAA;8GAbY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,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,EAAA,EAAA,QAAA,EA9FnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wiBAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAoCU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBArG9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,YAAY,EAAA,eAAA,EACL,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,SAAS,EAAE,kBAAkB;qBAC9B,EAAA,QAAA,EACS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wiBAAA,CAAA,EAAA;;;ACrEH;;AAEG;;;;"}
@@ -6,7 +6,7 @@ import { UpButtonDirective, buttonVariants } from '@unipin/angular-applet/button
6
6
  class UpSwipeableContentDirective {
7
7
  constructor() {
8
8
  this.element = inject((ElementRef)).nativeElement;
9
- this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
9
+ this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
10
10
  this._computedClass = computed(() => {
11
11
  return up(`
12
12
  relative flex flex-shrink-0 items-center justify-start
@@ -16,15 +16,15 @@ class UpSwipeableContentDirective {
16
16
  select-none
17
17
  w-fit h-fit
18
18
  `, this.inlineClass());
19
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
19
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
20
20
  }
21
21
  translateX(x) {
22
22
  this.element.style.transform = `translateX(${x}px)`;
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpSwipeableContentDirective, isStandalone: true, selector: "[upSwipeableContent]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableContent"], ngImport: i0 }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
25
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpSwipeableContentDirective, isStandalone: true, selector: "[upSwipeableContent]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableContent"], ngImport: i0 }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableContentDirective, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableContentDirective, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  standalone: true,
@@ -38,16 +38,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
38
38
 
39
39
  class UpSwipeableButtonsDirective {
40
40
  constructor() {
41
- this.side = input.required(...(ngDevMode ? [{ debugName: "side" }] : []));
41
+ this.side = input.required({ ...(ngDevMode ? { debugName: "side" } : {}) });
42
42
  this.element = inject((ElementRef)).nativeElement;
43
43
  this._computedClass = computed(() => {
44
44
  return up('absolute top-px bottom-px h-auto w-2/5 flex items-stretch z-0', this.side() === 'left' ? 'left-px flex-row' : 'right-px flex-row-reverse');
45
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
45
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpSwipeableButtonsDirective, isStandalone: true, selector: "[upSwipeableButtons]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableButtons"], ngImport: i0 }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableButtonsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
48
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpSwipeableButtonsDirective, isStandalone: true, selector: "[upSwipeableButtons]", inputs: { side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableButtons"], ngImport: i0 }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonsDirective, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableButtonsDirective, decorators: [{
51
51
  type: Directive,
52
52
  args: [{
53
53
  standalone: true,
@@ -61,20 +61,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
61
61
 
62
62
  class UpSwipeableDirective {
63
63
  constructor() {
64
- this.threshold = input(20, ...(ngDevMode ? [{ debugName: "threshold" }] : []));
65
- this.overSwipeThreshold = input(75, ...(ngDevMode ? [{ debugName: "overSwipeThreshold" }] : []));
66
- this.inlineClass = input('', ...(ngDevMode ? [{ debugName: "inlineClass", alias: 'class' }] : [{ alias: 'class' }]));
64
+ this.threshold = input(20, { ...(ngDevMode ? { debugName: "threshold" } : {}) });
65
+ this.overSwipeThreshold = input(75, { ...(ngDevMode ? { debugName: "overSwipeThreshold" } : {}) });
66
+ this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
67
67
  this.clicked = output();
68
68
  this.leftSwiped = output();
69
69
  this.rightSwiped = output();
70
- this.content = contentChild(UpSwipeableContentDirective, ...(ngDevMode ? [{ debugName: "content" }] : []));
71
- this.buttonContainers = contentChildren(UpSwipeableButtonsDirective, ...(ngDevMode ? [{ debugName: "buttonContainers" }] : []));
72
- this.containerWidth = signal(0, ...(ngDevMode ? [{ debugName: "containerWidth" }] : []));
73
- this.buttonWidth = signal({ left: 0, right: 0 }, ...(ngDevMode ? [{ debugName: "buttonWidth" }] : []));
74
- this.openSide = signal(null, ...(ngDevMode ? [{ debugName: "openSide" }] : []));
70
+ this.content = contentChild(UpSwipeableContentDirective, { ...(ngDevMode ? { debugName: "content" } : {}) });
71
+ this.buttonContainers = contentChildren(UpSwipeableButtonsDirective, { ...(ngDevMode ? { debugName: "buttonContainers" } : {}) });
72
+ this.containerWidth = signal(0, { ...(ngDevMode ? { debugName: "containerWidth" } : {}) });
73
+ this.buttonWidth = signal({ left: 0, right: 0 }, { ...(ngDevMode ? { debugName: "buttonWidth" } : {}) });
74
+ this.openSide = signal(null, { ...(ngDevMode ? { debugName: "openSide" } : {}) });
75
75
  this._computedClass = computed(() => {
76
76
  return up('relative w-fit overflow-hidden rounded-md touch-pan-y isolate', this.inlineClass());
77
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
77
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
78
78
  this.startX = 0;
79
79
  this.currentX = 0;
80
80
  this.isTouch = false;
@@ -204,10 +204,10 @@ class UpSwipeableDirective {
204
204
  }
205
205
  this.rightSwiped.emit();
206
206
  }
207
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
208
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.0.0", type: UpSwipeableDirective, isStandalone: true, selector: "[upSwipeable]", inputs: { threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null }, overSwipeThreshold: { classPropertyName: "overSwipeThreshold", publicName: "overSwipeThreshold", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked", leftSwiped: "leftSwiped", rightSwiped: "rightSwiped" }, host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)", "touchstart": "onTouchStart($event)", "touchmove": "onTouchMove($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "_computedClass()" } }, queries: [{ propertyName: "content", first: true, predicate: UpSwipeableContentDirective, descendants: true, isSignal: true }, { propertyName: "buttonContainers", predicate: UpSwipeableButtonsDirective, isSignal: true }], exportAs: ["upSwipeable"], ngImport: i0 }); }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
208
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.0.2", type: UpSwipeableDirective, isStandalone: true, selector: "[upSwipeable]", inputs: { threshold: { classPropertyName: "threshold", publicName: "threshold", isSignal: true, isRequired: false, transformFunction: null }, overSwipeThreshold: { classPropertyName: "overSwipeThreshold", publicName: "overSwipeThreshold", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked", leftSwiped: "leftSwiped", rightSwiped: "rightSwiped" }, host: { listeners: { "mousedown": "onMouseDown($event)", "document:mousemove": "onMouseMove($event)", "document:mouseup": "onMouseUp($event)", "touchstart": "onTouchStart($event)", "touchmove": "onTouchMove($event)", "touchend": "onTouchEnd($event)" }, properties: { "class": "_computedClass()" } }, queries: [{ propertyName: "content", first: true, predicate: UpSwipeableContentDirective, descendants: true, isSignal: true }, { propertyName: "buttonContainers", predicate: UpSwipeableButtonsDirective, isSignal: true }], exportAs: ["upSwipeable"], ngImport: i0 }); }
209
209
  }
210
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableDirective, decorators: [{
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableDirective, decorators: [{
211
211
  type: Directive,
212
212
  args: [{
213
213
  standalone: true,
@@ -245,12 +245,12 @@ class UpSwipeableButtonDirective extends UpButtonDirective {
245
245
  size: this.size(),
246
246
  variant: this.variant(),
247
247
  }), this.inlineClass(), 'h-full rounded-none flex-1');
248
- }, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
248
+ }, { ...(ngDevMode ? { debugName: "_computedClass" } : {}) });
249
249
  }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
251
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.0", type: UpSwipeableButtonDirective, isStandalone: true, selector: "[upSwipeableBtn]", host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableBtn"], usesInheritance: true, ngImport: i0 }); }
250
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
251
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.2", type: UpSwipeableButtonDirective, isStandalone: true, selector: "[upSwipeableBtn]", host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSwipeableBtn"], usesInheritance: true, ngImport: i0 }); }
252
252
  }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpSwipeableButtonDirective, decorators: [{
253
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpSwipeableButtonDirective, decorators: [{
254
254
  type: Directive,
255
255
  args: [{
256
256
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"unipin-angular-applet-swipeable.mjs","sources":["../../../projects/unipin-angular/swipeable/directives/swipeable-content.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable-buttons.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable-button.directive.ts","../../../projects/unipin-angular/swipeable/unipin-angular-applet-swipeable.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableContent',\n selector: '[upSwipeableContent]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableContentDirective {\n \n public readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative flex flex-shrink-0 items-center justify-start\n bg-white z-10\n transition-transform duration-200 ease-out\n will-change-transform\n select-none\n w-fit h-fit\n `,\n this.inlineClass()\n );\n }\n );\n\n public translateX(x: number): void{\n this.element.style.transform = `translateX(${ x }px)`;\n }\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableButtons',\n selector: '[upSwipeableButtons]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableButtonsDirective {\n \n public readonly side = input.required<'left' | 'right'>();\n public readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'absolute top-px bottom-px h-auto w-2/5 flex items-stretch z-0',\n this.side() === 'left'? 'left-px flex-row' : 'right-px flex-row-reverse'\n );\n }\n );\n}\n","import { Directive, HostListener, input, output, signal, computed, contentChild, contentChildren, effect } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpSwipeableContentDirective } from './swipeable-content.directive';\nimport { UpSwipeableButtonsDirective } from './swipeable-buttons.directive';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeable',\n selector: '[upSwipeable]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableDirective {\n\n public readonly threshold = input<number>(20);\n public readonly overSwipeThreshold = input<number>(75);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly clicked = output<void>();\n public readonly leftSwiped = output<void>();\n public readonly rightSwiped = output<void>();\n\n public readonly content = contentChild(UpSwipeableContentDirective);\n public readonly buttonContainers = contentChildren(UpSwipeableButtonsDirective);\n \n protected readonly containerWidth = signal(0);\n protected readonly buttonWidth = signal({ left: 0, right: 0 });\n protected readonly openSide = signal<'left' | 'right' | null>(null);\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'relative w-fit overflow-hidden rounded-md touch-pan-y isolate',\n this.inlineClass()\n );\n }\n );\n\n protected startX = 0;\n protected currentX = 0;\n protected isTouch = false;\n protected isDragging = false;\n protected hasOverswiped = false;\n \n constructor() {\n effect(\n () => {\n const content = this.content()?.element;\n \n if (!content) {\n return;\n }\n requestAnimationFrame(() => this.containerWidth.set(content.scrollWidth));\n }\n );\n \n effect(\n () => {\n const leftContainer = this.buttonContainers().find(c => c.side() === 'left');\n const rightContainer = this.buttonContainers().find(c => c.side() === 'right');\n\n requestAnimationFrame(\n () => {\n this.buttonWidth.set(\n {\n left: leftContainer?.element.offsetWidth ?? 0,\n right: rightContainer?.element.offsetWidth ?? 0,\n }\n );\n }\n );\n }\n );\n }\n\n @HostListener('mousedown', ['$event'])\n public onMouseDown(event: MouseEvent) {\n this.isTouch = false;\n this.startDrag(event.clientX); \n }\n\n @HostListener('document:mousemove', ['$event'])\n public onMouseMove(event: MouseEvent) {\n if (\n this.isDragging && \n !this.isTouch\n ) {\n this.handleDrag(event.clientX);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n public onMouseUp(event: MouseEvent) {\n if (\n this.isDragging && \n !this.isTouch\n ) {\n this.dragEnd(event)\n };\n }\n\n @HostListener('touchstart', ['$event'])\n public onTouchStart(event: TouchEvent) {\n this.isTouch = true;\n this.startDrag(event.touches[0].clientX);\n }\n\n @HostListener('touchmove', ['$event'])\n public onTouchMove(event: TouchEvent) {\n if (this.isDragging) {\n this.handleDrag(event.touches[0].clientX);\n }\n }\n\n @HostListener('touchend', ['$event'])\n public onTouchEnd(event: TouchEvent): void{\n if (!this.openSide()) {\n event.preventDefault();\n }\n this.dragEnd(event);\n }\n\n protected startDrag(x: number) {\n this.startX = x;\n this.currentX = x;\n this.isDragging = true;\n this.hasOverswiped = false;\n }\n\n protected handleDrag(x: number) {\n if (this.hasOverswiped) return;\n\n this.currentX = x;\n const delta = this.currentX - this.startX;\n const overSwipeThreshold = this.overSwipeThreshold();\n\n if (overSwipeThreshold !== null) {\n const container = this.containerWidth();\n const overswipeDistance = (overSwipeThreshold / 100) * container;\n \n if (delta > overswipeDistance) {\n return this.triggerOverswipe('right');\n }\n \n if (delta < -overswipeDistance) {\n return this.triggerOverswipe('left');\n }\n }\n this.content()?.translateX(delta);\n }\n \n protected dragEnd(event?: MouseEvent | TouchEvent): void{\n if (!this.isDragging) {\n return;\n }\n this.isDragging = false;\n\n if (this.hasOverswiped) {\n this.closeContent();\n return;\n }\n\n const delta = this.currentX - this.startX;\n const { left, right } = this.buttonWidth();\n const container = this.containerWidth();\n const openDistance = (this.threshold() / 100) * container;\n\n const target = event?.target as HTMLElement | null;\n if (target?.closest('[upSwipeableBtn]')) {\n return;\n }\n\n if (\n this.openSide() === null && \n Math.abs(delta) < 5\n ) {\n this.clicked.emit();\n this.closeContent();\n return;\n }\n\n if (delta > openDistance && left > 0) {\n return this.openContent('left');\n }\n \n if (delta < -openDistance && right > 0) {\n return this.openContent('right');\n }\n this.closeContent();\n }\n\n protected openContent(side: 'left' | 'right'): void{\n const { left, right } = this.buttonWidth();\n const offset = side === 'left'? left : -right;\n \n this.content()?.translateX(offset);\n this.openSide.set(side);\n }\n\n protected closeContent(): void{\n this.content()?.translateX(0);\n this.openSide.set(null);\n }\n\n protected triggerOverswipe(side: 'left' | 'right'): void{\n this.closeContent();\n this.hasOverswiped = true;\n \n if (side === 'left') {\n this.leftSwiped.emit();\n return;\n }\n this.rightSwiped.emit();\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\nimport { buttonVariants, UpButtonDirective, } from '@unipin/angular-applet/buttons';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableBtn',\n selector: '[upSwipeableBtn]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpSwipeableButtonDirective extends UpButtonDirective {\n \n protected override readonly _computedClass = computed(\n () => {\n return up(\n buttonVariants(\n {\n size: this.size(),\n variant: this.variant(),\n }\n ),\n this.inlineClass(),\n 'h-full rounded-none flex-1',\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-swipeable.mjs","sources":["../../../projects/unipin-angular/swipeable/directives/swipeable-content.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable-buttons.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable.directive.ts","../../../projects/unipin-angular/swipeable/directives/swipeable-button.directive.ts","../../../projects/unipin-angular/swipeable/unipin-angular-applet-swipeable.ts"],"sourcesContent":["import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableContent',\n selector: '[upSwipeableContent]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableContentDirective {\n \n public readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n `\n relative flex flex-shrink-0 items-center justify-start\n bg-white z-10\n transition-transform duration-200 ease-out\n will-change-transform\n select-none\n w-fit h-fit\n `,\n this.inlineClass()\n );\n }\n );\n\n public translateX(x: number): void{\n this.element.style.transform = `translateX(${ x }px)`;\n }\n}\n","import { computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableButtons',\n selector: '[upSwipeableButtons]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableButtonsDirective {\n \n public readonly side = input.required<'left' | 'right'>();\n public readonly element = inject(ElementRef<HTMLElement>).nativeElement;\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'absolute top-px bottom-px h-auto w-2/5 flex items-stretch z-0',\n this.side() === 'left'? 'left-px flex-row' : 'right-px flex-row-reverse'\n );\n }\n );\n}\n","import { Directive, HostListener, input, output, signal, computed, contentChild, contentChildren, effect } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpSwipeableContentDirective } from './swipeable-content.directive';\nimport { UpSwipeableButtonsDirective } from './swipeable-buttons.directive';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeable',\n selector: '[upSwipeable]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSwipeableDirective {\n\n public readonly threshold = input<number>(20);\n public readonly overSwipeThreshold = input<number>(75);\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n public readonly clicked = output<void>();\n public readonly leftSwiped = output<void>();\n public readonly rightSwiped = output<void>();\n\n public readonly content = contentChild(UpSwipeableContentDirective);\n public readonly buttonContainers = contentChildren(UpSwipeableButtonsDirective);\n \n protected readonly containerWidth = signal(0);\n protected readonly buttonWidth = signal({ left: 0, right: 0 });\n protected readonly openSide = signal<'left' | 'right' | null>(null);\n \n protected readonly _computedClass = computed(\n () => {\n return up(\n 'relative w-fit overflow-hidden rounded-md touch-pan-y isolate',\n this.inlineClass()\n );\n }\n );\n\n protected startX = 0;\n protected currentX = 0;\n protected isTouch = false;\n protected isDragging = false;\n protected hasOverswiped = false;\n \n constructor() {\n effect(\n () => {\n const content = this.content()?.element;\n \n if (!content) {\n return;\n }\n requestAnimationFrame(() => this.containerWidth.set(content.scrollWidth));\n }\n );\n \n effect(\n () => {\n const leftContainer = this.buttonContainers().find(c => c.side() === 'left');\n const rightContainer = this.buttonContainers().find(c => c.side() === 'right');\n\n requestAnimationFrame(\n () => {\n this.buttonWidth.set(\n {\n left: leftContainer?.element.offsetWidth ?? 0,\n right: rightContainer?.element.offsetWidth ?? 0,\n }\n );\n }\n );\n }\n );\n }\n\n @HostListener('mousedown', ['$event'])\n public onMouseDown(event: MouseEvent) {\n this.isTouch = false;\n this.startDrag(event.clientX); \n }\n\n @HostListener('document:mousemove', ['$event'])\n public onMouseMove(event: MouseEvent) {\n if (\n this.isDragging && \n !this.isTouch\n ) {\n this.handleDrag(event.clientX);\n }\n }\n\n @HostListener('document:mouseup', ['$event'])\n public onMouseUp(event: MouseEvent) {\n if (\n this.isDragging && \n !this.isTouch\n ) {\n this.dragEnd(event)\n };\n }\n\n @HostListener('touchstart', ['$event'])\n public onTouchStart(event: TouchEvent) {\n this.isTouch = true;\n this.startDrag(event.touches[0].clientX);\n }\n\n @HostListener('touchmove', ['$event'])\n public onTouchMove(event: TouchEvent) {\n if (this.isDragging) {\n this.handleDrag(event.touches[0].clientX);\n }\n }\n\n @HostListener('touchend', ['$event'])\n public onTouchEnd(event: TouchEvent): void{\n if (!this.openSide()) {\n event.preventDefault();\n }\n this.dragEnd(event);\n }\n\n protected startDrag(x: number) {\n this.startX = x;\n this.currentX = x;\n this.isDragging = true;\n this.hasOverswiped = false;\n }\n\n protected handleDrag(x: number) {\n if (this.hasOverswiped) return;\n\n this.currentX = x;\n const delta = this.currentX - this.startX;\n const overSwipeThreshold = this.overSwipeThreshold();\n\n if (overSwipeThreshold !== null) {\n const container = this.containerWidth();\n const overswipeDistance = (overSwipeThreshold / 100) * container;\n \n if (delta > overswipeDistance) {\n return this.triggerOverswipe('right');\n }\n \n if (delta < -overswipeDistance) {\n return this.triggerOverswipe('left');\n }\n }\n this.content()?.translateX(delta);\n }\n \n protected dragEnd(event?: MouseEvent | TouchEvent): void{\n if (!this.isDragging) {\n return;\n }\n this.isDragging = false;\n\n if (this.hasOverswiped) {\n this.closeContent();\n return;\n }\n\n const delta = this.currentX - this.startX;\n const { left, right } = this.buttonWidth();\n const container = this.containerWidth();\n const openDistance = (this.threshold() / 100) * container;\n\n const target = event?.target as HTMLElement | null;\n if (target?.closest('[upSwipeableBtn]')) {\n return;\n }\n\n if (\n this.openSide() === null && \n Math.abs(delta) < 5\n ) {\n this.clicked.emit();\n this.closeContent();\n return;\n }\n\n if (delta > openDistance && left > 0) {\n return this.openContent('left');\n }\n \n if (delta < -openDistance && right > 0) {\n return this.openContent('right');\n }\n this.closeContent();\n }\n\n protected openContent(side: 'left' | 'right'): void{\n const { left, right } = this.buttonWidth();\n const offset = side === 'left'? left : -right;\n \n this.content()?.translateX(offset);\n this.openSide.set(side);\n }\n\n protected closeContent(): void{\n this.content()?.translateX(0);\n this.openSide.set(null);\n }\n\n protected triggerOverswipe(side: 'left' | 'right'): void{\n this.closeContent();\n this.hasOverswiped = true;\n \n if (side === 'left') {\n this.leftSwiped.emit();\n return;\n }\n this.rightSwiped.emit();\n }\n}\n","import { computed, Directive } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\nimport { buttonVariants, UpButtonDirective, } from '@unipin/angular-applet/buttons';\n\n@Directive({\n standalone: true,\n exportAs: 'upSwipeableBtn',\n selector: '[upSwipeableBtn]',\n host: {\n '[class]': '_computedClass()',\n },\n})\nexport class UpSwipeableButtonDirective extends UpButtonDirective {\n \n protected override readonly _computedClass = computed(\n () => {\n return up(\n buttonVariants(\n {\n size: this.size(),\n variant: this.variant(),\n }\n ),\n this.inlineClass(),\n 'h-full rounded-none flex-1',\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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"}
@@ -26,16 +26,16 @@ const tabsVariants = cva(`
26
26
 
27
27
  class UpTabsComponent {
28
28
  constructor() {
29
- this.size = input('md', ...(ngDevMode ? [{ debugName: "size" }] : []));
30
- this.variant = input('default', ...(ngDevMode ? [{ debugName: "variant" }] : []));
31
- this.inlineStyle = input('', ...(ngDevMode ? [{ debugName: "inlineStyle", alias: 'class' }] : [{ alias: 'class' }]));
32
- this.defaultActiveTab = input(null, ...(ngDevMode ? [{ debugName: "defaultActiveTab", alias: 'default' }] : [{ alias: 'default' }]));
33
- this.activeTab = signal(null, ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
29
+ this.size = input('md', { ...(ngDevMode ? { debugName: "size" } : {}) });
30
+ this.variant = input('default', { ...(ngDevMode ? { debugName: "variant" } : {}) });
31
+ this.inlineStyle = input('', { ...(ngDevMode ? { debugName: "inlineStyle" } : {}), alias: 'class' });
32
+ this.defaultActiveTab = input(null, { ...(ngDevMode ? { debugName: "defaultActiveTab" } : {}), alias: 'default' });
33
+ this.activeTab = signal(null, { ...(ngDevMode ? { debugName: "activeTab" } : {}) });
34
34
  this.tabsClass = computed(() => {
35
35
  return up(tabsVariants({
36
36
  variant: this.variant()
37
37
  }), this.inlineStyle());
38
- }, ...(ngDevMode ? [{ debugName: "tabsClass" }] : []));
38
+ }, { ...(ngDevMode ? { debugName: "tabsClass" } : {}) });
39
39
  effect(() => {
40
40
  if (this.activeTab() === null &&
41
41
  this.defaultActiveTab()) {
@@ -46,8 +46,8 @@ class UpTabsComponent {
46
46
  setActive(tab) {
47
47
  this.activeTab.set(tab);
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.0", type: UpTabsComponent, isStandalone: true, selector: "up-tabs", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, inlineStyle: { classPropertyName: "inlineStyle", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, defaultActiveTab: { classPropertyName: "defaultActiveTab", publicName: "default", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.2", type: UpTabsComponent, isStandalone: true, selector: "up-tabs", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, inlineStyle: { classPropertyName: "inlineStyle", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, defaultActiveTab: { classPropertyName: "defaultActiveTab", publicName: "default", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
51
51
  <div [class]="tabsClass()">
52
52
  <ng-content select="[upTabsTrigger]" />
53
53
  </div>
@@ -55,7 +55,7 @@ class UpTabsComponent {
55
55
  <ng-content select="[upTabsContent]" />
56
56
  `, isInline: true }); }
57
57
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTabsComponent, decorators: [{
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTabsComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{
61
61
  standalone: true,
@@ -73,12 +73,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
73
73
  class UpTabsContentDirective {
74
74
  constructor(parent) {
75
75
  this.parent = parent;
76
- this.value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
77
- this.inlineStyle = input('', ...(ngDevMode ? [{ debugName: "inlineStyle", alias: 'class' }] : [{ alias: 'class' }]));
78
- this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
76
+ this.value = input.required({ ...(ngDevMode ? { debugName: "value" } : {}) });
77
+ this.inlineStyle = input('', { ...(ngDevMode ? { debugName: "inlineStyle" } : {}), alias: 'class' });
78
+ this.isActive = signal(false, { ...(ngDevMode ? { debugName: "isActive" } : {}) });
79
79
  this.tabsContentClass = computed(() => {
80
80
  return up('block', this.inlineStyle());
81
- }, ...(ngDevMode ? [{ debugName: "tabsContentClass" }] : []));
81
+ }, { ...(ngDevMode ? { debugName: "tabsContentClass" } : {}) });
82
82
  effect(() => {
83
83
  if (!this.parent) {
84
84
  return;
@@ -86,10 +86,10 @@ class UpTabsContentDirective {
86
86
  this.isActive.set(this.parent.activeTab() === this.value());
87
87
  });
88
88
  }
89
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTabsContentDirective, deps: [{ token: UpTabsComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
90
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpTabsContentDirective, isStandalone: true, selector: "[upTabsContent]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, inlineStyle: { classPropertyName: "inlineStyle", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "!isActive()", "class": "tabsContentClass()" } }, exportAs: ["upTabsContent"], ngImport: i0 }); }
89
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTabsContentDirective, deps: [{ token: UpTabsComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
90
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpTabsContentDirective, isStandalone: true, selector: "[upTabsContent]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, inlineStyle: { classPropertyName: "inlineStyle", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "!isActive()", "class": "tabsContentClass()" } }, exportAs: ["upTabsContent"], ngImport: i0 }); }
91
91
  }
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTabsContentDirective, decorators: [{
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTabsContentDirective, decorators: [{
93
93
  type: Directive,
94
94
  args: [{
95
95
  standalone: true,
@@ -105,9 +105,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImpor
105
105
  class UpTabsTriggerDirective {
106
106
  constructor(parent) {
107
107
  this.parent = parent;
108
- this.value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
109
- this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
110
- this.tabsTriggerClass = computed(() => up('tabs-trigger'), ...(ngDevMode ? [{ debugName: "tabsTriggerClass" }] : []));
108
+ this.value = input.required({ ...(ngDevMode ? { debugName: "value" } : {}) });
109
+ this.isActive = signal(false, { ...(ngDevMode ? { debugName: "isActive" } : {}) });
110
+ this.tabsTriggerClass = computed(() => up('tabs-trigger'), { ...(ngDevMode ? { debugName: "tabsTriggerClass" } : {}) });
111
111
  effect(() => {
112
112
  if (!this.parent)
113
113
  return;
@@ -117,10 +117,10 @@ class UpTabsTriggerDirective {
117
117
  activate() {
118
118
  this.parent?.setActive(this.value());
119
119
  }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTabsTriggerDirective, deps: [{ token: UpTabsComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
121
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpTabsTriggerDirective, isStandalone: true, selector: "[upTabsTrigger]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "activate()" }, properties: { "class": "tabsTriggerClass()", "attr.data-state": "isActive()? 'active' : 'inactive'" } }, exportAs: ["upTabsTrigger"], ngImport: i0 }); }
120
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTabsTriggerDirective, deps: [{ token: UpTabsComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
121
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpTabsTriggerDirective, isStandalone: true, selector: "[upTabsTrigger]", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, host: { listeners: { "click": "activate()" }, properties: { "class": "tabsTriggerClass()", "attr.data-state": "isActive()? 'active' : 'inactive'" } }, exportAs: ["upTabsTrigger"], ngImport: i0 }); }
122
122
  }
123
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTabsTriggerDirective, decorators: [{
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTabsTriggerDirective, decorators: [{
124
124
  type: Directive,
125
125
  args: [{
126
126
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"unipin-angular-applet-tabs.mjs","sources":["../../../projects/unipin-angular/tabs/variants/tabs.variant.ts","../../../projects/unipin-angular/tabs/components/tabs.component.ts","../../../projects/unipin-angular/tabs/directives/tabs-content.directive.ts","../../../projects/unipin-angular/tabs/directives/tabs-trigger.directive.ts","../../../projects/unipin-angular/tabs/unipin-angular-applet-tabs.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const tabsVariants = cva(\n `\n flex mb-2 w-max p-1 rounded-lg\n [&>.tabs-trigger]:px-2.5 [&>.tabs-trigger]:py-1.5 [&>.tabs-trigger]:text-sm [&>.tabs-trigger]:transition-colors [&>.tabs-trigger]:cursor-pointer\n `,\n {\n variants: {\n variant: {\n default: `\n bg-gray-100 \n [&>.tabs-trigger]:data-[state=active]:bg-white [&>.tabs-trigger]:data-[state=active]:shadow-lg [&>.tabs-trigger]:data-[state=active]:rounded-lg [&>.tabs-trigger]:hover:opacity-[60%]\n `,\n underline: `\n bg-none \n [&>.tabs-trigger]:border-b-2 [&>.tabs-trigger]:border-transparent [&>.tabs-trigger]:hover:text-primary [&>.tabs-trigger]:text-gray-500 [&>.tabs-trigger]:data-[state=active]:border-primary [&>.tabs-trigger]:data-[state=active]:text-primary\n `,\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type TabsVariants = VariantProps<typeof tabsVariants>;\n","import { Component, computed, effect, input, InputSignal, signal, WritableSignal } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { tabsVariants } from '../variants/tabs.variant';\n\n@Component({\n standalone: true,\n selector: 'up-tabs',\n template: `\n <div [class]=\"tabsClass()\">\n <ng-content select=\"[upTabsTrigger]\" />\n </div>\n\n <ng-content select=\"[upTabsContent]\" />\n `,\n})\nexport class UpTabsComponent {\n\n public readonly size: InputSignal<'sm' | 'md' | 'lg'> = input<'sm' | 'md' | 'lg'>('md');\n public readonly variant: InputSignal<'underline' | 'default'> = input<'underline' | 'default'>('default');\n\n public readonly inlineStyle: InputSignal<ClassValue> = input<ClassValue>('', { alias: 'class' });\n public readonly defaultActiveTab: InputSignal<string | null> = input<string | null>(null, { alias: 'default' });\n\n public readonly activeTab: WritableSignal<string | null> = signal<string | null>(null);\n public readonly tabsClass = computed(\n () => {\n return up(\n tabsVariants(\n {\n variant: this.variant()\n }\n ),\n this.inlineStyle()\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n if (\n this.activeTab() === null && \n this.defaultActiveTab()\n ) {\n this.activeTab.set(this.defaultActiveTab());\n }\n }\n );\n }\n\n public setActive(tab: string): void{\n this.activeTab.set(tab);\n }\n}\n","import { computed, Directive, effect, input, InputSignal, signal, WritableSignal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpTabsComponent } from '../components/tabs.component';\n\n@Directive({\n standalone: true,\n exportAs: 'upTabsContent',\n selector: '[upTabsContent]',\n host: {\n '[hidden]': '!isActive()',\n '[class]': 'tabsContentClass()',\n }\n})\nexport class UpTabsContentDirective {\n\n public readonly value: InputSignal<string> = input.required<string>();\n public readonly inlineStyle: InputSignal<ClassValue> = input<ClassValue>('', { alias: 'class' });\n\n public readonly isActive: WritableSignal<boolean> = signal(false);\n public readonly tabsContentClass = computed(\n () => {\n return up('block', this.inlineStyle());\n }\n );\n\n constructor(\n protected readonly parent: UpTabsComponent\n ) {\n effect(\n () => {\n if (!this.parent) {\n return;\n }\n \n this.isActive.set(\n this.parent.activeTab() === this.value()\n );\n }\n );\n }\n}\n","import { computed, Directive, effect, input, signal } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpTabsComponent } from '../components/tabs.component';\n\n@Directive({\n standalone: true,\n exportAs: 'upTabsTrigger',\n selector: '[upTabsTrigger]',\n host: {\n '(click)': 'activate()',\n '[class]': 'tabsTriggerClass()',\n '[attr.data-state]': `isActive()? 'active' : 'inactive'`,\n }\n})\nexport class UpTabsTriggerDirective {\n \n public readonly value = input.required<string>();\n \n public readonly isActive = signal(false);\n public readonly tabsTriggerClass = computed(() => up('tabs-trigger'));\n\n constructor(\n protected readonly parent: UpTabsComponent\n ) {\n effect(\n () => {\n if (!this.parent) return;\n this.isActive.set(this.parent.activeTab() === this.value());\n }\n );\n }\n\n public activate(): void{\n this.parent?.setActive(this.value());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UpTabsComponent"],"mappings":"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"}
1
+ {"version":3,"file":"unipin-angular-applet-tabs.mjs","sources":["../../../projects/unipin-angular/tabs/variants/tabs.variant.ts","../../../projects/unipin-angular/tabs/components/tabs.component.ts","../../../projects/unipin-angular/tabs/directives/tabs-content.directive.ts","../../../projects/unipin-angular/tabs/directives/tabs-trigger.directive.ts","../../../projects/unipin-angular/tabs/unipin-angular-applet-tabs.ts"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const tabsVariants = cva(\n `\n flex mb-2 w-max p-1 rounded-lg\n [&>.tabs-trigger]:px-2.5 [&>.tabs-trigger]:py-1.5 [&>.tabs-trigger]:text-sm [&>.tabs-trigger]:transition-colors [&>.tabs-trigger]:cursor-pointer\n `,\n {\n variants: {\n variant: {\n default: `\n bg-gray-100 \n [&>.tabs-trigger]:data-[state=active]:bg-white [&>.tabs-trigger]:data-[state=active]:shadow-lg [&>.tabs-trigger]:data-[state=active]:rounded-lg [&>.tabs-trigger]:hover:opacity-[60%]\n `,\n underline: `\n bg-none \n [&>.tabs-trigger]:border-b-2 [&>.tabs-trigger]:border-transparent [&>.tabs-trigger]:hover:text-primary [&>.tabs-trigger]:text-gray-500 [&>.tabs-trigger]:data-[state=active]:border-primary [&>.tabs-trigger]:data-[state=active]:text-primary\n `,\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nexport type TabsVariants = VariantProps<typeof tabsVariants>;\n","import { Component, computed, effect, input, InputSignal, signal, WritableSignal } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { tabsVariants } from '../variants/tabs.variant';\n\n@Component({\n standalone: true,\n selector: 'up-tabs',\n template: `\n <div [class]=\"tabsClass()\">\n <ng-content select=\"[upTabsTrigger]\" />\n </div>\n\n <ng-content select=\"[upTabsContent]\" />\n `,\n})\nexport class UpTabsComponent {\n\n public readonly size: InputSignal<'sm' | 'md' | 'lg'> = input<'sm' | 'md' | 'lg'>('md');\n public readonly variant: InputSignal<'underline' | 'default'> = input<'underline' | 'default'>('default');\n\n public readonly inlineStyle: InputSignal<ClassValue> = input<ClassValue>('', { alias: 'class' });\n public readonly defaultActiveTab: InputSignal<string | null> = input<string | null>(null, { alias: 'default' });\n\n public readonly activeTab: WritableSignal<string | null> = signal<string | null>(null);\n public readonly tabsClass = computed(\n () => {\n return up(\n tabsVariants(\n {\n variant: this.variant()\n }\n ),\n this.inlineStyle()\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n if (\n this.activeTab() === null && \n this.defaultActiveTab()\n ) {\n this.activeTab.set(this.defaultActiveTab());\n }\n }\n );\n }\n\n public setActive(tab: string): void{\n this.activeTab.set(tab);\n }\n}\n","import { computed, Directive, effect, input, InputSignal, signal, WritableSignal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpTabsComponent } from '../components/tabs.component';\n\n@Directive({\n standalone: true,\n exportAs: 'upTabsContent',\n selector: '[upTabsContent]',\n host: {\n '[hidden]': '!isActive()',\n '[class]': 'tabsContentClass()',\n }\n})\nexport class UpTabsContentDirective {\n\n public readonly value: InputSignal<string> = input.required<string>();\n public readonly inlineStyle: InputSignal<ClassValue> = input<ClassValue>('', { alias: 'class' });\n\n public readonly isActive: WritableSignal<boolean> = signal(false);\n public readonly tabsContentClass = computed(\n () => {\n return up('block', this.inlineStyle());\n }\n );\n\n constructor(\n protected readonly parent: UpTabsComponent\n ) {\n effect(\n () => {\n if (!this.parent) {\n return;\n }\n \n this.isActive.set(\n this.parent.activeTab() === this.value()\n );\n }\n );\n }\n}\n","import { computed, Directive, effect, input, signal } from '@angular/core';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpTabsComponent } from '../components/tabs.component';\n\n@Directive({\n standalone: true,\n exportAs: 'upTabsTrigger',\n selector: '[upTabsTrigger]',\n host: {\n '(click)': 'activate()',\n '[class]': 'tabsTriggerClass()',\n '[attr.data-state]': `isActive()? 'active' : 'inactive'`,\n }\n})\nexport class UpTabsTriggerDirective {\n \n public readonly value = input.required<string>();\n \n public readonly isActive = signal(false);\n public readonly tabsTriggerClass = computed(() => up('tabs-trigger'));\n\n constructor(\n protected readonly parent: UpTabsComponent\n ) {\n effect(\n () => {\n if (!this.parent) return;\n this.isActive.set(this.parent.activeTab() === this.value());\n }\n );\n }\n\n public activate(): void{\n this.parent?.setActive(this.value());\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UpTabsComponent"],"mappings":"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"}
@@ -12,13 +12,13 @@ class UpTooltipDirective {
12
12
  * @type {InputSignal<string>}
13
13
  * @default ''
14
14
  */
15
- this.toolTipText = input.required(...(ngDevMode ? [{ debugName: "toolTipText" }] : []));
15
+ this.toolTipText = input.required({ ...(ngDevMode ? { debugName: "toolTipText" } : {}) });
16
16
  /**
17
17
  * Input variable specifying the position of the tooltip relative to the host element.
18
18
  * @type {InputSignal<string>}
19
19
  * @default 'top'
20
20
  */
21
- this.position = input('top', ...(ngDevMode ? [{ debugName: "position" }] : []));
21
+ this.position = input('top', { ...(ngDevMode ? { debugName: "position" } : {}) });
22
22
  this._winListener = [];
23
23
  this._hostListener = [];
24
24
  this._tooltipElement = null;
@@ -95,10 +95,10 @@ class UpTooltipDirective {
95
95
  this.renderer.setStyle(tooltipEl, 'top', `${Math.round(top)}px`);
96
96
  this.renderer.setStyle(tooltipEl, 'left', `${Math.round(left)}px`);
97
97
  }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTooltipDirective, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
99
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.0", type: UpTooltipDirective, isStandalone: true, selector: "[upTooltip]", inputs: { toolTipText: { classPropertyName: "toolTipText", publicName: "toolTipText", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["upTooltip"], ngImport: i0 }); }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTooltipDirective, deps: [{ token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
99
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.2", type: UpTooltipDirective, isStandalone: true, selector: "[upTooltip]", inputs: { toolTipText: { classPropertyName: "toolTipText", publicName: "toolTipText", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["upTooltip"], ngImport: i0 }); }
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.0", ngImport: i0, type: UpTooltipDirective, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: UpTooltipDirective, decorators: [{
102
102
  type: Directive,
103
103
  args: [{
104
104
  standalone: true,
@@ -1 +1 @@
1
- {"version":3,"file":"unipin-angular-applet-tooltip.mjs","sources":["../../../projects/unipin-angular/tooltip/tooltip.directive.ts","../../../projects/unipin-angular/tooltip/unipin-angular-applet-tooltip.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, OnInit, OnDestroy, input, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upTooltip',\n selector: '[upTooltip]',\n})\nexport class UpTooltipDirective implements OnInit, OnDestroy {\n\n /**\n * Input variable specifying the text displayed in the tooltip helper, which provides a hint to the user about the purpose of the element.\n * @type {InputSignal<string>}\n * @default ''\n */\n public readonly toolTipText = input.required<string>();\n \n /**\n * Input variable specifying the position of the tooltip relative to the host element.\n * @type {InputSignal<string>}\n * @default 'top'\n */\n public readonly position = input<'top' | 'right' | 'bottom' | 'left'>('top');\n \n protected _winListener: Array<() => void> = [];\n protected _hostListener: Array<() => void> = [];\n protected _tooltipElement: HTMLElement | null = null;\n\n constructor(\n @Inject(DOCUMENT) protected readonly doc: Document,\n protected readonly renderer: Renderer2,\n protected readonly el: ElementRef<HTMLElement>,\n ) {}\n\n public ngOnInit(): void{\n this._hostListener.push(\n this.renderer.listen(\n this.el.nativeElement, \n 'mouseenter', \n () => {\n if (this._tooltipElement) {\n this.renderer.removeClass(this._tooltipElement, 'invisible');\n return;\n }\n this._tooltipElement = this.renderer.createElement('span');\n \n this.renderer.setAttribute(\n this._tooltipElement, \n 'class', \n 'fixed z-[10000] text-white max-w-xs text-xs w-max whitespace-normal bg-[#2D3336] rounded-lg px-2 py-1 break-words pointer-events-none'\n );\n\n this.renderer.appendChild(\n this._tooltipElement, \n this.renderer.createText(\n this.toolTipText()\n )\n );\n this.renderer.appendChild(this.doc.body, this._tooltipElement);\n \n this.positionTooltip(); \n this._winListener.push(\n this.renderer.listen('window', 'scroll', () => this.positionTooltip()),\n this.renderer.listen('window', 'resize', () => this.positionTooltip())\n );\n }\n ),\n \n this.renderer.listen(\n this.el.nativeElement, \n 'mouseleave', \n () => {\n this.hideTooltip();\n }\n )\n );\n }\n\n public ngOnDestroy(): void{\n this.hideTooltip();\n\n for (const off of this._hostListener) {\n try { \n off(); \n } catch {}\n }\n this._hostListener.length = 0;\n\n for (const off of this._winListener) {\n try { \n off(); \n } catch {}\n }\n this._winListener.length = 0;\n }\n\n protected hideTooltip(): void{\n if (this._tooltipElement) {\n this.renderer.addClass(this._tooltipElement, 'invisible');\n }\n }\n\n protected positionTooltip(): void{\n if (!this._tooltipElement) {\n return;\n }\n\n const hostRect = this.el.nativeElement.getBoundingClientRect();\n const tooltipEl = this._tooltipElement as HTMLElement;\n const tooltipRect = tooltipEl.getBoundingClientRect();\n\n const gap = 8;\n let top = 0;\n let left = 0;\n\n switch (this.position()) {\n case 'top':\n top = hostRect.top - tooltipRect.height - gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n\n case 'left':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.left - tooltipRect.width - gap;\n break;\n\n case 'right':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.right + gap;\n break;\n\n default:\n top = hostRect.bottom + gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n }\n\n const margin = 4;\n left = Math.max(\n margin, \n Math.min(\n left, \n this.doc.defaultView?.innerWidth?? 0 - tooltipRect.width - margin\n )\n );\n \n top = Math.max(\n margin, \n Math.min(\n top, \n this.doc.defaultView?.innerHeight?? 0 - tooltipRect.height - margin\n )\n );\n this.renderer.setStyle(tooltipEl, 'top', `${ Math.round(top) }px`);\n this.renderer.setStyle(tooltipEl, 'left', `${ Math.round(left) }px`);\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-tooltip.mjs","sources":["../../../projects/unipin-angular/tooltip/tooltip.directive.ts","../../../projects/unipin-angular/tooltip/unipin-angular-applet-tooltip.ts"],"sourcesContent":["import { Directive, ElementRef, Renderer2, OnInit, OnDestroy, input, Inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upTooltip',\n selector: '[upTooltip]',\n})\nexport class UpTooltipDirective implements OnInit, OnDestroy {\n\n /**\n * Input variable specifying the text displayed in the tooltip helper, which provides a hint to the user about the purpose of the element.\n * @type {InputSignal<string>}\n * @default ''\n */\n public readonly toolTipText = input.required<string>();\n \n /**\n * Input variable specifying the position of the tooltip relative to the host element.\n * @type {InputSignal<string>}\n * @default 'top'\n */\n public readonly position = input<'top' | 'right' | 'bottom' | 'left'>('top');\n \n protected _winListener: Array<() => void> = [];\n protected _hostListener: Array<() => void> = [];\n protected _tooltipElement: HTMLElement | null = null;\n\n constructor(\n @Inject(DOCUMENT) protected readonly doc: Document,\n protected readonly renderer: Renderer2,\n protected readonly el: ElementRef<HTMLElement>,\n ) {}\n\n public ngOnInit(): void{\n this._hostListener.push(\n this.renderer.listen(\n this.el.nativeElement, \n 'mouseenter', \n () => {\n if (this._tooltipElement) {\n this.renderer.removeClass(this._tooltipElement, 'invisible');\n return;\n }\n this._tooltipElement = this.renderer.createElement('span');\n \n this.renderer.setAttribute(\n this._tooltipElement, \n 'class', \n 'fixed z-[10000] text-white max-w-xs text-xs w-max whitespace-normal bg-[#2D3336] rounded-lg px-2 py-1 break-words pointer-events-none'\n );\n\n this.renderer.appendChild(\n this._tooltipElement, \n this.renderer.createText(\n this.toolTipText()\n )\n );\n this.renderer.appendChild(this.doc.body, this._tooltipElement);\n \n this.positionTooltip(); \n this._winListener.push(\n this.renderer.listen('window', 'scroll', () => this.positionTooltip()),\n this.renderer.listen('window', 'resize', () => this.positionTooltip())\n );\n }\n ),\n \n this.renderer.listen(\n this.el.nativeElement, \n 'mouseleave', \n () => {\n this.hideTooltip();\n }\n )\n );\n }\n\n public ngOnDestroy(): void{\n this.hideTooltip();\n\n for (const off of this._hostListener) {\n try { \n off(); \n } catch {}\n }\n this._hostListener.length = 0;\n\n for (const off of this._winListener) {\n try { \n off(); \n } catch {}\n }\n this._winListener.length = 0;\n }\n\n protected hideTooltip(): void{\n if (this._tooltipElement) {\n this.renderer.addClass(this._tooltipElement, 'invisible');\n }\n }\n\n protected positionTooltip(): void{\n if (!this._tooltipElement) {\n return;\n }\n\n const hostRect = this.el.nativeElement.getBoundingClientRect();\n const tooltipEl = this._tooltipElement as HTMLElement;\n const tooltipRect = tooltipEl.getBoundingClientRect();\n\n const gap = 8;\n let top = 0;\n let left = 0;\n\n switch (this.position()) {\n case 'top':\n top = hostRect.top - tooltipRect.height - gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n\n case 'left':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.left - tooltipRect.width - gap;\n break;\n\n case 'right':\n top = hostRect.top + (hostRect.height - tooltipRect.height) / 2;\n left = hostRect.right + gap;\n break;\n\n default:\n top = hostRect.bottom + gap;\n left = hostRect.left + (hostRect.width - tooltipRect.width) / 2;\n break;\n }\n\n const margin = 4;\n left = Math.max(\n margin, \n Math.min(\n left, \n this.doc.defaultView?.innerWidth?? 0 - tooltipRect.width - margin\n )\n );\n \n top = Math.max(\n margin, \n Math.min(\n top, \n this.doc.defaultView?.innerHeight?? 0 - tooltipRect.height - margin\n )\n );\n this.renderer.setStyle(tooltipEl, 'top', `${ Math.round(top) }px`);\n this.renderer.setStyle(tooltipEl, 'left', `${ Math.round(left) }px`);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unipin/angular-applet",
3
- "version": "21.0.1",
3
+ "version": "21.1.2",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "21.x.x",
6
6
  "@angular/common": "21.x.x",
@@ -46,6 +46,10 @@
46
46
  "types": "./types/unipin-angular-applet-alert-dialog.d.ts",
47
47
  "default": "./fesm2022/unipin-angular-applet-alert-dialog.mjs"
48
48
  },
49
+ "./approval": {
50
+ "types": "./types/unipin-angular-applet-approval.d.ts",
51
+ "default": "./fesm2022/unipin-angular-applet-approval.mjs"
52
+ },
49
53
  "./auth": {
50
54
  "types": "./types/unipin-angular-applet-auth.d.ts",
51
55
  "default": "./fesm2022/unipin-angular-applet-auth.mjs"
@@ -102,6 +106,10 @@
102
106
  "types": "./types/unipin-angular-applet-json-viewer.d.ts",
103
107
  "default": "./fesm2022/unipin-angular-applet-json-viewer.mjs"
104
108
  },
109
+ "./kbd": {
110
+ "types": "./types/unipin-angular-applet-kbd.d.ts",
111
+ "default": "./fesm2022/unipin-angular-applet-kbd.mjs"
112
+ },
105
113
  "./loading-dialog": {
106
114
  "types": "./types/unipin-angular-applet-loading-dialog.d.ts",
107
115
  "default": "./fesm2022/unipin-angular-applet-loading-dialog.mjs"
@@ -4,7 +4,7 @@ import * as i0 from '@angular/core';
4
4
 
5
5
  type AlertOptions = {
6
6
  title: string;
7
- buttons: AlertButton[];
7
+ buttons: (AlertButton | string)[];
8
8
  description?: string;
9
9
  fields?: AlertFormField[];
10
10
  };
@@ -16,7 +16,9 @@ type AlertButton = {
16
16
  };
17
17
  type AlertFormField = {
18
18
  name: string;
19
+ label: string;
19
20
  type: 'text' | 'number' | 'checkbox' | 'password';
21
+ value?: unknown;
20
22
  required?: boolean;
21
23
  placeholder?: string;
22
24
  };