@egose/shadcn-theme-ng 0.0.27 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/README.md +64 -0
- package/accordion/fesm2022/accordion.mjs +160 -0
- package/accordion/fesm2022/accordion.mjs.map +1 -0
- package/accordion/package.json +25 -0
- package/accordion/types/accordion.d.ts +49 -0
- package/alert/fesm2022/alert.mjs +29 -24
- package/alert/fesm2022/alert.mjs.map +1 -1
- package/alert/package.json +25 -0
- package/alert-dialog/README.md +11 -0
- package/alert-dialog/fesm2022/alert-dialog.mjs +287 -0
- package/alert-dialog/fesm2022/alert-dialog.mjs.map +1 -0
- package/alert-dialog/package.json +25 -0
- package/alert-dialog/types/alert-dialog.d.ts +90 -0
- package/aspect-ratio/README.md +11 -0
- package/aspect-ratio/fesm2022/aspect-ratio.mjs +62 -0
- package/aspect-ratio/fesm2022/aspect-ratio.mjs.map +1 -0
- package/aspect-ratio/package.json +25 -0
- package/aspect-ratio/types/aspect-ratio.d.ts +21 -0
- package/autocomplete/README.md +64 -0
- package/autocomplete/fesm2022/autocomplete.mjs +409 -0
- package/autocomplete/fesm2022/autocomplete.mjs.map +1 -0
- package/autocomplete/package.json +24 -0
- package/autocomplete/types/autocomplete.d.ts +96 -0
- package/avatar/README.md +11 -0
- package/avatar/fesm2022/avatar.mjs +178 -0
- package/avatar/fesm2022/avatar.mjs.map +1 -0
- package/avatar/package.json +25 -0
- package/avatar/types/avatar.d.ts +50 -0
- package/badge/fesm2022/badge.mjs +15 -9
- package/badge/fesm2022/badge.mjs.map +1 -1
- package/badge/package.json +25 -0
- package/basic-alert/fesm2022/basic-alert.mjs +11 -7
- package/basic-alert/fesm2022/basic-alert.mjs.map +1 -1
- package/basic-alert/package.json +24 -0
- package/breadcrumb/README.md +11 -0
- package/breadcrumb/fesm2022/breadcrumb.mjs +224 -0
- package/breadcrumb/fesm2022/breadcrumb.mjs.map +1 -0
- package/breadcrumb/package.json +25 -0
- package/breadcrumb/types/breadcrumb.d.ts +57 -0
- package/button/fesm2022/button.mjs +99 -25
- package/button/fesm2022/button.mjs.map +1 -1
- package/button/package.json +25 -0
- package/button/{index.d.ts → types/button.d.ts} +30 -9
- package/button-group/README.md +11 -0
- package/button-group/fesm2022/button-group.mjs +102 -0
- package/button-group/fesm2022/button-group.mjs.map +1 -0
- package/button-group/package.json +25 -0
- package/button-group/types/button-group.d.ts +30 -0
- package/calendar/fesm2022/calendar.mjs +868 -546
- package/calendar/fesm2022/calendar.mjs.map +1 -1
- package/calendar/package.json +24 -0
- package/calendar/types/calendar.d.ts +94 -0
- package/card/README.md +11 -0
- package/card/fesm2022/card.mjs +169 -0
- package/card/fesm2022/card.mjs.map +1 -0
- package/card/package.json +25 -0
- package/card/types/card.d.ts +54 -0
- package/carousel/README.md +11 -0
- package/carousel/fesm2022/carousel.mjs +309 -0
- package/carousel/fesm2022/carousel.mjs.map +1 -0
- package/carousel/package.json +25 -0
- package/carousel/types/carousel.d.ts +84 -0
- package/checkbox/README.md +64 -0
- package/checkbox/fesm2022/checkbox.mjs +151 -0
- package/checkbox/fesm2022/checkbox.mjs.map +1 -0
- package/checkbox/package.json +24 -0
- package/checkbox/types/checkbox.d.ts +55 -0
- package/collapsible/README.md +11 -0
- package/collapsible/fesm2022/collapsible.mjs +77 -0
- package/collapsible/fesm2022/collapsible.mjs.map +1 -0
- package/collapsible/package.json +25 -0
- package/collapsible/types/collapsible.d.ts +27 -0
- package/combobox/README.md +11 -0
- package/combobox/fesm2022/combobox.mjs +683 -0
- package/combobox/fesm2022/combobox.mjs.map +1 -0
- package/combobox/package.json +25 -0
- package/combobox/types/combobox.d.ts +151 -0
- package/command/README.md +11 -0
- package/command/fesm2022/command.mjs +361 -0
- package/command/fesm2022/command.mjs.map +1 -0
- package/command/package.json +25 -0
- package/command/types/command.d.ts +89 -0
- package/confirmation-dialog/README.md +64 -0
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs +104 -0
- package/confirmation-dialog/fesm2022/confirmation-dialog.mjs.map +1 -0
- package/confirmation-dialog/package.json +24 -0
- package/confirmation-dialog/types/confirmation-dialog.d.ts +24 -0
- package/context-menu/README.md +11 -0
- package/context-menu/fesm2022/context-menu.mjs +89 -0
- package/context-menu/fesm2022/context-menu.mjs.map +1 -0
- package/context-menu/package.json +25 -0
- package/context-menu/types/context-menu.d.ts +34 -0
- package/date-picker/fesm2022/date-picker.mjs +1262 -307
- package/date-picker/fesm2022/date-picker.mjs.map +1 -1
- package/date-picker/package.json +24 -0
- package/date-picker/types/date-picker.d.ts +551 -0
- package/dialog/README.md +64 -0
- package/dialog/fesm2022/dialog.mjs +307 -0
- package/dialog/fesm2022/dialog.mjs.map +1 -0
- package/dialog/package.json +24 -0
- package/dialog/types/dialog.d.ts +95 -0
- package/drawer/README.md +11 -0
- package/drawer/fesm2022/drawer.mjs +271 -0
- package/drawer/fesm2022/drawer.mjs.map +1 -0
- package/drawer/package.json +25 -0
- package/drawer/types/drawer.d.ts +76 -0
- package/dropdown-menu/README.md +11 -0
- package/dropdown-menu/fesm2022/dropdown-menu.mjs +542 -0
- package/dropdown-menu/fesm2022/dropdown-menu.mjs.map +1 -0
- package/dropdown-menu/package.json +25 -0
- package/dropdown-menu/types/dropdown-menu.d.ts +176 -0
- package/empty/README.md +11 -0
- package/empty/fesm2022/empty.mjs +151 -0
- package/empty/fesm2022/empty.mjs.map +1 -0
- package/empty/package.json +25 -0
- package/empty/types/empty.d.ts +54 -0
- package/field/README.md +11 -0
- package/field/fesm2022/field.mjs +367 -0
- package/field/fesm2022/field.mjs.map +1 -0
- package/field/package.json +25 -0
- package/field/types/field.d.ts +107 -0
- package/form-checkbox/README.md +64 -0
- package/form-checkbox/fesm2022/form-checkbox.mjs +154 -0
- package/form-checkbox/fesm2022/form-checkbox.mjs.map +1 -0
- package/form-checkbox/package.json +24 -0
- package/form-checkbox/types/form-checkbox.d.ts +27 -0
- package/form-date-picker/fesm2022/form-date-picker.mjs +57 -50
- package/form-date-picker/fesm2022/form-date-picker.mjs.map +1 -1
- package/form-date-picker/package.json +24 -0
- package/form-field/fesm2022/form-field.mjs +37 -25
- package/form-field/fesm2022/form-field.mjs.map +1 -1
- package/form-field/package.json +25 -0
- package/form-field/{index.d.ts → types/form-field.d.ts} +4 -3
- package/form-field-simple/fesm2022/form-field-simple.mjs +14 -9
- package/form-field-simple/fesm2022/form-field-simple.mjs.map +1 -1
- package/form-field-simple/package.json +24 -0
- package/form-searchable-multiselect/README.md +64 -0
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs +158 -0
- package/form-searchable-multiselect/fesm2022/form-searchable-multiselect.mjs.map +1 -0
- package/form-searchable-multiselect/package.json +24 -0
- package/form-searchable-multiselect/types/form-searchable-multiselect.d.ts +30 -0
- package/form-select/fesm2022/form-select.mjs +131 -70
- package/form-select/fesm2022/form-select.mjs.map +1 -1
- package/form-select/package.json +24 -0
- package/form-text-input/fesm2022/form-text-input.mjs +66 -37
- package/form-text-input/fesm2022/form-text-input.mjs.map +1 -1
- package/form-text-input/package.json +24 -0
- package/form-textarea/fesm2022/form-textarea.mjs +53 -29
- package/form-textarea/fesm2022/form-textarea.mjs.map +1 -1
- package/form-textarea/package.json +24 -0
- package/hover-card/README.md +11 -0
- package/hover-card/fesm2022/hover-card.mjs +123 -0
- package/hover-card/fesm2022/hover-card.mjs.map +1 -0
- package/hover-card/package.json +25 -0
- package/hover-card/types/hover-card.d.ts +36 -0
- package/icon/fesm2022/icon.mjs +11 -9
- package/icon/fesm2022/icon.mjs.map +1 -1
- package/icon/package.json +25 -0
- package/input/fesm2022/input.mjs +21 -71
- package/input/fesm2022/input.mjs.map +1 -1
- package/input/package.json +25 -0
- package/input/types/input.d.ts +18 -0
- package/input-group/README.md +11 -0
- package/input-group/fesm2022/input-group.mjs +199 -0
- package/input-group/fesm2022/input-group.mjs.map +1 -0
- package/input-group/package.json +25 -0
- package/input-group/types/input-group.d.ts +52 -0
- package/input-otp/README.md +11 -0
- package/input-otp/fesm2022/input-otp.mjs +141 -0
- package/input-otp/fesm2022/input-otp.mjs.map +1 -0
- package/input-otp/package.json +25 -0
- package/input-otp/types/input-otp.d.ts +43 -0
- package/item/README.md +11 -0
- package/item/fesm2022/item.mjs +278 -0
- package/item/fesm2022/item.mjs.map +1 -0
- package/item/package.json +25 -0
- package/item/types/item.d.ts +101 -0
- package/kbd/README.md +11 -0
- package/kbd/fesm2022/kbd.mjs +61 -0
- package/kbd/fesm2022/kbd.mjs.map +1 -0
- package/kbd/package.json +25 -0
- package/kbd/types/kbd.d.ts +22 -0
- package/label/fesm2022/label.mjs +10 -9
- package/label/fesm2022/label.mjs.map +1 -1
- package/label/package.json +25 -0
- package/layout-simple/README.md +64 -0
- package/layout-simple/fesm2022/layout-simple.mjs +719 -0
- package/layout-simple/fesm2022/layout-simple.mjs.map +1 -0
- package/layout-simple/package.json +24 -0
- package/layout-simple/types/layout-simple.d.ts +153 -0
- package/menubar/README.md +11 -0
- package/menubar/fesm2022/menubar.mjs +108 -0
- package/menubar/fesm2022/menubar.mjs.map +1 -0
- package/menubar/package.json +25 -0
- package/menubar/types/menubar.d.ts +40 -0
- package/native-select/README.md +11 -0
- package/native-select/fesm2022/native-select.mjs +207 -0
- package/native-select/fesm2022/native-select.mjs.map +1 -0
- package/native-select/package.json +25 -0
- package/native-select/types/native-select.d.ts +70 -0
- package/navigation-menu/README.md +11 -0
- package/navigation-menu/fesm2022/navigation-menu.mjs +206 -0
- package/navigation-menu/fesm2022/navigation-menu.mjs.map +1 -0
- package/navigation-menu/package.json +25 -0
- package/navigation-menu/types/navigation-menu.d.ts +54 -0
- package/package.json +239 -47
- package/pagination/README.md +11 -0
- package/pagination/fesm2022/pagination.mjs +808 -0
- package/pagination/fesm2022/pagination.mjs.map +1 -0
- package/pagination/package.json +25 -0
- package/pagination/types/pagination.d.ts +192 -0
- package/popover/fesm2022/popover.mjs +123 -29
- package/popover/fesm2022/popover.mjs.map +1 -1
- package/popover/package.json +24 -0
- package/popover/types/popover.d.ts +54 -0
- package/progress/README.md +11 -0
- package/progress/fesm2022/progress.mjs +77 -0
- package/progress/fesm2022/progress.mjs.map +1 -0
- package/progress/package.json +25 -0
- package/progress/types/progress.d.ts +27 -0
- package/radio-group/README.md +64 -0
- package/radio-group/fesm2022/radio-group.mjs +204 -0
- package/radio-group/fesm2022/radio-group.mjs.map +1 -0
- package/radio-group/package.json +25 -0
- package/radio-group/types/radio-group.d.ts +71 -0
- package/resizable/README.md +11 -0
- package/resizable/fesm2022/resizable.mjs +111 -0
- package/resizable/fesm2022/resizable.mjs.map +1 -0
- package/resizable/package.json +25 -0
- package/resizable/types/resizable.d.ts +32 -0
- package/scroll-area/README.md +11 -0
- package/scroll-area/fesm2022/scroll-area.mjs +51 -0
- package/scroll-area/fesm2022/scroll-area.mjs.map +1 -0
- package/scroll-area/package.json +25 -0
- package/scroll-area/types/scroll-area.d.ts +16 -0
- package/searchable-multiselect/README.md +64 -0
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs +225 -0
- package/searchable-multiselect/fesm2022/searchable-multiselect.mjs.map +1 -0
- package/searchable-multiselect/package.json +24 -0
- package/searchable-multiselect/types/searchable-multiselect.d.ts +39 -0
- package/select/fesm2022/select.mjs +373 -191
- package/select/fesm2022/select.mjs.map +1 -1
- package/select/package.json +25 -0
- package/select/types/select.d.ts +119 -0
- package/separator/fesm2022/separator.mjs +16 -14
- package/separator/fesm2022/separator.mjs.map +1 -1
- package/separator/package.json +24 -0
- package/separator/{index.d.ts → types/separator.d.ts} +4 -5
- package/sheet/fesm2022/sheet.mjs +49 -42
- package/sheet/fesm2022/sheet.mjs.map +1 -1
- package/sheet/package.json +24 -0
- package/sidebar/README.md +11 -0
- package/sidebar/fesm2022/sidebar.mjs +948 -0
- package/sidebar/fesm2022/sidebar.mjs.map +1 -0
- package/sidebar/package.json +25 -0
- package/sidebar/types/sidebar.d.ts +237 -0
- package/skeleton/README.md +11 -0
- package/skeleton/fesm2022/skeleton.mjs +44 -0
- package/skeleton/fesm2022/skeleton.mjs.map +1 -0
- package/skeleton/package.json +25 -0
- package/skeleton/types/skeleton.d.ts +16 -0
- package/slider/README.md +11 -0
- package/slider/fesm2022/slider.mjs +144 -0
- package/slider/fesm2022/slider.mjs.map +1 -0
- package/slider/package.json +25 -0
- package/slider/types/slider.d.ts +19 -0
- package/sonner/fesm2022/sonner.mjs +29 -34
- package/sonner/fesm2022/sonner.mjs.map +1 -1
- package/sonner/package.json +25 -0
- package/spinner/fesm2022/spinner.mjs +17 -13
- package/spinner/fesm2022/spinner.mjs.map +1 -1
- package/spinner/package.json +25 -0
- package/switch/fesm2022/switch.mjs +27 -24
- package/switch/fesm2022/switch.mjs.map +1 -1
- package/switch/package.json +25 -0
- package/table/README.md +11 -0
- package/table/fesm2022/table.mjs +211 -0
- package/table/fesm2022/table.mjs.map +1 -0
- package/table/package.json +25 -0
- package/table/types/table.d.ts +87 -0
- package/tabs/README.md +64 -0
- package/tabs/fesm2022/tabs.mjs +286 -0
- package/tabs/fesm2022/tabs.mjs.map +1 -0
- package/tabs/package.json +25 -0
- package/tabs/types/tabs.d.ts +71 -0
- package/textarea/README.md +11 -0
- package/textarea/fesm2022/textarea.mjs +47 -0
- package/textarea/fesm2022/textarea.mjs.map +1 -0
- package/textarea/package.json +25 -0
- package/textarea/types/textarea.d.ts +18 -0
- package/toggle/README.md +11 -0
- package/toggle/fesm2022/toggle.mjs +78 -0
- package/toggle/fesm2022/toggle.mjs.map +1 -0
- package/toggle/package.json +25 -0
- package/toggle/types/toggle.d.ts +27 -0
- package/toggle-group/README.md +11 -0
- package/toggle-group/fesm2022/toggle-group.mjs +117 -0
- package/toggle-group/fesm2022/toggle-group.mjs.map +1 -0
- package/toggle-group/package.json +25 -0
- package/toggle-group/types/toggle-group.d.ts +39 -0
- package/tooltip/README.md +64 -0
- package/tooltip/fesm2022/tooltip.mjs +72 -0
- package/tooltip/fesm2022/tooltip.mjs.map +1 -0
- package/tooltip/package.json +25 -0
- package/tooltip/types/tooltip.d.ts +22 -0
- package/typography/README.md +11 -0
- package/typography/fesm2022/typography.mjs +242 -0
- package/typography/fesm2022/typography.mjs.map +1 -0
- package/typography/package.json +25 -0
- package/typography/types/typography.d.ts +94 -0
- package/utils/fesm2022/utils.mjs +184 -1
- package/utils/fesm2022/utils.mjs.map +1 -1
- package/utils/package.json +25 -0
- package/utils/types/utils.d.ts +13 -0
- package/calendar/index.d.ts +0 -111
- package/date-picker/index.d.ts +0 -227
- package/input/index.d.ts +0 -41
- package/popover/index.d.ts +0 -30
- package/select/index.d.ts +0 -92
- package/utils/index.d.ts +0 -5
- /package/alert/{index.d.ts → types/alert.d.ts} +0 -0
- /package/badge/{index.d.ts → types/badge.d.ts} +0 -0
- /package/basic-alert/{index.d.ts → types/basic-alert.d.ts} +0 -0
- /package/form-date-picker/{index.d.ts → types/form-date-picker.d.ts} +0 -0
- /package/form-field-simple/{index.d.ts → types/form-field-simple.d.ts} +0 -0
- /package/form-select/{index.d.ts → types/form-select.d.ts} +0 -0
- /package/form-text-input/{index.d.ts → types/form-text-input.d.ts} +0 -0
- /package/form-textarea/{index.d.ts → types/form-textarea.d.ts} +0 -0
- /package/icon/{index.d.ts → types/icon.d.ts} +0 -0
- /package/label/{index.d.ts → types/label.d.ts} +0 -0
- /package/sheet/{index.d.ts → types/sheet.d.ts} +0 -0
- /package/sonner/{index.d.ts → types/sonner.d.ts} +0 -0
- /package/spinner/{index.d.ts → types/spinner.d.ts} +0 -0
- /package/switch/{index.d.ts → types/switch.d.ts} +0 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, Component, Injectable } from '@angular/core';
|
|
3
|
+
import { HlmButton } from '@egose/shadcn-theme-ng/button';
|
|
4
|
+
import { HlmAlertIcon, HlmAlert } from '@egose/shadcn-theme-ng/alert';
|
|
5
|
+
import * as i1 from '@egose/shadcn-theme-ng/dialog';
|
|
6
|
+
import { HlmDialogDescription, HlmDialogHeader, HlmDialogFooter, HlmDialogTitle } from '@egose/shadcn-theme-ng/dialog';
|
|
7
|
+
import { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';
|
|
8
|
+
import { HlmIcon } from '@egose/shadcn-theme-ng/icon';
|
|
9
|
+
import { NgIcon, provideIcons } from '@ng-icons/core';
|
|
10
|
+
import { lucideTriangleAlert } from '@ng-icons/lucide';
|
|
11
|
+
|
|
12
|
+
class EgConfirmationDiaglog {
|
|
13
|
+
_dialogRef = inject(BrnDialogRef);
|
|
14
|
+
_dialogContext = injectBrnDialogContext();
|
|
15
|
+
_title = this._dialogContext.title || 'Are you absolutely sure?';
|
|
16
|
+
_description = this._dialogContext.description || 'This action cannot be undone.';
|
|
17
|
+
close(confirm) {
|
|
18
|
+
this._dialogRef.close(confirm);
|
|
19
|
+
}
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EgConfirmationDiaglog, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: EgConfirmationDiaglog, isStandalone: true, selector: "ng-component", host: { classAttribute: "w-full p-1" }, providers: [provideIcons({ lucideTriangleAlert })], ngImport: i0, template: `
|
|
22
|
+
<hlm-dialog-header>
|
|
23
|
+
<div class="flex items-center gap-1">
|
|
24
|
+
<ng-icon hlm hlmAlertIcon name="lucideTriangleAlert" size="base" />
|
|
25
|
+
<h3 hlmDialogTitle class="text-xl">{{ _title }}</h3>
|
|
26
|
+
</div>
|
|
27
|
+
<p hlmDialogDescription class="text-base text-gray-700">{{ _description }}</p>
|
|
28
|
+
</hlm-dialog-header>
|
|
29
|
+
|
|
30
|
+
<hlm-dialog-footer class="mt-4">
|
|
31
|
+
<button hlmButton variant="secondary" appearance="outline" (click)="close(false)">Cancel</button>
|
|
32
|
+
<button hlmButton variant="danger" (click)="close(true)">Confirm</button>
|
|
33
|
+
</hlm-dialog-footer>
|
|
34
|
+
`, isInline: true, dependencies: [{ kind: "component", type: HlmButton, selector: "button[hlmButton], a[hlmButton]", inputs: ["variant", "size", "appearance", "loading", "icon", "iconPosition", "class", "spinnerUserClass", "disabled", "type"] }, { kind: "directive", type: HlmAlertIcon, selector: "[hlmAlertIcon]" }, { kind: "directive", type: HlmDialogDescription, selector: "[hlmDialogDescription]" }, { kind: "directive", type: HlmDialogHeader, selector: "[hlmDialogHeader],hlm-dialog-header" }, { kind: "directive", type: HlmDialogFooter, selector: "[hlmDialogFooter],hlm-dialog-footer" }, { kind: "directive", type: HlmDialogTitle, selector: "[hlmDialogTitle]" }, { kind: "component", type: NgIcon, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "directive", type: HlmIcon, selector: "ng-icon[hlm]", inputs: ["size"] }] });
|
|
35
|
+
}
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EgConfirmationDiaglog, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{
|
|
39
|
+
imports: [
|
|
40
|
+
HlmButton,
|
|
41
|
+
HlmAlert,
|
|
42
|
+
HlmAlertIcon,
|
|
43
|
+
HlmDialogDescription,
|
|
44
|
+
HlmDialogHeader,
|
|
45
|
+
HlmDialogFooter,
|
|
46
|
+
HlmDialogTitle,
|
|
47
|
+
NgIcon,
|
|
48
|
+
HlmIcon,
|
|
49
|
+
],
|
|
50
|
+
standalone: true,
|
|
51
|
+
providers: [provideIcons({ lucideTriangleAlert })],
|
|
52
|
+
template: `
|
|
53
|
+
<hlm-dialog-header>
|
|
54
|
+
<div class="flex items-center gap-1">
|
|
55
|
+
<ng-icon hlm hlmAlertIcon name="lucideTriangleAlert" size="base" />
|
|
56
|
+
<h3 hlmDialogTitle class="text-xl">{{ _title }}</h3>
|
|
57
|
+
</div>
|
|
58
|
+
<p hlmDialogDescription class="text-base text-gray-700">{{ _description }}</p>
|
|
59
|
+
</hlm-dialog-header>
|
|
60
|
+
|
|
61
|
+
<hlm-dialog-footer class="mt-4">
|
|
62
|
+
<button hlmButton variant="secondary" appearance="outline" (click)="close(false)">Cancel</button>
|
|
63
|
+
<button hlmButton variant="danger" (click)="close(true)">Confirm</button>
|
|
64
|
+
</hlm-dialog-footer>
|
|
65
|
+
`,
|
|
66
|
+
host: {
|
|
67
|
+
class: 'w-full p-1',
|
|
68
|
+
},
|
|
69
|
+
}]
|
|
70
|
+
}] });
|
|
71
|
+
class EgConfirmationDialogService {
|
|
72
|
+
hlmDialogService;
|
|
73
|
+
constructor(hlmDialogService) {
|
|
74
|
+
this.hlmDialogService = hlmDialogService;
|
|
75
|
+
}
|
|
76
|
+
showConfirmationDialog({ title, description }) {
|
|
77
|
+
return new Promise((resolve) => {
|
|
78
|
+
const dialogRef = this.hlmDialogService.open(EgConfirmationDiaglog, {
|
|
79
|
+
context: { title, description },
|
|
80
|
+
contentClass: '',
|
|
81
|
+
});
|
|
82
|
+
dialogRef.closed$.subscribe((confirm) => {
|
|
83
|
+
resolve(confirm ?? false);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EgConfirmationDialogService, deps: [{ token: i1.HlmDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EgConfirmationDialogService, providedIn: 'root' });
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: EgConfirmationDialogService, decorators: [{
|
|
91
|
+
type: Injectable,
|
|
92
|
+
args: [{ providedIn: 'root' }]
|
|
93
|
+
}], ctorParameters: () => [{ type: i1.HlmDialogService }] });
|
|
94
|
+
|
|
95
|
+
/*
|
|
96
|
+
* Public API Surface of confirmation-dialog
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Generated bundle index. Do not edit.
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
export { EgConfirmationDiaglog, EgConfirmationDialogService };
|
|
104
|
+
//# sourceMappingURL=confirmation-dialog.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirmation-dialog.mjs","sources":["../../../projects/confirmation-dialog/src/lib/confirmation-dialog.ts","../../../projects/confirmation-dialog/src/public-api.ts","../../../projects/confirmation-dialog/src/confirmation-dialog.ts"],"sourcesContent":["import { Component, inject, Injectable } from '@angular/core';\nimport { HlmButton } from '@egose/shadcn-theme-ng/button';\n\nimport { HlmAlert, HlmAlertIcon } from '@egose/shadcn-theme-ng/alert';\nimport {\n HlmDialogDescription,\n HlmDialogHeader,\n HlmDialogFooter,\n HlmDialogService,\n HlmDialogTitle,\n} from '@egose/shadcn-theme-ng/dialog';\nimport { BrnDialogRef, injectBrnDialogContext } from '@spartan-ng/brain/dialog';\nimport { HlmIcon } from '@egose/shadcn-theme-ng/icon';\nimport { NgIcon, provideIcons } from '@ng-icons/core';\nimport { lucideTriangleAlert } from '@ng-icons/lucide';\n\n@Component({\n imports: [\n HlmButton,\n HlmAlert,\n HlmAlertIcon,\n HlmDialogDescription,\n HlmDialogHeader,\n HlmDialogFooter,\n HlmDialogTitle,\n NgIcon,\n HlmIcon,\n ],\n standalone: true,\n providers: [provideIcons({ lucideTriangleAlert })],\n template: `\n <hlm-dialog-header>\n <div class=\"tw:flex tw:items-center tw:gap-1\">\n <ng-icon hlm hlmAlertIcon name=\"lucideTriangleAlert\" size=\"base\" />\n <h3 hlmDialogTitle class=\"tw:text-xl\">{{ _title }}</h3>\n </div>\n <p hlmDialogDescription class=\"tw:text-base tw:text-gray-700\">{{ _description }}</p>\n </hlm-dialog-header>\n\n <hlm-dialog-footer class=\"tw:mt-4\">\n <button hlmButton variant=\"secondary\" appearance=\"outline\" (click)=\"close(false)\">Cancel</button>\n <button hlmButton variant=\"danger\" (click)=\"close(true)\">Confirm</button>\n </hlm-dialog-footer>\n `,\n host: {\n class: 'tw:w-full tw:p-1',\n },\n})\nexport class EgConfirmationDiaglog {\n private readonly _dialogRef = inject<BrnDialogRef<boolean>>(BrnDialogRef);\n private readonly _dialogContext = injectBrnDialogContext<{ title: string; description: string }>();\n\n protected readonly _title = this._dialogContext.title || 'Are you absolutely sure?';\n protected readonly _description = this._dialogContext.description || 'This action cannot be undone.';\n\n public close(confirm: boolean) {\n this._dialogRef.close(confirm);\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class EgConfirmationDialogService {\n constructor(private hlmDialogService: HlmDialogService) {}\n\n showConfirmationDialog({ title, description }: { title: string; description: string }) {\n return new Promise<boolean>((resolve) => {\n const dialogRef = this.hlmDialogService.open<boolean>(EgConfirmationDiaglog, {\n context: { title, description },\n contentClass: '',\n });\n\n dialogRef.closed$.subscribe((confirm) => {\n resolve(confirm ?? false);\n });\n });\n }\n}\n","/*\n * Public API Surface of confirmation-dialog\n */\n\nexport * from './lib/confirmation-dialog';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;MAgDa,qBAAqB,CAAA;AACf,IAAA,UAAU,GAAG,MAAM,CAAwB,YAAY,CAAC;IACxD,cAAc,GAAG,sBAAsB,EAA0C;IAE/E,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,IAAI,0BAA0B;IAChE,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,+BAA+B;AAE7F,IAAA,KAAK,CAAC,OAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;IAChC;uGATW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAnBrB,CAAC,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EACxC;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAzBC,SAAS,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,cAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAET,YAAY,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,eAAe,EAAA,QAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,eAAe,EAAA,QAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,MAAM,6GACN,OAAO,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAsBE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhCjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,QAAQ;wBACR,YAAY;wBACZ,oBAAoB;wBACpB,eAAe;wBACf,eAAe;wBACf,cAAc;wBACd,MAAM;wBACN,OAAO;AACR,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC;AAClD,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,kBAAkB;AAC1B,qBAAA;AACF,iBAAA;;MAcY,2BAA2B,CAAA;AAClB,IAAA,gBAAA;AAApB,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IAAqB;AAEzD,IAAA,sBAAsB,CAAC,EAAE,KAAK,EAAE,WAAW,EAA0C,EAAA;AACnF,QAAA,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,KAAI;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAU,qBAAqB,EAAE;AAC3E,gBAAA,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;AAC/B,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA,CAAC;YAEF,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,KAAI;AACtC,gBAAA,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;AAC3B,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;uGAdW,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cADd,MAAM,EAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AC5DlC;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "confirmation-dialog",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^20.3.0 || ^22.0.0",
|
|
6
|
+
"@angular/core": "^20.3.0 || ^22.0.0"
|
|
7
|
+
},
|
|
8
|
+
"dependencies": {
|
|
9
|
+
"tslib": "^2.3.0"
|
|
10
|
+
},
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"module": "fesm2022/confirmation-dialog.mjs",
|
|
13
|
+
"typings": "types/confirmation-dialog.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": {
|
|
16
|
+
"default": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./types/confirmation-dialog.d.ts",
|
|
20
|
+
"default": "./fesm2022/confirmation-dialog.mjs"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"type": "module"
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { HlmDialogService } from '@egose/shadcn-theme-ng/dialog';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
|
|
4
|
+
declare class EgConfirmationDiaglog {
|
|
5
|
+
private readonly _dialogRef;
|
|
6
|
+
private readonly _dialogContext;
|
|
7
|
+
protected readonly _title: string;
|
|
8
|
+
protected readonly _description: string;
|
|
9
|
+
close(confirm: boolean): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EgConfirmationDiaglog, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<EgConfirmationDiaglog, "ng-component", never, {}, {}, never, never, true, never>;
|
|
12
|
+
}
|
|
13
|
+
declare class EgConfirmationDialogService {
|
|
14
|
+
private hlmDialogService;
|
|
15
|
+
constructor(hlmDialogService: HlmDialogService);
|
|
16
|
+
showConfirmationDialog({ title, description }: {
|
|
17
|
+
title: string;
|
|
18
|
+
description: string;
|
|
19
|
+
}): Promise<boolean>;
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EgConfirmationDialogService, never>;
|
|
21
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<EgConfirmationDialogService>;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { EgConfirmationDiaglog, EgConfirmationDialogService };
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, input, booleanAttribute, computed, effect, forwardRef, Directive, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/cdk/menu';
|
|
4
|
+
import { CdkContextMenuTrigger } from '@angular/cdk/menu';
|
|
5
|
+
import { createMenuPosition, MENU_SIDE } from '@spartan-ng/brain/core';
|
|
6
|
+
import { classes } from '@egose/shadcn-theme-ng/utils';
|
|
7
|
+
|
|
8
|
+
const defaultConfig = {
|
|
9
|
+
align: 'start',
|
|
10
|
+
side: 'bottom',
|
|
11
|
+
};
|
|
12
|
+
const HlmContextMenuConfigToken = new InjectionToken('HlmContextMenuConfig');
|
|
13
|
+
function provideHlmContextMenuConfig(config) {
|
|
14
|
+
return { provide: HlmContextMenuConfigToken, useValue: { ...defaultConfig, ...config } };
|
|
15
|
+
}
|
|
16
|
+
function injectHlmContextMenuConfig() {
|
|
17
|
+
return inject(HlmContextMenuConfigToken, { optional: true }) ?? defaultConfig;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
class HlmContextMenuTrigger {
|
|
21
|
+
_cdkTrigger = inject(CdkContextMenuTrigger, { host: true });
|
|
22
|
+
_config = injectHlmContextMenuConfig();
|
|
23
|
+
disabled = input(this._cdkTrigger.disabled, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
24
|
+
align = input(this._config.align, /* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [{ debugName: "align" }] : /* istanbul ignore next */ []));
|
|
26
|
+
side = input(this._config.side, /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "side" }] : /* istanbul ignore next */ []));
|
|
28
|
+
_menuPosition = computed(() => createMenuPosition(this.align(), this.side()), /* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [{ debugName: "_menuPosition" }] : /* istanbul ignore next */ []));
|
|
30
|
+
constructor() {
|
|
31
|
+
// CDK sets transform-origin on the menu content (a shared hlm-dropdown-menu) from the resolved
|
|
32
|
+
// position; the content reads it to animate from the anchored corner and to derive its data-side.
|
|
33
|
+
// Cast tolerates @angular/cdk < 21.2 (we still support >=21.0), where the property is absent and
|
|
34
|
+
// the assignment is a harmless no-op.
|
|
35
|
+
this._cdkTrigger.transformOriginSelector = '[data-slot="dropdown-menu"]';
|
|
36
|
+
effect(() => {
|
|
37
|
+
this._cdkTrigger.menuPosition = this._menuPosition();
|
|
38
|
+
});
|
|
39
|
+
classes(() => 'select-none');
|
|
40
|
+
}
|
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmContextMenuTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: HlmContextMenuTrigger, isStandalone: true, selector: "[hlmContextMenuTrigger]", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, side: { classPropertyName: "side", publicName: "side", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "data-slot": "context-menu-trigger" }, properties: { "attr.data-disabled": "disabled() ? \"\" : null" } }, providers: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmContextMenuTrigger) }], hostDirectives: [{ directive: i1.CdkContextMenuTrigger, inputs: ["cdkContextMenuTriggerFor", "hlmContextMenuTrigger", "cdkContextMenuTriggerData", "hlmContextMenuTriggerData", "cdkContextMenuDisabled", "disabled"], outputs: ["cdkContextMenuOpened", "hlmContextMenuOpened", "cdkContextMenuClosed", "hlmContextMenuClosed"] }], ngImport: i0 });
|
|
43
|
+
}
|
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmContextMenuTrigger, decorators: [{
|
|
45
|
+
type: Directive,
|
|
46
|
+
args: [{
|
|
47
|
+
selector: '[hlmContextMenuTrigger]',
|
|
48
|
+
providers: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmContextMenuTrigger) }],
|
|
49
|
+
hostDirectives: [
|
|
50
|
+
{
|
|
51
|
+
directive: CdkContextMenuTrigger,
|
|
52
|
+
inputs: [
|
|
53
|
+
'cdkContextMenuTriggerFor: hlmContextMenuTrigger',
|
|
54
|
+
'cdkContextMenuTriggerData: hlmContextMenuTriggerData',
|
|
55
|
+
'cdkContextMenuDisabled: disabled',
|
|
56
|
+
],
|
|
57
|
+
outputs: ['cdkContextMenuOpened: hlmContextMenuOpened', 'cdkContextMenuClosed: hlmContextMenuClosed'],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
host: {
|
|
61
|
+
'data-slot': 'context-menu-trigger',
|
|
62
|
+
'[attr.data-disabled]': 'disabled() ? "" : null',
|
|
63
|
+
},
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: () => [], propDecorators: { disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], side: [{ type: i0.Input, args: [{ isSignal: true, alias: "side", required: false }] }] } });
|
|
66
|
+
|
|
67
|
+
/*
|
|
68
|
+
* Public API Surface of context-menu
|
|
69
|
+
*/
|
|
70
|
+
const HlmContextMenuImports = [HlmContextMenuTrigger];
|
|
71
|
+
class HlmContextMenuModule {
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmContextMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
73
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HlmContextMenuModule, imports: [HlmContextMenuTrigger], exports: [HlmContextMenuTrigger] });
|
|
74
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmContextMenuModule });
|
|
75
|
+
}
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HlmContextMenuModule, decorators: [{
|
|
77
|
+
type: NgModule,
|
|
78
|
+
args: [{
|
|
79
|
+
imports: [...HlmContextMenuImports],
|
|
80
|
+
exports: [...HlmContextMenuImports],
|
|
81
|
+
}]
|
|
82
|
+
}] });
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Generated bundle index. Do not edit.
|
|
86
|
+
*/
|
|
87
|
+
|
|
88
|
+
export { HlmContextMenuImports, HlmContextMenuModule, HlmContextMenuTrigger, injectHlmContextMenuConfig, provideHlmContextMenuConfig };
|
|
89
|
+
//# sourceMappingURL=context-menu.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.mjs","sources":["../../../projects/context-menu/src/lib/hlm-context-menu-token.ts","../../../projects/context-menu/src/lib/hlm-context-menu-trigger.ts","../../../projects/context-menu/src/public-api.ts","../../../projects/context-menu/src/context-menu.ts"],"sourcesContent":["import { InjectionToken, type ValueProvider, inject } from '@angular/core';\nimport { type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\n\nexport interface HlmContextMenuConfig {\n align: MenuAlign;\n side: MenuSide;\n}\n\nconst defaultConfig: HlmContextMenuConfig = {\n align: 'start',\n side: 'bottom',\n};\n\nconst HlmContextMenuConfigToken = new InjectionToken<HlmContextMenuConfig>('HlmContextMenuConfig');\n\nexport function provideHlmContextMenuConfig(config: Partial<HlmContextMenuConfig>): ValueProvider {\n return { provide: HlmContextMenuConfigToken, useValue: { ...defaultConfig, ...config } };\n}\n\nexport function injectHlmContextMenuConfig(): HlmContextMenuConfig {\n return inject(HlmContextMenuConfigToken, { optional: true }) ?? defaultConfig;\n}\n","import { type BooleanInput } from '@angular/cdk/coercion';\nimport { CdkContextMenuTrigger } from '@angular/cdk/menu';\nimport { booleanAttribute, computed, Directive, effect, forwardRef, inject, input } from '@angular/core';\nimport { createMenuPosition, MENU_SIDE, type MenuAlign, type MenuSide } from '@spartan-ng/brain/core';\nimport { classes } from '@egose/shadcn-theme-ng/utils';\nimport { injectHlmContextMenuConfig } from './hlm-context-menu-token';\n\n@Directive({\n selector: '[hlmContextMenuTrigger]',\n providers: [{ provide: MENU_SIDE, useExisting: forwardRef(() => HlmContextMenuTrigger) }],\n hostDirectives: [\n {\n directive: CdkContextMenuTrigger,\n inputs: [\n 'cdkContextMenuTriggerFor: hlmContextMenuTrigger',\n 'cdkContextMenuTriggerData: hlmContextMenuTriggerData',\n 'cdkContextMenuDisabled: disabled',\n ],\n outputs: ['cdkContextMenuOpened: hlmContextMenuOpened', 'cdkContextMenuClosed: hlmContextMenuClosed'],\n },\n ],\n host: {\n 'data-slot': 'context-menu-trigger',\n '[attr.data-disabled]': 'disabled() ? \"\" : null',\n },\n})\nexport class HlmContextMenuTrigger {\n private readonly _cdkTrigger = inject(CdkContextMenuTrigger, { host: true });\n private readonly _config = injectHlmContextMenuConfig();\n\n public readonly disabled = input<boolean, BooleanInput>(this._cdkTrigger.disabled, { transform: booleanAttribute });\n\n public readonly align = input<MenuAlign>(this._config.align);\n public readonly side = input<MenuSide>(this._config.side);\n\n private readonly _menuPosition = computed(() => createMenuPosition(this.align(), this.side()));\n\n constructor() {\n // CDK sets transform-origin on the menu content (a shared hlm-dropdown-menu) from the resolved\n // position; the content reads it to animate from the anchored corner and to derive its data-side.\n // Cast tolerates @angular/cdk < 21.2 (we still support >=21.0), where the property is absent and\n // the assignment is a harmless no-op.\n (this._cdkTrigger as { transformOriginSelector?: string }).transformOriginSelector = '[data-slot=\"dropdown-menu\"]';\n\n effect(() => {\n this._cdkTrigger.menuPosition = this._menuPosition();\n });\n\n classes(() => 'select-none');\n }\n}\n","/*\n * Public API Surface of context-menu\n */\n\nimport { NgModule } from '@angular/core';\n\nimport { HlmContextMenuTrigger } from './lib/hlm-context-menu-trigger';\n\nexport * from './lib/hlm-context-menu-token';\nexport * from './lib/hlm-context-menu-trigger';\n\nexport const HlmContextMenuImports = [HlmContextMenuTrigger] as const;\n\n@NgModule({\n imports: [...HlmContextMenuImports],\n exports: [...HlmContextMenuImports],\n})\nexport class HlmContextMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "context-menu",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^22.0.0",
|
|
6
|
+
"@angular/core": "^22.0.0",
|
|
7
|
+
"@spartan-ng/brain": "^1.1.1"
|
|
8
|
+
},
|
|
9
|
+
"dependencies": {
|
|
10
|
+
"tslib": "^2.3.0"
|
|
11
|
+
},
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"module": "fesm2022/context-menu.mjs",
|
|
14
|
+
"typings": "types/context-menu.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
"./package.json": {
|
|
17
|
+
"default": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./types/context-menu.d.ts",
|
|
21
|
+
"default": "./fesm2022/context-menu.mjs"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"type": "module"
|
|
25
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ValueProvider } from '@angular/core';
|
|
3
|
+
import { BooleanInput } from '@angular/cdk/coercion';
|
|
4
|
+
import { MenuAlign, MenuSide } from '@spartan-ng/brain/core';
|
|
5
|
+
import * as i1 from '@angular/cdk/menu';
|
|
6
|
+
|
|
7
|
+
declare class HlmContextMenuTrigger {
|
|
8
|
+
private readonly _cdkTrigger;
|
|
9
|
+
private readonly _config;
|
|
10
|
+
readonly disabled: i0.InputSignalWithTransform<boolean, BooleanInput>;
|
|
11
|
+
readonly align: i0.InputSignal<MenuAlign>;
|
|
12
|
+
readonly side: i0.InputSignal<MenuSide>;
|
|
13
|
+
private readonly _menuPosition;
|
|
14
|
+
constructor();
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmContextMenuTrigger, never>;
|
|
16
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HlmContextMenuTrigger, "[hlmContextMenuTrigger]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "side": { "alias": "side"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.CdkContextMenuTrigger; inputs: { "cdkContextMenuTriggerFor": "hlmContextMenuTrigger"; "cdkContextMenuTriggerData": "hlmContextMenuTriggerData"; "cdkContextMenuDisabled": "disabled"; }; outputs: { "cdkContextMenuOpened": "hlmContextMenuOpened"; "cdkContextMenuClosed": "hlmContextMenuClosed"; }; }]>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
interface HlmContextMenuConfig {
|
|
20
|
+
align: MenuAlign;
|
|
21
|
+
side: MenuSide;
|
|
22
|
+
}
|
|
23
|
+
declare function provideHlmContextMenuConfig(config: Partial<HlmContextMenuConfig>): ValueProvider;
|
|
24
|
+
declare function injectHlmContextMenuConfig(): HlmContextMenuConfig;
|
|
25
|
+
|
|
26
|
+
declare const HlmContextMenuImports: readonly [typeof HlmContextMenuTrigger];
|
|
27
|
+
declare class HlmContextMenuModule {
|
|
28
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HlmContextMenuModule, never>;
|
|
29
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<HlmContextMenuModule, never, [typeof HlmContextMenuTrigger], [typeof HlmContextMenuTrigger]>;
|
|
30
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<HlmContextMenuModule>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export { HlmContextMenuImports, HlmContextMenuModule, HlmContextMenuTrigger, injectHlmContextMenuConfig, provideHlmContextMenuConfig };
|
|
34
|
+
export type { HlmContextMenuConfig };
|