@acorex/cdk 21.0.2-next.34 → 21.0.2-next.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/{types/acorex-cdk-common.d.ts → common/index.d.ts} +7 -9
  2. package/{types/acorex-cdk-drawer.d.ts → drawer/index.d.ts} +1 -1
  3. package/fesm2022/acorex-cdk-accordion.mjs +38 -38
  4. package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
  5. package/fesm2022/acorex-cdk-carousel.mjs +4 -4
  6. package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
  7. package/fesm2022/acorex-cdk-clipboard.mjs +8 -8
  8. package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
  9. package/fesm2022/acorex-cdk-common.mjs +116 -171
  10. package/fesm2022/acorex-cdk-common.mjs.map +1 -1
  11. package/fesm2022/acorex-cdk-dom.mjs +4 -4
  12. package/fesm2022/acorex-cdk-dom.mjs.map +1 -1
  13. package/fesm2022/acorex-cdk-double-click.mjs +6 -6
  14. package/fesm2022/acorex-cdk-double-click.mjs.map +1 -1
  15. package/fesm2022/acorex-cdk-drag-drop.mjs +71 -71
  16. package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
  17. package/fesm2022/acorex-cdk-drawer.mjs +28 -28
  18. package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
  19. package/fesm2022/acorex-cdk-focus-trap.mjs +6 -6
  20. package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
  21. package/fesm2022/acorex-cdk-full-screen.mjs +5 -5
  22. package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
  23. package/fesm2022/acorex-cdk-input-mask.mjs +14 -20
  24. package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
  25. package/fesm2022/acorex-cdk-list-navigation.mjs +19 -19
  26. package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
  27. package/fesm2022/acorex-cdk-outline.mjs +68 -79
  28. package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
  29. package/fesm2022/acorex-cdk-overlay.mjs +3 -16
  30. package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
  31. package/fesm2022/acorex-cdk-pan-view.mjs +22 -22
  32. package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
  33. package/fesm2022/acorex-cdk-qrcode.mjs.map +1 -1
  34. package/fesm2022/acorex-cdk-resizable.mjs +12 -12
  35. package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
  36. package/fesm2022/acorex-cdk-selection.mjs +23 -23
  37. package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
  38. package/fesm2022/acorex-cdk-sliding-item.mjs +11 -11
  39. package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
  40. package/fesm2022/acorex-cdk-sticky.mjs +3 -3
  41. package/fesm2022/acorex-cdk-sticky.mjs.map +1 -1
  42. package/fesm2022/acorex-cdk-uploader.mjs +28 -28
  43. package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
  44. package/fesm2022/acorex-cdk-virtual-scroll.mjs +18 -18
  45. package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
  46. package/fesm2022/acorex-cdk-wysiwyg.mjs +1 -1
  47. package/fesm2022/acorex-cdk-wysiwyg.mjs.map +1 -1
  48. package/fesm2022/acorex-cdk-z-index.mjs +4 -4
  49. package/fesm2022/acorex-cdk-z-index.mjs.map +1 -1
  50. package/fesm2022/acorex-cdk.mjs.map +1 -1
  51. package/{types/acorex-cdk-focus-trap.d.ts → focus-trap/index.d.ts} +1 -1
  52. package/{types/acorex-cdk-input-mask.d.ts → input-mask/index.d.ts} +0 -1
  53. package/{types/acorex-cdk-outline.d.ts → outline/index.d.ts} +0 -1
  54. package/{types/acorex-cdk-overlay.d.ts → overlay/index.d.ts} +0 -1
  55. package/package.json +31 -32
  56. /package/{types/acorex-cdk-accordion.d.ts → accordion/index.d.ts} +0 -0
  57. /package/{types/acorex-cdk-carousel.d.ts → carousel/index.d.ts} +0 -0
  58. /package/{types/acorex-cdk-clipboard.d.ts → clipboard/index.d.ts} +0 -0
  59. /package/{types/acorex-cdk-dom.d.ts → dom/index.d.ts} +0 -0
  60. /package/{types/acorex-cdk-double-click.d.ts → double-click/index.d.ts} +0 -0
  61. /package/{types/acorex-cdk-drag-drop.d.ts → drag-drop/index.d.ts} +0 -0
  62. /package/{types/acorex-cdk-full-screen.d.ts → full-screen/index.d.ts} +0 -0
  63. /package/{types/acorex-cdk.d.ts → index.d.ts} +0 -0
  64. /package/{types/acorex-cdk-list-navigation.d.ts → list-navigation/index.d.ts} +0 -0
  65. /package/{types/acorex-cdk-pan-view.d.ts → pan-view/index.d.ts} +0 -0
  66. /package/{types/acorex-cdk-qrcode.d.ts → qrcode/index.d.ts} +0 -0
  67. /package/{types/acorex-cdk-resizable.d.ts → resizable/index.d.ts} +0 -0
  68. /package/{types/acorex-cdk-selection.d.ts → selection/index.d.ts} +0 -0
  69. /package/{types/acorex-cdk-sliding-item.d.ts → sliding-item/index.d.ts} +0 -0
  70. /package/{types/acorex-cdk-sticky.d.ts → sticky/index.d.ts} +0 -0
  71. /package/{types/acorex-cdk-uploader.d.ts → uploader/index.d.ts} +0 -0
  72. /package/{types/acorex-cdk-virtual-scroll.d.ts → virtual-scroll/index.d.ts} +0 -0
  73. /package/{types/acorex-cdk-wysiwyg.d.ts → wysiwyg/index.d.ts} +0 -0
  74. /package/{types/acorex-cdk-z-index.d.ts → z-index/index.d.ts} +0 -0
@@ -1,6 +1,5 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
1
  import * as i0 from '@angular/core';
3
- import { inject, ElementRef, PLATFORM_ID, input, output, effect, Directive } from '@angular/core';
2
+ import { inject, ElementRef, input, output, effect, Directive } from '@angular/core';
4
3
 
5
4
  /**
6
5
  * Directive that provides input masking functionality for various data types including
@@ -10,22 +9,21 @@ import { inject, ElementRef, PLATFORM_ID, input, output, effect, Directive } fro
10
9
  class AXInputMaskDirective {
11
10
  constructor() {
12
11
  this.elm = inject(ElementRef);
13
- this.platformId = inject(PLATFORM_ID);
14
12
  /**
15
13
  * The mode of input masking to apply.
16
14
  * @default 'digits'
17
15
  */
18
- this.maskMode = input('digits', ...(ngDevMode ? [{ debugName: "maskMode" }] : /* istanbul ignore next */ []));
16
+ this.maskMode = input('digits', ...(ngDevMode ? [{ debugName: "maskMode" }] : []));
19
17
  /**
20
18
  * The separator character used in the mask (e.g., '/' for dates, ',' for thousands).
21
19
  * @default '/'
22
20
  */
23
- this.separator = input('/', ...(ngDevMode ? [{ debugName: "separator" }] : /* istanbul ignore next */ []));
21
+ this.separator = input('/', ...(ngDevMode ? [{ debugName: "separator" }] : []));
24
22
  /**
25
23
  * Whether to apply the mask eagerly (as user types) or on blur.
26
24
  * @default false
27
25
  */
28
- this.eager = input(false, ...(ngDevMode ? [{ debugName: "eager" }] : /* istanbul ignore next */ []));
26
+ this.eager = input(false, ...(ngDevMode ? [{ debugName: "eager" }] : []));
29
27
  /**
30
28
  * Event emitted when the masked value changes.
31
29
  */
@@ -34,17 +32,17 @@ class AXInputMaskDirective {
34
32
  * Minimum allowed value for numeric inputs.
35
33
  * @default null
36
34
  */
37
- this.minValue = input(null, ...(ngDevMode ? [{ debugName: "minValue" }] : /* istanbul ignore next */ []));
35
+ this.minValue = input(null, ...(ngDevMode ? [{ debugName: "minValue" }] : []));
38
36
  /**
39
37
  * Maximum allowed value for numeric inputs.
40
38
  * @default null
41
39
  */
42
- this.maxValue = input(null, ...(ngDevMode ? [{ debugName: "maxValue" }] : /* istanbul ignore next */ []));
40
+ this.maxValue = input(null, ...(ngDevMode ? [{ debugName: "maxValue" }] : []));
43
41
  /**
44
42
  * Number of decimal places allowed for decimal inputs.
45
43
  * @default 0
46
44
  */
47
- this.decimal = input(0, ...(ngDevMode ? [{ debugName: "decimal" }] : /* istanbul ignore next */ []));
45
+ this.decimal = input(0, ...(ngDevMode ? [{ debugName: "decimal" }] : []));
48
46
  /**
49
47
  * Custom mask pattern for 'mask' mode.
50
48
  * Use the following tokens:
@@ -58,27 +56,23 @@ class AXInputMaskDirective {
58
56
  * @example 'AA-####' for license plates
59
57
  * @example '##/##/####' for dates
60
58
  */
61
- this.maskPattern = input(null, ...(ngDevMode ? [{ debugName: "maskPattern" }] : /* istanbul ignore next */ []));
59
+ this.maskPattern = input(null, ...(ngDevMode ? [{ debugName: "maskPattern" }] : []));
62
60
  /**
63
61
  * Custom token definitions to extend or override default mask tokens.
64
62
  * Each token maps to a pattern regex and optional transformation.
65
63
  * @example { 'P': { pattern: /[1-9]/, transform: (c) => c.toUpperCase() } }
66
64
  */
67
- this.customTokens = input({}, ...(ngDevMode ? [{ debugName: "customTokens" }] : /* istanbul ignore next */ []));
65
+ this.customTokens = input({}, ...(ngDevMode ? [{ debugName: "customTokens" }] : []));
68
66
  this.#eff = effect(() => {
69
- if (!isPlatformBrowser(this.platformId))
70
- return;
71
67
  if (this.maskMode() === null)
72
68
  return;
73
69
  if (this.maskMode() === 'mask' && !this.maskPattern())
74
70
  return;
75
71
  this.initializeMask();
76
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
72
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
77
73
  }
78
74
  #eff;
79
75
  async initializeMask() {
80
- if (!isPlatformBrowser(this.platformId))
81
- return;
82
76
  if (this.maskaJs)
83
77
  this.maskaJs.destroy();
84
78
  let mask;
@@ -275,16 +269,16 @@ class AXInputMaskDirective {
275
269
  }
276
270
  return this.rangeValueLimit(finalValue);
277
271
  }
278
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
279
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: AXInputMaskDirective, isStandalone: true, selector: "[axInputMask]", inputs: { maskMode: { classPropertyName: "maskMode", publicName: "maskMode", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: "eager", publicName: "eager", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: "decimal", publicName: "decimal", isSignal: true, isRequired: false, transformFunction: null }, maskPattern: { classPropertyName: "maskPattern", publicName: "maskPattern", isSignal: true, isRequired: false, transformFunction: null }, customTokens: { classPropertyName: "customTokens", publicName: "customTokens", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: "onMaskChanged" }, exportAs: ["axInputMask"], ngImport: i0 }); }
272
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
273
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: AXInputMaskDirective, isStandalone: true, selector: "[axInputMask]", inputs: { maskMode: { classPropertyName: "maskMode", publicName: "maskMode", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: "separator", publicName: "separator", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: "eager", publicName: "eager", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: "minValue", publicName: "minValue", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: "maxValue", publicName: "maxValue", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: "decimal", publicName: "decimal", isSignal: true, isRequired: false, transformFunction: null }, maskPattern: { classPropertyName: "maskPattern", publicName: "maskPattern", isSignal: true, isRequired: false, transformFunction: null }, customTokens: { classPropertyName: "customTokens", publicName: "customTokens", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: "onMaskChanged" }, exportAs: ["axInputMask"], ngImport: i0 }); }
280
274
  }
