@bootkit/ng0 0.0.0-alpha.5 → 0.0.0-alpha.50

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 (108) hide show
  1. package/README.md +2 -2
  2. package/common/index.d.ts +288 -28
  3. package/components/accordion/index.d.ts +20 -10
  4. package/components/button/index.d.ts +7 -10
  5. package/components/card/index.d.ts +2 -6
  6. package/components/code/index.d.ts +2 -4
  7. package/components/collapse/index.d.ts +4 -41
  8. package/components/confirmation/index.d.ts +14 -16
  9. package/components/dropdown/index.d.ts +156 -0
  10. package/components/form-field/index.d.ts +24 -41
  11. package/components/list/index.d.ts +260 -0
  12. package/components/modal/index.d.ts +33 -11
  13. package/components/nav/index.d.ts +34 -32
  14. package/components/offcanvas/index.d.ts +13 -5
  15. package/components/pagination/index.d.ts +39 -13
  16. package/components/popover/index.d.ts +6 -6
  17. package/components/select/index.d.ts +160 -0
  18. package/components/sidenav/index.d.ts +122 -0
  19. package/components/stepper/index.d.ts +3 -4
  20. package/components/table/index.d.ts +203 -73
  21. package/components/toast/index.d.ts +14 -8
  22. package/components/tooltip/index.d.ts +36 -22
  23. package/components/vertical-menu/index.d.ts +79 -42
  24. package/data/index.d.ts +98 -38
  25. package/date/index.d.ts +34 -0
  26. package/fesm2022/bootkit-ng0-common.mjs +289 -12
  27. package/fesm2022/bootkit-ng0-common.mjs.map +1 -1
  28. package/fesm2022/bootkit-ng0-components-accordion.mjs +38 -33
  29. package/fesm2022/bootkit-ng0-components-accordion.mjs.map +1 -1
  30. package/fesm2022/bootkit-ng0-components-button.mjs +21 -29
  31. package/fesm2022/bootkit-ng0-components-button.mjs.map +1 -1
  32. package/fesm2022/bootkit-ng0-components-card.mjs +18 -26
  33. package/fesm2022/bootkit-ng0-components-card.mjs.map +1 -1
  34. package/fesm2022/bootkit-ng0-components-code.mjs +16 -20
  35. package/fesm2022/bootkit-ng0-components-code.mjs.map +1 -1
  36. package/fesm2022/bootkit-ng0-components-collapse.mjs +20 -132
  37. package/fesm2022/bootkit-ng0-components-collapse.mjs.map +1 -1
  38. package/fesm2022/bootkit-ng0-components-confirmation.mjs +24 -34
  39. package/fesm2022/bootkit-ng0-components-confirmation.mjs.map +1 -1
  40. package/fesm2022/bootkit-ng0-components-dropdown.mjs +308 -0
  41. package/fesm2022/bootkit-ng0-components-dropdown.mjs.map +1 -0
  42. package/fesm2022/bootkit-ng0-components-form-field.mjs +62 -84
  43. package/fesm2022/bootkit-ng0-components-form-field.mjs.map +1 -1
  44. package/fesm2022/bootkit-ng0-components-list.mjs +564 -0
  45. package/fesm2022/bootkit-ng0-components-list.mjs.map +1 -0
  46. package/fesm2022/bootkit-ng0-components-modal.mjs +48 -29
  47. package/fesm2022/bootkit-ng0-components-modal.mjs.map +1 -1
  48. package/fesm2022/bootkit-ng0-components-nav.mjs +60 -68
  49. package/fesm2022/bootkit-ng0-components-nav.mjs.map +1 -1
  50. package/fesm2022/bootkit-ng0-components-offcanvas.mjs +20 -13
  51. package/fesm2022/bootkit-ng0-components-offcanvas.mjs.map +1 -1
  52. package/fesm2022/bootkit-ng0-components-overlay.mjs.map +1 -1
  53. package/fesm2022/bootkit-ng0-components-pagination.mjs +61 -26
  54. package/fesm2022/bootkit-ng0-components-pagination.mjs.map +1 -1
  55. package/fesm2022/bootkit-ng0-components-popover.mjs +12 -12
  56. package/fesm2022/bootkit-ng0-components-popover.mjs.map +1 -1
  57. package/fesm2022/bootkit-ng0-components-select.mjs +448 -0
  58. package/fesm2022/bootkit-ng0-components-select.mjs.map +1 -0
  59. package/fesm2022/bootkit-ng0-components-sidenav.mjs +296 -0
  60. package/fesm2022/bootkit-ng0-components-sidenav.mjs.map +1 -0
  61. package/fesm2022/bootkit-ng0-components-stepper.mjs +15 -42
  62. package/fesm2022/bootkit-ng0-components-stepper.mjs.map +1 -1
  63. package/fesm2022/bootkit-ng0-components-table.mjs +304 -167
  64. package/fesm2022/bootkit-ng0-components-table.mjs.map +1 -1
  65. package/fesm2022/bootkit-ng0-components-toast.mjs +62 -84
  66. package/fesm2022/bootkit-ng0-components-toast.mjs.map +1 -1
  67. package/fesm2022/bootkit-ng0-components-tooltip.mjs +87 -74
  68. package/fesm2022/bootkit-ng0-components-tooltip.mjs.map +1 -1
  69. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs +171 -114
  70. package/fesm2022/bootkit-ng0-components-vertical-menu.mjs.map +1 -1
  71. package/fesm2022/bootkit-ng0-data.mjs +152 -39
  72. package/fesm2022/bootkit-ng0-data.mjs.map +1 -1
  73. package/fesm2022/bootkit-ng0-date.mjs +50 -0
  74. package/fesm2022/bootkit-ng0-date.mjs.map +1 -0
  75. package/fesm2022/bootkit-ng0-file.mjs.map +1 -1
  76. package/fesm2022/bootkit-ng0-form.mjs +575 -264
  77. package/fesm2022/bootkit-ng0-form.mjs.map +1 -1
  78. package/fesm2022/bootkit-ng0-http.mjs +61 -34
  79. package/fesm2022/bootkit-ng0-http.mjs.map +1 -1
  80. package/fesm2022/bootkit-ng0-layouts-layout1.mjs +317 -0
  81. package/fesm2022/bootkit-ng0-layouts-layout1.mjs.map +1 -0
  82. package/fesm2022/bootkit-ng0-localization-locales.mjs +103 -0
  83. package/fesm2022/bootkit-ng0-localization-locales.mjs.map +1 -0
  84. package/fesm2022/bootkit-ng0-localization.mjs +431 -105
  85. package/fesm2022/bootkit-ng0-localization.mjs.map +1 -1
  86. package/fesm2022/bootkit-ng0-platform-browser.mjs +179 -0
  87. package/fesm2022/bootkit-ng0-platform-browser.mjs.map +1 -0
  88. package/fesm2022/bootkit-ng0-routing.mjs +80 -0
  89. package/fesm2022/bootkit-ng0-routing.mjs.map +1 -0
  90. package/fesm2022/bootkit-ng0-script.mjs +3 -3
  91. package/fesm2022/bootkit-ng0-script.mjs.map +1 -1
  92. package/fesm2022/bootkit-ng0-security.mjs +175 -40
  93. package/fesm2022/bootkit-ng0-security.mjs.map +1 -1
  94. package/fesm2022/bootkit-ng0-utils.mjs +122 -0
  95. package/fesm2022/bootkit-ng0-utils.mjs.map +1 -0
  96. package/fesm2022/bootkit-ng0.mjs +2 -2
  97. package/fesm2022/bootkit-ng0.mjs.map +1 -1
  98. package/form/index.d.ts +153 -56
  99. package/http/index.d.ts +45 -14
  100. package/index.d.ts +2 -2
  101. package/layouts/layout1/index.d.ts +201 -0
  102. package/localization/index.d.ts +231 -42
  103. package/localization/locales/index.d.ts +7 -0
  104. package/package.json +57 -17
  105. package/platform/browser/index.d.ts +88 -0
  106. package/routing/index.d.ts +124 -0
  107. package/security/index.d.ts +76 -11
  108. package/utils/index.d.ts +63 -0
@@ -1,11 +1,20 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, EventEmitter, afterNextRender, effect, untracked, HostListener, Output, Directive, NgModule } from '@angular/core';
2
+ import { input, booleanAttribute, EventEmitter, afterNextRender, effect, untracked, HostListener, Output, Directive, NgModule } from '@angular/core';
3
3
 
