@softpak/components 20.12.19 → 20.13.1

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.
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { input, viewChild, HostListener, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { Haptics, ImpactStyle } from '@capacitor/haptics';
3
4
 
4
5
  class SpxSuggestionComponent {
5
6
  constructor() {
@@ -7,14 +8,52 @@ class SpxSuggestionComponent {
7
8
  this.spxFocused = input(...(ngDevMode ? [undefined, { debugName: "spxFocused" }] : []));
8
9
  this.spxSelected = input(...(ngDevMode ? [undefined, { debugName: "spxSelected" }] : []));
9
10
  this.spxTabbable = input(...(ngDevMode ? [undefined, { debugName: "spxTabbable" }] : []));
11
+ this.isPressing = false;
12
+ this.suggestionRef = viewChild('suggestionRef', ...(ngDevMode ? [{ debugName: "suggestionRef" }] : []));
13
+ this.handlePress = async () => {
14
+ this.isPressing = true;
15
+ try {
16
+ await Haptics.impact({ style: ImpactStyle.Light });
17
+ }
18
+ catch {
19
+ // silence if haptics is not available
20
+ }
21
+ };
22
+ this.onDocumentPointerUp = async (event) => {
23
+ if (!this.isPressing) {
24
+ return;
25
+ }
26
+ this.isPressing = false;
27
+ const btn = this.suggestionRef()?.nativeElement;
28
+ if (!btn) {
29
+ return;
30
+ }
31
+ const inside = btn.contains(event.target);
32
+ try {
33
+ if (inside) {
34
+ // OK haptic
35
+ await Haptics.impact({ style: ImpactStyle.Medium });
36
+ }
37
+ else {
38
+ // Cancel haptic
39
+ await Haptics.impact({ style: ImpactStyle.Light });
40
+ }
41
+ }
42
+ catch {
43
+ // ignore
44
+ }
45
+ };
10
46
  }
11
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxSuggestionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.2.3", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: { classPropertyName: "spxDisabled", publicName: "spxDisabled", isSignal: true, isRequired: false, transformFunction: null }, spxFocused: { classPropertyName: "spxFocused", publicName: "spxFocused", isSignal: true, isRequired: false, transformFunction: null }, spxSelected: { classPropertyName: "spxSelected", publicName: "spxSelected", isSignal: true, isRequired: false, transformFunction: null }, spxTabbable: { classPropertyName: "spxTabbable", publicName: "spxTabbable", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none\"\n [class.bg-sky-100]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.focus:ring-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.hover:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.active:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.bg-gray-200]=\"this.spxDisabled() && !this.spxSelected()\"\n [class.bg-gray-400]=\"this.spxDisabled() && this.spxSelected()\"\n [class.cursor-not-allowed]=\"this.spxDisabled()\"\n [class.opacity-60]=\"this.spxDisabled()\"\n [class.bg-gradient-to-r]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.from-teal-400]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.to-teal-600]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.font-bold]=\"this.spxSelected()\"\n [attr.tabindex]=\"this.spxTabbable() && !this.spxDisabled() ? 0 : -1\"\n [class.ring-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-offset-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-blue-500]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\">\n <div class=\"text-ellipsis overflow-hidden whitespace-nowrap\"><ng-content></ng-content></div>\n </button>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.2.3", type: SpxSuggestionComponent, isStandalone: true, selector: "spx-suggestion", inputs: { spxDisabled: { classPropertyName: "spxDisabled", publicName: "spxDisabled", isSignal: true, isRequired: false, transformFunction: null }, spxFocused: { classPropertyName: "spxFocused", publicName: "spxFocused", isSignal: true, isRequired: false, transformFunction: null }, spxSelected: { classPropertyName: "spxSelected", publicName: "spxSelected", isSignal: true, isRequired: false, transformFunction: null }, spxTabbable: { classPropertyName: "spxTabbable", publicName: "spxTabbable", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "document:pointerup": "onDocumentPointerUp($event)" } }, viewQueries: [{ propertyName: "suggestionRef", first: true, predicate: ["suggestionRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\n #suggestionRef\n type=\"button\"\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none\"\n [class.bg-sky-100]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.focus:ring-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.hover:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.active:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.bg-gray-200]=\"this.spxDisabled() && !this.spxSelected()\"\n [class.bg-gray-400]=\"this.spxDisabled() && this.spxSelected()\"\n [class.cursor-not-allowed]=\"this.spxDisabled()\"\n [class.opacity-60]=\"this.spxDisabled()\"\n [class.bg-gradient-to-r]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.from-teal-400]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.to-teal-600]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.font-bold]=\"this.spxSelected()\"\n [attr.tabindex]=\"this.spxTabbable() && !this.spxDisabled() ? 0 : -1\"\n [class.ring-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-offset-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-blue-500]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n (pointerdown)=\"this.handlePress()\">\n <div class=\"text-ellipsis overflow-hidden whitespace-nowrap\"><ng-content></ng-content></div>\n </button>", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
49
  }
14
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.3", ngImport: i0, type: SpxSuggestionComponent, decorators: [{
15
51
  type: Component,
16
- args: [{ selector: 'spx-suggestion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none\"\n [class.bg-sky-100]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.focus:ring-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.hover:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.active:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.bg-gray-200]=\"this.spxDisabled() && !this.spxSelected()\"\n [class.bg-gray-400]=\"this.spxDisabled() && this.spxSelected()\"\n [class.cursor-not-allowed]=\"this.spxDisabled()\"\n [class.opacity-60]=\"this.spxDisabled()\"\n [class.bg-gradient-to-r]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.from-teal-400]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.to-teal-600]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.font-bold]=\"this.spxSelected()\"\n [attr.tabindex]=\"this.spxTabbable() && !this.spxDisabled() ? 0 : -1\"\n [class.ring-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-offset-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-blue-500]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\">\n <div class=\"text-ellipsis overflow-hidden whitespace-nowrap\"><ng-content></ng-content></div>\n </button>" }]
17
- }] });
52
+ args: [{ selector: 'spx-suggestion', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n #suggestionRef\n type=\"button\"\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none\"\n [class.bg-sky-100]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.focus:ring-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.hover:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.active:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.bg-gray-200]=\"this.spxDisabled() && !this.spxSelected()\"\n [class.bg-gray-400]=\"this.spxDisabled() && this.spxSelected()\"\n [class.cursor-not-allowed]=\"this.spxDisabled()\"\n [class.opacity-60]=\"this.spxDisabled()\"\n [class.bg-gradient-to-r]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.from-teal-400]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.to-teal-600]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.font-bold]=\"this.spxSelected()\"\n [attr.tabindex]=\"this.spxTabbable() && !this.spxDisabled() ? 0 : -1\"\n [class.ring-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-offset-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-blue-500]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n (pointerdown)=\"this.handlePress()\">\n <div class=\"text-ellipsis overflow-hidden whitespace-nowrap\"><ng-content></ng-content></div>\n </button>" }]
53
+ }], propDecorators: { onDocumentPointerUp: [{
54
+ type: HostListener,
55
+ args: ['document:pointerup', ['$event']]
56
+ }] } });
18
57
 
19
58
  /**
20
59
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"softpak-components-spx-suggestion.mjs","sources":["../../../../projects/softpak/components/spx-suggestion/spx-suggestion.component.ts","../../../../projects/softpak/components/spx-suggestion/spx-suggestion.component.html","../../../../projects/softpak/components/spx-suggestion/softpak-components-spx-suggestion.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'spx-suggestion',\n standalone: true,\n templateUrl: './spx-suggestion.component.html',\n styleUrl: './spx-suggestion.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxSuggestionComponent {\n spxDisabled = input<boolean>();\n spxFocused = input<boolean>();\n spxSelected = input<boolean>();\n spxTabbable = input<boolean>();\n}\n","<button\n type=\"button\"\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none\"\n [class.bg-sky-100]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.focus:ring-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.hover:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.active:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.bg-gray-200]=\"this.spxDisabled() && !this.spxSelected()\"\n [class.bg-gray-400]=\"this.spxDisabled() && this.spxSelected()\"\n [class.cursor-not-allowed]=\"this.spxDisabled()\"\n [class.opacity-60]=\"this.spxDisabled()\"\n [class.bg-gradient-to-r]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.from-teal-400]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.to-teal-600]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.font-bold]=\"this.spxSelected()\"\n [attr.tabindex]=\"this.spxTabbable() && !this.spxDisabled() ? 0 : -1\"\n [class.ring-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-offset-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-blue-500]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\">\n <div class=\"text-ellipsis overflow-hidden whitespace-nowrap\"><ng-content></ng-content></div>\n </button>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQE,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QAC9B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QAC7B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QAC9B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;AAC/B,IAAA;8GALY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2nBCTnC,04CAoBW,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDXE,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,04CAAA,EAAA;;;AEPjD;;AAEG;;;;"}
1
+ {"version":3,"file":"softpak-components-spx-suggestion.mjs","sources":["../../../../projects/softpak/components/spx-suggestion/spx-suggestion.component.ts","../../../../projects/softpak/components/spx-suggestion/spx-suggestion.component.html","../../../../projects/softpak/components/spx-suggestion/softpak-components-spx-suggestion.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ElementRef, HostListener, input, viewChild } from '@angular/core';\nimport { Haptics, ImpactStyle } from '@capacitor/haptics';\n\n@Component({\n selector: 'spx-suggestion',\n standalone: true,\n templateUrl: './spx-suggestion.component.html',\n styleUrl: './spx-suggestion.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpxSuggestionComponent {\n spxDisabled = input<boolean>();\n spxFocused = input<boolean>();\n spxSelected = input<boolean>();\n spxTabbable = input<boolean>();\n private isPressing = false;\n suggestionRef = viewChild<ElementRef<HTMLButtonElement>>('suggestionRef');\n\n handlePress = async () => {\n this.isPressing = true;\n try {\n await Haptics.impact({ style: ImpactStyle.Light });\n } catch {\n // silence if haptics is not available\n }\n };\n\n @HostListener('document:pointerup', ['$event'])\n onDocumentPointerUp = async (event: PointerEvent) => {\n if (!this.isPressing) {\n return;\n }\n this.isPressing = false;\n\n const btn = this.suggestionRef()?.nativeElement;\n if (!btn) {\n return;\n }\n\n const inside = btn.contains(event.target as Node);\n\n try {\n if (inside) {\n // OK haptic\n await Haptics.impact({ style: ImpactStyle.Medium });\n } else {\n // Cancel haptic\n await Haptics.impact({ style: ImpactStyle.Light });\n }\n } catch {\n // ignore\n }\n };\n}\n","<button\n #suggestionRef\n type=\"button\"\n class=\"spx-suggestion block rounded text-gray-900 text-sm p-3 w-full text-left truncate outline-none\"\n [class.bg-sky-100]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.focus:ring-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.hover:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.active:bg-sky-300]=\"!this.spxSelected() && !this.spxDisabled()\"\n [class.bg-gray-200]=\"this.spxDisabled() && !this.spxSelected()\"\n [class.bg-gray-400]=\"this.spxDisabled() && this.spxSelected()\"\n [class.cursor-not-allowed]=\"this.spxDisabled()\"\n [class.opacity-60]=\"this.spxDisabled()\"\n [class.bg-gradient-to-r]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.from-teal-400]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.to-teal-600]=\"this.spxSelected() && !this.spxDisabled()\"\n [class.font-bold]=\"this.spxSelected()\"\n [attr.tabindex]=\"this.spxTabbable() && !this.spxDisabled() ? 0 : -1\"\n [class.ring-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-offset-2]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n [class.ring-blue-500]=\"this.spxFocused() && this.spxTabbable() && !this.spxDisabled()\"\n (pointerdown)=\"this.handlePress()\">\n <div class=\"text-ellipsis overflow-hidden whitespace-nowrap\"><ng-content></ng-content></div>\n </button>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAUa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQE,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QAC9B,IAAA,CAAA,UAAU,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QAC7B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QAC9B,IAAA,CAAA,WAAW,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAW;QACtB,IAAA,CAAA,UAAU,GAAG,KAAK;AAC1B,QAAA,IAAA,CAAA,aAAa,GAAG,SAAS,CAAgC,eAAe,yDAAC;QAEzE,IAAA,CAAA,WAAW,GAAG,YAAW;AACvB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI;AACF,gBAAA,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;YACpD;AAAE,YAAA,MAAM;;YAER;AACF,QAAA,CAAC;AAGD,QAAA,IAAA,CAAA,mBAAmB,GAAG,OAAO,KAAmB,KAAI;AAClD,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB;YACF;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK;YAEvB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,aAAa;YAC/C,IAAI,CAAC,GAAG,EAAE;gBACR;YACF;YAEA,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC;AAEjD,YAAA,IAAI;gBACF,IAAI,MAAM,EAAE;;AAEV,oBAAA,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;gBACrD;qBAAO;;AAEL,oBAAA,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;gBACpD;YACF;AAAE,YAAA,MAAM;;YAER;AACF,QAAA,CAAC;AACF,IAAA;8GA3CY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,y0BCVnC,s8CAsBW,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FDZE,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,UAAA,EACd,IAAI,EAAA,eAAA,EAGC,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,s8CAAA,EAAA;8BAoB/C,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,oBAAoB,EAAE,CAAC,QAAQ,CAAC;;;AE3BhD;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@softpak/components",
3
- "version": "20.12.19",
3
+ "version": "20.13.1",
4
4
  "private": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "20.x.x",
@@ -32,6 +32,10 @@
32
32
  "types": "./index.d.ts",
33
33
  "default": "./fesm2022/softpak-components.mjs"
34
34
  },
35
+ "./spx-alert": {
36
+ "types": "./spx-alert/index.d.ts",
37
+ "default": "./fesm2022/softpak-components-spx-alert.mjs"
38
+ },
35
39
  "./spx-404-page": {
36
40
  "types": "./spx-404-page/index.d.ts",
37
41
  "default": "./fesm2022/softpak-components-spx-404-page.mjs"
@@ -40,26 +44,22 @@
40
44
  "types": "./spx-app-configuration/index.d.ts",
41
45
  "default": "./fesm2022/softpak-components-spx-app-configuration.mjs"
42
46
  },
43
- "./spx-button": {
44
- "types": "./spx-button/index.d.ts",
45
- "default": "./fesm2022/softpak-components-spx-button.mjs"
46
- },
47
47
  "./spx-app-expiry": {
48
48
  "types": "./spx-app-expiry/index.d.ts",
49
49
  "default": "./fesm2022/softpak-components-spx-app-expiry.mjs"
50
50
  },
51
- "./spx-capitalize": {
52
- "types": "./spx-capitalize/index.d.ts",
53
- "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
54
- },
55
- "./spx-alert": {
56
- "types": "./spx-alert/index.d.ts",
57
- "default": "./fesm2022/softpak-components-spx-alert.mjs"
51
+ "./spx-button": {
52
+ "types": "./spx-button/index.d.ts",
53
+ "default": "./fesm2022/softpak-components-spx-button.mjs"
58
54
  },
59
55
  "./spx-card": {
60
56
  "types": "./spx-card/index.d.ts",
61
57
  "default": "./fesm2022/softpak-components-spx-card.mjs"
62
58
  },
59
+ "./spx-capitalize": {
60
+ "types": "./spx-capitalize/index.d.ts",
61
+ "default": "./fesm2022/softpak-components-spx-capitalize.mjs"
62
+ },
63
63
  "./spx-change-details": {
64
64
  "types": "./spx-change-details/index.d.ts",
65
65
  "default": "./fesm2022/softpak-components-spx-change-details.mjs"
@@ -68,41 +68,45 @@
68
68
  "types": "./spx-channel-selection/index.d.ts",
69
69
  "default": "./fesm2022/softpak-components-spx-channel-selection.mjs"
70
70
  },
71
- "./spx-confirm": {
72
- "types": "./spx-confirm/index.d.ts",
73
- "default": "./fesm2022/softpak-components-spx-confirm.mjs"
74
- },
75
71
  "./spx-check-digit": {
76
72
  "types": "./spx-check-digit/index.d.ts",
77
73
  "default": "./fesm2022/softpak-components-spx-check-digit.mjs"
78
74
  },
79
- "./spx-form-view": {
80
- "types": "./spx-form-view/index.d.ts",
81
- "default": "./fesm2022/softpak-components-spx-form-view.mjs"
82
- },
83
75
  "./spx-form-section": {
84
76
  "types": "./spx-form-section/index.d.ts",
85
77
  "default": "./fesm2022/softpak-components-spx-form-section.mjs"
86
78
  },
79
+ "./spx-confirm": {
80
+ "types": "./spx-confirm/index.d.ts",
81
+ "default": "./fesm2022/softpak-components-spx-confirm.mjs"
82
+ },
83
+ "./spx-form-view": {
84
+ "types": "./spx-form-view/index.d.ts",
85
+ "default": "./fesm2022/softpak-components-spx-form-view.mjs"
86
+ },
87
87
  "./spx-helpers": {
88
88
  "types": "./spx-helpers/index.d.ts",
89
89
  "default": "./fesm2022/softpak-components-spx-helpers.mjs"
90
90
  },
91
- "./spx-inputs": {
92
- "types": "./spx-inputs/index.d.ts",
93
- "default": "./fesm2022/softpak-components-spx-inputs.mjs"
94
- },
95
91
  "./spx-navigation": {
96
92
  "types": "./spx-navigation/index.d.ts",
97
93
  "default": "./fesm2022/softpak-components-spx-navigation.mjs"
98
94
  },
95
+ "./spx-number-check": {
96
+ "types": "./spx-number-check/index.d.ts",
97
+ "default": "./fesm2022/softpak-components-spx-number-check.mjs"
98
+ },
99
99
  "./spx-pagination": {
100
100
  "types": "./spx-pagination/index.d.ts",
101
101
  "default": "./fesm2022/softpak-components-spx-pagination.mjs"
102
102
  },
103
- "./spx-number-check": {
104
- "types": "./spx-number-check/index.d.ts",
105
- "default": "./fesm2022/softpak-components-spx-number-check.mjs"
103
+ "./spx-inputs": {
104
+ "types": "./spx-inputs/index.d.ts",
105
+ "default": "./fesm2022/softpak-components-spx-inputs.mjs"
106
+ },
107
+ "./spx-progress-bar": {
108
+ "types": "./spx-progress-bar/index.d.ts",
109
+ "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
106
110
  },
107
111
  "./spx-patch": {
108
112
  "types": "./spx-patch/index.d.ts",
@@ -112,18 +116,14 @@
112
116
  "types": "./spx-pipes/index.d.ts",
113
117
  "default": "./fesm2022/softpak-components-spx-pipes.mjs"
114
118
  },
115
- "./spx-spinner": {
116
- "types": "./spx-spinner/index.d.ts",
117
- "default": "./fesm2022/softpak-components-spx-spinner.mjs"
118
- },
119
- "./spx-progress-bar": {
120
- "types": "./spx-progress-bar/index.d.ts",
121
- "default": "./fesm2022/softpak-components-spx-progress-bar.mjs"
122
- },
123
119
  "./spx-redux": {
124
120
  "types": "./spx-redux/index.d.ts",
125
121
  "default": "./fesm2022/softpak-components-spx-redux.mjs"
126
122
  },
123
+ "./spx-spinner": {
124
+ "types": "./spx-spinner/index.d.ts",
125
+ "default": "./fesm2022/softpak-components-spx-spinner.mjs"
126
+ },
127
127
  "./spx-stock-info": {
128
128
  "types": "./spx-stock-info/index.d.ts",
129
129
  "default": "./fesm2022/softpak-components-spx-stock-info.mjs"
@@ -140,17 +140,17 @@
140
140
  "types": "./spx-tabs/index.d.ts",
141
141
  "default": "./fesm2022/softpak-components-spx-tabs.mjs"
142
142
  },
143
- "./spx-translate": {
144
- "types": "./spx-translate/index.d.ts",
145
- "default": "./fesm2022/softpak-components-spx-translate.mjs"
143
+ "./spx-toaster": {
144
+ "types": "./spx-toaster/index.d.ts",
145
+ "default": "./fesm2022/softpak-components-spx-toaster.mjs"
146
146
  },
147
147
  "./spx-toggle": {
148
148
  "types": "./spx-toggle/index.d.ts",
149
149
  "default": "./fesm2022/softpak-components-spx-toggle.mjs"
150
150
  },
151
- "./spx-toaster": {
152
- "types": "./spx-toaster/index.d.ts",
153
- "default": "./fesm2022/softpak-components-spx-toaster.mjs"
151
+ "./spx-translate": {
152
+ "types": "./spx-translate/index.d.ts",
153
+ "default": "./fesm2022/softpak-components-spx-translate.mjs"
154
154
  },
155
155
  "./spx-update": {
156
156
  "types": "./spx-update/index.d.ts",
@@ -160,13 +160,13 @@
160
160
  "types": "./spx-validation-messages/index.d.ts",
161
161
  "default": "./fesm2022/softpak-components-spx-validation-messages.mjs"
162
162
  },
163
- "./spx-welcome": {
164
- "types": "./spx-welcome/index.d.ts",
165
- "default": "./fesm2022/softpak-components-spx-welcome.mjs"
166
- },
167
163
  "./spx-validation": {
168
164
  "types": "./spx-validation/index.d.ts",
169
165
  "default": "./fesm2022/softpak-components-spx-validation.mjs"
166
+ },
167
+ "./spx-welcome": {
168
+ "types": "./spx-welcome/index.d.ts",
169
+ "default": "./fesm2022/softpak-components-spx-welcome.mjs"
170
170
  }
171
171
  }
172
172
  }
@@ -1,4 +1,4 @@
1
- import * as _fortawesome_free_solid_svg_icons from '@fortawesome/free-solid-svg-icons';
1
+ import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome-common-types';
2
2
  import * as _angular_core from '@angular/core';
3
3
  import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
4
4
 
@@ -12,10 +12,10 @@ declare class SpxAlertComponent {
12
12
  readonly spxMarginTop: _angular_core.InputSignal<boolean>;
13
13
  readonly spxSeverity: _angular_core.InputSignal<SpxSeverityEnum | undefined>;
14
14
  SpxSeverity: typeof SpxSeverityEnum;
15
- faCheck: _fortawesome_free_solid_svg_icons.IconDefinition;
16
- faCircleInfo: _fortawesome_free_solid_svg_icons.IconDefinition;
17
- faTriangleExclamation: _fortawesome_free_solid_svg_icons.IconDefinition;
18
- faTimes: _fortawesome_free_solid_svg_icons.IconDefinition;
15
+ faCheck: _fortawesome_fontawesome_common_types.IconDefinition;
16
+ faCircleInfo: _fortawesome_fontawesome_common_types.IconDefinition;
17
+ faTriangleExclamation: _fortawesome_fontawesome_common_types.IconDefinition;
18
+ faTimes: _fortawesome_fontawesome_common_types.IconDefinition;
19
19
  componentDidLoad(): void;
20
20
  private prepareAutoClose;
21
21
  private _assignDefaultTitle;
@@ -15,11 +15,14 @@ declare class SpxButtonComponent {
15
15
  readonly spxType: _angular_core.InputSignal<"button" | "submit">;
16
16
  protected mappedName: _angular_core.Signal<string | undefined>;
17
17
  readonly spxName: _angular_core.InputSignal<string | undefined>;
18
+ isPressing: boolean;
18
19
  spxClick: _angular_core.OutputEmitterRef<void>;
19
20
  buttonRef: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
20
21
  SpxSeverity: typeof SpxSeverityEnum;
21
22
  hasShadowDom: (el: HTMLElement) => boolean;
22
23
  handleClick: () => void;
24
+ handlePress: () => Promise<void>;
25
+ onDocumentPointerUp: (event: PointerEvent) => Promise<void>;
23
26
  spxSetFocus(): void;
24
27
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpxButtonComponent, never>;
25
28
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpxButtonComponent, "spx-button", never, { "spxDisabled": { "alias": "spxDisabled"; "required": false; "isSignal": true; }; "spxClass": { "alias": "spxClass"; "required": false; "isSignal": true; }; "spxClassObject": { "alias": "spxClassObject"; "required": false; "isSignal": true; }; "spxForm": { "alias": "spxForm"; "required": false; "isSignal": true; }; "spxFullHeight": { "alias": "spxFullHeight"; "required": false; "isSignal": true; }; "spxFullWidth": { "alias": "spxFullWidth"; "required": false; "isSignal": true; }; "spxSeverity": { "alias": "spxSeverity"; "required": false; "isSignal": true; }; "spxSize": { "alias": "spxSize"; "required": false; "isSignal": true; }; "spxTabIndex": { "alias": "spxTabIndex"; "required": false; "isSignal": true; }; "spxType": { "alias": "spxType"; "required": false; "isSignal": true; }; "spxName": { "alias": "spxName"; "required": false; "isSignal": true; }; }, { "spxClick": "spxClick"; }, never, ["*"], true, never>;
@@ -1,4 +1,4 @@
1
- import * as _fortawesome_free_solid_svg_icons from '@fortawesome/free-solid-svg-icons';
1
+ import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome-common-types';
2
2
  import * as i0 from '@angular/core';
3
3
  import { OnInit, OnDestroy } from '@angular/core';
4
4
  import { SpxSeverityEnum } from '@softpak/components/spx-helpers';
@@ -11,7 +11,7 @@ declare class SpxConfirmComponent {
11
11
  id: i0.InputSignal<string>;
12
12
  spxCancel: i0.OutputEmitterRef<string>;
13
13
  spxConfirm: i0.OutputEmitterRef<string>;
14
- faTimes: _fortawesome_free_solid_svg_icons.IconDefinition;
14
+ faTimes: _fortawesome_fontawesome_common_types.IconDefinition;
15
15
  severityError: SpxSeverityEnum;
16
16
  severityInfo: SpxSeverityEnum;
17
17
  severitySuccess: SpxSeverityEnum;
@@ -1,6 +1,6 @@
1
1
  import * as _angular_core from '@angular/core';
2
2
  import { ElementRef, ChangeDetectorRef, EventEmitter, QueryList, OnInit, SimpleChanges } from '@angular/core';
3
- import * as _fortawesome_free_solid_svg_icons from '@fortawesome/free-solid-svg-icons';
3
+ import * as _fortawesome_fontawesome_common_types from '@fortawesome/fontawesome-common-types';
4
4
  import { Observable } from 'rxjs';
5
5
  import { SpxSeverityEnum, SpxInputAlertI as SpxInputAlertI$1 } from '@softpak/components/spx-helpers';
6
6
  import { ModalController } from '@ionic/angular/standalone';
@@ -28,10 +28,10 @@ interface SpxInputAlertI {
28
28
 
29
29
  declare class SpxInputBoxComponent {
30
30
  selectedInputService: SelectedInputService;
31
- faEdit: _fortawesome_free_solid_svg_icons.IconDefinition;
32
- faSearch: _fortawesome_free_solid_svg_icons.IconDefinition;
33
- faQuestion: _fortawesome_free_solid_svg_icons.IconDefinition;
34
- faTimes: _fortawesome_free_solid_svg_icons.IconDefinition;
31
+ faEdit: _fortawesome_fontawesome_common_types.IconDefinition;
32
+ faSearch: _fortawesome_fontawesome_common_types.IconDefinition;
33
+ faQuestion: _fortawesome_fontawesome_common_types.IconDefinition;
34
+ faTimes: _fortawesome_fontawesome_common_types.IconDefinition;
35
35
  SpxSeverity: typeof SpxSeverityEnum;
36
36
  clearButtonName: _angular_core.Signal<string | undefined>;
37
37
  searchButtonName: _angular_core.Signal<string | undefined>;
@@ -1,10 +1,15 @@
1
1
  import * as _angular_core from '@angular/core';
2
+ import { ElementRef } from '@angular/core';
2
3
 
3
4
  declare class SpxSuggestionComponent {
4
5
  spxDisabled: _angular_core.InputSignal<boolean | undefined>;
5
6
  spxFocused: _angular_core.InputSignal<boolean | undefined>;
6
7
  spxSelected: _angular_core.InputSignal<boolean | undefined>;
7
8
  spxTabbable: _angular_core.InputSignal<boolean | undefined>;
9
+ private isPressing;
10
+ suggestionRef: _angular_core.Signal<ElementRef<HTMLButtonElement> | undefined>;
11
+ handlePress: () => Promise<void>;
12
+ onDocumentPointerUp: (event: PointerEvent) => Promise<void>;
8
13
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpxSuggestionComponent, never>;
9
14
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpxSuggestionComponent, "spx-suggestion", never, { "spxDisabled": { "alias": "spxDisabled"; "required": false; "isSignal": true; }; "spxFocused": { "alias": "spxFocused"; "required": false; "isSignal": true; }; "spxSelected": { "alias": "spxSelected"; "required": false; "isSignal": true; }; "spxTabbable": { "alias": "spxTabbable"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
10
15
  }