281
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXInputMaskDirective, decorators: [{
275
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXInputMaskDirective, decorators: [{
282
276
  type: Directive,
283
277
  args: [{
284
278
  selector: '[axInputMask]',
285
279
  exportAs: 'axInputMask',
286
280
  }]
287
- }], propDecorators: { maskMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskMode", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], eager: [{ type: i0.Input, args: [{ isSignal: true, alias: "eager", required: false }] }], onMaskChanged: [{ type: i0.Output, args: ["onMaskChanged"] }], minValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "minValue", required: false }] }], maxValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxValue", required: false }] }], decimal: [{ type: i0.Input, args: [{ isSignal: true, alias: "decimal", required: false }] }], maskPattern: [{ type: i0.Input, args: [{ isSignal: true, alias: "maskPattern", required: false }] }], customTokens: [{ type: i0.Input, args: [{ isSignal: true, alias: "customTokens", required: false }] }] } });
281
+ }] });
288
282
 
289
283
  /**
290
284
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-input-mask.mjs","sources":["../../../../packages/cdk/input-mask/src/lib/input-mask.directive.ts","../../../../packages/cdk/input-mask/src/acorex-cdk-input-mask.ts"],"sourcesContent":["import { isPlatformBrowser } from '@angular/common';\nimport { Directive, effect, ElementRef, inject, input, output, PLATFORM_ID } from '@angular/core';\nimport type { MaskInput } from 'maska';\n\n/**\n * Event payload for input mask value changes.\n */\nexport type AXInputMaskEvent = {\n masked: string;\n unmasked: string;\n completed: boolean;\n};\n\n/**\n * Available input mask modes for different data types.\n */\nexport type AXInputMaskModes = 'hijriDate' | 'digits' | 'thousandsSeparator' | 'decimal' | 'mask';\n\n/**\n * Token definitions for custom mask patterns.\n * - `#`: Digit (0-9)\n * - `^`: Letter (a-z, A-Z)\n * - `@`: Alphanumeric (0-9, a-z, A-Z)\n */\nexport type AXMaskTokens = {\n [key: string]: {\n pattern: RegExp;\n optional?: boolean;\n transform?: (char: string) => string;\n repeated?: boolean;\n multiple?: boolean;\n };\n};\n\n/**\n * Directive that provides input masking functionality for various data types including\n * Hijri dates, digits, decimal numbers, and thousands-separated numbers.\n * Built on top of the Maska.js library for robust input validation and formatting.\n */\n@Directive({\n selector: '[axInputMask]',\n exportAs: 'axInputMask',\n})\nexport class AXInputMaskDirective {\n private elm = inject(ElementRef);\n private platformId = inject(PLATFORM_ID);\n private maskaJs: MaskInput;\n\n /**\n * The mode of input masking to apply.\n * @default 'digits'\n */\n maskMode = input<AXInputMaskModes>('digits');\n\n /**\n * The separator character used in the mask (e.g., '/' for dates, ',' for thousands).\n * @default '/'\n */\n separator = input<string>('/');\n\n /**\n * Whether to apply the mask eagerly (as user types) or on blur.\n * @default false\n */\n eager = input(false);\n\n /**\n * Event emitted when the masked value changes.\n */\n onMaskChanged = output<AXInputMaskEvent>();\n\n /**\n * Minimum allowed value for numeric inputs.\n * @default null\n */\n minValue = input<number>(null);\n\n /**\n * Maximum allowed value for numeric inputs.\n * @default null\n */\n maxValue = input<number>(null);\n\n /**\n * Number of decimal places allowed for decimal inputs.\n * @default 0\n */\n decimal = input(0);\n\n /**\n * Custom mask pattern for 'mask' mode.\n * Use the following tokens:\n * - `#`: Required digit (0-9)\n * - `^`: Required letter (a-z, A-Z)\n * - `@`: Required alphanumeric (0-9, a-z, A-Z)\n *\n * Use ! before token to escape symbol. For example !# will render # instead of a digit.\n * Any other character is treated as a literal separator.\n * @example '(###) ###-####' for phone numbers\n * @example 'AA-####' for license plates\n * @example '##/##/####' for dates\n */\n maskPattern = input<string>(null);\n\n /**\n * Custom token definitions to extend or override default mask tokens.\n * Each token maps to a pattern regex and optional transformation.\n * @example { 'P': { pattern: /[1-9]/, transform: (c) => c.toUpperCase() } }\n */\n customTokens = input<AXMaskTokens>({});\n\n #eff = effect(() => {\n if (!isPlatformBrowser(this.platformId)) return;\n if (this.maskMode() === null) return;\n if (this.maskMode() === 'mask' && !this.maskPattern()) return;\n this.initializeMask();\n });\n\n private async initializeMask() {\n if (!isPlatformBrowser(this.platformId)) return;\n\n if (this.maskaJs) this.maskaJs.destroy();\n\n let mask: string[];\n let tokens: Record<\n string,\n { pattern: RegExp; optional?: boolean; repeated?: boolean; transform?: (char: string) => string }\n >;\n\n // Default tokens for built-in modes\n const defaultTokens: AXMaskTokens = {\n D: { pattern: /-/, optional: true },\n F: { pattern: /[0-9\\u06F0-\\u06F9\\u0660-\\u0669]/, repeated: true },\n X: { pattern: /[0-9\\u06F0-\\u06F9\\u0660-\\u0669.]/, repeated: true },\n U: { pattern: /[-0-9\\u06F0-\\u06F9\\u0660-\\u0669.]/, repeated: true },\n };\n\n // Tokens for custom mask mode\n const maskModeTokens: AXMaskTokens = {\n '#': { pattern: /[0-9]/ },\n '^': { pattern: /[a-zA-Z]/ },\n '@': { pattern: /[a-zA-Z0-9]/ },\n ...this.customTokens(),\n };\n\n switch (this.maskMode()) {\n case 'hijriDate':\n mask = [`1###${this.separator()}##${this.separator()}##`];\n tokens = defaultTokens;\n break;\n case 'digits':\n mask = ['DF'];\n tokens = defaultTokens;\n break;\n case 'decimal':\n mask = [`DX`];\n tokens = defaultTokens;\n break;\n case 'thousandsSeparator':\n mask = [`U`];\n tokens = defaultTokens;\n break;\n case 'mask':\n mask = [this.maskPattern()];\n tokens = maskModeTokens;\n break;\n }\n\n const { MaskInput } = await import('maska');\n\n this.maskaJs = new MaskInput(this.elm.nativeElement, {\n mask,\n reversed: this.maskMode() === 'thousandsSeparator' ? true : false,\n tokens,\n postProcess: (value) => {\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(value);\n case 'decimal':\n return this.decimalMaskHandler(value);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(value);\n case 'mask':\n return value;\n default:\n return value;\n }\n },\n preProcess: (value) => {\n const normalized = this.convertToEnglishDigits(value);\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(normalized);\n case 'decimal':\n return this.decimalMaskHandler(normalized);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(normalized);\n case 'mask':\n return value;\n default:\n return value;\n }\n },\n onMaska: (details) => {\n this.onMaskChanged.emit(details);\n },\n eager: this.eager(),\n });\n }\n\n private thousandsSeparatorHandler(value: string) {\n let thousandsSeparator = this.separator();\n\n switch (this.separator()) {\n case '-':\n thousandsSeparator = '_';\n break;\n case '.':\n thousandsSeparator = ',';\n break;\n }\n\n let clearValue: string;\n\n const firstChar = value.charAt(0);\n const restOfString = value.slice(1);\n\n if (firstChar === '-') {\n clearValue = '-' + restOfString.replace(/-/g, '');\n } else {\n clearValue = value.replace(/-/g, '');\n }\n\n // Ensure only one decimal point\n const decimalParts = clearValue.split('.');\n if (decimalParts.length > 2) {\n clearValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n\n // Apply range limits to the cleaned value\n clearValue = this.rangeValueLimit(clearValue);\n\n const addSeparator = clearValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator);\n\n return addSeparator;\n }\n\n private hijriMaskHandler(value: string) {\n const [yearStr, monthStr, dayStr] = value.split(this.separator());\n\n const year = +yearStr;\n const month = +monthStr;\n const day = +dayStr;\n\n //Month Logics\n if (!month || !year) return value;\n if (month > 12) {\n return `${yearStr}${this.separator()}12`;\n }\n if (month < 1) {\n return `${yearStr}${this.separator()}01`;\n }\n\n //Day Logics\n if (!day) return value;\n\n if (day < 1) {\n return `${yearStr}-${monthStr}${this.separator()}01`;\n }\n\n let maxDay = 30;\n if (month <= 6) {\n maxDay = 31;\n } else if (month === 12) {\n // Hijri leap year rule: (11 * year + 14) % 30 < 11\n const isKabise = (11 * year + 14) % 30 < 11;\n maxDay = isKabise ? 30 : 29;\n }\n\n if (day > maxDay) {\n return `${yearStr}${this.separator()}${monthStr}${this.separator()}${maxDay}`;\n }\n\n return value;\n }\n\n private rangeValueLimit(value: string) {\n let convertedValue: number;\n\n if (this.separator()) {\n convertedValue = +value.split(this.separator()).join('');\n } else {\n convertedValue = +value;\n }\n\n if (this.minValue() && convertedValue < this.minValue()) {\n return this.minValue().toString();\n }\n\n if (this.maxValue() && convertedValue > this.maxValue()) {\n return this.maxValue().toString();\n }\n\n return value;\n }\n\n private convertToEnglishDigits(value: string): string {\n return value\n .replace(/[۰-۹]/g, (c) => String(c.charCodeAt(0) - 0x06f0))\n .replace(/[٠-٩]/g, (c) => String(c.charCodeAt(0) - 0x0660));\n }\n\n private decimalMaskHandler(value: string) {\n // Remove any non-digit and non-decimal characters except the first decimal point\n let cleanValue = value;\n let finalValue: string;\n\n // Ensure only one decimal point\n const decimalParts = cleanValue.split('.');\n if (decimalParts.length > 2) {\n cleanValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n\n // Split into integer and decimal parts\n const parts = cleanValue.split('.');\n const integerPart = parts[0] || '';\n const decimalPart = parts[1] || '';\n\n // Limit decimal part to the specified number of digits\n const limitedDecimalPart = decimalPart.slice(0, this.decimal());\n\n // Reconstruct the value\n if (limitedDecimalPart.length > 0) {\n finalValue = integerPart + '.' + limitedDecimalPart;\n } else if (cleanValue.includes('.')) {\n // If there's a decimal point but no decimal part, keep the decimal point\n finalValue = integerPart + '.';\n } else {\n finalValue = integerPart;\n }\n\n return this.rangeValueLimit(finalValue);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-input-mask.mjs","sources":["../tmp-esm2022/input-mask/lib/input-mask.directive.js","../tmp-esm2022/input-mask/acorex-cdk-input-mask.js"],"sourcesContent":["import { Directive, effect, ElementRef, inject, input, output } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * Directive that provides input masking functionality for various data types including\n * Hijri dates, digits, decimal numbers, and thousands-separated numbers.\n * Built on top of the Maska.js library for robust input validation and formatting.\n */\nexport class AXInputMaskDirective {\n constructor() {\n this.elm = inject(ElementRef);\n /**\n * The mode of input masking to apply.\n * @default 'digits'\n */\n this.maskMode = input('digits', ...(ngDevMode ? [{ debugName: \"maskMode\" }] : []));\n /**\n * The separator character used in the mask (e.g., '/' for dates, ',' for thousands).\n * @default '/'\n */\n this.separator = input('/', ...(ngDevMode ? [{ debugName: \"separator\" }] : []));\n /**\n * Whether to apply the mask eagerly (as user types) or on blur.\n * @default false\n */\n this.eager = input(false, ...(ngDevMode ? [{ debugName: \"eager\" }] : []));\n /**\n * Event emitted when the masked value changes.\n */\n this.onMaskChanged = output();\n /**\n * Minimum allowed value for numeric inputs.\n * @default null\n */\n this.minValue = input(null, ...(ngDevMode ? [{ debugName: \"minValue\" }] : []));\n /**\n * Maximum allowed value for numeric inputs.\n * @default null\n */\n this.maxValue = input(null, ...(ngDevMode ? [{ debugName: \"maxValue\" }] : []));\n /**\n * Number of decimal places allowed for decimal inputs.\n * @default 0\n */\n this.decimal = input(0, ...(ngDevMode ? [{ debugName: \"decimal\" }] : []));\n /**\n * Custom mask pattern for 'mask' mode.\n * Use the following tokens:\n * - `#`: Required digit (0-9)\n * - `^`: Required letter (a-z, A-Z)\n * - `@`: Required alphanumeric (0-9, a-z, A-Z)\n *\n * Use ! before token to escape symbol. For example !# will render # instead of a digit.\n * Any other character is treated as a literal separator.\n * @example '(###) ###-####' for phone numbers\n * @example 'AA-####' for license plates\n * @example '##/##/####' for dates\n */\n this.maskPattern = input(null, ...(ngDevMode ? [{ debugName: \"maskPattern\" }] : []));\n /**\n * Custom token definitions to extend or override default mask tokens.\n * Each token maps to a pattern regex and optional transformation.\n * @example { 'P': { pattern: /[1-9]/, transform: (c) => c.toUpperCase() } }\n */\n this.customTokens = input({}, ...(ngDevMode ? [{ debugName: \"customTokens\" }] : []));\n this.#eff = effect(() => {\n if (this.maskMode() === null)\n return;\n if (this.maskMode() === 'mask' && !this.maskPattern())\n return;\n this.initializeMask();\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n }\n #eff;\n async initializeMask() {\n if (this.maskaJs)\n this.maskaJs.destroy();\n let mask;\n let tokens;\n // Default tokens for built-in modes\n const defaultTokens = {\n D: { pattern: /-/, optional: true },\n F: { pattern: /[0-9\\u06F0-\\u06F9\\u0660-\\u0669]/, repeated: true },\n X: { pattern: /[0-9\\u06F0-\\u06F9\\u0660-\\u0669.]/, repeated: true },\n U: { pattern: /[-0-9\\u06F0-\\u06F9\\u0660-\\u0669.]/, repeated: true },\n };\n // Tokens for custom mask mode\n const maskModeTokens = {\n '#': { pattern: /[0-9]/ },\n '^': { pattern: /[a-zA-Z]/ },\n '@': { pattern: /[a-zA-Z0-9]/ },\n ...this.customTokens(),\n };\n switch (this.maskMode()) {\n case 'hijriDate':\n mask = [`1###${this.separator()}##${this.separator()}##`];\n tokens = defaultTokens;\n break;\n case 'digits':\n mask = ['DF'];\n tokens = defaultTokens;\n break;\n case 'decimal':\n mask = [`DX`];\n tokens = defaultTokens;\n break;\n case 'thousandsSeparator':\n mask = [`U`];\n tokens = defaultTokens;\n break;\n case 'mask':\n mask = [this.maskPattern()];\n tokens = maskModeTokens;\n break;\n }\n const { MaskInput } = await import('maska');\n this.maskaJs = new MaskInput(this.elm.nativeElement, {\n mask,\n reversed: this.maskMode() === 'thousandsSeparator' ? true : false,\n tokens,\n postProcess: (value) => {\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(value);\n case 'decimal':\n return this.decimalMaskHandler(value);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(value);\n case 'mask':\n return value;\n default:\n return value;\n }\n },\n preProcess: (value) => {\n const normalized = this.convertToEnglishDigits(value);\n switch (this.maskMode()) {\n case 'hijriDate':\n return this.hijriMaskHandler(value);\n case 'digits':\n return this.rangeValueLimit(normalized);\n case 'decimal':\n return this.decimalMaskHandler(normalized);\n case 'thousandsSeparator':\n return this.thousandsSeparatorHandler(normalized);\n case 'mask':\n return value;\n default:\n return value;\n }\n },\n onMaska: (details) => {\n this.onMaskChanged.emit(details);\n },\n eager: this.eager(),\n });\n }\n thousandsSeparatorHandler(value) {\n let thousandsSeparator = this.separator();\n switch (this.separator()) {\n case '-':\n thousandsSeparator = '_';\n break;\n case '.':\n thousandsSeparator = ',';\n break;\n }\n let clearValue;\n const firstChar = value.charAt(0);\n const restOfString = value.slice(1);\n if (firstChar === '-') {\n clearValue = '-' + restOfString.replace(/-/g, '');\n }\n else {\n clearValue = value.replace(/-/g, '');\n }\n // Ensure only one decimal point\n const decimalParts = clearValue.split('.');\n if (decimalParts.length > 2) {\n clearValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n // Apply range limits to the cleaned value\n clearValue = this.rangeValueLimit(clearValue);\n const addSeparator = clearValue.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparator);\n return addSeparator;\n }\n hijriMaskHandler(value) {\n const [yearStr, monthStr, dayStr] = value.split(this.separator());\n const year = +yearStr;\n const month = +monthStr;\n const day = +dayStr;\n //Month Logics\n if (!month || !year)\n return value;\n if (month > 12) {\n return `${yearStr}${this.separator()}12`;\n }\n if (month < 1) {\n return `${yearStr}${this.separator()}01`;\n }\n //Day Logics\n if (!day)\n return value;\n if (day < 1) {\n return `${yearStr}-${monthStr}${this.separator()}01`;\n }\n let maxDay = 30;\n if (month <= 6) {\n maxDay = 31;\n }\n else if (month === 12) {\n // Hijri leap year rule: (11 * year + 14) % 30 < 11\n const isKabise = (11 * year + 14) % 30 < 11;\n maxDay = isKabise ? 30 : 29;\n }\n if (day > maxDay) {\n return `${yearStr}${this.separator()}${monthStr}${this.separator()}${maxDay}`;\n }\n return value;\n }\n rangeValueLimit(value) {\n let convertedValue;\n if (this.separator()) {\n convertedValue = +value.split(this.separator()).join('');\n }\n else {\n convertedValue = +value;\n }\n if (this.minValue() && convertedValue < this.minValue()) {\n return this.minValue().toString();\n }\n if (this.maxValue() && convertedValue > this.maxValue()) {\n return this.maxValue().toString();\n }\n return value;\n }\n convertToEnglishDigits(value) {\n return value\n .replace(/[۰-۹]/g, (c) => String(c.charCodeAt(0) - 0x06f0))\n .replace(/[٠-٩]/g, (c) => String(c.charCodeAt(0) - 0x0660));\n }\n decimalMaskHandler(value) {\n // Remove any non-digit and non-decimal characters except the first decimal point\n let cleanValue = value;\n let finalValue;\n // Ensure only one decimal point\n const decimalParts = cleanValue.split('.');\n if (decimalParts.length > 2) {\n cleanValue = decimalParts[0] + '.' + decimalParts.slice(1).join('');\n }\n // Split into integer and decimal parts\n const parts = cleanValue.split('.');\n const integerPart = parts[0] || '';\n const decimalPart = parts[1] || '';\n // Limit decimal part to the specified number of digits\n const limitedDecimalPart = decimalPart.slice(0, this.decimal());\n // Reconstruct the value\n if (limitedDecimalPart.length > 0) {\n finalValue = integerPart + '.' + limitedDecimalPart;\n }\n else if (cleanValue.includes('.')) {\n // If there's a decimal point but no decimal part, keep the decimal point\n finalValue = integerPart + '.';\n }\n else {\n finalValue = integerPart;\n }\n return this.rangeValueLimit(finalValue);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXInputMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXInputMaskDirective, isStandalone: true, selector: \"[axInputMask]\", inputs: { maskMode: { classPropertyName: \"maskMode\", publicName: \"maskMode\", isSignal: true, isRequired: false, transformFunction: null }, separator: { classPropertyName: \"separator\", publicName: \"separator\", isSignal: true, isRequired: false, transformFunction: null }, eager: { classPropertyName: \"eager\", publicName: \"eager\", isSignal: true, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: true, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: true, isRequired: false, transformFunction: null }, decimal: { classPropertyName: \"decimal\", publicName: \"decimal\", isSignal: true, isRequired: false, transformFunction: null }, maskPattern: { classPropertyName: \"maskPattern\", publicName: \"maskPattern\", isSignal: true, isRequired: false, transformFunction: null }, customTokens: { classPropertyName: \"customTokens\", publicName: \"customTokens\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onMaskChanged: \"onMaskChanged\" }, exportAs: [\"axInputMask\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXInputMaskDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axInputMask]',\n exportAs: 'axInputMask',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvaW5wdXQtbWFzay9zcmMvbGliL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFpQ3JGOzs7O0dBSUc7QUFLSCxNQUFNLE9BQU8sb0JBQW9CO0lBSmpDO1FBS1UsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUdqQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFtQixRQUFRLG9EQUFDLENBQUM7UUFFN0M7OztXQUdHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBUyxHQUFHLHFEQUFDLENBQUM7UUFFL0I7OztXQUdHO1FBQ0gsVUFBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLGlEQUFDLENBQUM7UUFFckI7O1dBRUc7UUFDSCxrQkFBYSxHQUFHLE1BQU0sRUFBb0IsQ0FBQztRQUUzQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFTLElBQUksb0RBQUMsQ0FBQztRQUUvQjs7O1dBR0c7UUFDSCxZQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsbURBQUMsQ0FBQztRQUVuQjs7Ozs7Ozs7Ozs7O1dBWUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBUyxJQUFJLHVEQUFDLENBQUM7UUFFbEM7Ozs7V0FJRztRQUNILGlCQUFZLEdBQUcsS0FBSyxDQUFlLEVBQUUsd0RBQUMsQ0FBQztRQUV2QyxTQUFJLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEVB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LEdBQUcsa0JBQWtCLENBQUM7UUFDdEQsQ0FBQzthQUFNLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BDLHlFQUF5RTtZQUN6RSxVQUFVLEdBQUcsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUNqQyxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxXQUFXLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDOzhHQTNTVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIEVsZW1lbnRSZWYsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBNYXNrSW5wdXQgfSBmcm9tICdtYXNrYSc7XG5cbi8qKlxuICogRXZlbnQgcGF5bG9hZCBmb3IgaW5wdXQgbWFzayB2YWx1ZSBjaGFuZ2VzLlxuICovXG5leHBvcnQgdHlwZSBBWElucHV0TWFza0V2ZW50ID0ge1xuICBtYXNrZWQ6IHN0cmluZztcbiAgdW5tYXNrZWQ6IHN0cmluZztcbiAgY29tcGxldGVkOiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBdmFpbGFibGUgaW5wdXQgbWFzayBtb2RlcyBmb3IgZGlmZmVyZW50IGRhdGEgdHlwZXMuXG4gKi9cbmV4cG9ydCB0eXBlIEFYSW5wdXRNYXNrTW9kZXMgPSAnaGlqcmlEYXRlJyB8ICdkaWdpdHMnIHwgJ3Rob3VzYW5kc1NlcGFyYXRvcicgfCAnZGVjaW1hbCcgfCAnbWFzayc7XG5cbi8qKlxuICogVG9rZW4gZGVmaW5pdGlvbnMgZm9yIGN1c3RvbSBtYXNrIHBhdHRlcm5zLlxuICogLSBgI2A6IERpZ2l0ICgwLTkpXG4gKiAtIGBeYDogTGV0dGVyIChhLXosIEEtWilcbiAqIC0gYEBgOiBBbHBoYW51bWVyaWMgKDAtOSwgYS16LCBBLVopXG4gKi9cbmV4cG9ydCB0eXBlIEFYTWFza1Rva2VucyA9IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIHBhdHRlcm46IFJlZ0V4cDtcbiAgICBvcHRpb25hbD86IGJvb2xlYW47XG4gICAgdHJhbnNmb3JtPzogKGNoYXI6IHN0cmluZykgPT4gc3RyaW5nO1xuICAgIHJlcGVhdGVkPzogYm9vbGVhbjtcbiAgICBtdWx0aXBsZT86IGJvb2xlYW47XG4gIH07XG59O1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHByb3ZpZGVzIGlucHV0IG1hc2tpbmcgZnVuY3Rpb25hbGl0eSBmb3IgdmFyaW91cyBkYXRhIHR5cGVzIGluY2x1ZGluZ1xuICogSGlqcmkgZGF0ZXMsIGRpZ2l0cywgZGVjaW1hbCBudW1iZXJzLCBhbmQgdGhvdXNhbmRzLXNlcGFyYXRlZCBudW1iZXJzLlxuICogQnVpbHQgb24gdG9wIG9mIHRoZSBNYXNrYS5qcyBsaWJyYXJ5IGZvciByb2J1c3QgaW5wdXQgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4SW5wdXRNYXNrXScsXG4gIGV4cG9ydEFzOiAnYXhJbnB1dE1hc2snLFxufSlcbmV4cG9ydCBjbGFzcyBBWElucHV0TWFza0RpcmVjdGl2ZSB7XG4gIHByaXZhdGUgZWxtID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIG1hc2thSnM6IE1hc2tJbnB1dDtcblxuICAvKipcbiAgICogVGhlIG1vZGUgb2YgaW5wdXQgbWFza2luZyB0byBhcHBseS5cbiAgICogQGRlZmF1bHQgJ2RpZ2l0cydcbiAgICovXG4gIG1hc2tNb2RlID0gaW5wdXQ8QVhJbnB1dE1hc2tNb2Rlcz4oJ2RpZ2l0cycpO1xuXG4gIC8qKlxuICAgKiBUaGUgc2VwYXJhdG9yIGNoYXJhY3RlciB1c2VkIGluIHRoZSBtYXNrIChlLmcuLCAnLycgZm9yIGRhdGVzLCAnLCcgZm9yIHRob3VzYW5kcykuXG4gICAqIEBkZWZhdWx0ICcvJ1xuICAgKi9cbiAgc2VwYXJhdG9yID0gaW5wdXQ8c3RyaW5nPignLycpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFwcGx5IHRoZSBtYXNrIGVhZ2VybHkgKGFzIHVzZXIgdHlwZXMpIG9yIG9uIGJsdXIuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBlYWdlciA9IGlucHV0KGZhbHNlKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBtYXNrZWQgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIG9uTWFza0NoYW5nZWQgPSBvdXRwdXQ8QVhJbnB1dE1hc2tFdmVudD4oKTtcblxuICAvKipcbiAgICogTWluaW11bSBhbGxvd2VkIHZhbHVlIGZvciBudW1lcmljIGlucHV0cy5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgbWluVmFsdWUgPSBpbnB1dDxudW1iZXI+KG51bGwpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGFsbG93ZWQgdmFsdWUgZm9yIG51bWVyaWMgaW5wdXRzLlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBtYXhWYWx1ZSA9IGlucHV0PG51bWJlcj4obnVsbCk7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBkZWNpbWFsIHBsYWNlcyBhbGxvd2VkIGZvciBkZWNpbWFsIGlucHV0cy5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgZGVjaW1hbCA9IGlucHV0KDApO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gbWFzayBwYXR0ZXJuIGZvciAnbWFzaycgbW9kZS5cbiAgICogVXNlIHRoZSBmb2xsb3dpbmcgdG9rZW5zOlxuICAgKiAtIGAjYDogUmVxdWlyZWQgZGlnaXQgKDAtOSlcbiAgICogLSBgXmA6IFJlcXVpcmVkIGxldHRlciAoYS16LCBBLVopXG4gICAqIC0gYEBgOiBSZXF1aXJlZCBhbHBoYW51bWVyaWMgKDAtOSwgYS16LCBBLVopXG4gICAqXG4gICAqIFVzZSAhIGJlZm9yZSB0b2tlbiB0byBlc2NhcGUgc3ltYm9sLiBGb3IgZXhhbXBsZSAhIyB3aWxsIHJlbmRlciAjIGluc3RlYWQgb2YgYSBkaWdpdC5cbiAgICogQW55IG90aGVyIGNoYXJhY3RlciBpcyB0cmVhdGVkIGFzIGEgbGl0ZXJhbCBzZXBhcmF0b3IuXG4gICAqIEBleGFtcGxlICcoIyMjKSAjIyMtIyMjIycgZm9yIHBob25lIG51bWJlcnNcbiAgICogQGV4YW1wbGUgJ0FBLSMjIyMnIGZvciBsaWNlbnNlIHBsYXRlc1xuICAgKiBAZXhhbXBsZSAnIyMvIyMvIyMjIycgZm9yIGRhdGVzXG4gICAqL1xuICBtYXNrUGF0dGVybiA9IGlucHV0PHN0cmluZz4obnVsbCk7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSB0b2tlbiBkZWZpbml0aW9ucyB0byBleHRlbmQgb3Igb3ZlcnJpZGUgZGVmYXVsdCBtYXNrIHRva2Vucy5cbiAgICogRWFjaCB0b2tlbiBtYXBzIHRvIGEgcGF0dGVybiByZWdleCBhbmQgb3B0aW9uYWwgdHJhbnNmb3JtYXRpb24uXG4gICAqIEBleGFtcGxlIHsgJ1AnOiB7IHBhdHRlcm46IC9bMS05XS8sIHRyYW5zZm9ybTogKGMpID0+IGMudG9VcHBlckNhc2UoKSB9IH1cbiAgICovXG4gIGN1c3RvbVRva2VucyA9IGlucHV0PEFYTWFza1Rva2Vucz4oe30pO1xuXG4gICNlZmYgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0aGlzLm1hc2tNb2RlKCkgPT09IG51bGwpIHJldHVybjtcbiAgICBpZiAodGhpcy5tYXNrTW9kZSgpID09PSAnbWFzaycgJiYgIXRoaXMubWFza1BhdHRlcm4oKSkgcmV0dXJuO1xuICAgIHRoaXMuaW5pdGlhbGl6ZU1hc2soKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplTWFzaygpIHtcbiAgICBpZiAodGhpcy5tYXNrYUpzKSB0aGlzLm1hc2thSnMuZGVzdHJveSgpO1xuXG4gICAgbGV0IG1hc2s6IHN0cmluZ1tdO1xuICAgIGxldCB0b2tlbnM6IFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIHsgcGF0dGVybjogUmVnRXhwOyBvcHRpb25hbD86IGJvb2xlYW47IHJlcGVhdGVkPzogYm9vbGVhbjsgdHJhbnNmb3JtPzogKGNoYXI6IHN0cmluZykgPT4gc3RyaW5nIH1cbiAgICA+O1xuXG4gICAgLy8gRGVmYXVsdCB0b2tlbnMgZm9yIGJ1aWx0LWluIG1vZGVzXG4gICAgY29uc3QgZGVmYXVsdFRva2VuczogQVhNYXNrVG9rZW5zID0ge1xuICAgICAgRDogeyBwYXR0ZXJuOiAvLS8sIG9wdGlvbmFsOiB0cnVlIH0sXG4gICAgICBGOiB7IHBhdHRlcm46IC9bMC05XFx1MDZGMC1cXHUwNkY5XFx1MDY2MC1cXHUwNjY5XS8sIHJlcGVhdGVkOiB0cnVlIH0sXG4gICAgICBYOiB7IHBhdHRlcm46IC9bMC05XFx1MDZGMC1cXHUwNkY5XFx1MDY2MC1cXHUwNjY5Ll0vLCByZXBlYXRlZDogdHJ1ZSB9LFxuICAgICAgVTogeyBwYXR0ZXJuOiAvWy0wLTlcXHUwNkYwLVxcdTA2RjlcXHUwNjYwLVxcdTA2NjkuXS8sIHJlcGVhdGVkOiB0cnVlIH0sXG4gICAgfTtcblxuICAgIC8vIFRva2VucyBmb3IgY3VzdG9tIG1hc2sgbW9kZVxuICAgIGNvbnN0IG1hc2tNb2RlVG9rZW5zOiBBWE1hc2tUb2tlbnMgPSB7XG4gICAgICAnIyc6IHsgcGF0dGVybjogL1swLTldLyB9LFxuICAgICAgJ14nOiB7IHBhdHRlcm46IC9bYS16QS1aXS8gfSxcbiAgICAgICdAJzogeyBwYXR0ZXJuOiAvW2EtekEtWjAtOV0vIH0sXG4gICAgICAuLi50aGlzLmN1c3RvbVRva2VucygpLFxuICAgIH07XG5cbiAgICBzd2l0Y2ggKHRoaXMubWFza01vZGUoKSkge1xuICAgICAgY2FzZSAnaGlqcmlEYXRlJzpcbiAgICAgICAgbWFzayA9IFtgMSMjIyR7dGhpcy5zZXBhcmF0b3IoKX0jIyR7dGhpcy5zZXBhcmF0b3IoKX0jI2BdO1xuICAgICAgICB0b2tlbnMgPSBkZWZhdWx0VG9rZW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2RpZ2l0cyc6XG4gICAgICAgIG1hc2sgPSBbJ0RGJ107XG4gICAgICAgIHRva2VucyA9IGRlZmF1bHRUb2tlbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVjaW1hbCc6XG4gICAgICAgIG1hc2sgPSBbYERYYF07XG4gICAgICAgIHRva2VucyA9IGRlZmF1bHRUb2tlbnM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndGhvdXNhbmRzU2VwYXJhdG9yJzpcbiAgICAgICAgbWFzayA9IFtgVWBdO1xuICAgICAgICB0b2tlbnMgPSBkZWZhdWx0VG9rZW5zO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21hc2snOlxuICAgICAgICBtYXNrID0gW3RoaXMubWFza1BhdHRlcm4oKV07XG4gICAgICAgIHRva2VucyA9IG1hc2tNb2RlVG9rZW5zO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICBjb25zdCB7IE1hc2tJbnB1dCB9ID0gYXdhaXQgaW1wb3J0KCdtYXNrYScpO1xuXG4gICAgdGhpcy5tYXNrYUpzID0gbmV3IE1hc2tJbnB1dCh0aGlzLmVsbS5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBtYXNrLFxuICAgICAgcmV2ZXJzZWQ6IHRoaXMubWFza01vZGUoKSA9PT0gJ3Rob3VzYW5kc1NlcGFyYXRvcicgPyB0cnVlIDogZmFsc2UsXG4gICAgICB0b2tlbnMsXG4gICAgICBwb3N0UHJvY2VzczogKHZhbHVlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5tYXNrTW9kZSgpKSB7XG4gICAgICAgICAgY2FzZSAnaGlqcmlEYXRlJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmhpanJpTWFza0hhbmRsZXIodmFsdWUpO1xuICAgICAgICAgIGNhc2UgJ2RpZ2l0cyc6XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlTGltaXQodmFsdWUpO1xuICAgICAgICAgIGNhc2UgJ2RlY2ltYWwnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVjaW1hbE1hc2tIYW5kbGVyKHZhbHVlKTtcbiAgICAgICAgICBjYXNlICd0aG91c2FuZHNTZXBhcmF0b3InOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcih2YWx1ZSk7XG4gICAgICAgICAgY2FzZSAnbWFzayc6XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHByZVByb2Nlc3M6ICh2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5jb252ZXJ0VG9FbmdsaXNoRGlnaXRzKHZhbHVlKTtcbiAgICAgICAgc3dpdGNoICh0aGlzLm1hc2tNb2RlKCkpIHtcbiAgICAgICAgICBjYXNlICdoaWpyaURhdGUnOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGlqcmlNYXNrSGFuZGxlcih2YWx1ZSk7XG4gICAgICAgICAgY2FzZSAnZGlnaXRzJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJhbmdlVmFsdWVMaW1pdChub3JtYWxpemVkKTtcbiAgICAgICAgICBjYXNlICdkZWNpbWFsJzpcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlY2ltYWxNYXNrSGFuZGxlcihub3JtYWxpemVkKTtcbiAgICAgICAgICBjYXNlICd0aG91c2FuZHNTZXBhcmF0b3InOlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcihub3JtYWxpemVkKTtcbiAgICAgICAgICBjYXNlICdtYXNrJzpcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgb25NYXNrYTogKGRldGFpbHMpID0+IHtcbiAgICAgICAgdGhpcy5vbk1hc2tDaGFuZ2VkLmVtaXQoZGV0YWlscyk7XG4gICAgICB9LFxuICAgICAgZWFnZXI6IHRoaXMuZWFnZXIoKSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdGhvdXNhbmRzU2VwYXJhdG9ySGFuZGxlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgbGV0IHRob3VzYW5kc1NlcGFyYXRvciA9IHRoaXMuc2VwYXJhdG9yKCk7XG5cbiAgICBzd2l0Y2ggKHRoaXMuc2VwYXJhdG9yKCkpIHtcbiAgICAgIGNhc2UgJy0nOlxuICAgICAgICB0aG91c2FuZHNTZXBhcmF0b3IgPSAnXyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnLic6XG4gICAgICAgIHRob3VzYW5kc1NlcGFyYXRvciA9ICcsJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbGV0IGNsZWFyVmFsdWU6IHN0cmluZztcblxuICAgIGNvbnN0IGZpcnN0Q2hhciA9IHZhbHVlLmNoYXJBdCgwKTtcbiAgICBjb25zdCByZXN0T2ZTdHJpbmcgPSB2YWx1ZS5zbGljZSgxKTtcblxuICAgIGlmIChmaXJzdENoYXIgPT09ICctJykge1xuICAgICAgY2xlYXJWYWx1ZSA9ICctJyArIHJlc3RPZlN0cmluZy5yZXBsYWNlKC8tL2csICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2xlYXJWYWx1ZSA9IHZhbHVlLnJlcGxhY2UoLy0vZywgJycpO1xuICAgIH1cblxuICAgIC8vIEVuc3VyZSBvbmx5IG9uZSBkZWNpbWFsIHBvaW50XG4gICAgY29uc3QgZGVjaW1hbFBhcnRzID0gY2xlYXJWYWx1ZS5zcGxpdCgnLicpO1xuICAgIGlmIChkZWNpbWFsUGFydHMubGVuZ3RoID4gMikge1xuICAgICAgY2xlYXJWYWx1ZSA9IGRlY2ltYWxQYXJ0c1swXSArICcuJyArIGRlY2ltYWxQYXJ0cy5zbGljZSgxKS5qb2luKCcnKTtcbiAgICB9XG5cbiAgICAvLyBBcHBseSByYW5nZSBsaW1pdHMgdG8gdGhlIGNsZWFuZWQgdmFsdWVcbiAgICBjbGVhclZhbHVlID0gdGhpcy5yYW5nZVZhbHVlTGltaXQoY2xlYXJWYWx1ZSk7XG5cbiAgICBjb25zdCBhZGRTZXBhcmF0b3IgPSBjbGVhclZhbHVlLnJlcGxhY2UoL1xcQig/PShcXGR7M30pKyg/IVxcZCkpL2csIHRob3VzYW5kc1NlcGFyYXRvcik7XG5cbiAgICByZXR1cm4gYWRkU2VwYXJhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWpyaU1hc2tIYW5kbGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBbeWVhclN0ciwgbW9udGhTdHIsIGRheVN0cl0gPSB2YWx1ZS5zcGxpdCh0aGlzLnNlcGFyYXRvcigpKTtcblxuICAgIGNvbnN0IHllYXIgPSAreWVhclN0cjtcbiAgICBjb25zdCBtb250aCA9ICttb250aFN0cjtcbiAgICBjb25zdCBkYXkgPSArZGF5U3RyO1xuXG4gICAgLy9Nb250aCBMb2dpY3NcbiAgICBpZiAoIW1vbnRoIHx8ICF5ZWFyKSByZXR1cm4gdmFsdWU7XG4gICAgaWYgKG1vbnRoID4gMTIpIHtcbiAgICAgIHJldHVybiBgJHt5ZWFyU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0xMmA7XG4gICAgfVxuICAgIGlmIChtb250aCA8IDEpIHtcbiAgICAgIHJldHVybiBgJHt5ZWFyU3RyfSR7dGhpcy5zZXBhcmF0b3IoKX0wMWA7XG4gICAgfVxuXG4gICAgLy9EYXkgTG9naWNzXG4gICAgaWYgKCFkYXkpIHJldHVybiB2YWx1ZTtcblxuICAgIGlmIChkYXkgPCAxKSB7XG4gICAgICByZXR1cm4gYCR7eWVhclN0cn0tJHttb250aFN0cn0ke3RoaXMuc2VwYXJhdG9yKCl9MDFgO1xuICAgIH1cblxuICAgIGxldCBtYXhEYXkgPSAzMDtcbiAgICBpZiAobW9udGggPD0gNikge1xuICAgICAgbWF4RGF5ID0gMzE7XG4gICAgfSBlbHNlIGlmIChtb250aCA9PT0gMTIpIHtcbiAgICAgIC8vIEhpanJpIGxlYXAgeWVhciBydWxlOiAoMTEgKiB5ZWFyICsgMTQpICUgMzAgPCAxMVxuICAgICAgY29uc3QgaXNLYWJpc2UgPSAoMTEgKiB5ZWFyICsgMTQpICUgMzAgPCAxMTtcbiAgICAgIG1heERheSA9IGlzS2FiaXNlID8gMzAgOiAyOTtcbiAgICB9XG5cbiAgICBpZiAoZGF5ID4gbWF4RGF5KSB7XG4gICAgICByZXR1cm4gYCR7eWVhclN0cn0ke3RoaXMuc2VwYXJhdG9yKCl9JHttb250aFN0cn0ke3RoaXMuc2VwYXJhdG9yKCl9JHttYXhEYXl9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHJhbmdlVmFsdWVMaW1pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgbGV0IGNvbnZlcnRlZFZhbHVlOiBudW1iZXI7XG5cbiAgICBpZiAodGhpcy5zZXBhcmF0b3IoKSkge1xuICAgICAgY29udmVydGVkVmFsdWUgPSArdmFsdWUuc3BsaXQodGhpcy5zZXBhcmF0b3IoKSkuam9pbignJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnZlcnRlZFZhbHVlID0gK3ZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1pblZhbHVlKCkgJiYgY29udmVydGVkVmFsdWUgPCB0aGlzLm1pblZhbHVlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1pblZhbHVlKCkudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhWYWx1ZSgpICYmIGNvbnZlcnRlZFZhbHVlID4gdGhpcy5tYXhWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZSgpLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBjb252ZXJ0VG9FbmdsaXNoRGlnaXRzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB2YWx1ZVxuICAgICAgLnJlcGxhY2UoL1vbsC3buV0vZywgKGMpID0+IFN0cmluZyhjLmNoYXJDb2RlQXQoMCkgLSAweDA2ZjApKVxuICAgICAgLnJlcGxhY2UoL1vZoC3ZqV0vZywgKGMpID0+IFN0cmluZyhjLmNoYXJDb2RlQXQoMCkgLSAweDA2NjApKTtcbiAgfVxuXG4gIHByaXZhdGUgZGVjaW1hbE1hc2tIYW5kbGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBSZW1vdmUgYW55IG5vbi1kaWdpdCBhbmQgbm9uLWRlY2ltYWwgY2hhcmFjdGVycyBleGNlcHQgdGhlIGZpcnN0IGRlY2ltYWwgcG9pbnRcbiAgICBsZXQgY2xlYW5WYWx1ZSA9IHZhbHVlO1xuICAgIGxldCBmaW5hbFZhbHVlOiBzdHJpbmc7XG5cbiAgICAvLyBFbnN1cmUgb25seSBvbmUgZGVjaW1hbCBwb2ludFxuICAgIGNvbnN0IGRlY2ltYWxQYXJ0cyA9IGNsZWFuVmFsdWUuc3BsaXQoJy4nKTtcbiAgICBpZiAoZGVjaW1hbFBhcnRzLmxlbmd0aCA+IDIpIHtcbiAgICAgIGNsZWFuVmFsdWUgPSBkZWNpbWFsUGFydHNbMF0gKyAnLicgKyBkZWNpbWFsUGFydHMuc2xpY2UoMSkuam9pbignJyk7XG4gICAgfVxuXG4gICAgLy8gU3BsaXQgaW50byBpbnRlZ2VyIGFuZCBkZWNpbWFsIHBhcnRzXG4gICAgY29uc3QgcGFydHMgPSBjbGVhblZhbHVlLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgaW50ZWdlclBhcnQgPSBwYXJ0c1swXSB8fCAnJztcbiAgICBjb25zdCBkZWNpbWFsUGFydCA9IHBhcnRzWzFdIHx8ICcnO1xuXG4gICAgLy8gTGltaXQgZGVjaW1hbCBwYXJ0IHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRpZ2l0c1xuICAgIGNvbnN0IGxpbWl0ZWREZWNpbWFsUGFydCA9IGRlY2ltYWxQYXJ0LnNsaWNlKDAsIHRoaXMuZGVjaW1hbCgpKTtcblxuICAgIC8vIFJlY29uc3RydWN0IHRoZSB2YWx1ZVxuICAgIGlmIChsaW1pdGVkRGVjaW1hbFBhcnQubGVuZ3RoID4gMCkge1xuICAgICAgZmluYWxWYWx1ZSA9IGludGVnZXJQYXJ0ICsgJy4nICsgbGltaXRlZERlY2ltYWxQYXJ0O1xuICAgIH0gZWxzZSBpZiAoY2xlYW5WYWx1ZS5pbmNsdWRlcygnLicpKSB7XG4gICAgICAvLyBJZiB0aGVyZSdzIGEgZGVjaW1hbCBwb2ludCBidXQgbm8gZGVjaW1hbCBwYXJ0LCBrZWVwIHRoZSBkZWNpbWFsIHBvaW50XG4gICAgICBmaW5hbFZhbHVlID0gaW50ZWdlclBhcnQgKyAnLic7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbmFsVmFsdWUgPSBpbnRlZ2VyUGFydDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5yYW5nZVZhbHVlTGltaXQoZmluYWxWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1pbnB1dC1tYXNrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2lucHV0LW1hc2svc3JjL2Fjb3JleC1jZGstaW5wdXQtbWFzay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
@@ -4,12 +4,12 @@ import { CommonModule } from '@angular/common';
4
4
 
5
5
  class AXListNavigationDirective {
6
6
  constructor() {
7
- this.childElem = contentChildren(AXListNavigationItemDirective, { ...(ngDevMode ? { debugName: "childElem" } : /* istanbul ignore next */ {}), descendants: true });
7
+ this.childElem = contentChildren(AXListNavigationItemDirective, ...(ngDevMode ? [{ debugName: "childElem", descendants: true }] : [{ descendants: true }]));
8
8
  this.elementRef = inject(ElementRef);
9
- this.activeIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeIndex" }] : /* istanbul ignore next */ []));
9
+ this.activeIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeIndex" }] : []));
10
10
  this.onNavigationChanged = output();
11
11
  this.onKeypress = output();
12
- this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []));
12
+ this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: "orientation" }] : []));
13
13
  this.scrollOption = {
14
14
  behavior: 'smooth',
15
15
  block: 'nearest',
@@ -19,7 +19,7 @@ class AXListNavigationDirective {
19
19
  item.itemElem.nativeElement.tabIndex = 0;
20
20
  item.index.set(index);
21
21
  });