4
4
  class OffcanvasDirective {
5
5
  _el;
6
6
  _renderer;
7
- show = input(false);
8
- hasBackdrop = input(false);
7
+ /**
8
+ * Whether to show the offcanvas element.
9
+ */
10
+ show = input(false, ...(ngDevMode ? [{ debugName: "show", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
11
+ /**
12
+ * Whether to show a backdrop element behind the offcanvas.
13
+ */
14
+ hasBackdrop = input(false, ...(ngDevMode ? [{ debugName: "hasBackdrop", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
15
+ /**
16
+ * Emitted when the backdrop is clicked.
17
+ */
9
18
  backdropClick = new EventEmitter;
10
19
  _firstShowEffectRun = true;
11
20
  _firstBackdropEffectRun = true;
@@ -56,8 +65,6 @@ class OffcanvasDirective {
56
65
  }
57
66
  });
58
67
  }
59
- ngOnInit() {
60
- }
61
68
  _createBackdrop() {
62
69
  if (!this._backdropElement) {
63
70
  this._backdropElement = this._renderer.createElement('div');
@@ -100,17 +107,17 @@ class OffcanvasDirective {
100
107
  ngOnDestroy() {
101
108
  this._destroyBackdrop();
102
109
  }
103
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OffcanvasDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
104
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: OffcanvasDirective, isStandalone: true, selector: "[ng0Offcanvas]", inputs: { show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { listeners: { "transitionend": "_onTransitionend($event)" } }, exportAs: ["ng0Offcanvas"], ngImport: i0 });
110
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
111
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: OffcanvasDirective, isStandalone: true, selector: "[ng0Offcanvas]", inputs: { show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, hasBackdrop: { classPropertyName: "hasBackdrop", publicName: "hasBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backdropClick: "backdropClick" }, host: { listeners: { "transitionend": "_onTransitionend($event)" } }, exportAs: ["ng0Offcanvas"], ngImport: i0 });
105
112
  }
106
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OffcanvasDirective, decorators: [{
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasDirective, decorators: [{
107
114
  type: Directive,
108
115
  args: [{
109
116
  selector: '[ng0Offcanvas]',
110
117
  exportAs: 'ng0Offcanvas',
111
118
  standalone: true,
112
119
  }]
113
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { backdropClick: [{
120
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { show: [{ type: i0.Input, args: [{ isSignal: true, alias: "show", required: false }] }], hasBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasBackdrop", required: false }] }], backdropClick: [{
114
121
  type: Output
115
122
  }], _onTransitionend: [{
116
123
  type: HostListener,
@@ -121,11 +128,11 @@ const items = [
121
128
  OffcanvasDirective,
122
129
  ];
123
130
  class OffcanvasModule {
124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OffcanvasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
125
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: OffcanvasModule, imports: [OffcanvasDirective], exports: [OffcanvasDirective] });
126
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OffcanvasModule });
131
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
132
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule, imports: [OffcanvasDirective], exports: [OffcanvasDirective] });
133
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule });
127
134
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: OffcanvasModule, decorators: [{
135
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: OffcanvasModule, decorators: [{
129
136
  type: NgModule,
130
137
  args: [{
131
138
  imports: items,
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-offcanvas.mjs","sources":["../../../projects/ng0/components/offcanvas/offcanvas.directive.ts","../../../projects/ng0/components/offcanvas/offcanvas.module.ts","../../../projects/ng0/components/offcanvas/bootkit-ng0-components-offcanvas.ts"],"sourcesContent":["import { OnInit, ElementRef, Renderer2, effect, HostListener, Directive, input, Output, EventEmitter, OnDestroy, afterNextRender, untracked } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[ng0Offcanvas]',\r\n exportAs: 'ng0Offcanvas',\r\n standalone: true,\r\n})\r\nexport class OffcanvasDirective implements OnInit, OnDestroy {\r\n public show = input(false);\r\n public hasBackdrop = input(false);\r\n\r\n @Output()\r\n public backdropClick = new EventEmitter<MouseEvent>;\r\n\r\n private _firstShowEffectRun = true;\r\n private _firstBackdropEffectRun = true;\r\n private _backdropElement?: any;\r\n private _backdropClickUnlistenFunc?: any;\r\n private _backdropTransitionendUnlistenFunc?: any;\r\n private addClass = (c: string) => this._renderer.addClass(this._el.nativeElement, c);\r\n\r\n constructor(private _el: ElementRef, private _renderer: Renderer2) {\r\n\r\n afterNextRender(() => {\r\n if (this.show() && this.hasBackdrop()) {\r\n this._createBackdrop();\r\n }\r\n });\r\n\r\n effect(() => {\r\n var show = this.show();\r\n var backdrop = untracked(() => this.hasBackdrop());\r\n\r\n if (this._firstShowEffectRun) {\r\n if (show) {\r\n this.addClass('show');\r\n }\r\n this._firstShowEffectRun = false;\r\n return;\r\n }\r\n\r\n\r\n if (show) {\r\n this.addClass('show');\r\n if (backdrop)\r\n this._createBackdrop();\r\n } else {\r\n this.addClass('hiding');\r\n this._hideBackdrop(); // we first hide backdrop, after hide transition completed, we destroy it.\r\n }\r\n });\r\n\r\n effect(() => {\r\n var backdrop = this.hasBackdrop();\r\n var show = untracked(() => this.show());\r\n\r\n if (this._firstBackdropEffectRun) {\r\n this._firstBackdropEffectRun = false;\r\n return;\r\n }\r\n\r\n if (show) {\r\n if (backdrop)\r\n this._createBackdrop();\r\n else\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private _createBackdrop() {\r\n if (!this._backdropElement) {\r\n this._backdropElement = this._renderer.createElement('div');\r\n ['offcanvas-backdrop', 'fade', 'show'].forEach(c => this._renderer.addClass(this._backdropElement, c));\r\n\r\n // Append the new element next to the host element\r\n const parent = this._renderer.parentNode(this._el.nativeElement);\r\n const nextSibling = this._renderer.nextSibling(this._el.nativeElement);\r\n this._renderer.insertBefore(parent, this._backdropElement, nextSibling);\r\n\r\n this._backdropClickUnlistenFunc = this._renderer.listen(this._backdropElement, 'click', (e) => {\r\n this.backdropClick.emit(e);\r\n });\r\n\r\n this._backdropTransitionendUnlistenFunc = this._renderer.listen(this._backdropElement, 'transitionend', (e) => {\r\n if (!this.show()) {\r\n this._destroyBackdrop();\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _destroyBackdrop() {\r\n if (this._backdropElement) {\r\n const parent = this._renderer.parentNode(this._el.nativeElement);\r\n this._renderer.removeChild(parent, this._backdropElement, false);\r\n this._backdropClickUnlistenFunc()\r\n\r\n this._backdropClickUnlistenFunc = undefined;\r\n this._backdropElement = undefined\r\n }\r\n }\r\n\r\n private _hideBackdrop() {\r\n if (this._backdropElement) {\r\n this._renderer.removeClass(this._backdropElement, 'show');\r\n }\r\n }\r\n\r\n @HostListener('transitionend', ['$event'])\r\n private _onTransitionend(e: TransitionEvent): void {\r\n if (!this.show() && e.propertyName == 'transform') {\r\n ['show', 'hiding'].forEach(x => this._renderer.removeClass(this._el.nativeElement, x));\r\n // if (this.backdrop())\r\n // this._destroyBackdrop();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._destroyBackdrop()\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { OffcanvasDirective } from './offcanvas.directive';\r\n\r\nconst items = [\r\n OffcanvasDirective,\r\n];\r\n\r\n@NgModule({\r\n imports: items,\r\n exports: items\r\n})\r\nexport class OffcanvasModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-offcanvas.mjs","sources":["../../../projects/ng0/components/offcanvas/offcanvas.directive.ts","../../../projects/ng0/components/offcanvas/offcanvas.module.ts","../../../projects/ng0/components/offcanvas/bootkit-ng0-components-offcanvas.ts"],"sourcesContent":["import { ElementRef, Renderer2, effect, HostListener, Directive, input, Output, EventEmitter, OnDestroy, afterNextRender, untracked, booleanAttribute } from '@angular/core';\n\n@Directive({\n selector: '[ng0Offcanvas]',\n exportAs: 'ng0Offcanvas',\n standalone: true,\n})\nexport class OffcanvasDirective implements OnDestroy {\n /**\n * Whether to show the offcanvas element.\n */\n public show = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to show a backdrop element behind the offcanvas.\n */\n public hasBackdrop = input(false, { transform: booleanAttribute });\n\n /**\n * Emitted when the backdrop is clicked.\n */\n @Output() public backdropClick = new EventEmitter<MouseEvent>;\n\n private _firstShowEffectRun = true;\n private _firstBackdropEffectRun = true;\n private _backdropElement?: any;\n private _backdropClickUnlistenFunc?: any;\n private _backdropTransitionendUnlistenFunc?: any;\n private addClass = (c: string) => this._renderer.addClass(this._el.nativeElement, c);\n\n constructor(private _el: ElementRef, private _renderer: Renderer2) {\n\n afterNextRender(() => {\n if (this.show() && this.hasBackdrop()) {\n this._createBackdrop();\n }\n });\n\n effect(() => {\n var show = this.show();\n var backdrop = untracked(() => this.hasBackdrop());\n\n if (this._firstShowEffectRun) {\n if (show) {\n this.addClass('show');\n }\n this._firstShowEffectRun = false;\n return;\n }\n\n\n if (show) {\n this.addClass('show');\n if (backdrop)\n this._createBackdrop();\n } else {\n this.addClass('hiding');\n this._hideBackdrop(); // we first hide backdrop, after hide transition completed, we destroy it.\n }\n });\n\n effect(() => {\n var backdrop = this.hasBackdrop();\n var show = untracked(() => this.show());\n\n if (this._firstBackdropEffectRun) {\n this._firstBackdropEffectRun = false;\n return;\n }\n\n if (show) {\n if (backdrop)\n this._createBackdrop();\n else\n this._destroyBackdrop();\n }\n });\n }\n\n\n private _createBackdrop() {\n if (!this._backdropElement) {\n this._backdropElement = this._renderer.createElement('div');\n ['offcanvas-backdrop', 'fade', 'show'].forEach(c => this._renderer.addClass(this._backdropElement, c));\n\n // Append the new element next to the host element\n const parent = this._renderer.parentNode(this._el.nativeElement);\n const nextSibling = this._renderer.nextSibling(this._el.nativeElement);\n this._renderer.insertBefore(parent, this._backdropElement, nextSibling);\n\n this._backdropClickUnlistenFunc = this._renderer.listen(this._backdropElement, 'click', (e) => {\n this.backdropClick.emit(e);\n });\n\n this._backdropTransitionendUnlistenFunc = this._renderer.listen(this._backdropElement, 'transitionend', (e) => {\n if (!this.show()) {\n this._destroyBackdrop();\n }\n });\n }\n }\n\n private _destroyBackdrop() {\n if (this._backdropElement) {\n const parent = this._renderer.parentNode(this._el.nativeElement);\n this._renderer.removeChild(parent, this._backdropElement, false);\n this._backdropClickUnlistenFunc()\n\n this._backdropClickUnlistenFunc = undefined;\n this._backdropElement = undefined\n }\n }\n\n private _hideBackdrop() {\n if (this._backdropElement) {\n this._renderer.removeClass(this._backdropElement, 'show');\n }\n }\n\n @HostListener('transitionend', ['$event'])\n private _onTransitionend(e: TransitionEvent): void {\n if (!this.show() && e.propertyName == 'transform') {\n ['show', 'hiding'].forEach(x => this._renderer.removeClass(this._el.nativeElement, x));\n // if (this.backdrop())\n // this._destroyBackdrop();\n }\n }\n\n ngOnDestroy(): void {\n this._destroyBackdrop()\n }\n}\n","import { NgModule } from '@angular/core';\nimport { OffcanvasDirective } from './offcanvas.directive';\n\nconst items = [\n OffcanvasDirective,\n];\n\n@NgModule({\n imports: items,\n exports: items\n})\nexport class OffcanvasModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-overlay.mjs","sources":["../../../projects/ng0/components/overlay/utils.ts","../../../projects/ng0/components/overlay/positions.ts","../../../projects/ng0/components/overlay/bootkit-ng0-components-overlay.ts"],"sourcesContent":["import { ConnectedPosition } from \"@angular/cdk/overlay\";\r\nimport { Alignment, flipPlacement, Placement } from \"@bootkit/ng0/common\";\r\n\r\n/**\r\n * Get the overlay position based on the provided placement and alignment.\r\n * \r\n * @param placement - The placement of the overlay (e.g., 'bottom', 'top', 'start', 'end').\r\n * @param alignment - The alignment of the overlay (e.g., 'start', 'center', 'end').\r\n * @returns The connected position for the overlay.\r\n */\r\nexport function getConnectedPosition(placement: Placement, alignment: Alignment): ConnectedPosition {\r\n let pos = {} as ConnectedPosition;\r\n\r\n switch (placement) {\r\n case 'bottom':\r\n pos.originY = 'bottom';\r\n pos.overlayY = 'top';\r\n pos.originX = alignment;\r\n pos.overlayX = alignment;\r\n break;\r\n case 'top':\r\n pos.originY = 'top';\r\n pos.overlayY = 'bottom';\r\n pos.originX = alignment;\r\n pos.overlayX = alignment;\r\n break;\r\n case 'start':\r\n pos.originX = 'start';\r\n pos.overlayX = 'end';\r\n\r\n if (alignment == 'start') {\r\n pos.originY = 'top';\r\n pos.overlayY = 'top';\r\n } else if (alignment == 'center') {\r\n pos.originY = 'center';\r\n pos.overlayY = 'center';\r\n } else {\r\n pos.originY = 'bottom';\r\n pos.overlayY = 'bottom';\r\n }\r\n break;\r\n case 'end':\r\n pos.originX = 'end';\r\n pos.overlayX = 'start';\r\n\r\n if (alignment == 'start') {\r\n pos.originY = 'top';\r\n pos.overlayY = 'top';\r\n } else if (alignment == 'center') {\r\n pos.originY = 'center';\r\n pos.overlayY = 'center';\r\n } else {\r\n pos.originY = 'bottom';\r\n pos.overlayY = 'bottom';\r\n }\r\n break;\r\n }\r\n\r\n return pos;\r\n}\r\n\r\nexport function getConnectedPositions(placement: Placement, alignment: Alignment, includeFlippedPlacement = true): ConnectedPosition[] {\r\n return [\r\n getConnectedPosition(placement, alignment),\r\n ...(includeFlippedPlacement ? [getConnectedPosition(flipPlacement(placement), alignment)] : []),\r\n ] ;\r\n}\r\n","import { getConnectedPosition, getConnectedPositions } from \"./utils\";\r\n\r\n// Positions\r\nexport const START_START_POS = getConnectedPosition('start', 'start');\r\nexport const START_CENTER_POS = getConnectedPosition('start', 'center');\r\nexport const START_END_POS = getConnectedPosition('start', 'end');\r\n\r\nexport const END_START_POS = getConnectedPosition('end', 'start');\r\nexport const END_CENTER_POS = getConnectedPosition('end', 'center');\r\nexport const END_END_POS = getConnectedPosition('end', 'end');\r\n\r\nexport const TOP_START_POS = getConnectedPosition('top', 'start');\r\nexport const TOP_END_POS = getConnectedPosition('top', 'end');\r\nexport const TOP_CENTER_POS = getConnectedPosition('top', 'center');\r\n\r\nexport const BOTTOM_START_POS = getConnectedPosition('bottom', 'start');\r\nexport const BOTTOM_CENTER_POS = getConnectedPosition('bottom', 'center');\r\nexport const BOTTOM_END_POS = getConnectedPosition('bottom', 'end');\r\n\r\n\r\n// Flipped positions\r\nexport const START_START_FLIPPED_POS = getConnectedPositions('start', 'start');\r\nexport const START_CENTER_FLIPPED_POS = getConnectedPositions('start', 'center');\r\nexport const START_END_FLIPPED_POS = getConnectedPositions('start', 'end');\r\n\r\nexport const END_START_FLIPPED_POS = getConnectedPositions('end', 'start');\r\nexport const END_CENTER_FLIPPED_POS = getConnectedPositions('end', 'center');\r\nexport const END_END_FLIPPED_POS = getConnectedPositions('end', 'end');\r\n\r\nexport const TOP_START_FLIPPED_POS = getConnectedPositions('top', 'start');\r\nexport const TOP_END_FLIPPED_POS = getConnectedPositions('top', 'end');\r\nexport const TOP_CENTER_FLIPPED_POS = getConnectedPositions('top', 'center');\r\n\r\nexport const BOTTOM_START_FLIPPED_POS = getConnectedPositions('bottom', 'start');\r\nexport const BOTTOM_CENTER_FLIPPED_POS = getConnectedPositions('bottom', 'center');\r\nexport const BOTTOM_END_FLIPPED_POS = getConnectedPositions('bottom', 'end');","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootkit-ng0-components-overlay.mjs","sources":["../../../projects/ng0/components/overlay/utils.ts","../../../projects/ng0/components/overlay/positions.ts","../../../projects/ng0/components/overlay/bootkit-ng0-components-overlay.ts"],"sourcesContent":["import { ConnectedPosition } from \"@angular/cdk/overlay\";\nimport { Alignment, flipPlacement, Placement } from \"@bootkit/ng0/common\";\n\n/**\n * Get the overlay position based on the provided placement and alignment.\n * \n * @param placement - The placement of the overlay (e.g., 'bottom', 'top', 'start', 'end').\n * @param alignment - The alignment of the overlay (e.g., 'start', 'center', 'end').\n * @returns The connected position for the overlay.\n */\nexport function getConnectedPosition(placement: Placement, alignment: Alignment): ConnectedPosition {\n let pos = {} as ConnectedPosition;\n\n switch (placement) {\n case 'bottom':\n pos.originY = 'bottom';\n pos.overlayY = 'top';\n pos.originX = alignment;\n pos.overlayX = alignment;\n break;\n case 'top':\n pos.originY = 'top';\n pos.overlayY = 'bottom';\n pos.originX = alignment;\n pos.overlayX = alignment;\n break;\n case 'start':\n pos.originX = 'start';\n pos.overlayX = 'end';\n\n if (alignment == 'start') {\n pos.originY = 'top';\n pos.overlayY = 'top';\n } else if (alignment == 'center') {\n pos.originY = 'center';\n pos.overlayY = 'center';\n } else {\n pos.originY = 'bottom';\n pos.overlayY = 'bottom';\n }\n break;\n case 'end':\n pos.originX = 'end';\n pos.overlayX = 'start';\n\n if (alignment == 'start') {\n pos.originY = 'top';\n pos.overlayY = 'top';\n } else if (alignment == 'center') {\n pos.originY = 'center';\n pos.overlayY = 'center';\n } else {\n pos.originY = 'bottom';\n pos.overlayY = 'bottom';\n }\n break;\n }\n\n return pos;\n}\n\nexport function getConnectedPositions(placement: Placement, alignment: Alignment, includeFlippedPlacement = true): ConnectedPosition[] {\n return [\n getConnectedPosition(placement, alignment),\n ...(includeFlippedPlacement ? [getConnectedPosition(flipPlacement(placement), alignment)] : []),\n ] ;\n}\n","import { getConnectedPosition, getConnectedPositions } from \"./utils\";\n\n// Positions\nexport const START_START_POS = getConnectedPosition('start', 'start');\nexport const START_CENTER_POS = getConnectedPosition('start', 'center');\nexport const START_END_POS = getConnectedPosition('start', 'end');\n\nexport const END_START_POS = getConnectedPosition('end', 'start');\nexport const END_CENTER_POS = getConnectedPosition('end', 'center');\nexport const END_END_POS = getConnectedPosition('end', 'end');\n\nexport const TOP_START_POS = getConnectedPosition('top', 'start');\nexport const TOP_END_POS = getConnectedPosition('top', 'end');\nexport const TOP_CENTER_POS = getConnectedPosition('top', 'center');\n\nexport const BOTTOM_START_POS = getConnectedPosition('bottom', 'start');\nexport const BOTTOM_CENTER_POS = getConnectedPosition('bottom', 'center');\nexport const BOTTOM_END_POS = getConnectedPosition('bottom', 'end');\n\n\n// Flipped positions\nexport const START_START_FLIPPED_POS = getConnectedPositions('start', 'start');\nexport const START_CENTER_FLIPPED_POS = getConnectedPositions('start', 'center');\nexport const START_END_FLIPPED_POS = getConnectedPositions('start', 'end');\n\nexport const END_START_FLIPPED_POS = getConnectedPositions('end', 'start');\nexport const END_CENTER_FLIPPED_POS = getConnectedPositions('end', 'center');\nexport const END_END_FLIPPED_POS = getConnectedPositions('end', 'end');\n\nexport const TOP_START_FLIPPED_POS = getConnectedPositions('top', 'start');\nexport const TOP_END_FLIPPED_POS = getConnectedPositions('top', 'end');\nexport const TOP_CENTER_FLIPPED_POS = getConnectedPositions('top', 'center');\n\nexport const BOTTOM_START_FLIPPED_POS = getConnectedPositions('bottom', 'start');\nexport const BOTTOM_CENTER_FLIPPED_POS = getConnectedPositions('bottom', 'center');\nexport const BOTTOM_END_FLIPPED_POS = getConnectedPositions('bottom', 'end');","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,20 +1,47 @@
1
+ import { CommonModule } from '@angular/common';
1
2
  import * as i0 from '@angular/core';
2
- import { EventEmitter, input, computed, Output, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
+ import { input, EventEmitter, computed, Output, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
4
+ import { TranslatePipe } from '@bootkit/ng0/localization';
3
5
 
4
6
  class PaginationComponent {
5
- itemClick = new EventEmitter();
6
- totalRecords = input.required();
7
- pageSize = input(10);
8
7
  /**
9
- * Selected page. starts from 1.
8
+ * Total number of records.
9
+ */
10
+ totalRecords = input.required(...(ngDevMode ? [{ debugName: "totalRecords" }] : []));
11
+ /**
12
+ * Page size. Number of items in each page.
13
+ */
14
+ pageSize = input(10, ...(ngDevMode ? [{ debugName: "pageSize" }] : []));
15
+ /**
16
+ * Zero-based index of the selected page.
17
+ */
18
+ selectedPage = input(0, ...(ngDevMode ? [{ debugName: "selectedPage" }] : []));
19
+ /**
20
+ * Maximum number of visible pages.
21
+ * Default is 10.
22
+ */
23
+ maxVisiblePages = input(10, ...(ngDevMode ? [{ debugName: "maxVisiblePages" }] : []));
24
+ /**
25
+ * Show first and last buttons.
26
+ * Default is true.
27
+ */
28
+ showNextPreviousButtons = input(true, ...(ngDevMode ? [{ debugName: "showNextPreviousButtons" }] : []));
29
+ /**
30
+ * Show first and last buttons.
31
+ * Default is true.
32
+ */
33
+ showFirstLastButtons = input(true, ...(ngDevMode ? [{ debugName: "showFirstLastButtons" }] : []));
34
+ /**
35
+ * Total number of pages.
36
+ * This is a computed property based on totalRecords and pageSize.
37
+ * It is not an input property.
10
38
  */
11
- selectedPage = input(1);
12
- maxVisiblePages = input(10);
13
- showNextButton = input(true);
14
- showPreviousButton = input(true);
15
- showFirstButton = input(true);
16
- showLastButton = input(true);
17
39
  get totalPagesCount() { return this._totalPagesCount; }
40
+ /**
41
+ * Emits the selected page index when a page is clicked.
42
+ * The index starts from 1.
43
+ */
44
+ itemClick = new EventEmitter();
18
45
  _totalPagesCount;
19
46
  _visiblePages = computed(() => {
20
47
  let selectedPage = this.selectedPage();
@@ -27,45 +54,53 @@ class PaginationComponent {
27
54
  throw new Error('Page size must be a posotive integer.');
28
55
  }
29
56
  this._totalPagesCount = Math.ceil(totalRecords / pageSize);
30
- if (selectedPage < 1 || selectedPage > this._totalPagesCount) {
31
- throw new Error(`Selected page must be between 1 and ${this._totalPagesCount}.`);
57
+ if (selectedPage < 0 || selectedPage > this._totalPagesCount) {
58
+ throw new Error(`Selected page index must be between 0 and ${this._totalPagesCount - 1}.`);
32
59
  }
33
60
  let indices = [];
34
61
  let firstVisiblePage = selectedPage;
35
62
  let lastVisiblePage = firstVisiblePage;
36
63
  let maxVisiblePages = this.maxVisiblePages();
37
64
  indices.push(firstVisiblePage);
38
- for (let i = 1; i <= maxVisiblePages; i++) {
39
- if (lastVisiblePage < this._totalPagesCount) {
65
+ for (let i = 0; i < maxVisiblePages; i++) {
66
+ if (lastVisiblePage < this._totalPagesCount - 1) {
40
67
  lastVisiblePage++;
41
68
  indices.push(lastVisiblePage);
42
69
  }
43
70
  if (indices.length >= maxVisiblePages) {
44
71
  break;
45
72
  }
46
- if (firstVisiblePage > 1) {
73
+ if (firstVisiblePage > 0) {
47
74
  firstVisiblePage--;
48
75
  indices.unshift(firstVisiblePage);
49
76
  }
50
77
  }
51
78
  return indices;
52
- });
53
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PaginationComponent, isStandalone: true, selector: "ng0-pagination", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, selectedPage: { classPropertyName: "selectedPage", publicName: "selectedPage", isSignal: true, isRequired: false, transformFunction: null }, maxVisiblePages: { classPropertyName: "maxVisiblePages", publicName: "maxVisiblePages", isSignal: true, isRequired: false, transformFunction: null }, showNextButton: { classPropertyName: "showNextButton", publicName: "showNextButton", isSignal: true, isRequired: false, transformFunction: null }, showPreviousButton: { classPropertyName: "showPreviousButton", publicName: "showPreviousButton", isSignal: true, isRequired: false, transformFunction: null }, showFirstButton: { classPropertyName: "showFirstButton", publicName: "showFirstButton", isSignal: true, isRequired: false, transformFunction: null }, showLastButton: { classPropertyName: "showLastButton", publicName: "showLastButton", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, exportAs: ["ng0Pagination"], ngImport: i0, template: "@let _selectedPage = selectedPage();\r\n\r\n<nav>\r\n <ul class=\"pagination\">\r\n @if(showFirstButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage <= 1\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(1)\">\r\n <ng-content select=\"first\">\r\n First\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showPreviousButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage <= 1\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage - 1)\">\r\n <ng-content select=\"previous\">\r\n Previous\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @for (page of _visiblePages(); track page) {\r\n <li class=\"page-item\" [class.active]=\"_selectedPage === page\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showNextButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage >= _totalPagesCount\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage + 1)\">\r\n <ng-content select=\"next\">\r\n Next\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showLastButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage >= _totalPagesCount\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_totalPagesCount)\">\r\n <ng-content select=\"last\">\r\n Last\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</nav>", changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
+ }, ...(ngDevMode ? [{ debugName: "_visiblePages" }] : []));
80
+ _onPageChange(pageIndex) {
81
+ debugger;
82
+ console.log('click');
83
+ this.itemClick.emit(pageIndex);
84
+ }
85
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
86
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: PaginationComponent, isStandalone: true, selector: "ng0-pagination", inputs: { totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: true, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, selectedPage: { classPropertyName: "selectedPage", publicName: "selectedPage", isSignal: true, isRequired: false, transformFunction: null }, maxVisiblePages: { classPropertyName: "maxVisiblePages", publicName: "maxVisiblePages", isSignal: true, isRequired: false, transformFunction: null }, showNextPreviousButtons: { classPropertyName: "showNextPreviousButtons", publicName: "showNextPreviousButtons", isSignal: true, isRequired: false, transformFunction: null }, showFirstLastButtons: { classPropertyName: "showFirstLastButtons", publicName: "showFirstLastButtons", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemClick: "itemClick" }, exportAs: ["ng0Pagination"], ngImport: i0, template: "@let _selectedPage = selectedPage();\n\n<nav>\n <ul class=\"pagination\">\n @if(showFirstLastButtons() || showFirstLastButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage <= 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(1)\">\n <ng-content select=\"first\">\n {{'first' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @if(showNextPreviousButtons() || showNextPreviousButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage <= 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage! - 1)\">\n <ng-content select=\"previous\">\n {{'previous' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @for (page of _visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"_selectedPage === page\">\n <button class=\"page-link\" (click)=\"itemClick.emit(page)\">\n {{page + 1}}\n </button>\n </li>\n }\n\n @if(showNextPreviousButtons() || showNextPreviousButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage >= _totalPagesCount - 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage! + 1)\">\n <ng-content select=\"next\">\n {{'next' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @if(showFirstLastButtons() || showFirstLastButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage >= _totalPagesCount - 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_totalPagesCount)\">\n <ng-content select=\"last\">\n {{'last' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n </ul>\n</nav>\n\n<style>\n .pagination {\n margin: 0;\n }\n</style>", styles: [".pagination{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: TranslatePipe, name: "ng0Translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
87
  }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationComponent, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PaginationComponent, decorators: [{
57
89
  type: Component,
58
- args: [{ selector: 'ng0-pagination', exportAs: 'ng0Pagination', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "@let _selectedPage = selectedPage();\r\n\r\n<nav>\r\n <ul class=\"pagination\">\r\n @if(showFirstButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage <= 1\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(1)\">\r\n <ng-content select=\"first\">\r\n First\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showPreviousButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage <= 1\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage - 1)\">\r\n <ng-content select=\"previous\">\r\n Previous\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @for (page of _visiblePages(); track page) {\r\n <li class=\"page-item\" [class.active]=\"_selectedPage === page\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showNextButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage >= _totalPagesCount\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage + 1)\">\r\n <ng-content select=\"next\">\r\n Next\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showLastButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage >= _totalPagesCount\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_totalPagesCount)\">\r\n <ng-content select=\"last\">\r\n Last\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</nav>" }]
59
- }], propDecorators: { itemClick: [{
90
+ args: [{ selector: 'ng0-pagination', exportAs: 'ng0Pagination', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
91
+ CommonModule,
92
+ TranslatePipe
93
+ ], template: "@let _selectedPage = selectedPage();\n\n<nav>\n <ul class=\"pagination\">\n @if(showFirstLastButtons() || showFirstLastButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage <= 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(1)\">\n <ng-content select=\"first\">\n {{'first' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @if(showNextPreviousButtons() || showNextPreviousButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage <= 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage! - 1)\">\n <ng-content select=\"previous\">\n {{'previous' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @for (page of _visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"_selectedPage === page\">\n <button class=\"page-link\" (click)=\"itemClick.emit(page)\">\n {{page + 1}}\n </button>\n </li>\n }\n\n @if(showNextPreviousButtons() || showNextPreviousButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage >= _totalPagesCount - 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage! + 1)\">\n <ng-content select=\"next\">\n {{'next' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @if(showFirstLastButtons() || showFirstLastButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage >= _totalPagesCount - 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_totalPagesCount)\">\n <ng-content select=\"last\">\n {{'last' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n </ul>\n</nav>\n\n<style>\n .pagination {\n margin: 0;\n }\n</style>" }]
94
+ }], propDecorators: { totalRecords: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRecords", required: true }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], selectedPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedPage", required: false }] }], maxVisiblePages: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxVisiblePages", required: false }] }], showNextPreviousButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNextPreviousButtons", required: false }] }], showFirstLastButtons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showFirstLastButtons", required: false }] }], itemClick: [{
60
95
  type: Output
61
96
  }] } });
62
97
 
63
98
  class PaginationModule {
64
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
65
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0.6", ngImport: i0, type: PaginationModule, imports: [PaginationComponent], exports: [PaginationComponent] });
66
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationModule });
99
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
100
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.11", ngImport: i0, type: PaginationModule, imports: [PaginationComponent], exports: [PaginationComponent] });
101
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PaginationModule, imports: [PaginationComponent] });
67
102
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PaginationModule, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PaginationModule, decorators: [{
69
104
  type: NgModule,
70
105
  args: [{
71
106
  imports: [
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-pagination.mjs","sources":["../../../projects/ng0/components/pagination/pagination.component.ts","../../../projects/ng0/components/pagination/pagination.component.html","../../../projects/ng0/components/pagination/pagination.module.ts","../../../projects/ng0/components/pagination/bootkit-ng0-components-pagination.ts"],"sourcesContent":["import { Component, ChangeDetectionStrategy, Input, input, computed, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ng0-pagination',\r\n exportAs: 'ng0Pagination',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n templateUrl: './pagination.component.html',\r\n standalone: true,\r\n})\r\nexport class PaginationComponent {\r\n @Output() itemClick = new EventEmitter<number>();\r\n totalRecords = input.required<number>();\r\n pageSize = input<number>(10);\r\n\r\n /** \r\n * Selected page. starts from 1.\r\n */\r\n selectedPage = input<number>(1);\r\n maxVisiblePages = input<number>(10);\r\n showNextButton = input<boolean>(true);\r\n showPreviousButton = input<boolean>(true);\r\n showFirstButton = input<boolean>(true);\r\n showLastButton = input<boolean>(true);\r\n get totalPagesCount() { return this._totalPagesCount; }\r\n\r\n protected _totalPagesCount!: number;\r\n\r\n protected _visiblePages = computed(() => {\r\n let selectedPage = this.selectedPage();\r\n let totalRecords = this.totalRecords();\r\n let pageSize = this.pageSize();\r\n\r\n if (!Number.isInteger(totalRecords) || totalRecords < 0) {\r\n throw new Error('Total items must be a posotive integer.');\r\n }\r\n\r\n if (!Number.isInteger(pageSize) || pageSize <= 0) {\r\n throw new Error('Page size must be a posotive integer.');\r\n }\r\n\r\n this._totalPagesCount = Math.ceil(totalRecords / pageSize);\r\n\r\n if (selectedPage < 1 || selectedPage > this._totalPagesCount) {\r\n throw new Error(`Selected page must be between 1 and ${this._totalPagesCount}.`);\r\n }\r\n\r\n let indices = [];\r\n let firstVisiblePage = selectedPage;\r\n let lastVisiblePage = firstVisiblePage;\r\n let maxVisiblePages = this.maxVisiblePages();\r\n indices.push(firstVisiblePage);\r\n\r\n for (let i = 1; i <= maxVisiblePages; i++) {\r\n if (lastVisiblePage < this._totalPagesCount) {\r\n lastVisiblePage++;\r\n indices.push(lastVisiblePage);\r\n }\r\n\r\n if (indices.length >= maxVisiblePages) {\r\n break;\r\n }\r\n\r\n if (firstVisiblePage > 1) {\r\n firstVisiblePage--;\r\n indices.unshift(firstVisiblePage);\r\n }\r\n }\r\n\r\n return indices;\r\n });\r\n}\r\n","@let _selectedPage = selectedPage();\r\n\r\n<nav>\r\n <ul class=\"pagination\">\r\n @if(showFirstButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage <= 1\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(1)\">\r\n <ng-content select=\"first\">\r\n First\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showPreviousButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage <= 1\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage - 1)\">\r\n <ng-content select=\"previous\">\r\n Previous\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @for (page of _visiblePages(); track page) {\r\n <li class=\"page-item\" [class.active]=\"_selectedPage === page\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(page)\">\r\n {{page}}\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showNextButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage >= _totalPagesCount\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage + 1)\">\r\n <ng-content select=\"next\">\r\n Next\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n\r\n @if(showLastButton()) {\r\n <li class=\"page-item\" [class.disabled]=\"_selectedPage >= _totalPagesCount\">\r\n <button class=\"page-link\" (click)=\"itemClick.emit(_totalPagesCount)\">\r\n <ng-content select=\"last\">\r\n Last\r\n </ng-content>\r\n </button>\r\n </li>\r\n }\r\n </ul>\r\n</nav>","import { NgModule } from '@angular/core';\r\nimport { PaginationComponent } from './pagination.component';\r\n\r\n@NgModule({\r\n imports: [\r\n PaginationComponent\r\n ],\r\n exports: [\r\n PaginationComponent\r\n ]\r\n})\r\nexport class PaginationModule {\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MASa,mBAAmB,CAAA;AACpB,IAAA,SAAS,GAAG,IAAI,YAAY,EAAU;AAChD,IAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAU;AACvC,IAAA,QAAQ,GAAG,KAAK,CAAS,EAAE,CAAC;AAE5B;;AAEG;AACH,IAAA,YAAY,GAAG,KAAK,CAAS,CAAC,CAAC;AAC/B,IAAA,eAAe,GAAG,KAAK,CAAS,EAAE,CAAC;AACnC,IAAA,cAAc,GAAG,KAAK,CAAU,IAAI,CAAC;AACrC,IAAA,kBAAkB,GAAG,KAAK,CAAU,IAAI,CAAC;AACzC,IAAA,eAAe,GAAG,KAAK,CAAU,IAAI,CAAC;AACtC,IAAA,cAAc,GAAG,KAAK,CAAU,IAAI,CAAC;IACrC,IAAI,eAAe,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAE3C,IAAA,gBAAgB;AAEhB,IAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACtC,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;AACtC,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;AAE9B,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE;AACvD,YAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC;;AAG5D,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE;AAChD,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC;;QAG1D,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAE1D,IAAI,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;YAC5D,MAAM,IAAI,KAAK,CAAC,CAAA,oCAAA,EAAuC,IAAI,CAAC,gBAAgB,CAAG,CAAA,CAAA,CAAC;;QAGlF,IAAI,OAAO,GAAG,EAAE;QAChB,IAAI,gBAAgB,GAAG,YAAY;QACnC,IAAI,eAAe,GAAG,gBAAgB;AACtC,QAAA,IAAI,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC5C,QAAA,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAE9B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC,EAAE,EAAE;AACzC,YAAA,IAAI,eAAe,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC3C,gBAAA,eAAe,EAAE;AACjB,gBAAA,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC;;AAG/B,YAAA,IAAI,OAAO,CAAC,MAAM,IAAI,eAAe,EAAE;gBACrC;;AAGF,YAAA,IAAI,gBAAgB,GAAG,CAAC,EAAE;AACxB,gBAAA,gBAAgB,EAAE;AAClB,gBAAA,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;;;AAIrC,QAAA,OAAO,OAAO;AAChB,KAAC,CAAC;uGA5DS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,myCCThC,mnDAoDM,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FD3CO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,YAChB,eAAe,EAAA,eAAA,EACR,uBAAuB,CAAC,MAAM,cAEnC,IAAI,EAAA,QAAA,EAAA,mnDAAA,EAAA;8BAGN,SAAS,EAAA,CAAA;sBAAlB;;;MECU,gBAAgB,CAAA;uGAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAhB,gBAAgB,EAAA,OAAA,EAAA,CANrB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAGnB,mBAAmB,CAAA,EAAA,CAAA;wGAGd,gBAAgB,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAR5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL;AACH,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL;AACH;AACJ,iBAAA;;;ACVD;;AAEG;;;;"}
1
+ {"version":3,"file":"bootkit-ng0-components-pagination.mjs","sources":["../../../projects/ng0/components/pagination/pagination.component.ts","../../../projects/ng0/components/pagination/pagination.component.html","../../../projects/ng0/components/pagination/pagination.module.ts","../../../projects/ng0/components/pagination/bootkit-ng0-components-pagination.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ChangeDetectionStrategy, input, computed, Output, EventEmitter } from '@angular/core';\nimport { TranslatePipe } from '@bootkit/ng0/localization';\n\n@Component({\n selector: 'ng0-pagination',\n exportAs: 'ng0Pagination',\n templateUrl: './pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n CommonModule,\n TranslatePipe\n ]\n})\nexport class PaginationComponent {\n /**\n * Total number of records.\n */\n public readonly totalRecords = input.required<number>();\n\n /**\n * Page size. Number of items in each page.\n */\n public readonly pageSize = input<number>(10);\n\n /** \n * Zero-based index of the selected page.\n */\n public readonly selectedPage = input<number>(0);\n\n /**\n * Maximum number of visible pages.\n * Default is 10.\n */\n public readonly maxVisiblePages = input<number>(10);\n\n /**\n * Show first and last buttons.\n * Default is true.\n */\n public readonly showNextPreviousButtons = input<boolean | undefined>(true);\n\n /**\n * Show first and last buttons.\n * Default is true.\n */\n public readonly showFirstLastButtons = input<boolean | undefined>(true);\n\n /**\n * Total number of pages.\n * This is a computed property based on totalRecords and pageSize.\n * It is not an input property.\n */\n public get totalPagesCount() { return this._totalPagesCount; }\n\n /** \n * Emits the selected page index when a page is clicked.\n * The index starts from 1.\n */\n @Output() public readonly itemClick = new EventEmitter<number>();\n\n protected _totalPagesCount!: number;\n\n protected _visiblePages = computed(() => {\n let selectedPage = this.selectedPage();\n let totalRecords = this.totalRecords();\n let pageSize = this.pageSize();\n\n if (!Number.isInteger(totalRecords) || totalRecords < 0) {\n throw new Error('Total items must be a posotive integer.');\n }\n\n if (!Number.isInteger(pageSize) || pageSize <= 0) {\n throw new Error('Page size must be a posotive integer.');\n }\n\n this._totalPagesCount = Math.ceil(totalRecords / pageSize);\n\n if (selectedPage < 0 || selectedPage > this._totalPagesCount) {\n throw new Error(`Selected page index must be between 0 and ${this._totalPagesCount - 1}.`);\n }\n\n let indices = [];\n let firstVisiblePage = selectedPage;\n let lastVisiblePage = firstVisiblePage;\n let maxVisiblePages = this.maxVisiblePages();\n indices.push(firstVisiblePage);\n\n for (let i = 0; i < maxVisiblePages; i++) {\n if (lastVisiblePage < this._totalPagesCount - 1) {\n lastVisiblePage++;\n indices.push(lastVisiblePage);\n }\n\n if (indices.length >= maxVisiblePages) {\n break;\n }\n\n if (firstVisiblePage > 0) {\n firstVisiblePage--;\n indices.unshift(firstVisiblePage);\n }\n }\n\n return indices;\n });\n\n public _onPageChange(pageIndex: number) {\n debugger\n console.log('click')\n this.itemClick.emit(pageIndex);\n }\n\n}\n","@let _selectedPage = selectedPage();\n\n<nav>\n <ul class=\"pagination\">\n @if(showFirstLastButtons() || showFirstLastButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage <= 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(1)\">\n <ng-content select=\"first\">\n {{'first' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @if(showNextPreviousButtons() || showNextPreviousButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage <= 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage! - 1)\">\n <ng-content select=\"previous\">\n {{'previous' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @for (page of _visiblePages(); track page) {\n <li class=\"page-item\" [class.active]=\"_selectedPage === page\">\n <button class=\"page-link\" (click)=\"itemClick.emit(page)\">\n {{page + 1}}\n </button>\n </li>\n }\n\n @if(showNextPreviousButtons() || showNextPreviousButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage >= _totalPagesCount - 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_selectedPage! + 1)\">\n <ng-content select=\"next\">\n {{'next' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n\n @if(showFirstLastButtons() || showFirstLastButtons() == undefined) {\n <li class=\"page-item\" [class.disabled]=\"_selectedPage == undefined || _selectedPage >= _totalPagesCount - 1\">\n <button class=\"page-link\" (click)=\"itemClick.emit(_totalPagesCount)\">\n <ng-content select=\"last\">\n {{'last' | ng0Translate}}\n </ng-content>\n </button>\n </li>\n }\n </ul>\n</nav>\n\n<style>\n .pagination {\n margin: 0;\n }\n</style>","import { NgModule } from '@angular/core';\nimport { PaginationComponent } from './pagination.component';\n\n@NgModule({\n imports: [\n PaginationComponent\n ],\n exports: [\n PaginationComponent\n ]\n})\nexport class PaginationModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -22,22 +22,22 @@ class PopoverWrapperComponent {
22
22
  this._renderer.setAttribute(e, 'role', 'tooltip');
23
23
  ['popover', 'fade', 'show', 'bs-popover-' + this.placement].forEach(c => this._renderer.addClass(e, c));
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PopoverWrapperComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.6", type: PopoverWrapperComponent, isStandalone: true, selector: "jss-popover-wrapper", exportAs: ["jssPopoverWrapper"], ngImport: i0, template: "<div class=\"popover-arrow\"></div>\r\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\r\n<div class=\"popover-body\">\r\n @if(_hasTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n }@else{\r\n {{content}}\r\n }\r\n</div>", styles: [":host{position:relative;margin:var(--bs-popover-arrow-height)}:host .popover-arrow{position:absolute}:host.bs-popover-top .popover-arrow{bottom:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-bottom .popover-arrow{top:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-start .popover-arrow{right:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-end .popover-arrow{left:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}[dir=rtl] :host.bs-popover-start .popover-arrow{right:unset!important;left:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}[dir=rtl] :host.bs-popover-end .popover-arrow{left:unset!important;right:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PopoverWrapperComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.11", type: PopoverWrapperComponent, isStandalone: true, selector: "jss-popover-wrapper", exportAs: ["jssPopoverWrapper"], ngImport: i0, template: "<div class=\"popover-arrow\"></div>\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\n<div class=\"popover-body\">\n @if(_hasTemplate) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n }@else{\n {{content}}\n }\n</div>", styles: [":host{position:relative;margin:var(--bs-popover-arrow-height)}:host .popover-arrow{position:absolute}:host.bs-popover-top .popover-arrow{bottom:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-bottom .popover-arrow{top:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-start .popover-arrow{right:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-end .popover-arrow{left:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}[dir=rtl] :host.bs-popover-start .popover-arrow{right:unset!important;left:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}[dir=rtl] :host.bs-popover-end .popover-arrow{left:unset!important;right:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PopoverWrapperComponent, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PopoverWrapperComponent, decorators: [{
29
29
  type: Component,
30
- args: [{ selector: 'jss-popover-wrapper', exportAs: 'jssPopoverWrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div class=\"popover-arrow\"></div>\r\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\r\n<div class=\"popover-body\">\r\n @if(_hasTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n }@else{\r\n {{content}}\r\n }\r\n</div>", styles: [":host{position:relative;margin:var(--bs-popover-arrow-height)}:host .popover-arrow{position:absolute}:host.bs-popover-top .popover-arrow{bottom:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-bottom .popover-arrow{top:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-start .popover-arrow{right:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-end .popover-arrow{left:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}[dir=rtl] :host.bs-popover-start .popover-arrow{right:unset!important;left:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}[dir=rtl] :host.bs-popover-end .popover-arrow{left:unset!important;right:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}\n"] }]
30
+ args: [{ selector: 'jss-popover-wrapper', exportAs: 'jssPopoverWrapper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<div class=\"popover-arrow\"></div>\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\n<div class=\"popover-body\">\n @if(_hasTemplate) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n }@else{\n {{content}}\n }\n</div>", styles: [":host{position:relative;margin:var(--bs-popover-arrow-height)}:host .popover-arrow{position:absolute}:host.bs-popover-top .popover-arrow{bottom:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-bottom .popover-arrow{top:calc(-1 * var(--bs-popover-arrow-height));left:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-start .popover-arrow{right:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}:host.bs-popover-end .popover-arrow{left:calc(-1 * var(--bs-popover-arrow-height));top:calc(50% - var(--bs-popover-arrow-width) / 2)}[dir=rtl] :host.bs-popover-start .popover-arrow{right:unset!important;left:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}[dir=rtl] :host.bs-popover-end .popover-arrow{left:unset!important;right:calc(-1 * var(--bs-popover-arrow-height));transform:rotate(180deg)}\n"] }]
31
31
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }] });
32
32
 
33
33
  class PopoverDirective {
34
34
  _overlayService;
35
35
  _elementRef;
36
36
  _viewRef;
37
- header = input();
38
- content = input(undefined, { alias: 'ng0Popover' });
39
- placement = input('bottom');
40
- triggerBy = input('click');
37
+ header = input(...(ngDevMode ? [undefined, { debugName: "header" }] : []));
38
+ content = input(undefined, ...(ngDevMode ? [{ debugName: "content", alias: 'ng0Popover' }] : [{ alias: 'ng0Popover' }]));
39
+ placement = input('bottom', ...(ngDevMode ? [{ debugName: "placement" }] : []));
40
+ triggerBy = input('click', ...(ngDevMode ? [{ debugName: "triggerBy" }] : []));
41
41
  _portal;
42
42
  _overlayRef;
43
43
  constructor(_overlayService, _elementRef, _viewRef) {
@@ -135,17 +135,17 @@ class PopoverDirective {
135
135
  ngOnDestroy() {
136
136
  this._disposeOverlay();
137
137
  }
138
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PopoverDirective, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
139
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.6", type: PopoverDirective, isStandalone: true, selector: "[ng0Popover]", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "ng0Popover", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, triggerBy: { classPropertyName: "triggerBy", publicName: "triggerBy", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onClick()", "dblclick": "_onDblclick()", "mouseenter": "_onMouseEnter()", "mouseleave": "_onMouseLeave()", "focus": "_onFocus()", "focusout": "_onFocusout()" } }, exportAs: ["ng0Popover"], ngImport: i0 });
138
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PopoverDirective, deps: [{ token: i1$1.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
139
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.11", type: PopoverDirective, isStandalone: true, selector: "[ng0Popover]", inputs: { header: { classPropertyName: "header", publicName: "header", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "ng0Popover", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, triggerBy: { classPropertyName: "triggerBy", publicName: "triggerBy", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "_onClick()", "dblclick": "_onDblclick()", "mouseenter": "_onMouseEnter()", "mouseleave": "_onMouseLeave()", "focus": "_onFocus()", "focusout": "_onFocusout()" } }, exportAs: ["ng0Popover"], ngImport: i0 });
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: PopoverDirective, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.11", ngImport: i0, type: PopoverDirective, decorators: [{
142
142
  type: Directive,
143
143
  args: [{
144
144
  selector: '[ng0Popover]',
145
145
  exportAs: 'ng0Popover',
146
146
  standalone: true
147
147
  }]
148
- }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { _onClick: [{
148
+ }], ctorParameters: () => [{ type: i1$1.Overlay }, { type: i0.ElementRef }, { type: i0.ViewContainerRef }], propDecorators: { header: [{ type: i0.Input, args: [{ isSignal: true, alias: "header", required: false }] }], content: [{ type: i0.Input, args: [{ isSignal: true, alias: "ng0Popover", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], triggerBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "triggerBy", required: false }] }], _onClick: [{
149
149
  type: HostListener,
150
150
  args: ['click']
151
151
  }], _onDblclick: [{
@@ -1 +1 @@
1
- {"version":3,"file":"bootkit-ng0-components-popover.mjs","sources":["../../../projects/ng0/components/popover/popover-wrapper/popover-wrapper.component.ts","../../../projects/ng0/components/popover/popover-wrapper/popover-wrapper.component.html","../../../projects/ng0/components/popover/popover.directive.ts","../../../projects/ng0/components/popover/bootkit-ng0-components-popover.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, OnInit, TemplateRef } from '@angular/core';\r\nimport { PopoverContent, PopoverPlacement } from '../types';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'jss-popover-wrapper',\r\n exportAs: 'jssPopoverWrapper',\r\n styleUrls: ['./popover-wrapper.component.scss'],\r\n templateUrl: './popover-wrapper.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: true,\r\n imports: [CommonModule]\r\n})\r\nexport class PopoverWrapperComponent implements OnInit {\r\n placement!: PopoverPlacement;\r\n header?: string;\r\n content: PopoverContent;\r\n protected _hasTemplate!: boolean;\r\n\r\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2,) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._hasTemplate = this.content instanceof TemplateRef;\r\n const e = this._elementRef.nativeElement;\r\n this._renderer.setAttribute(e, 'role', 'tooltip');\r\n ['popover', 'fade', 'show', 'bs-popover-' + this.placement].forEach(c => this._renderer.addClass(e, c));\r\n }\r\n}\r\n","<div class=\"popover-arrow\"></div>\r\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\r\n<div class=\"popover-body\">\r\n @if(_hasTemplate) {\r\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\r\n }@else{\r\n {{content}}\r\n }\r\n</div>","import {\r\n Directive, TemplateRef, ViewContainerRef, OnDestroy, ElementRef, HostListener, OnInit,\r\n input\r\n} from '@angular/core';\r\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { PopoverWrapperComponent } from './popover-wrapper/popover-wrapper.component';\r\nimport { PopoverContent, PopoverPlacement, PopoverTrigger } from './types';\r\n\r\n@Directive({\r\n selector: '[ng0Popover]',\r\n exportAs: 'ng0Popover',\r\n standalone: true\r\n})\r\nexport class PopoverDirective implements OnInit, OnDestroy {\r\n public header = input<string>();\r\n public content = input<PopoverContent>(undefined, { alias: 'ng0Popover' });\r\n public placement = input<PopoverPlacement>('bottom');\r\n public triggerBy = input<PopoverTrigger>('click');\r\n\r\n private _portal!: ComponentPortal<PopoverWrapperComponent>;\r\n private _overlayRef?: OverlayRef;\r\n\r\n constructor(\r\n private _overlayService: Overlay,\r\n private _elementRef: ElementRef,\r\n private _viewRef: ViewContainerRef) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this._portal = new ComponentPortal(PopoverWrapperComponent, this._viewRef);\r\n }\r\n\r\n private _createOverlay(): void {\r\n let wrapperInstance: PopoverWrapperComponent;\r\n\r\n const scrollStrategy = this._overlayService.scrollStrategies.reposition();\r\n const positionStrategy = this._overlayService.position()\r\n .flexibleConnectedTo(this._elementRef)\r\n .withPositions(this._getPositions());\r\n\r\n positionStrategy.positionChanges.subscribe(p => {\r\n // wrapperInstance.placement = (p.connectionPair as any).key;\r\n });\r\n\r\n this._overlayRef = this._overlayService.create({ scrollStrategy, positionStrategy });\r\n\r\n wrapperInstance = this._overlayRef.attach(this._portal).instance;\r\n wrapperInstance.header = this.header();\r\n wrapperInstance.content = this.content();\r\n wrapperInstance.placement = this.placement();\r\n }\r\n\r\n private _disposeOverlay(): void {\r\n if (this._overlayRef) {\r\n this._overlayRef.dispose();\r\n this._overlayRef = undefined;\r\n }\r\n }\r\n\r\n private _toggleOverlay() {\r\n if (this._overlayRef) {\r\n this._disposeOverlay();\r\n } else {\r\n this._createOverlay();\r\n }\r\n }\r\n\r\n private _getPositions(): any[] {\r\n const c = 'center', t = 'top', b = 'bottom', s = 'start', e = 'end';\r\n const top = { key: t, originX: c, originY: t, overlayX: c, overlayY: b, };\r\n const bottom = { key: b, originX: c, originY: b, overlayX: c, overlayY: t, };\r\n const start = { key: s, originX: s, originY: c, overlayX: e, overlayY: c, };\r\n const end = { key: e, originX: e, originY: c, overlayX: s, overlayY: c, };\r\n\r\n let positions: Array<any>;\r\n\r\n switch (this.placement()) {\r\n case 'bottom':\r\n positions = [bottom, top];\r\n break;\r\n case 'start':\r\n positions = [start, start];\r\n break;\r\n case 'end':\r\n positions = [end, start];\r\n break;\r\n case 'top':\r\n positions = [top, bottom];\r\n break;\r\n default:\r\n positions = [bottom, top];\r\n }\r\n\r\n return positions;\r\n }\r\n\r\n @HostListener('click') private _onClick(): void {\r\n if (this.triggerBy() === 'click') {\r\n this._toggleOverlay()\r\n }\r\n }\r\n\r\n @HostListener('dblclick') private _onDblclick(): void {\r\n if (this.triggerBy() === 'dblclick') {\r\n this._toggleOverlay()\r\n }\r\n }\r\n\r\n @HostListener('mouseenter') private _onMouseEnter(): void {\r\n if (this.triggerBy() === 'hover') {\r\n this._toggleOverlay()\r\n }\r\n }\r\n\r\n @HostListener('mouseleave') private _onMouseLeave(): void {\r\n if (this.triggerBy() === 'hover') {\r\n this._toggleOverlay()\r\n }\r\n }\r\n\r\n @HostListener('focus') private _onFocus(): void {\r\n if (this.triggerBy() === 'focus') {\r\n this._toggleOverlay()\r\n }\r\n }\r\n\r\n @HostListener('focusout') private _onFocusout(): void {\r\n if (this.triggerBy() === 'focus') {\r\n this._toggleOverlay()\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._disposeOverlay();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;MAaa,uBAAuB,CAAA;AAMZ,IAAA,WAAA;AAAiC,IAAA,SAAA;AALrD,IAAA,SAAS;AACT,IAAA,MAAM;AACN,IAAA,OAAO;AACG,IAAA,YAAY;IAEtB,WAAoB,CAAA,WAAuB,EAAU,SAAoB,EAAA;QAArD,IAAW,CAAA,WAAA,GAAX,WAAW;QAAsB,IAAS,CAAA,SAAA,GAAT,SAAS;;IAG9D,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,YAAY,WAAW;AACvD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;QACxC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;AACjD,QAAA,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;uGAblG,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbpC,wSAQM,EAAA,MAAA,EAAA,CAAA,g6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAEb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;+BACI,qBAAqB,EAAA,QAAA,EACrB,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wSAAA,EAAA,MAAA,EAAA,CAAA,g6BAAA,CAAA,EAAA;;;MEGd,gBAAgB,CAAA;AAUb,IAAA,eAAA;AACA,IAAA,WAAA;AACA,IAAA,QAAA;IAXL,MAAM,GAAG,KAAK,EAAU;IACxB,OAAO,GAAG,KAAK,CAAiB,SAAS,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACnE,IAAA,SAAS,GAAG,KAAK,CAAmB,QAAQ,CAAC;AAC7C,IAAA,SAAS,GAAG,KAAK,CAAiB,OAAO,CAAC;AAEzC,IAAA,OAAO;AACP,IAAA,WAAW;AAEnB,IAAA,WAAA,CACY,eAAwB,EACxB,WAAuB,EACvB,QAA0B,EAAA;QAF1B,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAQ,CAAA,QAAA,GAAR,QAAQ;;IAGpB,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC;;IAGtE,cAAc,GAAA;AAClB,QAAA,IAAI,eAAwC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,UAAU,EAAE;AACzE,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;AACjD,aAAA,mBAAmB,CAAC,IAAI,CAAC,WAAW;AACpC,aAAA,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAExC,QAAA,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAG;;AAE/C,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AAEpF,QAAA,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ;AAChE,QAAA,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACtC,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACxC,QAAA,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;;IAGxC,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;;;IAI5B,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,eAAe,EAAE;;aACnB;YACH,IAAI,CAAC,cAAc,EAAE;;;IAIrB,aAAa,GAAA;AACjB,QAAA,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK;QACnE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QACzE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QAC5E,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QAC3E,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;AAEzE,QAAA,IAAI,SAAqB;AAEzB,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACpB,YAAA,KAAK,QAAQ;AACT,gBAAA,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;gBACzB;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC1B;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;gBACxB;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;gBACzB;AACJ,YAAA;AACI,gBAAA,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAGjC,QAAA,OAAO,SAAS;;IAGW,QAAQ,GAAA;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;;;IAIK,WAAW,GAAA;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,cAAc,EAAE;;;IAIO,aAAa,GAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;;;IAIO,aAAa,GAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;;;IAIE,QAAQ,GAAA;AACnC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;;;IAIK,WAAW,GAAA;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;;;IAI7B,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,EAAE;;uGAxHjB,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE;AACf,iBAAA;sIAoFkC,QAAQ,EAAA,CAAA;sBAAtC,YAAY;uBAAC,OAAO;gBAMa,WAAW,EAAA,CAAA;sBAA5C,YAAY;uBAAC,UAAU;gBAMY,aAAa,EAAA,CAAA;sBAAhD,YAAY;uBAAC,YAAY;gBAMU,aAAa,EAAA,CAAA;sBAAhD,YAAY;uBAAC,YAAY;gBAMK,QAAQ,EAAA,CAAA;sBAAtC,YAAY;uBAAC,OAAO;gBAMa,WAAW,EAAA,CAAA;sBAA5C,YAAY;uBAAC,UAAU;;;AC/H5B;;AAEG;;;;"}
1
+ {"version":3,"file":"bootkit-ng0-components-popover.mjs","sources":["../../../projects/ng0/components/popover/popover-wrapper/popover-wrapper.component.ts","../../../projects/ng0/components/popover/popover-wrapper/popover-wrapper.component.html","../../../projects/ng0/components/popover/popover.directive.ts","../../../projects/ng0/components/popover/bootkit-ng0-components-popover.ts"],"sourcesContent":["import { Component, ElementRef, Renderer2, ChangeDetectionStrategy, OnInit, TemplateRef } from '@angular/core';\nimport { PopoverContent, PopoverPlacement } from '../types';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'jss-popover-wrapper',\n exportAs: 'jssPopoverWrapper',\n styleUrls: ['./popover-wrapper.component.scss'],\n templateUrl: './popover-wrapper.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule]\n})\nexport class PopoverWrapperComponent implements OnInit {\n placement!: PopoverPlacement;\n header?: string;\n content: PopoverContent;\n protected _hasTemplate!: boolean;\n\n constructor(private _elementRef: ElementRef, private _renderer: Renderer2,) {\n }\n\n ngOnInit(): void {\n this._hasTemplate = this.content instanceof TemplateRef;\n const e = this._elementRef.nativeElement;\n this._renderer.setAttribute(e, 'role', 'tooltip');\n ['popover', 'fade', 'show', 'bs-popover-' + this.placement].forEach(c => this._renderer.addClass(e, c));\n }\n}\n","<div class=\"popover-arrow\"></div>\n<h3 class=\"popover-header\" *ngIf=\"header\">{{header}}</h3>\n<div class=\"popover-body\">\n @if(_hasTemplate) {\n <ng-container [ngTemplateOutlet]=\"$any(content)\"></ng-container>\n }@else{\n {{content}}\n }\n</div>","import {\n Directive, TemplateRef, ViewContainerRef, OnDestroy, ElementRef, HostListener, OnInit,\n input\n} from '@angular/core';\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { PopoverWrapperComponent } from './popover-wrapper/popover-wrapper.component';\nimport { PopoverContent, PopoverPlacement, PopoverTrigger } from './types';\n\n@Directive({\n selector: '[ng0Popover]',\n exportAs: 'ng0Popover',\n standalone: true\n})\nexport class PopoverDirective implements OnInit, OnDestroy {\n public header = input<string>();\n public content = input<PopoverContent>(undefined, { alias: 'ng0Popover' });\n public placement = input<PopoverPlacement>('bottom');\n public triggerBy = input<PopoverTrigger>('click');\n\n private _portal!: ComponentPortal<PopoverWrapperComponent>;\n private _overlayRef?: OverlayRef;\n\n constructor(\n private _overlayService: Overlay,\n private _elementRef: ElementRef,\n private _viewRef: ViewContainerRef) {\n }\n\n ngOnInit(): void {\n this._portal = new ComponentPortal(PopoverWrapperComponent, this._viewRef);\n }\n\n private _createOverlay(): void {\n let wrapperInstance: PopoverWrapperComponent;\n\n const scrollStrategy = this._overlayService.scrollStrategies.reposition();\n const positionStrategy = this._overlayService.position()\n .flexibleConnectedTo(this._elementRef)\n .withPositions(this._getPositions());\n\n positionStrategy.positionChanges.subscribe(p => {\n // wrapperInstance.placement = (p.connectionPair as any).key;\n });\n\n this._overlayRef = this._overlayService.create({ scrollStrategy, positionStrategy });\n\n wrapperInstance = this._overlayRef.attach(this._portal).instance;\n wrapperInstance.header = this.header();\n wrapperInstance.content = this.content();\n wrapperInstance.placement = this.placement();\n }\n\n private _disposeOverlay(): void {\n if (this._overlayRef) {\n this._overlayRef.dispose();\n this._overlayRef = undefined;\n }\n }\n\n private _toggleOverlay() {\n if (this._overlayRef) {\n this._disposeOverlay();\n } else {\n this._createOverlay();\n }\n }\n\n private _getPositions(): any[] {\n const c = 'center', t = 'top', b = 'bottom', s = 'start', e = 'end';\n const top = { key: t, originX: c, originY: t, overlayX: c, overlayY: b, };\n const bottom = { key: b, originX: c, originY: b, overlayX: c, overlayY: t, };\n const start = { key: s, originX: s, originY: c, overlayX: e, overlayY: c, };\n const end = { key: e, originX: e, originY: c, overlayX: s, overlayY: c, };\n\n let positions: Array<any>;\n\n switch (this.placement()) {\n case 'bottom':\n positions = [bottom, top];\n break;\n case 'start':\n positions = [start, start];\n break;\n case 'end':\n positions = [end, start];\n break;\n case 'top':\n positions = [top, bottom];\n break;\n default:\n positions = [bottom, top];\n }\n\n return positions;\n }\n\n @HostListener('click') protected _onClick(): void {\n if (this.triggerBy() === 'click') {\n this._toggleOverlay()\n }\n }\n\n @HostListener('dblclick') protected _onDblclick(): void {\n if (this.triggerBy() === 'dblclick') {\n this._toggleOverlay()\n }\n }\n\n @HostListener('mouseenter') protected _onMouseEnter(): void {\n if (this.triggerBy() === 'hover') {\n this._toggleOverlay()\n }\n }\n\n @HostListener('mouseleave') protected _onMouseLeave(): void {\n if (this.triggerBy() === 'hover') {\n this._toggleOverlay()\n }\n }\n\n @HostListener('focus') protected _onFocus(): void {\n if (this.triggerBy() === 'focus') {\n this._toggleOverlay()\n }\n }\n\n @HostListener('focusout') protected _onFocusout(): void {\n if (this.triggerBy() === 'focus') {\n this._toggleOverlay()\n }\n }\n\n ngOnDestroy(): void {\n this._disposeOverlay();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;MAaa,uBAAuB,CAAA;AAMZ,IAAA,WAAA;AAAiC,IAAA,SAAA;AALrD,IAAA,SAAS;AACT,IAAA,MAAM;AACN,IAAA,OAAO;AACG,IAAA,YAAY;IAEtB,WAAA,CAAoB,WAAuB,EAAU,SAAoB,EAAA;QAArD,IAAA,CAAA,WAAW,GAAX,WAAW;QAAsB,IAAA,CAAA,SAAS,GAAT,SAAS;IAC9D;IAEA,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,YAAY,WAAW;AACvD,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa;QACxC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;AACjD,QAAA,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3G;wGAdS,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECbpC,wRAQM,EAAA,MAAA,EAAA,CAAA,g6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAEb,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBATnC,SAAS;+BACI,qBAAqB,EAAA,QAAA,EACrB,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wRAAA,EAAA,MAAA,EAAA,CAAA,g6BAAA,CAAA,EAAA;;;MEGd,gBAAgB,CAAA;AAUb,IAAA,eAAA;AACA,IAAA,WAAA;AACA,IAAA,QAAA;IAXL,MAAM,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,QAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAU;AACxB,IAAA,OAAO,GAAG,KAAK,CAAiB,SAAS,2CAAI,KAAK,EAAE,YAAY,EAAA,CAAA,GAAA,CAArB,EAAE,KAAK,EAAE,YAAY,EAAE,GAAC;AACnE,IAAA,SAAS,GAAG,KAAK,CAAmB,QAAQ,qDAAC;AAC7C,IAAA,SAAS,GAAG,KAAK,CAAiB,OAAO,qDAAC;AAEzC,IAAA,OAAO;AACP,IAAA,WAAW;AAEnB,IAAA,WAAA,CACY,eAAwB,EACxB,WAAuB,EACvB,QAA0B,EAAA;QAF1B,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACpB;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,eAAe,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC;IAC9E;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,eAAwC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,UAAU,EAAE;AACzE,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ;AACjD,aAAA,mBAAmB,CAAC,IAAI,CAAC,WAAW;AACpC,aAAA,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAExC,QAAA,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,IAAG;;AAE/C,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,gBAAgB,EAAE,CAAC;AAEpF,QAAA,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ;AAChE,QAAA,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AACtC,QAAA,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AACxC,QAAA,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;IAChD;IAEQ,eAAe,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS;QAChC;IACJ;IAEQ,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,eAAe,EAAE;QAC1B;aAAO;YACH,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEQ,aAAa,GAAA;AACjB,QAAA,MAAM,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK;QACnE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QACzE,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QAC5E,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;QAC3E,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG;AAEzE,QAAA,IAAI,SAAqB;AAEzB,QAAA,QAAQ,IAAI,CAAC,SAAS,EAAE;AACpB,YAAA,KAAK,QAAQ;AACT,gBAAA,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;gBACzB;AACJ,YAAA,KAAK,OAAO;AACR,gBAAA,SAAS,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;gBAC1B;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,SAAS,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;gBACxB;AACJ,YAAA,KAAK,KAAK;AACN,gBAAA,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;gBACzB;AACJ,YAAA;AACI,gBAAA,SAAS,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;;AAGjC,QAAA,OAAO,SAAS;IACpB;IAEiC,QAAQ,GAAA;AACrC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEoC,WAAW,GAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,UAAU,EAAE;YACjC,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEsC,aAAa,GAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEsC,aAAa,GAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEiC,QAAQ,GAAA;AACrC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEoC,WAAW,GAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,EAAE;YAC9B,IAAI,CAAC,cAAc,EAAE;QACzB;IACJ;IAEA,WAAW,GAAA;QACP,IAAI,CAAC,eAAe,EAAE;IAC1B;wGAzHS,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE;AACf,iBAAA;;sBAoFI,YAAY;uBAAC,OAAO;;sBAMpB,YAAY;uBAAC,UAAU;;sBAMvB,YAAY;uBAAC,YAAY;;sBAMzB,YAAY;uBAAC,YAAY;;sBAMzB,YAAY;uBAAC,OAAO;;sBAMpB,YAAY;uBAAC,UAAU;;;AC/H5B;;AAEG;;;;"}