@unipin/angular-applet 21.1.2 → 21.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/common/assets/styles/theme.css +8 -0
- package/fesm2022/unipin-angular-applet-accordion.mjs +23 -23
- package/fesm2022/unipin-angular-applet-accordion.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs +31 -11
- package/fesm2022/unipin-angular-applet-alert-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-alert.mjs +13 -13
- package/fesm2022/unipin-angular-applet-alert.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-approval.mjs +10 -10
- package/fesm2022/unipin-angular-applet-approval.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-audit-audit-modal.component-3a2P0bZr.mjs +280 -0
- package/fesm2022/unipin-angular-applet-audit-audit-modal.component-3a2P0bZr.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-audit.mjs +220 -0
- package/fesm2022/unipin-angular-applet-audit.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-auth.mjs +23 -23
- package/fesm2022/unipin-angular-applet-auth.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-avatar.mjs +26 -9
- package/fesm2022/unipin-angular-applet-avatar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-badge.mjs +5 -5
- package/fesm2022/unipin-angular-applet-badge.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-buttons.mjs +10 -10
- package/fesm2022/unipin-angular-applet-buttons.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-calendar.mjs +37 -23
- package/fesm2022/unipin-angular-applet-calendar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-collapsible.mjs +14 -14
- package/fesm2022/unipin-angular-applet-collapsible.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-common.mjs +25 -25
- package/fesm2022/unipin-angular-applet-common.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-containers.mjs +20 -20
- package/fesm2022/unipin-angular-applet-containers.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-dialog.mjs +62 -58
- package/fesm2022/unipin-angular-applet-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-forms.mjs +1113 -294
- package/fesm2022/unipin-angular-applet-forms.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-froala.mjs +9 -9
- package/fesm2022/unipin-angular-applet-froala.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-grids.mjs +17 -1
- package/fesm2022/unipin-angular-applet-grids.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs +5 -5
- package/fesm2022/unipin-angular-applet-infinite-scroll.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-json-viewer.mjs +7 -7
- package/fesm2022/unipin-angular-applet-json-viewer.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-kbd.mjs +4 -4
- package/fesm2022/unipin-angular-applet-kbd.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs +8 -8
- package/fesm2022/unipin-angular-applet-loading-dialog.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-markdown.mjs +18 -18
- package/fesm2022/unipin-angular-applet-markdown.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-popover.mjs +21 -21
- package/fesm2022/unipin-angular-applet-popover.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-progress-bar.mjs +7 -7
- package/fesm2022/unipin-angular-applet-progress-bar.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-skeleton.mjs +4 -4
- package/fesm2022/unipin-angular-applet-skeleton.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-spinner.mjs +5 -5
- package/fesm2022/unipin-angular-applet-spinner.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-stepper.mjs +288 -0
- package/fesm2022/unipin-angular-applet-stepper.mjs.map +1 -0
- package/fesm2022/unipin-angular-applet-swipeable.mjs +24 -24
- package/fesm2022/unipin-angular-applet-swipeable.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tabs.mjs +19 -19
- package/fesm2022/unipin-angular-applet-tabs.mjs.map +1 -1
- package/fesm2022/unipin-angular-applet-tooltip.mjs +5 -5
- package/fesm2022/unipin-angular-applet-tooltip.mjs.map +1 -1
- package/package.json +9 -1
- package/types/unipin-angular-applet-alert-dialog.d.ts +12 -1
- package/types/unipin-angular-applet-audit.d.ts +49 -0
- package/types/unipin-angular-applet-avatar.d.ts +3 -2
- package/types/unipin-angular-applet-containers.d.ts +1 -1
- package/types/unipin-angular-applet-dialog.d.ts +11 -8
- package/types/unipin-angular-applet-forms.d.ts +168 -45
- package/types/unipin-angular-applet-grids.d.ts +17 -1
- package/types/unipin-angular-applet-popover.d.ts +2 -2
- package/types/unipin-angular-applet-stepper.d.ts +43 -0
|
@@ -4,20 +4,20 @@ import { up } from '@unipin/angular-applet/common';
|
|
|
4
4
|
|
|
5
5
|
class UpProgressBarDirective {
|
|
6
6
|
constructor() {
|
|
7
|
-
this.max = input.required(
|
|
8
|
-
this.progress = input.required(
|
|
7
|
+
this.max = input.required(...(ngDevMode ? [{ debugName: "max" }] : []));
|
|
8
|
+
this.progress = input.required(...(ngDevMode ? [{ debugName: "progress" }] : []));
|
|
9
9
|
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
10
10
|
this._computedClass = computed(() => {
|
|
11
11
|
return up('block w-full h-2 rounded overflow-hidden relative bg-muted', `before:content-[''] before:absolute before:top-0 before:left-0 before:h-full before:block before:bg-primary before:transition-all before:w-[var(--progress-width)]`, this.inlineClass());
|
|
12
|
-
},
|
|
12
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
13
13
|
this._progressWidth = computed(() => {
|
|
14
14
|
return `${Math.max(0, Math.min(100, (this.progress() / this.max()) * 100 || 0))}%`;
|
|
15
|
-
},
|
|
15
|
+
}, ...(ngDevMode ? [{ debugName: "_progressWidth" }] : []));
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
18
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpProgressBarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
18
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", type: UpProgressBarDirective, isStandalone: true, selector: "[upProgressBar]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: true, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: true, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()", "style.--progress-width": "_progressWidth()" } }, exportAs: ["upProgressBar"], ngImport: i0 }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpProgressBarDirective, decorators: [{
|
|
21
21
|
type: Directive,
|
|
22
22
|
args: [{
|
|
23
23
|
standalone: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-progress-bar.mjs","sources":["../../../projects/unipin-angular/progress-bar/progress-bar.directive.ts","../../../projects/unipin-angular/progress-bar/unipin-angular-applet-progress-bar.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upProgressBar',\n selector: '[upProgressBar]',\n host: {\n '[class]': '_computedClass()',\n '[style.--progress-width]': '_progressWidth()',\n },\n})\nexport class UpProgressBarDirective {\n\n public readonly max = input.required<number>();\n public readonly progress = input.required<number>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block w-full h-2 rounded overflow-hidden relative bg-muted',\n `before:content-[''] before:absolute before:top-0 before:left-0 before:h-full before:block before:bg-primary before:transition-all before:w-[var(--progress-width)]`,\n this.inlineClass()\n );\n }\n );\n\n protected readonly _progressWidth = computed(\n () => {\n return `${\n Math.max(\n 0, \n Math.min(\n 100, \n (this.progress() / this.max()) * 100 || 0\n )\n )\n }%`;\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,sBAAsB,CAAA;AATnC,IAAA,WAAA,GAAA;AAWkB,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-progress-bar.mjs","sources":["../../../projects/unipin-angular/progress-bar/progress-bar.directive.ts","../../../projects/unipin-angular/progress-bar/unipin-angular-applet-progress-bar.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upProgressBar',\n selector: '[upProgressBar]',\n host: {\n '[class]': '_computedClass()',\n '[style.--progress-width]': '_progressWidth()',\n },\n})\nexport class UpProgressBarDirective {\n\n public readonly max = input.required<number>();\n public readonly progress = input.required<number>();\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block w-full h-2 rounded overflow-hidden relative bg-muted',\n `before:content-[''] before:absolute before:top-0 before:left-0 before:h-full before:block before:bg-primary before:transition-all before:w-[var(--progress-width)]`,\n this.inlineClass()\n );\n }\n );\n\n protected readonly _progressWidth = computed(\n () => {\n return `${\n Math.max(\n 0, \n Math.min(\n 100, \n (this.progress() / this.max()) * 100 || 0\n )\n )\n }%`;\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAaa,sBAAsB,CAAA;AATnC,IAAA,WAAA,GAAA;AAWkB,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,8CAAU;AAC9B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,mDAAU;QACnC,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,4DAA4D,EAC5D,CAAA,kKAAA,CAAoK,EACpK,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AAEkB,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAC1C,MAAK;AACH,YAAA,OAAO,CAAA,EACL,IAAI,CAAC,GAAG,CACN,CAAC,EACD,IAAI,CAAC,GAAG,CACN,GAAG,EACH,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC,CAC1C,CAEL,GAAG;AACL,QAAA,CAAC,0DACF;AACF,IAAA;8GA7BY,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,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,wBAAA,EAAA,kBAAA,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,kBAAkB;AAC7B,wBAAA,0BAA0B,EAAE,kBAAkB;AAC/C,qBAAA;AACF,iBAAA;;;ACZD;;AAEG;;;;"}
|
|
@@ -7,12 +7,12 @@ class UpSkeletonDirective {
|
|
|
7
7
|
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
8
8
|
this._computedClass = computed(() => {
|
|
9
9
|
return up('block animate-pulse rounded-md bg-muted', this.inlineClass());
|
|
10
|
-
},
|
|
10
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
13
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSkeletonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", type: UpSkeletonDirective, isStandalone: true, selector: "[upSkeleton]", inputs: { inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, exportAs: ["upSkeleton"], ngImport: i0 }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSkeletonDirective, decorators: [{
|
|
16
16
|
type: Directive,
|
|
17
17
|
args: [{
|
|
18
18
|
standalone: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet-skeleton.mjs","sources":["../../../projects/unipin-angular/skeleton/skeleton.directive.ts","../../../projects/unipin-angular/skeleton/unipin-angular-applet-skeleton.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSkeleton',\n selector: '[upSkeleton]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSkeletonDirective {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block animate-pulse rounded-md bg-muted',\n this.inlineClass(),\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,mBAAmB,CAAA;AARhC,IAAA,WAAA,GAAA;QAUkB,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,yCAAyC,EACzC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-skeleton.mjs","sources":["../../../projects/unipin-angular/skeleton/skeleton.directive.ts","../../../projects/unipin-angular/skeleton/unipin-angular-applet-skeleton.ts"],"sourcesContent":["import { Directive, computed, input } from '@angular/core';\nimport type { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\n\n@Directive({\n standalone: true,\n exportAs: 'upSkeleton',\n selector: '[upSkeleton]',\n host: {\n '[class]': '_computedClass()',\n }\n})\nexport class UpSkeletonDirective {\n\n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'block animate-pulse rounded-md bg-muted',\n this.inlineClass(),\n );\n }\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAYa,mBAAmB,CAAA;AARhC,IAAA,WAAA,GAAA;QAUkB,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,yCAAyC,EACzC,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AACF,IAAA;8GAZY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,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,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -5,13 +5,13 @@ import { up } from '@unipin/angular-applet/common';
|
|
|
5
5
|
class UpSpinnerComponent {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.stokeWidth = input(8, { ...(ngDevMode ? { debugName: "stokeWidth" } : {}), transform: numberAttribute });
|
|
8
|
-
this.inlineClass = input({ alias: 'class' },
|
|
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
|
-
},
|
|
11
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
12
12
|
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.5", 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.
|
|
74
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", 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;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,
|
|
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,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;;;;"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { contentChildren, forwardRef, input, computed, signal, effect, ChangeDetectionStrategy, Component, inject, booleanAttribute, Directive } from '@angular/core';
|
|
3
|
+
import { up } from '@unipin/angular-applet/common';
|
|
4
|
+
|
|
5
|
+
class UpStepperComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.stepContents = contentChildren(forwardRef(() => UpStepperContentDirective), { ...(ngDevMode ? { debugName: "stepContents" } : {}), descendants: true });
|
|
8
|
+
this.initialStep = input(1, ...(ngDevMode ? [{ debugName: "initialStep" }] : []));
|
|
9
|
+
this.inlineClass = input('', { ...(ngDevMode ? { debugName: "inlineClass" } : {}), alias: 'class' });
|
|
10
|
+
this._computedClass = computed(() => {
|
|
11
|
+
return up('flex flex-col gap-6', this.inlineClass());
|
|
12
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
13
|
+
this.activeStep = signal(1, ...(ngDevMode ? [{ debugName: "activeStep" }] : []));
|
|
14
|
+
this.steps = signal([], ...(ngDevMode ? [{ debugName: "steps" }] : []));
|
|
15
|
+
this.visibleSteps = computed(() => {
|
|
16
|
+
const steps = this.steps();
|
|
17
|
+
const active = this.activeStep() - 1;
|
|
18
|
+
const start = Math.max(0, Math.min(active - 1, steps.length - 3));
|
|
19
|
+
const end = Math.min(start + 3, steps.length);
|
|
20
|
+
return steps.slice(start, end).map((step, i) => {
|
|
21
|
+
return {
|
|
22
|
+
...step,
|
|
23
|
+
index: start + i,
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
}, ...(ngDevMode ? [{ debugName: "visibleSteps" }] : []));
|
|
27
|
+
effect(() => {
|
|
28
|
+
const initialStep = this.initialStep();
|
|
29
|
+
const stepContents = this.stepContents();
|
|
30
|
+
stepContents.forEach((content, index) => {
|
|
31
|
+
content.index.set(index + 1);
|
|
32
|
+
});
|
|
33
|
+
this.steps.set(stepContents.map((content, index) => {
|
|
34
|
+
return {
|
|
35
|
+
label: content.label(),
|
|
36
|
+
allowReopen: content.allowReopen(),
|
|
37
|
+
status: this.getStepperStatus(index, initialStep)
|
|
38
|
+
};
|
|
39
|
+
}));
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
this.activeStep.set(this.initialStep());
|
|
44
|
+
}
|
|
45
|
+
prevStep() {
|
|
46
|
+
const current = this.activeStep();
|
|
47
|
+
const target = current - 1;
|
|
48
|
+
const targetStep = this.steps()[target - 1];
|
|
49
|
+
if (target < 1 ||
|
|
50
|
+
!targetStep ||
|
|
51
|
+
!targetStep.allowReopen) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.activeStep.set(target);
|
|
55
|
+
}
|
|
56
|
+
nextStep() {
|
|
57
|
+
const current = this.activeStep();
|
|
58
|
+
if (current >= this.steps().length) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.steps.update((list) => {
|
|
62
|
+
return list.map((step, index) => {
|
|
63
|
+
if (step.status === 'COMPLETED') {
|
|
64
|
+
return step;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
...step,
|
|
68
|
+
status: index === current - 1 ? 'COMPLETED' : (index === current ? 'PENDING' : step.status)
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
this.activeStep.update((prev) => prev + 1);
|
|
73
|
+
}
|
|
74
|
+
getStepperStatus(i, initialStep) {
|
|
75
|
+
const init = initialStep - 1;
|
|
76
|
+
if (i < init)
|
|
77
|
+
return 'COMPLETED';
|
|
78
|
+
if (i === init)
|
|
79
|
+
return 'PENDING';
|
|
80
|
+
return 'DISABLED';
|
|
81
|
+
}
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpStepperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.5", type: UpStepperComponent, isStandalone: true, selector: "up-stepper", inputs: { initialStep: { classPropertyName: "initialStep", publicName: "initialStep", isSignal: true, isRequired: false, transformFunction: null }, inlineClass: { classPropertyName: "inlineClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "_computedClass()" } }, queries: [{ propertyName: "stepContents", predicate: i0.forwardRef(() => UpStepperContentDirective), descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
84
|
+
<div class="hidden sm:flex items-center justify-between select-none shrink-0">
|
|
85
|
+
@for (step of steps(); track $index) {
|
|
86
|
+
<div class="flex flex-col items-center relative lg:static lg:flex-row lg:gap-2">
|
|
87
|
+
<div
|
|
88
|
+
class="size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold transition-all duration-300"
|
|
89
|
+
[class.cursor-pointer]="step.allowReopen && step.status !== 'DISABLED'"
|
|
90
|
+
|
|
91
|
+
[class.bg-muted]="($index + 1) > activeStep()"
|
|
92
|
+
[class.bg-primary]="($index + 1) <= activeStep()"
|
|
93
|
+
|
|
94
|
+
[class.text-white]="($index + 1) <= activeStep()"
|
|
95
|
+
[class.text-muted-foreground]="($index + 1) > activeStep()"
|
|
96
|
+
|
|
97
|
+
(click)="step.allowReopen && step.status !== 'DISABLED'? this.activeStep.set($index + 1) : null"
|
|
98
|
+
>
|
|
99
|
+
{{ $index + 1 }}
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<div
|
|
103
|
+
class="absolute top-10 text-xs text-primary font-medium whitespace-nowrap transition-opacity duration-300 lg:static lg:text-base"
|
|
104
|
+
[class.hidden]="($index + 1) !== activeStep()"
|
|
105
|
+
>
|
|
106
|
+
{{ step.label }}
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
@if (!$last) {
|
|
111
|
+
<div class="flex-1 h-0.5 min-w-5 mx-2">
|
|
112
|
+
<div
|
|
113
|
+
class="size-full transition-all duration-300"
|
|
114
|
+
[class.bg-muted]="($index + 1) >= activeStep()"
|
|
115
|
+
[class.bg-primary]="($index + 1) < activeStep()"
|
|
116
|
+
>
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<div class="flex sm:hidden items-center justify-between select-none shrink-0">
|
|
124
|
+
@for (step of visibleSteps(); track step.index) {
|
|
125
|
+
<div class="flex flex-col items-center relative lg:static lg:flex-row lg:gap-2">
|
|
126
|
+
<div
|
|
127
|
+
class="size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold transition-all duration-300"
|
|
128
|
+
[class.bg-muted]="(step.index + 1) > activeStep()"
|
|
129
|
+
[class.bg-primary]="(step.index + 1) <= activeStep()"
|
|
130
|
+
|
|
131
|
+
[class.text-white]="(step.index + 1) <= activeStep()"
|
|
132
|
+
[class.text-muted-foreground]="(step.index + 1) > activeStep()"
|
|
133
|
+
>
|
|
134
|
+
{{ step.index + 1 }}
|
|
135
|
+
</div>
|
|
136
|
+
|
|
137
|
+
<div
|
|
138
|
+
class="absolute top-10 text-xs text-primary font-medium whitespace-nowrap transition-opacity duration-300 lg:static lg:text-base"
|
|
139
|
+
[class.hidden]="(step.index + 1) !== activeStep()"
|
|
140
|
+
>
|
|
141
|
+
{{ step.label }}
|
|
142
|
+
</div>
|
|
143
|
+
</div>
|
|
144
|
+
|
|
145
|
+
@if (!$last) {
|
|
146
|
+
<div class="flex-1 h-0.5 mx-2">
|
|
147
|
+
<div
|
|
148
|
+
class="size-full transition-all duration-300"
|
|
149
|
+
[class.bg-muted]="($index + 1) >= activeStep()"
|
|
150
|
+
[class.bg-primary]="($index + 1) < activeStep()"
|
|
151
|
+
>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
<!-- stepper content -->
|
|
159
|
+
<ng-content/>
|
|
160
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
161
|
+
}
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpStepperComponent, decorators: [{
|
|
163
|
+
type: Component,
|
|
164
|
+
args: [{
|
|
165
|
+
standalone: true,
|
|
166
|
+
selector: 'up-stepper',
|
|
167
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
168
|
+
host: {
|
|
169
|
+
'[class]': '_computedClass()',
|
|
170
|
+
},
|
|
171
|
+
template: `
|
|
172
|
+
<div class="hidden sm:flex items-center justify-between select-none shrink-0">
|
|
173
|
+
@for (step of steps(); track $index) {
|
|
174
|
+
<div class="flex flex-col items-center relative lg:static lg:flex-row lg:gap-2">
|
|
175
|
+
<div
|
|
176
|
+
class="size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold transition-all duration-300"
|
|
177
|
+
[class.cursor-pointer]="step.allowReopen && step.status !== 'DISABLED'"
|
|
178
|
+
|
|
179
|
+
[class.bg-muted]="($index + 1) > activeStep()"
|
|
180
|
+
[class.bg-primary]="($index + 1) <= activeStep()"
|
|
181
|
+
|
|
182
|
+
[class.text-white]="($index + 1) <= activeStep()"
|
|
183
|
+
[class.text-muted-foreground]="($index + 1) > activeStep()"
|
|
184
|
+
|
|
185
|
+
(click)="step.allowReopen && step.status !== 'DISABLED'? this.activeStep.set($index + 1) : null"
|
|
186
|
+
>
|
|
187
|
+
{{ $index + 1 }}
|
|
188
|
+
</div>
|
|
189
|
+
|
|
190
|
+
<div
|
|
191
|
+
class="absolute top-10 text-xs text-primary font-medium whitespace-nowrap transition-opacity duration-300 lg:static lg:text-base"
|
|
192
|
+
[class.hidden]="($index + 1) !== activeStep()"
|
|
193
|
+
>
|
|
194
|
+
{{ step.label }}
|
|
195
|
+
</div>
|
|
196
|
+
</div>
|
|
197
|
+
|
|
198
|
+
@if (!$last) {
|
|
199
|
+
<div class="flex-1 h-0.5 min-w-5 mx-2">
|
|
200
|
+
<div
|
|
201
|
+
class="size-full transition-all duration-300"
|
|
202
|
+
[class.bg-muted]="($index + 1) >= activeStep()"
|
|
203
|
+
[class.bg-primary]="($index + 1) < activeStep()"
|
|
204
|
+
>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
</div>
|
|
210
|
+
|
|
211
|
+
<div class="flex sm:hidden items-center justify-between select-none shrink-0">
|
|
212
|
+
@for (step of visibleSteps(); track step.index) {
|
|
213
|
+
<div class="flex flex-col items-center relative lg:static lg:flex-row lg:gap-2">
|
|
214
|
+
<div
|
|
215
|
+
class="size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold transition-all duration-300"
|
|
216
|
+
[class.bg-muted]="(step.index + 1) > activeStep()"
|
|
217
|
+
[class.bg-primary]="(step.index + 1) <= activeStep()"
|
|
218
|
+
|
|
219
|
+
[class.text-white]="(step.index + 1) <= activeStep()"
|
|
220
|
+
[class.text-muted-foreground]="(step.index + 1) > activeStep()"
|
|
221
|
+
>
|
|
222
|
+
{{ step.index + 1 }}
|
|
223
|
+
</div>
|
|
224
|
+
|
|
225
|
+
<div
|
|
226
|
+
class="absolute top-10 text-xs text-primary font-medium whitespace-nowrap transition-opacity duration-300 lg:static lg:text-base"
|
|
227
|
+
[class.hidden]="(step.index + 1) !== activeStep()"
|
|
228
|
+
>
|
|
229
|
+
{{ step.label }}
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
|
|
233
|
+
@if (!$last) {
|
|
234
|
+
<div class="flex-1 h-0.5 mx-2">
|
|
235
|
+
<div
|
|
236
|
+
class="size-full transition-all duration-300"
|
|
237
|
+
[class.bg-muted]="($index + 1) >= activeStep()"
|
|
238
|
+
[class.bg-primary]="($index + 1) < activeStep()"
|
|
239
|
+
>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
</div>
|
|
245
|
+
|
|
246
|
+
<!-- stepper content -->
|
|
247
|
+
<ng-content/>
|
|
248
|
+
`
|
|
249
|
+
}]
|
|
250
|
+
}], ctorParameters: () => [], propDecorators: { stepContents: [{ type: i0.ContentChildren, args: [forwardRef(() => UpStepperContentDirective), { ...{
|
|
251
|
+
descendants: true
|
|
252
|
+
}, isSignal: true }] }], initialStep: [{ type: i0.Input, args: [{ isSignal: true, alias: "initialStep", required: false }] }], inlineClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }] } });
|
|
253
|
+
|
|
254
|
+
class UpStepperContentDirective {
|
|
255
|
+
constructor() {
|
|
256
|
+
this.parent = inject(forwardRef(() => UpStepperComponent));
|
|
257
|
+
this.label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
|
|
258
|
+
this.allowReopen = input(true, { ...(ngDevMode ? { debugName: "allowReopen" } : {}), transform: booleanAttribute });
|
|
259
|
+
this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
|
|
260
|
+
this.index = signal(null, ...(ngDevMode ? [{ debugName: "index" }] : []));
|
|
261
|
+
effect(() => {
|
|
262
|
+
if (!this.parent) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
this.isActive.set(this.parent.activeStep() === this.index());
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpStepperContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
269
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", type: UpStepperContentDirective, isStandalone: true, selector: "[upStepperContent]", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, allowReopen: { classPropertyName: "allowReopen", publicName: "allowReopen", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "hidden": "!isActive()" } }, exportAs: ["upStepperContent"], ngImport: i0 }); }
|
|
270
|
+
}
|
|
271
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpStepperContentDirective, decorators: [{
|
|
272
|
+
type: Directive,
|
|
273
|
+
args: [{
|
|
274
|
+
standalone: true,
|
|
275
|
+
exportAs: 'upStepperContent',
|
|
276
|
+
selector: '[upStepperContent]',
|
|
277
|
+
host: {
|
|
278
|
+
'[hidden]': '!isActive()'
|
|
279
|
+
}
|
|
280
|
+
}]
|
|
281
|
+
}], ctorParameters: () => [], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], allowReopen: [{ type: i0.Input, args: [{ isSignal: true, alias: "allowReopen", required: false }] }] } });
|
|
282
|
+
|
|
283
|
+
/**
|
|
284
|
+
* Generated bundle index. Do not edit.
|
|
285
|
+
*/
|
|
286
|
+
|
|
287
|
+
export { UpStepperComponent, UpStepperContentDirective };
|
|
288
|
+
//# sourceMappingURL=unipin-angular-applet-stepper.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet-stepper.mjs","sources":["../../../projects/unipin-angular/stepper/stepper.component.ts","../../../projects/unipin-angular/stepper/stepper-content.directive.ts","../../../projects/unipin-angular/stepper/unipin-angular-applet-stepper.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, contentChildren, effect, forwardRef, input, OnInit, signal } from '@angular/core';\nimport { ClassValue } from 'clsx';\nimport { up } from '@unipin/angular-applet/common';\nimport { UpStepperContentDirective } from './stepper-content.directive';\n\n\ntype StepperStep = {\n label: string;\n allowReopen: boolean;\n status: 'PENDING' | 'DISABLED' | 'COMPLETED';\n}\n\n@Component({\n standalone: true,\n selector: 'up-stepper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class]': '_computedClass()',\n },\n template: `\n <div class=\"hidden sm:flex items-center justify-between select-none shrink-0\">\n @for (step of steps(); track $index) {\n <div class=\"flex flex-col items-center relative lg:static lg:flex-row lg:gap-2\">\n <div\n class=\"size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold transition-all duration-300\"\n [class.cursor-pointer]=\"step.allowReopen && step.status !== 'DISABLED'\"\n\n [class.bg-muted]=\"($index + 1) > activeStep()\"\n [class.bg-primary]=\"($index + 1) <= activeStep()\"\n\n [class.text-white]=\"($index + 1) <= activeStep()\"\n [class.text-muted-foreground]=\"($index + 1) > activeStep()\"\n \n (click)=\"step.allowReopen && step.status !== 'DISABLED'? this.activeStep.set($index + 1) : null\"\n >\n {{ $index + 1 }}\n </div>\n \n <div \n class=\"absolute top-10 text-xs text-primary font-medium whitespace-nowrap transition-opacity duration-300 lg:static lg:text-base\"\n [class.hidden]=\"($index + 1) !== activeStep()\"\n >\n {{ step.label }}\n </div>\n </div>\n \n @if (!$last) {\n <div class=\"flex-1 h-0.5 min-w-5 mx-2\">\n <div \n class=\"size-full transition-all duration-300\"\n [class.bg-muted]=\"($index + 1) >= activeStep()\"\n [class.bg-primary]=\"($index + 1) < activeStep()\"\n >\n </div>\n </div>\n }\n }\n </div>\n\n <div class=\"flex sm:hidden items-center justify-between select-none shrink-0\">\n @for (step of visibleSteps(); track step.index) {\n <div class=\"flex flex-col items-center relative lg:static lg:flex-row lg:gap-2\">\n <div \n class=\"size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold transition-all duration-300\"\n [class.bg-muted]=\"(step.index + 1) > activeStep()\"\n [class.bg-primary]=\"(step.index + 1) <= activeStep()\"\n \n [class.text-white]=\"(step.index + 1) <= activeStep()\"\n [class.text-muted-foreground]=\"(step.index + 1) > activeStep()\"\n >\n {{ step.index + 1 }}\n </div>\n \n <div \n class=\"absolute top-10 text-xs text-primary font-medium whitespace-nowrap transition-opacity duration-300 lg:static lg:text-base\"\n [class.hidden]=\"(step.index + 1) !== activeStep()\"\n >\n {{ step.label }}\n </div>\n </div>\n \n @if (!$last) {\n <div class=\"flex-1 h-0.5 mx-2\">\n <div \n class=\"size-full transition-all duration-300\"\n [class.bg-muted]=\"($index + 1) >= activeStep()\"\n [class.bg-primary]=\"($index + 1) < activeStep()\"\n >\n </div>\n </div>\n }\n }\n </div>\n\n <!-- stepper content -->\n <ng-content/>\n `\n})\nexport class UpStepperComponent implements OnInit {\n \n public readonly stepContents = contentChildren(\n forwardRef(() => UpStepperContentDirective),\n { \n descendants: true \n }\n );\n\n public readonly initialStep = input<number>(1); \n public readonly inlineClass = input<ClassValue>('', { alias: 'class' });\n\n protected readonly _computedClass = computed(\n () => {\n return up(\n 'flex flex-col gap-6',\n this.inlineClass()\n );\n }\n );\n\n public readonly activeStep = signal<number>(1);\n public readonly steps = signal<StepperStep[]>([]);\n\n public readonly visibleSteps = computed(\n () => {\n const steps = this.steps();\n const active = this.activeStep() - 1;\n\n const start = Math.max(0, Math.min(active - 1, steps.length - 3));\n const end = Math.min(start + 3, steps.length);\n\n return steps.slice(start, end).map(\n (step, i) => {\n return {\n ...step,\n index: start + i,\n };\n }\n );\n }\n );\n\n constructor() {\n effect(\n () => {\n const initialStep = this.initialStep();\n const stepContents = this.stepContents();\n\n stepContents.forEach(\n (content, index) => {\n content.index.set(index + 1);\n }\n );\n\n this.steps.set(\n stepContents.map(\n (content, index) => {\n return {\n label: content.label(),\n allowReopen: content.allowReopen(),\n status: this.getStepperStatus(index, initialStep)\n };\n }\n )\n );\n }\n );\n }\n\n public ngOnInit(): void{\n this.activeStep.set(this.initialStep());\n }\n\n public prevStep(): void{\n const current = this.activeStep();\n const target = current - 1;\n const targetStep = this.steps()[target - 1];\n\n if (\n target < 1 || \n !targetStep || \n !targetStep.allowReopen\n ) {\n return;\n }\n this.activeStep.set(target);\n }\n\n public nextStep(): void{\n const current = this.activeStep();\n if (current >= this.steps().length) {\n return;\n }\n\n this.steps.update(\n (list) => {\n return list.map(\n (step, index) => {\n if (step.status === 'COMPLETED') {\n return step;\n }\n\n return {\n ...step,\n status: index === current - 1? 'COMPLETED' : (index === current? 'PENDING' : step.status)\n };\n }\n );\n }\n );\n this.activeStep.update((prev) => prev + 1);\n }\n\n protected getStepperStatus(i: number, initialStep: number): StepperStep['status']{\n const init = initialStep - 1;\n \n if (i < init) return 'COMPLETED';\n if (i === init) return 'PENDING';\n return 'DISABLED';\n }\n}\n","import { booleanAttribute, Directive, effect, forwardRef, inject, input, signal } from '@angular/core';\nimport { UpStepperComponent } from './stepper.component';\n\n\n@Directive({\n standalone: true,\n exportAs: 'upStepperContent',\n selector: '[upStepperContent]',\n host: {\n '[hidden]': '!isActive()'\n }\n})\nexport class UpStepperContentDirective {\n \n public readonly parent = inject(forwardRef(() => UpStepperComponent));\n \n public readonly label = input.required<string>();\n public readonly allowReopen = input(true, { transform: booleanAttribute});\n \n public readonly isActive = signal<boolean>(false);\n public readonly index = signal<number | null>(null);\n\n constructor() {\n effect(\n () => {\n if (!this.parent) {\n return;\n }\n this.isActive.set(this.parent.activeStep() === this.index());\n }\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAkGa,kBAAkB,CAAA;AA2C7B,IAAA,WAAA,GAAA;AAzCgB,QAAA,IAAA,CAAA,YAAY,GAAG,eAAe,CAC5C,UAAU,CAAC,MAAM,yBAAyB,CAAC,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,cAAA,EAAA,GAAA,EAAA,CAAA,EAEzC,WAAW,EAAE,IAAI,GAEpB;AAEe,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAS,CAAC,uDAAC;QAC9B,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,qBAAqB,EACrB,IAAI,CAAC,WAAW,EAAE,CACnB;AACH,QAAA,CAAC,0DACF;AAEe,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAS,CAAC,sDAAC;AAC9B,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAgB,EAAE,iDAAC;AAEjC,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CACrC,MAAK;AACH,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;YAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC;AAE7C,YAAA,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,GAAG,CAChC,CAAC,IAAI,EAAE,CAAC,KAAI;gBACV,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP,KAAK,EAAE,KAAK,GAAG,CAAC;iBACjB;AACH,YAAA,CAAC,CACF;AACH,QAAA,CAAC,wDACF;QAGC,MAAM,CACJ,MAAK;AACH,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;YAExC,YAAY,CAAC,OAAO,CAClB,CAAC,OAAO,EAAE,KAAK,KAAI;gBACjB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC;AAC9B,YAAA,CAAC,CACF;AAED,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CACZ,YAAY,CAAC,GAAG,CACd,CAAC,OAAO,EAAE,KAAK,KAAI;gBACjB,OAAO;AACL,oBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;AACtB,oBAAA,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;oBAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW;iBACjD;YACH,CAAC,CACF,CACF;AACH,QAAA,CAAC,CACF;IACH;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACzC;IAEO,QAAQ,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;AACjC,QAAA,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3C,IACE,MAAM,GAAG,CAAC;AACV,YAAA,CAAC,UAAU;AACX,YAAA,CAAC,UAAU,CAAC,WAAW,EACvB;YACA;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B;IAEO,QAAQ,GAAA;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE;QACjC,IAAI,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE;YAClC;QACF;QAEA,IAAI,CAAC,KAAK,CAAC,MAAM,CACf,CAAC,IAAI,KAAI;YACP,OAAO,IAAI,CAAC,GAAG,CACb,CAAC,IAAI,EAAE,KAAK,KAAI;AACd,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE;AAC/B,oBAAA,OAAO,IAAI;gBACb;gBAEA,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP,MAAM,EAAE,KAAK,KAAK,OAAO,GAAG,CAAC,GAAE,WAAW,IAAI,KAAK,KAAK,OAAO,GAAE,SAAS,GAAG,IAAI,CAAC,MAAM;iBACzF;AACH,YAAA,CAAC,CACF;AACH,QAAA,CAAC,CACF;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;IAC5C;IAEU,gBAAgB,CAAC,CAAS,EAAE,WAAmB,EAAA;AACvD,QAAA,MAAM,IAAI,GAAG,WAAW,GAAG,CAAC;QAE5B,IAAI,CAAC,GAAG,IAAI;AAAE,YAAA,OAAO,WAAW;QAChC,IAAI,CAAC,KAAK,IAAI;AAAE,YAAA,OAAO,SAAS;AAChC,QAAA,OAAO,UAAU;IACnB;8GAxHW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,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,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,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAGV,yBAAyB,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAlFlC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6ET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAtF9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;oBACtB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,kBAAkB;AAC9B,qBAAA;AACD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6ET,EAAA;AACF,iBAAA;AAIG,SAAA,CAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,yBAAyB,CAAC,EAAA,EAAA,GAC3C;AACE,4BAAA,WAAW,EAAE;AACd,yBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MC5FQ,yBAAyB,CAAA;AAUpC,IAAA,WAAA,GAAA;QARgB,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,kBAAkB,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,gDAAU;QAChC,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,IAAI,wDAAI,SAAS,EAAE,gBAAgB,EAAA,CAAE;AAEzD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAU,KAAK,oDAAC;AACjC,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAgB,IAAI,iDAAC;QAGjD,MAAM,CACJ,MAAK;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB;YACF;AACA,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;AAC9D,QAAA,CAAC,CACF;IACH;8GAnBW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,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,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBARrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,IAAI,EAAE;AACJ,wBAAA,UAAU,EAAE;AACb;AACF,iBAAA;;;ACXD;;AAEG;;;;"}
|
|
@@ -16,15 +16,15 @@ class UpSwipeableContentDirective {
|
|
|
16
16
|
select-none
|
|
17
17
|
w-fit h-fit
|
|
18
18
|
`, this.inlineClass());
|
|
19
|
-
},
|
|
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.
|
|
25
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSwipeableContentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
25
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", 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.
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", 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.2", ngImpor
|
|
|
38
38
|
|
|
39
39
|
class UpSwipeableButtonsDirective {
|
|
40
40
|
constructor() {
|
|
41
|
-
this.side = input.required(
|
|
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
|
-
},
|
|
45
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
48
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSwipeableButtonsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
48
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.5", 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.
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", 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.2", ngImpor
|
|
|
61
61
|
|
|
62
62
|
class UpSwipeableDirective {
|
|
63
63
|
constructor() {
|
|
64
|
-
this.threshold = input(20,
|
|
65
|
-
this.overSwipeThreshold = input(75,
|
|
64
|
+
this.threshold = input(20, ...(ngDevMode ? [{ debugName: "threshold" }] : []));
|
|
65
|
+
this.overSwipeThreshold = input(75, ...(ngDevMode ? [{ debugName: "overSwipeThreshold" }] : []));
|
|
66
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,
|
|
71
|
-
this.buttonContainers = contentChildren(UpSwipeableButtonsDirective,
|
|
72
|
-
this.containerWidth = signal(0,
|
|
73
|
-
this.buttonWidth = signal({ left: 0, right: 0 },
|
|
74
|
-
this.openSide = signal(null,
|
|
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
|
-
},
|
|
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.
|
|
208
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSwipeableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
208
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.1.5", 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.
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", 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
|
-
},
|
|
248
|
+
}, ...(ngDevMode ? [{ debugName: "_computedClass" }] : []));
|
|
249
249
|
}
|
|
250
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
251
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.
|
|
250
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSwipeableButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
251
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.5", 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.
|
|
253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.5", ngImport: i0, type: UpSwipeableButtonDirective, decorators: [{
|
|
254
254
|
type: Directive,
|
|
255
255
|
args: [{
|
|
256
256
|
standalone: true,
|