22
- }, ...(ngDevMode ? [{ debugName: "#eff" }] : /* istanbul ignore next */ []));
22
+ }, ...(ngDevMode ? [{ debugName: "#eff" }] : []));
23
23
  this.#init = afterNextRender(() => {
24
24
  this.elementRef.nativeElement.tabIndex = -1;
25
25
  this.elementRef.nativeElement.onkeydown = (e) => {
@@ -97,24 +97,24 @@ class AXListNavigationDirective {
97
97
  });
98
98
  e.itemElem.nativeElement.scrollIntoView(this.scrollOption);
99
99
  }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.9", type: AXListNavigationDirective, isStandalone: true, selector: "[axListNavigation]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNavigationChanged: "onNavigationChanged", onKeypress: "onKeypress" }, queries: [{ propertyName: "childElem", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], exportAs: ["axListNavigation"], ngImport: i0 }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "20.3.3", type: AXListNavigationDirective, isStandalone: true, selector: "[axListNavigation]", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNavigationChanged: "onNavigationChanged", onKeypress: "onKeypress" }, queries: [{ propertyName: "childElem", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], exportAs: ["axListNavigation"], ngImport: i0 }); }
102
102
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationDirective, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationDirective, decorators: [{
104
104
  type: Directive,
105
105
  args: [{
106
106
  selector: '[axListNavigation]',
107
107
  exportAs: 'axListNavigation',
108
108
  }]
109
- }], propDecorators: { childElem: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXListNavigationItemDirective), { ...{ descendants: true }, isSignal: true }] }], onNavigationChanged: [{ type: i0.Output, args: ["onNavigationChanged"] }], onKeypress: [{ type: i0.Output, args: ["onKeypress"] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }] } });
109
+ }] });
110
110
 
