@koalarx/ui 20.0.14 → 20.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
+ import { OnInit } from '@angular/core';
2
3
 
3
- declare class KlRoot {
4
+ declare class KlRoot implements OnInit {
4
5
  routerLoaderColor: i0.InputSignal<string>;
6
+ ngOnInit(): void;
5
7
  static ɵfac: i0.ɵɵFactoryDeclaration<KlRoot, never>;
6
8
  static ɵcmp: i0.ɵɵComponentDeclaration<KlRoot, "kl-root", never, { "routerLoaderColor": { "alias": "routerLoaderColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7
9
  }
@@ -9,6 +9,11 @@ import * as i1 from '@ngx-loading-bar/core';
9
9
 
10
10
  class KlRoot {
11
11
  routerLoaderColor = input('#6A1B9A');
12
+ ngOnInit() {
13
+ if (document.querySelector('html')?.getAttribute('data-theme') === null) {
14
+ document.querySelector('html')?.setAttribute('data-theme', 'light');
15
+ }
16
+ }
12
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: KlRoot, deps: [], target: i0.ɵɵFactoryTarget.Component });
13
18
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: KlRoot, isStandalone: true, selector: "kl-root", inputs: { routerLoaderColor: { classPropertyName: "routerLoaderColor", publicName: "routerLoaderColor", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ngx-loading-bar\n [color]=\"routerLoaderColor()\"\n height=\"4px\"\n [includeSpinner]=\"false\"\n/>\n\n<main class=\"overflow-x-hidden\">\n <kl-loader-page-content />\n <kl-snackbar-container />\n <kl-dialog-container />\n <kl-side-window-container />\n <div class=\"kl-generic-component-container\"></div>\n\n <ng-content />\n</main>\n", dependencies: [{ kind: "component", type: DialogContainer, selector: "kl-dialog-container" }, { kind: "ngmodule", type: LoadingBarRouterModule }, { kind: "component", type: i1.LoadingBarComponent, selector: "ngx-loading-bar" }, { kind: "component", type: SideWindowContainer, selector: "kl-side-window-container" }, { kind: "component", type: SnackbarContainer, selector: "kl-snackbar-container" }, { kind: "component", type: LoaderPageContent, selector: "kl-loader-page-content" }] });
14
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"koalarx-ui-core-components-kl-root.mjs","sources":["../../projects/koala-ui/core/components/kl-root/kl-root.ts","../../projects/koala-ui/core/components/kl-root/kl-root.html","../../projects/koala-ui/core/components/kl-root/koalarx-ui-core-components-kl-root.ts"],"sourcesContent":["import { Component, input } from '@angular/core';\nimport { DialogContainer } from '@koalarx/ui/core/components/dialog';\nimport { LoaderPageContent } from '@koalarx/ui/core/components/loader-page';\nimport { SideWindowContainer } from '@koalarx/ui/core/components/side-window';\nimport { SnackbarContainer } from '@koalarx/ui/core/components/snackbar';\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\n\n@Component({\n selector: 'kl-root',\n templateUrl: './kl-root.html',\n imports: [\n DialogContainer,\n LoadingBarRouterModule,\n SideWindowContainer,\n SnackbarContainer,\n LoaderPageContent,\n ],\n})\nexport class KlRoot {\n routerLoaderColor = input<string>('#6A1B9A');\n}\n","<ngx-loading-bar\n [color]=\"routerLoaderColor()\"\n height=\"4px\"\n [includeSpinner]=\"false\"\n/>\n\n<main class=\"overflow-x-hidden\">\n <kl-loader-page-content />\n <kl-snackbar-container />\n <kl-dialog-container />\n <kl-side-window-container />\n <div class=\"kl-generic-component-container\"></div>\n\n <ng-content />\n</main>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAkBa,MAAM,CAAA;AACjB,IAAA,iBAAiB,GAAG,KAAK,CAAS,SAAS,CAAC;uGADjC,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBnB,4VAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJI,eAAe,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,mBAAmB,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,iBAAiB,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,iBAAiB,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA;;2FAGR,MAAM,EAAA,UAAA,EAAA,CAAA;kBAXlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEV,OAAA,EAAA;wBACP,eAAe;wBACf,sBAAsB;wBACtB,mBAAmB;wBACnB,iBAAiB;wBACjB,iBAAiB;AAClB,qBAAA,EAAA,QAAA,EAAA,4VAAA,EAAA;;;AEhBH;;AAEG;;;;"}
1
+ {"version":3,"file":"koalarx-ui-core-components-kl-root.mjs","sources":["../../projects/koala-ui/core/components/kl-root/kl-root.ts","../../projects/koala-ui/core/components/kl-root/kl-root.html","../../projects/koala-ui/core/components/kl-root/koalarx-ui-core-components-kl-root.ts"],"sourcesContent":["import { Component, input, OnInit } from '@angular/core';\nimport { DialogContainer } from '@koalarx/ui/core/components/dialog';\nimport { LoaderPageContent } from '@koalarx/ui/core/components/loader-page';\nimport { SideWindowContainer } from '@koalarx/ui/core/components/side-window';\nimport { SnackbarContainer } from '@koalarx/ui/core/components/snackbar';\nimport { LoadingBarRouterModule } from '@ngx-loading-bar/router';\n\n@Component({\n selector: 'kl-root',\n templateUrl: './kl-root.html',\n imports: [\n DialogContainer,\n LoadingBarRouterModule,\n SideWindowContainer,\n SnackbarContainer,\n LoaderPageContent,\n ],\n})\nexport class KlRoot implements OnInit {\n routerLoaderColor = input<string>('#6A1B9A');\n\n ngOnInit(): void {\n if (document.querySelector('html')?.getAttribute('data-theme') === null) {\n document.querySelector('html')?.setAttribute('data-theme', 'light');\n }\n }\n}\n","<ngx-loading-bar\n [color]=\"routerLoaderColor()\"\n height=\"4px\"\n [includeSpinner]=\"false\"\n/>\n\n<main class=\"overflow-x-hidden\">\n <kl-loader-page-content />\n <kl-snackbar-container />\n <kl-dialog-container />\n <kl-side-window-container />\n <div class=\"kl-generic-component-container\"></div>\n\n <ng-content />\n</main>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAkBa,MAAM,CAAA;AACjB,IAAA,iBAAiB,GAAG,KAAK,CAAS,SAAS,CAAC;IAE5C,QAAQ,GAAA;AACN,QAAA,IAAI,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;AACvE,YAAA,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC;;;uGAL5D,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBnB,4VAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJI,eAAe,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,sBAAsB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,mBAAmB,EAAA,QAAA,EAAA,0BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,iBAAiB,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,iBAAiB,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA;;2FAGR,MAAM,EAAA,UAAA,EAAA,CAAA;kBAXlB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEV,OAAA,EAAA;wBACP,eAAe;wBACf,sBAAsB;wBACtB,mBAAmB;wBACnB,iBAAiB;wBACjB,iBAAiB;AAClB,qBAAA,EAAA,QAAA,EAAA,4VAAA,EAAA;;;AEhBH;;AAEG;;;;"}
@@ -1,48 +1,46 @@
1
1
  import * as i0 from '@angular/core';
2
- import { viewChild, input, computed, effect, Component } from '@angular/core';
2
+ import { viewChild, effect, Component } from '@angular/core';
3
+ import { randomString, KlString } from '@koalarx/utils';
3
4
 
4
5
  class Dropdown {
5
- dropdownElement = viewChild('dropdown');
6
- verticalPosition = input('bottom');
7
- horizontalPosition = input('start');
8
- verticalPositionClass = computed(() => {
9
- switch (this.verticalPosition()) {
10
- case 'top':
11
- return 'dropdown-top';
12
- case 'left':
13
- return 'dropdown-left';
14
- case 'right':
15
- return 'dropdown-right';
16
- case 'bottom':
17
- default:
18
- return 'dropdown-bottom';
19
- }
20
- });
21
- horizontalPositionClass = computed(() => {
22
- switch (this.horizontalPosition()) {
23
- case 'start':
24
- return 'dropdown-start';
25
- case 'center':
26
- return 'dropdown-center';
27
- case 'end':
28
- default:
29
- return 'dropdown-end';
30
- }
31
- });
6
+ dropdownTriggerElement = viewChild('dropdownTrigger');
7
+ dropdownContentElement = viewChild('dropdownContent');
8
+ id = randomString(10, { numbers: true, uppercase: false, lowercase: false });
9
+ anchorName = new KlString('--anchor-').concat(this.id);
32
10
  constructor() {
33
11
  effect(() => {
34
- const dropdownElement = this.dropdownElement()?.nativeElement;
35
- if (dropdownElement) {
36
- dropdownElement.classList.add(this.verticalPositionClass(), this.horizontalPositionClass());
12
+ const triggerElement = this.dropdownTriggerElement()?.nativeElement;
13
+ const contentElement = this.dropdownContentElement()?.nativeElement;
14
+ if (triggerElement && contentElement) {
15
+ triggerElement.style = `anchor-name: ${this.anchorName};`;
16
+ contentElement.style = `position-anchor: ${this.anchorName};`;
37
17
  }
38
18
  });
39
19
  }
20
+ ajustPosition() {
21
+ const triggerElement = this.dropdownTriggerElement()?.nativeElement;
22
+ const contentElement = this.dropdownContentElement()?.nativeElement;
23
+ if (triggerElement && contentElement) {
24
+ setTimeout(() => {
25
+ const position = contentElement.getBoundingClientRect();
26
+ const screenWidth = document.body.clientWidth;
27
+ const screenHeight = document.body.clientHeight;
28
+ if (position.right > screenWidth) {
29
+ contentElement.classList.add('dropdown-left');
30
+ contentElement.classList.add('dropdown-start');
31
+ }
32
+ if (position.bottom > screenHeight) {
33
+ contentElement.classList.add('dropdown-top');
34
+ }
35
+ });
36
+ }
37
+ }
40
38
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Dropdown, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: Dropdown, isStandalone: true, selector: "kl-dropdown", inputs: { verticalPosition: { classPropertyName: "verticalPosition", publicName: "verticalPosition", isSignal: true, isRequired: false, transformFunction: null }, horizontalPosition: { classPropertyName: "horizontalPosition", publicName: "horizontalPosition", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdownElement", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], ngImport: i0, template: "<div #dropdown class=\"dropdown\">\n <div tabindex=\"0\" role=\"button\">\n <ng-content select=\"[trigger]\" />\n </div>\n <ul\n tabindex=\"0\"\n class=\"dropdown-content bg-base-100 rounded-box z-1 mt-3 min-w-52 w-auto shadow-sm border border-neutral-200 dark:border-neutral-700 rounded-md overflow-y-auto max-h-[50vh]\">\n <ng-content select=\"[options]\" />\n </ul>\n</div>\n" });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.6", type: Dropdown, isStandalone: true, selector: "kl-dropdown", viewQueries: [{ propertyName: "dropdownTriggerElement", first: true, predicate: ["dropdownTrigger"], descendants: true, isSignal: true }, { propertyName: "dropdownContentElement", first: true, predicate: ["dropdownContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<button #dropdownTrigger\n tabindex=\"0\"\n role=\"button\"\n [attr.popovertarget]=\"id\"\n (click)=\"ajustPosition()\">\n <ng-content select=\"[trigger]\" />\n</button>\n\n<div #dropdownContent\n tabindex=\"0\"\n popover\n [id]=\"id\"\n class=\"dropdown bg-base-100 rounded-box mt-3 min-w-52 w-auto max-w-[30vw] max-h-[40vh] shadow-sm border border-neutral-200 dark:border-neutral-700 rounded-md overflow-y-auto\">\n <ng-content select=\"[options]\" />\n</div>\n" });
42
40
  }
43
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: Dropdown, decorators: [{
44
42
  type: Component,
45
- args: [{ selector: 'kl-dropdown', template: "<div #dropdown class=\"dropdown\">\n <div tabindex=\"0\" role=\"button\">\n <ng-content select=\"[trigger]\" />\n </div>\n <ul\n tabindex=\"0\"\n class=\"dropdown-content bg-base-100 rounded-box z-1 mt-3 min-w-52 w-auto shadow-sm border border-neutral-200 dark:border-neutral-700 rounded-md overflow-y-auto max-h-[50vh]\">\n <ng-content select=\"[options]\" />\n </ul>\n</div>\n" }]
43
+ args: [{ selector: 'kl-dropdown', template: "<button #dropdownTrigger\n tabindex=\"0\"\n role=\"button\"\n [attr.popovertarget]=\"id\"\n (click)=\"ajustPosition()\">\n <ng-content select=\"[trigger]\" />\n</button>\n\n<div #dropdownContent\n tabindex=\"0\"\n popover\n [id]=\"id\"\n class=\"dropdown bg-base-100 rounded-box mt-3 min-w-52 w-auto max-w-[30vw] max-h-[40vh] shadow-sm border border-neutral-200 dark:border-neutral-700 rounded-md overflow-y-auto\">\n <ng-content select=\"[options]\" />\n</div>\n" }]
46
44
  }], ctorParameters: () => [] });
47
45
 
48
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"koalarx-ui-shared-components-dropdown.mjs","sources":["../../projects/koala-ui/shared/components/dropdown/dropdown.ts","../../projects/koala-ui/shared/components/dropdown/dropdown.html","../../projects/koala-ui/shared/components/dropdown/koalarx-ui-shared-components-dropdown.ts"],"sourcesContent":["import {\n Component,\n computed,\n effect,\n ElementRef,\n input,\n viewChild,\n} from '@angular/core';\n\ntype DropdownVerticalPosition = 'top' | 'bottom' | 'left' | 'right';\ntype DropdownHorizontalPosition = 'start' | 'center' | 'end';\n\n@Component({\n selector: 'kl-dropdown',\n templateUrl: './dropdown.html',\n})\nexport class Dropdown {\n private readonly dropdownElement =\n viewChild<ElementRef<HTMLDivElement>>('dropdown');\n\n verticalPosition = input<DropdownVerticalPosition>('bottom');\n horizontalPosition = input<DropdownHorizontalPosition>('start');\n\n verticalPositionClass = computed(() => {\n switch (this.verticalPosition()) {\n case 'top':\n return 'dropdown-top';\n case 'left':\n return 'dropdown-left';\n case 'right':\n return 'dropdown-right';\n case 'bottom':\n default:\n return 'dropdown-bottom';\n }\n });\n\n horizontalPositionClass = computed(() => {\n switch (this.horizontalPosition()) {\n case 'start':\n return 'dropdown-start';\n case 'center':\n return 'dropdown-center';\n case 'end':\n default:\n return 'dropdown-end';\n }\n });\n\n constructor() {\n effect(() => {\n const dropdownElement = this.dropdownElement()?.nativeElement;\n\n if (dropdownElement) {\n dropdownElement.classList.add(\n this.verticalPositionClass(),\n this.horizontalPositionClass()\n );\n }\n });\n }\n}\n","<div #dropdown class=\"dropdown\">\n <div tabindex=\"0\" role=\"button\">\n <ng-content select=\"[trigger]\" />\n </div>\n <ul\n tabindex=\"0\"\n class=\"dropdown-content bg-base-100 rounded-box z-1 mt-3 min-w-52 w-auto shadow-sm border border-neutral-200 dark:border-neutral-700 rounded-md overflow-y-auto max-h-[50vh]\">\n <ng-content select=\"[options]\" />\n </ul>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAgBa,QAAQ,CAAA;AACF,IAAA,eAAe,GAC9B,SAAS,CAA6B,UAAU,CAAC;AAEnD,IAAA,gBAAgB,GAAG,KAAK,CAA2B,QAAQ,CAAC;AAC5D,IAAA,kBAAkB,GAAG,KAAK,CAA6B,OAAO,CAAC;AAE/D,IAAA,qBAAqB,GAAG,QAAQ,CAAC,MAAK;AACpC,QAAA,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAC7B,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,cAAc;AACvB,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,eAAe;AACxB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,gBAAgB;AACzB,YAAA,KAAK,QAAQ;AACb,YAAA;AACE,gBAAA,OAAO,iBAAiB;;AAE9B,KAAC,CAAC;AAEF,IAAA,uBAAuB,GAAG,QAAQ,CAAC,MAAK;AACtC,QAAA,QAAQ,IAAI,CAAC,kBAAkB,EAAE;AAC/B,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,gBAAgB;AACzB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,iBAAiB;AAC1B,YAAA,KAAK,KAAK;AACV,YAAA;AACE,gBAAA,OAAO,cAAc;;AAE3B,KAAC,CAAC;AAEF,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,aAAa;YAE7D,IAAI,eAAe,EAAE;AACnB,gBAAA,eAAe,CAAC,SAAS,CAAC,GAAG,CAC3B,IAAI,CAAC,qBAAqB,EAAE,EAC5B,IAAI,CAAC,uBAAuB,EAAE,CAC/B;;AAEL,SAAC,CAAC;;uGA3CO,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,wgBChBrB,4YAUA,EAAA,CAAA;;2FDMa,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,4YAAA,EAAA;;;AEbzB;;AAEG;;;;"}
1
+ {"version":3,"file":"koalarx-ui-shared-components-dropdown.mjs","sources":["../../projects/koala-ui/shared/components/dropdown/dropdown.ts","../../projects/koala-ui/shared/components/dropdown/dropdown.html","../../projects/koala-ui/shared/components/dropdown/koalarx-ui-shared-components-dropdown.ts"],"sourcesContent":["import { Component, effect, ElementRef, viewChild } from '@angular/core';\nimport { KlString, randomString } from '@koalarx/utils';\n\n@Component({\n selector: 'kl-dropdown',\n templateUrl: './dropdown.html',\n})\nexport class Dropdown {\n private readonly dropdownTriggerElement =\n viewChild<ElementRef<HTMLButtonElement>>('dropdownTrigger');\n private readonly dropdownContentElement =\n viewChild<ElementRef<HTMLDivElement>>('dropdownContent');\n\n id = randomString(10, { numbers: true, uppercase: false, lowercase: false });\n\n private readonly anchorName = new KlString('--anchor-').concat(this.id);\n\n constructor() {\n effect(() => {\n const triggerElement = this.dropdownTriggerElement()?.nativeElement;\n const contentElement = this.dropdownContentElement()?.nativeElement;\n\n if (triggerElement && contentElement) {\n triggerElement.style = `anchor-name: ${this.anchorName};`;\n contentElement.style = `position-anchor: ${this.anchorName};`;\n }\n });\n }\n\n ajustPosition() {\n const triggerElement = this.dropdownTriggerElement()?.nativeElement;\n const contentElement = this.dropdownContentElement()?.nativeElement;\n\n if (triggerElement && contentElement) {\n setTimeout(() => {\n const position = contentElement.getBoundingClientRect();\n const screenWidth = document.body.clientWidth;\n const screenHeight = document.body.clientHeight;\n\n if (position.right > screenWidth) {\n contentElement.classList.add('dropdown-left');\n contentElement.classList.add('dropdown-start');\n }\n\n if (position.bottom > screenHeight) {\n contentElement.classList.add('dropdown-top');\n }\n });\n }\n }\n}\n","<button #dropdownTrigger\n tabindex=\"0\"\n role=\"button\"\n [attr.popovertarget]=\"id\"\n (click)=\"ajustPosition()\">\n <ng-content select=\"[trigger]\" />\n</button>\n\n<div #dropdownContent\n tabindex=\"0\"\n popover\n [id]=\"id\"\n class=\"dropdown bg-base-100 rounded-box mt-3 min-w-52 w-auto max-w-[30vw] max-h-[40vh] shadow-sm border border-neutral-200 dark:border-neutral-700 rounded-md overflow-y-auto\">\n <ng-content select=\"[options]\" />\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAOa,QAAQ,CAAA;AACF,IAAA,sBAAsB,GACrC,SAAS,CAAgC,iBAAiB,CAAC;AAC5C,IAAA,sBAAsB,GACrC,SAAS,CAA6B,iBAAiB,CAAC;AAE1D,IAAA,EAAE,GAAG,YAAY,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAE3D,IAAA,UAAU,GAAG,IAAI,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AAEvE,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;YACV,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,EAAE,aAAa;YACnE,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,EAAE,aAAa;AAEnE,YAAA,IAAI,cAAc,IAAI,cAAc,EAAE;gBACpC,cAAc,CAAC,KAAK,GAAG,CAAA,aAAA,EAAgB,IAAI,CAAC,UAAU,GAAG;gBACzD,cAAc,CAAC,KAAK,GAAG,CAAA,iBAAA,EAAoB,IAAI,CAAC,UAAU,GAAG;;AAEjE,SAAC,CAAC;;IAGJ,aAAa,GAAA;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,EAAE,aAAa;QACnE,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,EAAE,aAAa;AAEnE,QAAA,IAAI,cAAc,IAAI,cAAc,EAAE;YACpC,UAAU,CAAC,MAAK;AACd,gBAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,qBAAqB,EAAE;AACvD,gBAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW;AAC7C,gBAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY;AAE/C,gBAAA,IAAI,QAAQ,CAAC,KAAK,GAAG,WAAW,EAAE;AAChC,oBAAA,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;AAC7C,oBAAA,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;;AAGhD,gBAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,YAAY,EAAE;AAClC,oBAAA,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC;;AAEhD,aAAC,CAAC;;;uGAxCK,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAR,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,8UCPrB,2dAeA,EAAA,CAAA;;2FDRa,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,2dAAA,EAAA;;;AEJzB;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koalarx/ui",
3
- "version": "20.0.14",
3
+ "version": "20.0.16",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=20.0.0",
6
6
  "@angular/core": ">=20.0.0"
@@ -1,16 +1,14 @@
1
- import * as _angular_core from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
2
 
3
- type DropdownVerticalPosition = 'top' | 'bottom' | 'left' | 'right';
4
- type DropdownHorizontalPosition = 'start' | 'center' | 'end';
5
3
  declare class Dropdown {
6
- private readonly dropdownElement;
7
- verticalPosition: _angular_core.InputSignal<DropdownVerticalPosition>;
8
- horizontalPosition: _angular_core.InputSignal<DropdownHorizontalPosition>;
9
- verticalPositionClass: _angular_core.Signal<"dropdown-top" | "dropdown-left" | "dropdown-right" | "dropdown-bottom">;
10
- horizontalPositionClass: _angular_core.Signal<"dropdown-start" | "dropdown-center" | "dropdown-end">;
4
+ private readonly dropdownTriggerElement;
5
+ private readonly dropdownContentElement;
6
+ id: string;
7
+ private readonly anchorName;
11
8
  constructor();
12
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<Dropdown, never>;
13
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Dropdown, "kl-dropdown", never, { "verticalPosition": { "alias": "verticalPosition"; "required": false; "isSignal": true; }; "horizontalPosition": { "alias": "horizontalPosition"; "required": false; "isSignal": true; }; }, {}, never, ["[trigger]", "[options]"], true, never>;
9
+ ajustPosition(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<Dropdown, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<Dropdown, "kl-dropdown", never, {}, {}, never, ["[trigger]", "[options]"], true, never>;
14
12
  }
15
13
 
16
14
  export { Dropdown };