111
111
  class AXListNavigationItemDirective {
112
112
  constructor() {
113
113
  this.itemElem = inject(ElementRef);
114
- this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : /* istanbul ignore next */ []));
115
- this.index = signal(0, ...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
114
+ this.isActive = signal(false, ...(ngDevMode ? [{ debugName: "isActive" }] : []));
115
+ this.index = signal(0, ...(ngDevMode ? [{ debugName: "index" }] : []));
116
116
  this.navigationItemKey = Math.random();
117
- this.navigationParentItemKey = signal(null, ...(ngDevMode ? [{ debugName: "navigationParentItemKey" }] : /* istanbul ignore next */ []));
117
+ this.navigationParentItemKey = signal(null, ...(ngDevMode ? [{ debugName: "navigationParentItemKey" }] : []));
118
118
  this.onKeypress = output();
119
119
  this.parent = inject(AXListNavigationDirective);
120
120
  this.injectItemInsideItem = inject(AXListNavigationItemDirective, { optional: true, skipSelf: true });
@@ -135,25 +135,25 @@ class AXListNavigationItemDirective {
135
135
  });
136
136
  }
137
137
  #init;
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: AXListNavigationItemDirective, isStandalone: true, selector: "[axListNavigationItem]", outputs: { onKeypress: "onKeypress" }, exportAs: ["axListNavigationItem"], ngImport: i0 }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
139
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: AXListNavigationItemDirective, isStandalone: true, selector: "[axListNavigationItem]", outputs: { onKeypress: "onKeypress" }, exportAs: ["axListNavigationItem"], ngImport: i0 }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationItemDirective, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationItemDirective, decorators: [{
142
142
  type: Directive,
143
143
  args: [{
144
144
  selector: '[axListNavigationItem]',
145
145
  exportAs: 'axListNavigationItem',
146
146
  }]
147
- }], propDecorators: { onKeypress: [{ type: i0.Output, args: ["onKeypress"] }] } });
147
+ }] });
148
148
 
149
149
  const COMPONENT = [AXListNavigationDirective, AXListNavigationItemDirective];
150
150
  const MODULES = [CommonModule];
151
151
  class AXListNavigationModule {
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationModule, imports: [CommonModule, AXListNavigationDirective, AXListNavigationItemDirective], exports: [AXListNavigationDirective, AXListNavigationItemDirective] }); }
154
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationModule, imports: [MODULES] }); }
152
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
153
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, imports: [CommonModule, AXListNavigationDirective, AXListNavigationItemDirective], exports: [AXListNavigationDirective, AXListNavigationItemDirective] }); }
154
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, imports: [MODULES] }); }
155
155
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXListNavigationModule, decorators: [{
156
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListNavigationModule, decorators: [{
157
157
  type: NgModule,
158
158
  args: [{
159
159
  imports: [...MODULES, ...COMPONENT],
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-list-navigation.mjs","sources":["../../../../packages/cdk/list-navigation/src/lib/list-navigation.directive.ts","../../../../packages/cdk/list-navigation/src/lib/list-navigation-item.directive.ts","../../../../packages/cdk/list-navigation/src/lib/list-navigation.module.ts","../../../../packages/cdk/list-navigation/src/acorex-cdk-list-navigation.ts"],"sourcesContent":["import { AXHtmlEvent } from '@acorex/cdk/common';\nimport {\n afterNextRender,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXListNavigationItemDirective } from './list-navigation-item.directive';\n\n@Directive({\n selector: '[axListNavigation]',\n exportAs: 'axListNavigation',\n})\nexport class AXListNavigationDirective {\n private childElem = contentChildren(AXListNavigationItemDirective, { descendants: true });\n private elementRef = inject(ElementRef);\n activeIndex = signal(0);\n onNavigationChanged = output<{ sender: AXListNavigationDirective }>();\n onKeypress = output<AXHtmlEvent<KeyboardEvent>>();\n orientation = input<'horizontal' | 'vertical'>('vertical');\n\n private scrollOption: ScrollIntoViewOptions = {\n behavior: 'smooth',\n block: 'nearest',\n };\n\n #eff = effect(() => {\n this.childElem().forEach((item, index) => {\n (item.itemElem.nativeElement as HTMLElement).tabIndex = 0;\n item.index.set(index);\n });\n });\n\n #init = afterNextRender(() => {\n (this.elementRef.nativeElement as HTMLElement).tabIndex = -1;\n\n (this.elementRef.nativeElement as HTMLElement).onkeydown = (e: KeyboardEvent) => {\n this.onKeypress.emit({ component: this, nativeEvent: e });\n\n if (e.key === 'Tab') {\n this.onNavigationChanged.emit({ sender: this });\n }\n\n if (this.orientation() === 'vertical') {\n switch (e.key) {\n case 'ArrowDown':\n this.navigationHandler('ArrowDown');\n break;\n case 'ArrowUp':\n this.navigationHandler('ArrowUp');\n break;\n case 'ArrowLeft':\n this.parentNavigationHandler();\n break;\n }\n } else if (this.orientation() === 'horizontal') {\n switch (e.key) {\n case 'ArrowRight':\n this.navigationHandler('ArrowDown');\n break;\n case 'ArrowLeft':\n this.navigationHandler('ArrowUp');\n break;\n case 'ArrowUp':\n this.parentNavigationHandler();\n break;\n }\n }\n };\n });\n\n private navigationHandler(e: string) {\n this.onNavigationChanged.emit({ sender: this });\n\n if (e === 'ArrowUp' && this.activeIndex() > 0) {\n this.activeIndex.update((prev) => prev - 1);\n this.focusOnIndex(this.activeIndex());\n } else if (e === 'ArrowDown' && this.activeIndex() < this.childElem().length - 1) {\n this.activeIndex.update((prev) => prev + 1);\n this.focusOnIndex(this.activeIndex());\n }\n }\n\n private parentNavigationHandler() {\n this.onNavigationChanged.emit({ sender: this });\n\n const selectedItemParentKey = this.childElem()[this.activeIndex()].navigationParentItemKey();\n if (!selectedItemParentKey) return;\n const parentElem = this.childElem().find((item) => item.navigationItemKey === selectedItemParentKey);\n if (!parentElem) return;\n setTimeout(() => {\n (parentElem.itemElem.nativeElement as HTMLAreaElement).focus();\n });\n (parentElem.itemElem.nativeElement as HTMLAreaElement).scrollIntoView(this.scrollOption);\n }\n\n focusOnIndex(index: number) {\n const selectedItem = this.childElem()[index]?.itemElem.nativeElement as HTMLElement;\n if (!selectedItem) return;\n setTimeout(() => {\n selectedItem.focus();\n });\n selectedItem.scrollIntoView(this.scrollOption);\n }\n\n navigateTo(e: AXListNavigationItemDirective) {\n setTimeout(() => {\n (e.itemElem.nativeElement as HTMLElement).focus();\n });\n (e.itemElem.nativeElement as HTMLElement).scrollIntoView(this.scrollOption);\n }\n}\n","import { AXHtmlEvent } from '@acorex/cdk/common';\nimport { afterNextRender, Directive, ElementRef, inject, output, signal } from '@angular/core';\nimport { AXListNavigationDirective } from './list-navigation.directive';\n\n@Directive({\n selector: '[axListNavigationItem]',\n exportAs: 'axListNavigationItem',\n})\nexport class AXListNavigationItemDirective {\n itemElem = inject(ElementRef);\n isActive = signal(false);\n index = signal(0);\n navigationItemKey = Math.random();\n navigationParentItemKey = signal(null);\n onKeypress = output<AXHtmlEvent<KeyboardEvent>>();\n\n private parent = inject(AXListNavigationDirective);\n private injectItemInsideItem = inject(AXListNavigationItemDirective, { optional: true, skipSelf: true });\n\n #init = afterNextRender(() => {\n (this.itemElem.nativeElement as HTMLElement).onkeydown = (e: KeyboardEvent) => {\n this.onKeypress.emit({ component: this, nativeEvent: e });\n };\n\n (this.itemElem.nativeElement as HTMLElement).onfocus = () => {\n this.isActive.set(true);\n this.parent.activeIndex.set(this.index());\n };\n\n (this.itemElem.nativeElement as HTMLElement).onblur = () => {\n this.isActive.set(false);\n };\n\n if (!this.injectItemInsideItem?.navigationItemKey) return;\n this.navigationParentItemKey.set(this.injectItemInsideItem.navigationItemKey);\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXListNavigationItemDirective } from './list-navigation-item.directive';\nimport { AXListNavigationDirective } from './list-navigation.directive';\n\nconst COMPONENT = [AXListNavigationDirective, AXListNavigationItemDirective];\n\nconst MODULES = [CommonModule];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXListNavigationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAkBa,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;QAKU,IAAA,CAAA,SAAS,GAAG,eAAe,CAAC,6BAA6B,iFAAI,WAAW,EAAE,IAAI,EAAA,CAAG;AACjF,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACvC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,CAAC,kFAAC;QACvB,IAAA,CAAA,mBAAmB,GAAG,MAAM,EAAyC;QACrE,IAAA,CAAA,UAAU,GAAG,MAAM,EAA8B;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA4B,UAAU,kFAAC;AAElD,QAAA,IAAA,CAAA,YAAY,GAA0B;AAC5C,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,KAAK,EAAE,SAAS;SACjB;AAED,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAK;YACjB,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;gBACtC,IAAI,CAAC,QAAQ,CAAC,aAA6B,CAAC,QAAQ,GAAG,CAAC;AACzD,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;AACvB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,2EAAC;AAEF,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;YAC1B,IAAI,CAAC,UAAU,CAAC,aAA6B,CAAC,QAAQ,GAAG,CAAC,CAAC;YAE3D,IAAI,CAAC,UAAU,CAAC,aAA6B,CAAC,SAAS,GAAG,CAAC,CAAgB,KAAI;AAC9E,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAEzD,gBAAA,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,EAAE;oBACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACjD;AAEA,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACrC,oBAAA,QAAQ,CAAC,CAAC,GAAG;AACX,wBAAA,KAAK,WAAW;AACd,4BAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;4BACnC;AACF,wBAAA,KAAK,SAAS;AACZ,4BAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;4BACjC;AACF,wBAAA,KAAK,WAAW;4BACd,IAAI,CAAC,uBAAuB,EAAE;4BAC9B;;gBAEN;AAAO,qBAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,EAAE;AAC9C,oBAAA,QAAQ,CAAC,CAAC,GAAG;AACX,wBAAA,KAAK,YAAY;AACf,4BAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;4BACnC;AACF,wBAAA,KAAK,WAAW;AACd,4BAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;4BACjC;AACF,wBAAA,KAAK,SAAS;4BACZ,IAAI,CAAC,uBAAuB,EAAE;4BAC9B;;gBAEN;AACF,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;AA0CH,IAAA;AArFC,IAAA,IAAI;AAOJ,IAAA,KAAK;AAsCG,IAAA,iBAAiB,CAAC,CAAS,EAAA;QACjC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE/C,IAAI,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE;AAC7C,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC;AAAO,aAAA,IAAI,CAAC,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAChF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC;IACF;IAEQ,uBAAuB,GAAA;QAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE/C,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,uBAAuB,EAAE;AAC5F,QAAA,IAAI,CAAC,qBAAqB;YAAE;QAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,iBAAiB,KAAK,qBAAqB,CAAC;AACpG,QAAA,IAAI,CAAC,UAAU;YAAE;QACjB,UAAU,CAAC,MAAK;AACb,YAAA,UAAU,CAAC,QAAQ,CAAC,aAAiC,CAAC,KAAK,EAAE;AAChE,QAAA,CAAC,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,aAAiC,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;IAC1F;AAEA,IAAA,YAAY,CAAC,KAAa,EAAA;AACxB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,aAA4B;AACnF,QAAA,IAAI,CAAC,YAAY;YAAE;QACnB,UAAU,CAAC,MAAK;YACd,YAAY,CAAC,KAAK,EAAE;AACtB,QAAA,CAAC,CAAC;AACF,QAAA,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;IAChD;AAEA,IAAA,UAAU,CAAC,CAAgC,EAAA;QACzC,UAAU,CAAC,MAAK;AACb,YAAA,CAAC,CAAC,QAAQ,CAAC,aAA6B,CAAC,KAAK,EAAE;AACnD,QAAA,CAAC,CAAC;QACD,CAAC,CAAC,QAAQ,CAAC,aAA6B,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;IAC7E;8GAjGW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,iVACA,6BAA6B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FADtD,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,kBAAkB;AAC7B,iBAAA;AAEqC,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,6BAA6B,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,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,EAAA,CAAA;;MCX7E,6BAA6B,CAAA;AAJ1C,IAAA,WAAA,GAAA;AAKE,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,+EAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,CAAC,4EAAC;AACjB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,IAAI,8FAAC;QACtC,IAAA,CAAA,UAAU,GAAG,MAAM,EAA8B;AAEzC,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC1C,QAAA,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAExG,QAAA,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,MAAK;YAC1B,IAAI,CAAC,QAAQ,CAAC,aAA6B,CAAC,SAAS,GAAG,CAAC,CAAgB,KAAI;AAC5E,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAC3D,YAAA,CAAC;YAEA,IAAI,CAAC,QAAQ,CAAC,aAA6B,CAAC,OAAO,GAAG,MAAK;AAC1D,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC3C,YAAA,CAAC;YAEA,IAAI,CAAC,QAAQ,CAAC,aAA6B,CAAC,MAAM,GAAG,MAAK;AACzD,gBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;AAC1B,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,iBAAiB;gBAAE;YACnD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;AAC/E,QAAA,CAAC,CAAC;AACH,IAAA;AAjBC,IAAA,KAAK;8GAXM,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA;;;ACFD,MAAM,SAAS,GAAG,CAAC,yBAAyB,EAAE,6BAA6B,CAAC;AAE5E,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC;MAOjB,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAAtB,sBAAsB,EAAA,OAAA,EAAA,CAPlB,YAAY,EAFV,yBAAyB,EAAE,6BAA6B,CAAA,EAAA,OAAA,EAAA,CAAxD,yBAAyB,EAAE,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAS9D,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJpB,OAAO,CAAA,EAAA,CAAA,CAAA;;2FAIT,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA;;;ACbD;;AAEG;;;;"}
1
+ {"version":3,"file":"acorex-cdk-list-navigation.mjs","sources":["../tmp-esm2022/list-navigation/lib/list-navigation.directive.js","../tmp-esm2022/list-navigation/lib/list-navigation-item.directive.js","../tmp-esm2022/list-navigation/lib/list-navigation.module.js","../tmp-esm2022/list-navigation/acorex-cdk-list-navigation.js"],"sourcesContent":["import { afterNextRender, contentChildren, Directive, effect, ElementRef, inject, input, output, signal, } from '@angular/core';\nimport { AXListNavigationItemDirective } from './list-navigation-item.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXListNavigationDirective {\n constructor() {\n this.childElem = contentChildren(AXListNavigationItemDirective, ...(ngDevMode ? [{ debugName: \"childElem\", descendants: true }] : [{ descendants: true }]));\n this.elementRef = inject(ElementRef);\n this.activeIndex = signal(0, ...(ngDevMode ? [{ debugName: \"activeIndex\" }] : []));\n this.onNavigationChanged = output();\n this.onKeypress = output();\n this.orientation = input('vertical', ...(ngDevMode ? [{ debugName: \"orientation\" }] : []));\n this.scrollOption = {\n behavior: 'smooth',\n block: 'nearest',\n };\n this.#eff = effect(() => {\n this.childElem().forEach((item, index) => {\n item.itemElem.nativeElement.tabIndex = 0;\n item.index.set(index);\n });\n }, ...(ngDevMode ? [{ debugName: \"#eff\" }] : []));\n this.#init = afterNextRender(() => {\n this.elementRef.nativeElement.tabIndex = -1;\n this.elementRef.nativeElement.onkeydown = (e) => {\n this.onKeypress.emit({ component: this, nativeEvent: e });\n if (e.key === 'Tab') {\n this.onNavigationChanged.emit({ sender: this });\n }\n if (this.orientation() === 'vertical') {\n switch (e.key) {\n case 'ArrowDown':\n this.navigationHandler('ArrowDown');\n break;\n case 'ArrowUp':\n this.navigationHandler('ArrowUp');\n break;\n case 'ArrowLeft':\n this.parentNavigationHandler();\n break;\n }\n }\n else if (this.orientation() === 'horizontal') {\n switch (e.key) {\n case 'ArrowRight':\n this.navigationHandler('ArrowDown');\n break;\n case 'ArrowLeft':\n this.navigationHandler('ArrowUp');\n break;\n case 'ArrowUp':\n this.parentNavigationHandler();\n break;\n }\n }\n };\n });\n }\n #eff;\n #init;\n navigationHandler(e) {\n this.onNavigationChanged.emit({ sender: this });\n if (e === 'ArrowUp' && this.activeIndex() > 0) {\n this.activeIndex.update((prev) => prev - 1);\n this.focusOnIndex(this.activeIndex());\n }\n else if (e === 'ArrowDown' && this.activeIndex() < this.childElem().length - 1) {\n this.activeIndex.update((prev) => prev + 1);\n this.focusOnIndex(this.activeIndex());\n }\n }\n parentNavigationHandler() {\n this.onNavigationChanged.emit({ sender: this });\n const selectedItemParentKey = this.childElem()[this.activeIndex()].navigationParentItemKey();\n if (!selectedItemParentKey)\n return;\n const parentElem = this.childElem().find((item) => item.navigationItemKey === selectedItemParentKey);\n if (!parentElem)\n return;\n setTimeout(() => {\n parentElem.itemElem.nativeElement.focus();\n });\n parentElem.itemElem.nativeElement.scrollIntoView(this.scrollOption);\n }\n focusOnIndex(index) {\n const selectedItem = this.childElem()[index]?.itemElem.nativeElement;\n if (!selectedItem)\n return;\n setTimeout(() => {\n selectedItem.focus();\n });\n selectedItem.scrollIntoView(this.scrollOption);\n }\n navigateTo(e) {\n setTimeout(() => {\n e.itemElem.nativeElement.focus();\n });\n e.itemElem.nativeElement.scrollIntoView(this.scrollOption);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.3.3\", type: AXListNavigationDirective, isStandalone: true, selector: \"[axListNavigation]\", inputs: { orientation: { classPropertyName: \"orientation\", publicName: \"orientation\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNavigationChanged: \"onNavigationChanged\", onKeypress: \"onKeypress\" }, queries: [{ propertyName: \"childElem\", predicate: AXListNavigationItemDirective, descendants: true, isSignal: true }], exportAs: [\"axListNavigation\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axListNavigation]',\n exportAs: 'axListNavigation',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1uYXZpZ2F0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9saXN0LW5hdmlnYXRpb24vc3JjL2xpYi9saXN0LW5hdmlnYXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFNakYsTUFBTSxPQUFPLHlCQUF5QjtJQUp0QztRQUtVLGNBQVMsR0FBRyxlQUFlLENBQUMsNkJBQTZCLDZDQUFJLFdBQVcsRUFBRSxJQUFJLE9BQW5CLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxHQUFDLENBQUM7UUFDbEYsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxDQUFDLHVEQUFDLENBQUM7UUFDeEIsd0JBQW1CLEdBQUcsTUFBTSxFQUF5QyxDQUFDO1FBQ3RFLGVBQVUsR0FBRyxNQUFNLEVBQThCLENBQUM7UUFDbEQsZ0JBQVcsR0FBRyxLQUFLLENBQTRCLFVBQVUsdURBQUMsQ0FBQztRQUVuRCxpQkFBWSxHQUEwQjtZQUM1QyxRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsU0FBUztTQUNqQixDQUFDO1FBRUYsU0FBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUE2QixDQUFDLFFBQVEsR0FBRyxDQUFD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Q0FBQyxDQUFDO1FBQ0YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUE2QixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUUsQ0FBQzs4R0FqR1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsaVZBQ0EsNkJBQTZCOzsyRkFEdEQseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxrQkFBa0I7aUJBQzdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhIdG1sRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExpc3ROYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vbGlzdC1uYXZpZ2F0aW9uLWl0ZW0uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4TGlzdE5hdmlnYXRpb25dJyxcbiAgZXhwb3J0QXM6ICdheExpc3ROYXZpZ2F0aW9uJyxcbn0pXG5leHBvcnQgY2xhc3MgQVhMaXN0TmF2aWdhdGlvbkRpcmVjdGl2ZSB7XG4gIHByaXZhdGUgY2hpbGRFbGVtID0gY29udGVudENoaWxkcmVuKEFYTGlzdE5hdmlnYXRpb25JdGVtRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pO1xuICBwcml2YXRlIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIGFjdGl2ZUluZGV4ID0gc2lnbmFsKDApO1xuICBvbk5hdmlnYXRpb25DaGFuZ2VkID0gb3V0cHV0PHsgc2VuZGVyOiBBWExpc3ROYXZpZ2F0aW9uRGlyZWN0aXZlIH0+KCk7XG4gIG9uS2V5cHJlc3MgPSBvdXRwdXQ8QVhIdG1sRXZlbnQ8S2V5Ym9hcmRFdmVudD4+KCk7XG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8J2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJz4oJ3ZlcnRpY2FsJyk7XG5cbiAgcHJpdmF0ZSBzY3JvbGxPcHRpb246IFNjcm9sbEludG9WaWV3T3B0aW9ucyA9IHtcbiAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgfTtcblxuICAjZWZmID0gZWZmZWN0KCgpID0+IHtcbiAgICB0aGlzLmNoaWxkRWxlbSgpLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAoaXRlbS5pdGVtRWxlbS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS50YWJJbmRleCA9IDA7XG4gICAgICBpdGVtLmluZGV4LnNldChpbmRleCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnRhYkluZGV4ID0gLTE7XG5cbiAgICAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9ua2V5ZG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLm9uS2V5cHJlc3MuZW1pdCh7IGNvbXBvbmVudDogdGhpcywgbmF0aXZlRXZlbnQ6IGUgfSk7XG5cbiAgICAgIGlmIChlLmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgdGhpcy5vbk5hdmlnYXRpb25DaGFuZ2VkLmVtaXQoeyBzZW5kZXI6IHRoaXMgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLm9yaWVudGF0aW9uKCkgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgc3dpdGNoIChlLmtleSkge1xuICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICB0aGlzLm5hdmlnYXRpb25IYW5kbGVyKCdBcnJvd0Rvd24nKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgdGhpcy5uYXZpZ2F0aW9uSGFuZGxlcignQXJyb3dVcCcpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgIHRoaXMucGFyZW50TmF2aWdhdGlvbkhhbmRsZXIoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3JpZW50YXRpb24oKSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgIHN3aXRjaCAoZS5rZXkpIHtcbiAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkhhbmRsZXIoJ0Fycm93RG93bicpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkhhbmRsZXIoJ0Fycm93VXAnKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgdGhpcy5wYXJlbnROYXZpZ2F0aW9uSGFuZGxlcigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9KTtcblxuICBwcml2YXRlIG5hdmlnYXRpb25IYW5kbGVyKGU6IHN0cmluZykge1xuICAgIHRoaXMub25OYXZpZ2F0aW9uQ2hhbmdlZC5lbWl0KHsgc2VuZGVyOiB0aGlzIH0pO1xuXG4gICAgaWYgKGUgPT09ICdBcnJvd1VwJyAmJiB0aGlzLmFjdGl2ZUluZGV4KCkgPiAwKSB7XG4gICAgICB0aGlzLmFjdGl2ZUluZGV4LnVwZGF0ZSgocHJldikgPT4gcHJldiAtIDEpO1xuICAgICAgdGhpcy5mb2N1c09uSW5kZXgodGhpcy5hY3RpdmVJbmRleCgpKTtcbiAgICB9IGVsc2UgaWYgKGUgPT09ICdBcnJvd0Rvd24nICYmIHRoaXMuYWN0aXZlSW5kZXgoKSA8IHRoaXMuY2hpbGRFbGVtKCkubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5hY3RpdmVJbmRleC51cGRhdGUoKHByZXYpID0+IHByZXYgKyAxKTtcbiAgICAgIHRoaXMuZm9jdXNPbkluZGV4KHRoaXMuYWN0aXZlSW5kZXgoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJlbnROYXZpZ2F0aW9uSGFuZGxlcigpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGlvbkNoYW5nZWQuZW1pdCh7IHNlbmRlcjogdGhpcyB9KTtcblxuICAgIGNvbnN0IHNlbGVjdGVkSXRlbVBhcmVudEtleSA9IHRoaXMuY2hpbGRFbGVtKClbdGhpcy5hY3RpdmVJbmRleCgpXS5uYXZpZ2F0aW9uUGFyZW50SXRlbUtleSgpO1xuICAgIGlmICghc2VsZWN0ZWRJdGVtUGFyZW50S2V5KSByZXR1cm47XG4gICAgY29uc3QgcGFyZW50RWxlbSA9IHRoaXMuY2hpbGRFbGVtKCkuZmluZCgoaXRlbSkgPT4gaXRlbS5uYXZpZ2F0aW9uSXRlbUtleSA9PT0gc2VsZWN0ZWRJdGVtUGFyZW50S2V5KTtcbiAgICBpZiAoIXBhcmVudEVsZW0pIHJldHVybjtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIChwYXJlbnRFbGVtLml0ZW1FbGVtLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEFyZWFFbGVtZW50KS5mb2N1cygpO1xuICAgIH0pO1xuICAgIChwYXJlbnRFbGVtLml0ZW1FbGVtLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEFyZWFFbGVtZW50KS5zY3JvbGxJbnRvVmlldyh0aGlzLnNjcm9sbE9wdGlvbik7XG4gIH1cblxuICBmb2N1c09uSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuY2hpbGRFbGVtKClbaW5kZXhdPy5pdGVtRWxlbS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIGlmICghc2VsZWN0ZWRJdGVtKSByZXR1cm47XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZWxlY3RlZEl0ZW0uZm9jdXMoKTtcbiAgICB9KTtcbiAgICBzZWxlY3RlZEl0ZW0uc2Nyb2xsSW50b1ZpZXcodGhpcy5zY3JvbGxPcHRpb24pO1xuICB9XG5cbiAgbmF2aWdhdGVUbyhlOiBBWExpc3ROYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgKGUuaXRlbUVsZW0ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9KTtcbiAgICAoZS5pdGVtRWxlbS5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5zY3JvbGxJbnRvVmlldyh0aGlzLnNjcm9sbE9wdGlvbik7XG4gIH1cbn1cbiJdfQ==","import { afterNextRender, Directive, ElementRef, inject, output, signal } from '@angular/core';\nimport { AXListNavigationDirective } from './list-navigation.directive';\nimport * as i0 from \"@angular/core\";\nexport class AXListNavigationItemDirective {\n constructor() {\n this.itemElem = inject(ElementRef);\n this.isActive = signal(false, ...(ngDevMode ? [{ debugName: \"isActive\" }] : []));\n this.index = signal(0, ...(ngDevMode ? [{ debugName: \"index\" }] : []));\n this.navigationItemKey = Math.random();\n this.navigationParentItemKey = signal(null, ...(ngDevMode ? [{ debugName: \"navigationParentItemKey\" }] : []));\n this.onKeypress = output();\n this.parent = inject(AXListNavigationDirective);\n this.injectItemInsideItem = inject(AXListNavigationItemDirective, { optional: true, skipSelf: true });\n this.#init = afterNextRender(() => {\n this.itemElem.nativeElement.onkeydown = (e) => {\n this.onKeypress.emit({ component: this, nativeEvent: e });\n };\n this.itemElem.nativeElement.onfocus = () => {\n this.isActive.set(true);\n this.parent.activeIndex.set(this.index());\n };\n this.itemElem.nativeElement.onblur = () => {\n this.isActive.set(false);\n };\n if (!this.injectItemInsideItem?.navigationItemKey)\n return;\n this.navigationParentItemKey.set(this.injectItemInsideItem.navigationItemKey);\n });\n }\n #init;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: AXListNavigationItemDirective, isStandalone: true, selector: \"[axListNavigationItem]\", outputs: { onKeypress: \"onKeypress\" }, exportAs: [\"axListNavigationItem\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationItemDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[axListNavigationItem]',\n exportAs: 'axListNavigationItem',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1uYXZpZ2F0aW9uLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2RrL2xpc3QtbmF2aWdhdGlvbi9zcmMvbGliL2xpc3QtbmF2aWdhdGlvbi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBTXhFLE1BQU0sT0FBTyw2QkFBNkI7SUFKMUM7UUFLRSxhQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlCLGFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxvREFBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxpREFBQyxDQUFDO1FBQ2xCLHNCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyw0QkFBdUIsR0FBRyxNQUFNLENBQUMsSUFBSSxtRUFBQyxDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxNQUFNLEVBQThCLENBQUM7UUFFMUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzNDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekcsVUFBSyxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUE2QixDQUFDLFNBQVMsR0FBRyxDQUFDLENBQWdCLEVBQUUsRUFBRTtnQkFDNUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBNkIsQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsYUFBNkIsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUM7WUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGlCQUFpQjtnQkFBRSxPQUFPO1lBQzFELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEYsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQWpCQyxLQUFLLENBZ0JGOzhHQTNCUSw2QkFBNkI7a0dBQTdCLDZCQUE2Qjs7MkZBQTdCLDZCQUE2QjtrQkFKekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYSHRtbEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IGFmdGVyTmV4dFJlbmRlciwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExpc3ROYXZpZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9saXN0LW5hdmlnYXRpb24uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F4TGlzdE5hdmlnYXRpb25JdGVtXScsXG4gIGV4cG9ydEFzOiAnYXhMaXN0TmF2aWdhdGlvbkl0ZW0nLFxufSlcbmV4cG9ydCBjbGFzcyBBWExpc3ROYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZSB7XG4gIGl0ZW1FbGVtID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBpc0FjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XG4gIGluZGV4ID0gc2lnbmFsKDApO1xuICBuYXZpZ2F0aW9uSXRlbUtleSA9IE1hdGgucmFuZG9tKCk7XG4gIG5hdmlnYXRpb25QYXJlbnRJdGVtS2V5ID0gc2lnbmFsKG51bGwpO1xuICBvbktleXByZXNzID0gb3V0cHV0PEFYSHRtbEV2ZW50PEtleWJvYXJkRXZlbnQ+PigpO1xuXG4gIHByaXZhdGUgcGFyZW50ID0gaW5qZWN0KEFYTGlzdE5hdmlnYXRpb25EaXJlY3RpdmUpO1xuICBwcml2YXRlIGluamVjdEl0ZW1JbnNpZGVJdGVtID0gaW5qZWN0KEFYTGlzdE5hdmlnYXRpb25JdGVtRGlyZWN0aXZlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcblxuICAjaW5pdCA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgKHRoaXMuaXRlbUVsZW0ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub25rZXlkb3duID0gKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIHRoaXMub25LZXlwcmVzcy5lbWl0KHsgY29tcG9uZW50OiB0aGlzLCBuYXRpdmVFdmVudDogZSB9KTtcbiAgICB9O1xuXG4gICAgKHRoaXMuaXRlbUVsZW0ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkub25mb2N1cyA9ICgpID0+IHtcbiAgICAgIHRoaXMuaXNBY3RpdmUuc2V0KHRydWUpO1xuICAgICAgdGhpcy5wYXJlbnQuYWN0aXZlSW5kZXguc2V0KHRoaXMuaW5kZXgoKSk7XG4gICAgfTtcblxuICAgICh0aGlzLml0ZW1FbGVtLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLm9uYmx1ciA9ICgpID0+IHtcbiAgICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLmluamVjdEl0ZW1JbnNpZGVJdGVtPy5uYXZpZ2F0aW9uSXRlbUtleSkgcmV0dXJuO1xuICAgIHRoaXMubmF2aWdhdGlvblBhcmVudEl0ZW1LZXkuc2V0KHRoaXMuaW5qZWN0SXRlbUluc2lkZUl0ZW0ubmF2aWdhdGlvbkl0ZW1LZXkpO1xuICB9KTtcbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXListNavigationItemDirective } from './list-navigation-item.directive';\nimport { AXListNavigationDirective } from './list-navigation.directive';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXListNavigationDirective, AXListNavigationItemDirective];\nconst MODULES = [CommonModule];\nexport class AXListNavigationModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationModule, imports: [CommonModule, AXListNavigationDirective, AXListNavigationItemDirective], exports: [AXListNavigationDirective, AXListNavigationItemDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListNavigationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1uYXZpZ2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2Nkay9saXN0LW5hdmlnYXRpb24vc3JjL2xpYi9saXN0LW5hdmlnYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV4RSxNQUFNLFNBQVMsR0FBRyxDQUFDLHlCQUF5QixFQUFFLDZCQUE2QixDQUFDLENBQUM7QUFFN0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQU8vQixNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7K0dBQXRCLHNCQUFzQixZQVBsQixZQUFZLEVBRlYseUJBQXlCLEVBQUUsNkJBQTZCLGFBQXhELHlCQUF5QixFQUFFLDZCQUE2QjsrR0FTOUQsc0JBQXNCLFlBSnBCLE9BQU87OzJGQUlULHNCQUFzQjtrQkFMbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWExpc3ROYXZpZ2F0aW9uSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vbGlzdC1uYXZpZ2F0aW9uLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFYTGlzdE5hdmlnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2xpc3QtbmF2aWdhdGlvbi5kaXJlY3RpdmUnO1xuXG5jb25zdCBDT01QT05FTlQgPSBbQVhMaXN0TmF2aWdhdGlvbkRpcmVjdGl2ZSwgQVhMaXN0TmF2aWdhdGlvbkl0ZW1EaXJlY3RpdmVdO1xuXG5jb25zdCBNT0RVTEVTID0gW0NvbW1vbk1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhMaXN0TmF2aWdhdGlvbk1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNkay1saXN0LW5hdmlnYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jZGsvbGlzdC1uYXZpZ2F0aW9uL3NyYy9hY29yZXgtY2RrLWxpc3QtbmF2aWdhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}