ngx-kit 8.0.2 → 8.1.0
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/fesm2022/ngx-kit-core.mjs +1 -1
- package/fesm2022/ngx-kit-core.mjs.map +1 -1
- package/fesm2022/ngx-kit-drag-resize.mjs +277 -174
- package/fesm2022/ngx-kit-drag-resize.mjs.map +1 -1
- package/fesm2022/ngx-kit-infinite-scroll.mjs +4 -1
- package/fesm2022/ngx-kit-infinite-scroll.mjs.map +1 -1
- package/fesm2022/ngx-kit-message.mjs +43 -91
- package/fesm2022/ngx-kit-message.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ngx-kit-drag-resize.d.ts +52 -32
- package/types/ngx-kit-message.d.ts +9 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-kit-message.mjs","sources":["../../../projects/libs/message/models/tokens.ts","../../../projects/libs/message/models/message-result.ts","../../../projects/libs/message/models/icons.ts","../../../projects/libs/message/components/message.component.ts","../../../projects/libs/message/components/message.component.html","../../../projects/libs/message/services/apply-default.ts","../../../projects/libs/message/services/message.service.ts","../../../projects/libs/message/message-facade.ts","../../../projects/libs/message/message-provider.ts","../../../projects/libs/message/models/message-options.ts","../../../projects/libs/message/ngx-kit-message.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IMessageOptions } from './message-options.interface';\nimport { NgxMessageService } from '../public-api';\nimport { MessageOptions } from './message-options';\n\nexport const NGX_MESSAGE_CONFIGS = new InjectionToken<IMessageOptions>('ngx-message-configs');\n\nexport const NGX_MESSAGE_API = new InjectionToken<NgxMessageService>('NgxMessageService');\nexport const NGX_MESSAGE_DEFAULT_OPTIONS: MessageOptions = {\n useOverlay: true,\n title: '',\n text: '',\n html: '',\n backdrop: true,\n icon: 'None',\n width: undefined,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n confirmButtonText: 'Ok',\n denyButtonText: 'No',\n cancelButtonText: 'Cancel',\n confirmButtonColor: '',\n denyButtonColor: '',\n cancelButtonColor: '',\n confirmButtonAriaLabel: '',\n denyButtonAriaLabel: '',\n cancelButtonAriaLabel: '',\n reverseButtons: false,\n showCloseButton: true,\n containerClass: '',\n};\n","import { EventEmitter } from '@angular/core';\n\nexport type MessageOutput<T = any> = {\n id: number;\n close: () => void;\n afterClose: EventEmitter<MessageResult>;\n};\nexport interface MessageResult<T = any> {\n readonly isConfirmed: boolean;\n readonly isDenied: boolean;\n readonly isDismissed: boolean;\n /**\n * @description ❌⚠️NOT Implemented!⚠️❌\n */\n readonly value?: T;\n readonly dismiss?: DismissReason;\n}\n\n/**\n * An enum of possible reasons that can explain an alert dismissal.\n */\nexport enum DismissReason {\n cancel,\n backdrop,\n close,\n /**\n * @description ❌⚠️NOT Implemented!⚠️❌\n */\n esc,\n /**\n * @description ❌⚠️NOT Implemented!⚠️❌\n */\n timer,\n}\n","// 'None' | 'success' | 'error' | 'warning' | 'info' | 'question' | 'loading';\nexport const ICONS: { [key: string]: string } = {\n None: '',\n success: `<svg viewBox=\"0 0 46 46\"><path class=\"draw\" d=\"M12 24 L20 32 L34 15\"/></svg>`,\n error: `<svg viewBox=\"0 0 46 46\"><path class=\"draw\" d=\"M14 14 L32 32\"/><path class=\"draw\" style=\"animation-delay:.55s\" d=\"M32 14 L14 32\"/></svg>`,\n warning: `<svg viewBox=\"0 0 46 46\"><path class=\"draw\" d=\"M23 10 L23 26\"/><circle class=\"dot-mark\" cx=\"23\" cy=\"34\" r=\"3.4\"/></svg>`,\n info: `<svg viewBox=\"0 0 46 46\"><circle class=\"dot-mark\" cx=\"23\" cy=\"12\" r=\"3.2\" style=\"animation-delay:.28s\"/><path class=\"draw\" style=\"animation-delay:.4s\" d=\"M23 20 L23 36\"/></svg>`,\n question: `<svg viewBox=\"0 0 320 512\"><path fill=\"currentColor\" d=\"M204.3 32.01H96c-52.94 0-96 43.06-96 96c0 17.67 14.31 31.1 32 31.1s32-14.32 32-31.1c0-17.64 14.34-32 32-32h108.3C232.8 96.01 256 119.2 256 147.8c0 19.72-10.97 37.47-30.5 47.33L127.8 252.4C117.1 258.2 112 268.7 112 280v40c0 17.67 14.31 31.99 32 31.99s32-14.32 32-31.99V298.3L256 251.3c39.47-19.75 64-59.42 64-103.5C320 83.95 268.1 32.01 204.3 32.01zM144 400c-22.09 0-40 17.91-40 40s17.91 39.1 40 39.1s40-17.9 40-39.1S166.1 400 144 400z\"/></svg>`,\n loading: `<div class=\"spinner-wrap\"><div class=\"spinner\"></div></div>`,\n};\n","import {\n AfterViewInit,\n Component,\n DOCUMENT,\n ElementRef,\n HostListener,\n inject,\n OnInit,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IMessageOptions } from '../models/message-options.interface';\nimport { Subject } from 'rxjs';\nimport { MessageResult, DismissReason } from '../models/message-result';\nimport { CommonModule } from '@angular/common';\nimport { NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS } from '../models/tokens';\nimport { ICONS } from '../models/icons';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { makeConfetti } from 'ngx-kit/core';\nimport { NgxMessageService } from '../services/message.service';\n\n@Component({\n selector: 'ngx-message',\n templateUrl: 'message.component.html',\n styleUrls: ['./message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n providers: [\n {\n provide: NGX_MESSAGE_CONFIGS,\n useValue: NGX_MESSAGE_DEFAULT_OPTIONS,\n },\n ],\n})\nexport class NgxMessageComponent implements OnInit, AfterViewInit {\n icon?: SafeHtml;\n showIcon = signal(true);\n options: IMessageOptions = NGX_MESSAGE_DEFAULT_OPTIONS;\n confetti = viewChild<ElementRef<HTMLDivElement>>('confetti');\n index = 0;\n\n protected sanitizer = inject(DomSanitizer);\n protected doc = inject(DOCUMENT);\n private readonly messageService = inject(NgxMessageService);\n\n private readonly _onClose = new Subject<{ index: number; result: MessageResult<any> }>();\n public onClose = this._onClose.asObservable();\n\n ngOnInit(): void {\n this.showIcon.update((x) => (x = this.options.icon != 'None'));\n this.icon = this.sanitizer.bypassSecurityTrustHtml(ICONS[this.options.icon ?? 'None']);\n }\n\n ngAfterViewInit(): void {\n const confetti = this.confetti()?.nativeElement;\n if (this.options.icon == 'success' && confetti) {\n makeConfetti(this.doc, confetti);\n }\n }\n\n /**\n * وقتی چند تا پیام همزمان باز باشن، هرکدوم listener خودشو روی document\n * داشت — پس یه فشردن Escape/Enter، رویداد رو به *همهشون* همزمان میفرستاد،\n * نه فقط آخرین پیامی که باز شده (رفتار طبیعیِ یه استکِ مودال باید این باشه\n * که فقط بالاترین لایه به کیبورد واکنش نشون بده). این چک همون چیزیه که\n * OverlayService با getLastDialog() برای اورلیها انجام میده.\n */\n private isTopmost(): boolean {\n const ids = [...this.messageService.alerts.keys()];\n if (!ids.length) return true;\n return this.index === Math.max(...ids);\n }\n\n @HostListener('document:keydown.escape', ['$event'])\n onScapeKey(event: Event) {\n if (this.options.allowEscapeKey && this.isTopmost()) {\n this.onCancel();\n }\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onEnterKey(event: Event) {\n if (!this.isTopmost()) return;\n event.stopPropagation();\n event.preventDefault();\n if (this.options.allowEnterKey) {\n if (this.options.showConfirmButton) {\n this.onConfirm();\n } else if (this.options.showDenyButton) {\n this.onDeny();\n } else {\n this.onCancel();\n }\n }\n }\n\n onConfirm() {\n this._onClose.next({\n index: this.index,\n result: {\n isConfirmed: true,\n isDismissed: false,\n isDenied: false,\n dismiss: DismissReason.close,\n },\n });\n }\n onCancel() {\n this._onClose.next({\n index: this.index,\n result: {\n isConfirmed: false,\n isDismissed: true,\n isDenied: false,\n dismiss: DismissReason.cancel,\n },\n });\n }\n onDeny() {\n this._onClose.next({\n index: this.index,\n result: {\n isConfirmed: false,\n isDismissed: false,\n isDenied: true,\n dismiss: DismissReason.close,\n },\n });\n }\n close() {\n this.onCancel();\n }\n\n onOutSideClick() {\n if (this.options.allowOutsideClick) {\n this.onCancel();\n }\n }\n innerOnClick(ev: Event) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n}\n","<div\n class=\"ngx-msg-overlay show\"\n (click)=\"onOutSideClick()\"\n [ngClass]=\"options.containerClass\"\n [class.has-backdrop]=\"options.backdrop\"\n [attr.data-type]=\"options.icon\">\n <div class=\"ngx-msg-modal\" (click)=\"innerOnClick($event)\">\n <div class=\"confetti\" #confetti></div>\n @if (options.showCloseButton) {\n <button class=\"close-x\" (click)=\"close()\" aria-label=\"Close\">✕</button>\n }\n @if (showIcon()) {\n <div class=\"icon-stage\">\n <div class=\"icon-ring\"></div>\n <div class=\"icon-disc\" [innerHTML]=\"icon\"></div>\n </div>\n }\n <h2>{{ options.title }}</h2>\n <p class=\"desc\">\n {{ options.text }}\n <span [innerHTML]=\"options.html\"></span>\n </p>\n\n <div class=\"ngx-msg-actions\">\n @if (options.showCancelButton) {\n <button\n class=\"btn btn-ghost\"\n (click)=\"onCancel()\"\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\n {{ options.cancelButtonText }}\n </button>\n }\n @if (options.showDenyButton) {\n <button\n class=\"btn btn-ghost\"\n (click)=\"onDeny()\"\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\n {{ options.denyButtonText }}\n </button>\n }\n @if (options.showConfirmButton) {\n <button\n class=\"btn btn-primary\"\n (click)=\"onConfirm()\"\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\n {{ options.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n</div>\n","export function applyDefaultConfig(config: any, defaultConfig: any): any {\n var config = JSON.parse(JSON.stringify(config));\n for (let key in defaultConfig) {\n if (config[key] === undefined || config[key] === null || config[key] === '') {\n config[key] = defaultConfig[key];\n } else if (typeof config[key] === 'object') {\n config[key] = applyDefaultConfig(config[key], defaultConfig[key]);\n }\n }\n return config;\n}\n","import {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n EnvironmentInjector,\n EventEmitter,\n Inject,\n Injectable,\n Injector,\n} from '@angular/core';\nimport { NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS } from '../models/tokens';\nimport { IMessageOptions } from '../models/message-options.interface';\nimport { MessageOutput, MessageResult } from '../models/message-result';\nimport { DOCUMENT } from '@angular/common';\nimport { NgxMessageComponent } from '../components/message.component';\nimport { applyDefaultConfig } from './apply-default';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxMessageService {\n // قبلاً یه آرایهی معمولی بود (`ComponentRef[]`) و removeDialogComponentFromBody\n // فقط componentRef رو destroy میکرد ولی هیچوقت از آرایه حذفش نمیکرد — یعنی\n // این سرویس (که providedIn:'root' و singleton سراسریه) به ازای هر پیامی که\n // تا حالا تو کل عمر اپ نشون داده شده، یک رفرنس destroy-شده رو برای همیشه نگه\n // میداشت: یک نشتی حافظهی پیوسته. با Map<id, ComponentRef> جایگزین شد که\n // با delete واقعاً entry رو آزاد میکنه؛ کلید هم شناسهی پایدارِ پیام (insertedId)\n // هست، نه موقعیتِ آرایه (که با splice ممکن بود جابهجا و نامعتبر بشه).\n alerts = new Map<number, ComponentRef<NgxMessageComponent>>();\n insertedId = 0;\n constructor(\n private appRef: ApplicationRef,\n private injector: Injector,\n private envInjector: EnvironmentInjector,\n @Inject(DOCUMENT) private _doc: Document,\n ) {}\n\n public show<T = any>(c?: IMessageOptions): MessageOutput<T> {\n let d = applyDefaultConfig(\n this.injector.get(NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS),\n NGX_MESSAGE_DEFAULT_OPTIONS,\n );\n const config = applyDefaultConfig(c, d);\n\n const componentRef = createComponent(NgxMessageComponent, {\n environmentInjector: this.envInjector,\n });\n\n this.appRef.attachView(componentRef.hostView);\n const id = this.insertedId++;\n const payload: MessageOutput<T> = {\n close: () => componentRef.instance.close(),\n id,\n afterClose: new EventEmitter(),\n };\n this.appendDialogComponentToBody(componentRef, config);\n componentRef.instance.options = config;\n componentRef.instance.index = id;\n componentRef.instance.onClose.subscribe((result) => {\n this.removeDialogComponentFromBody(result.index);\n payload.afterClose.emit(result.result);\n });\n this.alerts.set(id, componentRef);\n\n return payload;\n }\n\n private removeDialogComponentFromBody(id: number): void {\n const ref = this.alerts.get(id);\n if (!ref) return;\n\n const domElem = (ref.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n // قبل از destroy باید hidePopover صدا بزنیم\n if (domElem.popover === 'manual') {\n try {\n domElem.hidePopover();\n } catch {}\n }\n\n this.appRef.detachView(ref.hostView);\n ref.destroy();\n this.alerts.delete(id);\n }\n\n private appendDialogComponentToBody(\n componentRef: ComponentRef<NgxMessageComponent>,\n config: IMessageOptions,\n ) {\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n if (config.containerClass) {\n for (let c of config.containerClass.split(' ')) {\n if (c.trim()) domElem.classList.add(c);\n }\n }\n this._doc.body.appendChild(domElem);\n if (config.useOverlay) {\n domElem.popover = 'manual';\n domElem.showPopover();\n }\n }\n\n closeAll() {\n for (const id of [...this.alerts.keys()]) {\n this.removeDialogComponentFromBody(id);\n }\n }\n}\n","import { Injector } from '@angular/core';\nimport { NGX_MESSAGE_API } from './models/tokens';\nimport { IMessageOptions } from './models/message-options.interface';\n\n/**\n * Static facade so call sites can use: MSG.warn('msg', opts)\n * Module will set the service instance in its constructor.\n */\nexport class MSG {\n static injector: Injector;\n\n static show<T = any>(options?: IMessageOptions) {\n if (!MSG.injector) {\n throw new Error(\n 'ngx-kit: Error on EnvironmentProvider. Ensure \"provideMessage()\" in root provider.',\n );\n }\n\n return MSG.injector.get(NGX_MESSAGE_API).show<T>(options);\n }\n\n static fire(options?: IMessageOptions) {\n return this.show(options);\n }\n\n static info(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'info',\n title,\n text,\n ...options,\n });\n }\n\n static success(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'success',\n title,\n text,\n ...options,\n });\n }\n static warning(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'warning',\n title,\n text,\n ...options,\n });\n }\n static error(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'error',\n title,\n text,\n ...options,\n });\n }\n static question(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'question',\n title,\n text,\n ...options,\n showConfirmButton: true,\n showCancelButton: true,\n });\n }\n static loading(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'loading',\n title,\n text,\n ...options,\n showConfirmButton: false,\n showCancelButton: false,\n showDenyButton: false,\n });\n }\n}\n\nexport class Modal extends MSG {}\n","import {\n EnvironmentProviders,\n inject,\n Injector,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { IMessageOptions } from './models/message-options.interface';\nimport { NGX_MESSAGE_API, NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS } from './models/tokens';\nimport { NgxMessageService } from './services/message.service';\nimport { MSG as MessageFacade } from './message-facade';\nimport { Modal as ModalFacade } from './message-facade';\n\nexport function provideMessage(options?: IMessageOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: NGX_MESSAGE_CONFIGS,\n useValue: { ...NGX_MESSAGE_DEFAULT_OPTIONS, ...(options || {}) },\n },\n {\n provide: NGX_MESSAGE_API,\n useExisting: NgxMessageService,\n },\n provideEnvironmentInitializer(() => {\n MessageFacade.injector = inject(Injector);\n ModalFacade.injector = inject(Injector);\n }),\n ]);\n}\n","import { MessageIcon } from './MessageIcon';\nimport { IMessageOptions } from './message-options.interface';\n\nexport class MessageOptions implements IMessageOptions {\n public constructor(private config?: IMessageOptions) {\n //config = { ...(new MessageOptions()), ...config };\n }\n /**\n * add popover manual to set alert dialog container to top layer\n * - usefull when using alert modal in angular material dialog\n *\n */\n useOverlay?: boolean;\n title?: string = '';\n text?: string = '';\n html?: string | HTMLElement = '';\n backdrop?: boolean = true;\n icon?: MessageIcon;\n width?: number | string;\n allowOutsideClick?: boolean = true;\n allowEscapeKey?: boolean = true;\n allowEnterKey?: boolean = true;\n showConfirmButton?: boolean = true;\n showDenyButton?: boolean = false;\n showCancelButton?: boolean = false;\n confirmButtonText: string = 'Ok';\n denyButtonText?: string = 'No';\n cancelButtonText?: string = 'Cancel';\n confirmButtonColor?: string;\n denyButtonColor?: string;\n cancelButtonColor?: string;\n confirmButtonAriaLabel?: string = '';\n denyButtonAriaLabel?: string = '';\n cancelButtonAriaLabel?: string = '';\n reverseButtons?: boolean = false;\n showCloseButton?: boolean = false;\n containerClass?: string = '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DOCUMENT","MessageFacade","ModalFacade"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-kit-message.mjs","sources":["../../../projects/libs/message/models/tokens.ts","../../../projects/libs/message/models/message-result.ts","../../../projects/libs/message/models/icons.ts","../../../projects/libs/message/components/message.component.ts","../../../projects/libs/message/components/message.component.html","../../../projects/libs/message/services/apply-default.ts","../../../projects/libs/message/services/message.service.ts","../../../projects/libs/message/message-facade.ts","../../../projects/libs/message/message-provider.ts","../../../projects/libs/message/models/message-options.ts","../../../projects/libs/message/ngx-kit-message.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { IMessageOptions } from './message-options.interface';\nimport { NgxMessageService } from '../public-api';\nimport { MessageOptions } from './message-options';\n\nexport const NGX_MESSAGE_CONFIGS = new InjectionToken<IMessageOptions>('ngx-message-configs');\n\nexport const NGX_MESSAGE_API = new InjectionToken<NgxMessageService>('NgxMessageService');\nexport const NGX_MESSAGE_DEFAULT_OPTIONS: MessageOptions = {\n useOverlay: true,\n title: '',\n text: '',\n html: '',\n backdrop: true,\n icon: 'None',\n width: undefined,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n confirmButtonText: 'Ok',\n denyButtonText: 'No',\n cancelButtonText: 'Cancel',\n confirmButtonColor: '',\n denyButtonColor: '',\n cancelButtonColor: '',\n confirmButtonAriaLabel: '',\n denyButtonAriaLabel: '',\n cancelButtonAriaLabel: '',\n reverseButtons: false,\n showCloseButton: true,\n containerClass: '',\n};\n","import { EventEmitter } from '@angular/core';\n\nexport type MessageOutput<T = any> = {\n id: number;\n close: () => void;\n afterClose: EventEmitter<MessageResult>;\n};\nexport interface MessageResult<T = any> {\n readonly isConfirmed: boolean;\n readonly isDenied: boolean;\n readonly isDismissed: boolean;\n /**\n * @description ❌⚠️NOT Implemented!⚠️❌\n */\n readonly value?: T;\n readonly dismiss?: DismissReason;\n}\n\n/**\n * An enum of possible reasons that can explain an alert dismissal.\n */\nexport enum DismissReason {\n cancel,\n backdrop,\n close,\n /**\n * @description ❌⚠️NOT Implemented!⚠️❌\n */\n esc,\n /**\n * @description ❌⚠️NOT Implemented!⚠️❌\n */\n timer,\n}\n","// 'None' | 'success' | 'error' | 'warning' | 'info' | 'question' | 'loading';\nexport const ICONS: { [key: string]: string } = {\n None: '',\n success: `<svg viewBox=\"0 0 46 46\"><path class=\"draw\" d=\"M12 24 L20 32 L34 15\"/></svg>`,\n error: `<svg viewBox=\"0 0 46 46\"><path class=\"draw\" d=\"M14 14 L32 32\"/><path class=\"draw\" style=\"animation-delay:.55s\" d=\"M32 14 L14 32\"/></svg>`,\n warning: `<svg viewBox=\"0 0 46 46\"><path class=\"draw\" d=\"M23 10 L23 26\"/><circle class=\"dot-mark\" cx=\"23\" cy=\"34\" r=\"3.4\"/></svg>`,\n info: `<svg viewBox=\"0 0 46 46\"><circle class=\"dot-mark\" cx=\"23\" cy=\"12\" r=\"3.2\" style=\"animation-delay:.28s\"/><path class=\"draw\" style=\"animation-delay:.4s\" d=\"M23 20 L23 36\"/></svg>`,\n question: `<svg viewBox=\"0 0 320 512\"><path fill=\"currentColor\" d=\"M204.3 32.01H96c-52.94 0-96 43.06-96 96c0 17.67 14.31 31.1 32 31.1s32-14.32 32-31.1c0-17.64 14.34-32 32-32h108.3C232.8 96.01 256 119.2 256 147.8c0 19.72-10.97 37.47-30.5 47.33L127.8 252.4C117.1 258.2 112 268.7 112 280v40c0 17.67 14.31 31.99 32 31.99s32-14.32 32-31.99V298.3L256 251.3c39.47-19.75 64-59.42 64-103.5C320 83.95 268.1 32.01 204.3 32.01zM144 400c-22.09 0-40 17.91-40 40s17.91 39.1 40 39.1s40-17.9 40-39.1S166.1 400 144 400z\"/></svg>`,\n loading: `<div class=\"spinner-wrap\"><div class=\"spinner\"></div></div>`,\n};\n","import {\n AfterViewInit,\n Component,\n DOCUMENT,\n ElementRef,\n HostListener,\n inject,\n OnInit,\n signal,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { IMessageOptions } from '../models/message-options.interface';\nimport { Subject } from 'rxjs';\nimport { MessageResult, DismissReason } from '../models/message-result';\nimport { CommonModule } from '@angular/common';\nimport { NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS } from '../models/tokens';\nimport { ICONS } from '../models/icons';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { makeConfetti } from 'ngx-kit/core';\nimport { NgxMessageService } from '../services/message.service';\n\n@Component({\n selector: 'ngx-message',\n templateUrl: 'message.component.html',\n styleUrls: ['./message.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule],\n providers: [\n {\n provide: NGX_MESSAGE_CONFIGS,\n useValue: NGX_MESSAGE_DEFAULT_OPTIONS,\n },\n ],\n})\nexport class NgxMessageComponent implements OnInit, AfterViewInit {\n icon?: SafeHtml;\n showIcon = signal(true);\n options: IMessageOptions = NGX_MESSAGE_DEFAULT_OPTIONS;\n confetti = viewChild<ElementRef<HTMLDivElement>>('confetti');\n index = 0;\n\n protected sanitizer = inject(DomSanitizer);\n protected doc = inject(DOCUMENT);\n private readonly messageService = inject(NgxMessageService);\n\n private readonly _onClose = new Subject<{ index: number; result: MessageResult<any> }>();\n public onClose = this._onClose.asObservable();\n\n ngOnInit(): void {\n this.showIcon.update((x) => (x = this.options.icon != 'None'));\n this.icon = this.sanitizer.bypassSecurityTrustHtml(ICONS[this.options.icon ?? 'None']);\n }\n\n ngAfterViewInit(): void {\n const confetti = this.confetti()?.nativeElement;\n if (this.options.icon == 'success' && confetti) {\n makeConfetti(this.doc, confetti);\n }\n }\n\n private isTopmost(): boolean {\n const ids = [...this.messageService.alerts.keys()];\n if (!ids.length) return true;\n return this.index === Math.max(...ids);\n }\n\n @HostListener('document:keydown.enter', ['$event'])\n onEnterKey(event: Event) {\n if (!this.isTopmost()) return;\n event.stopPropagation();\n event.preventDefault();\n if (this.options.allowEnterKey) {\n if (this.options.showConfirmButton) {\n this.onConfirm();\n } else if (this.options.showDenyButton) {\n this.onDeny();\n } else {\n this.onCancel();\n }\n }\n }\n\n onConfirm() {\n this._onClose.next({\n index: this.index,\n result: {\n isConfirmed: true,\n isDismissed: false,\n isDenied: false,\n dismiss: DismissReason.close,\n },\n });\n }\n onCancel() {\n this._onClose.next({\n index: this.index,\n result: {\n isConfirmed: false,\n isDismissed: true,\n isDenied: false,\n dismiss: DismissReason.cancel,\n },\n });\n }\n onDeny() {\n this._onClose.next({\n index: this.index,\n result: {\n isConfirmed: false,\n isDismissed: false,\n isDenied: true,\n dismiss: DismissReason.close,\n },\n });\n }\n close() {\n this.onCancel();\n }\n}\n","<div\n class=\"ngx-msg-modal show\"\n [ngClass]=\"options.containerClass\"\n [attr.data-type]=\"options.icon\"\n animate.leave=\"close-ngx-msg-modal\">\n <div class=\"confetti\" #confetti></div>\n @if (options.showCloseButton) {\n <button class=\"close-x\" (click)=\"close()\" aria-label=\"Close\">✕</button>\n }\n @if (showIcon()) {\n <div class=\"icon-stage\">\n <div class=\"icon-ring\"></div>\n <div class=\"icon-disc\" [innerHTML]=\"icon\"></div>\n </div>\n }\n <h2>{{ options.title }}</h2>\n <p class=\"desc\">\n {{ options.text }}\n <span [innerHTML]=\"options.html\"></span>\n </p>\n\n <div class=\"ngx-msg-actions\">\n @if (options.showCancelButton) {\n <button\n class=\"btn btn-ghost\"\n (click)=\"onCancel()\"\n [attr.aria-label]=\"options.cancelButtonAriaLabel\">\n {{ options.cancelButtonText }}\n </button>\n }\n @if (options.showDenyButton) {\n <button\n class=\"btn btn-ghost\"\n (click)=\"onDeny()\"\n [attr.aria-label]=\"options.denyButtonAriaLabel\">\n {{ options.denyButtonText }}\n </button>\n }\n @if (options.showConfirmButton) {\n <button\n class=\"btn btn-primary\"\n (click)=\"onConfirm()\"\n [attr.aria-label]=\"options.confirmButtonAriaLabel\">\n {{ options.confirmButtonText }}\n </button>\n }\n </div>\n</div>\n","export function applyDefaultConfig(config: any, defaultConfig: any): any {\n var config = JSON.parse(JSON.stringify(config));\n for (let key in defaultConfig) {\n if (config[key] === undefined || config[key] === null || config[key] === '') {\n config[key] = defaultConfig[key];\n } else if (typeof config[key] === 'object') {\n config[key] = applyDefaultConfig(config[key], defaultConfig[key]);\n }\n }\n return config;\n}\n","import { EventEmitter, inject, Injectable, Injector } from '@angular/core';\nimport { NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS } from '../models/tokens';\nimport { IMessageOptions } from '../models/message-options.interface';\nimport { MessageOutput } from '../models/message-result';\nimport { NgxMessageComponent } from '../components/message.component';\nimport { applyDefaultConfig } from './apply-default';\nimport { OverlayService, OverlayRef } from 'ngx-kit/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NgxMessageService {\n alerts = new Map<number, OverlayRef<NgxMessageComponent>>();\n\n protected readonly overlay = inject(OverlayService);\n insertedId = 0;\n constructor(private injector: Injector) {}\n\n public show<T = any>(c?: IMessageOptions): MessageOutput<T> {\n let d = applyDefaultConfig(\n this.injector.get(NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS),\n NGX_MESSAGE_DEFAULT_OPTIONS,\n );\n const config: IMessageOptions = applyDefaultConfig(c, d);\n\n const id = this.insertedId++;\n const payload: MessageOutput<T> = {\n close,\n id,\n afterClose: new EventEmitter(),\n };\n const ref = this.overlay.open({\n component: NgxMessageComponent,\n usePopover: config.useOverlay,\n closeOnEscape: config.allowEscapeKey,\n closeOnOutsideClick: config.allowOutsideClick,\n alignment: 'center',\n placement: 'center',\n ariaDescribedby: config.ariaDescribedby,\n ariaLabel: config.ariaLabel,\n ariaLabelledby: config.ariaLabelledby,\n ariaModal: true,\n role: 'alertdialog',\n backdropClass: 'ngx-msg-backdrop',\n panelClass: 'ngx-msg-panel',\n configure: (instance, ref) => {\n instance.options = config;\n instance.index = id;\n instance.onClose.subscribe((result) => {\n this.remove(result.index);\n payload.afterClose.emit(result.result);\n });\n },\n onClosed: () => this.remove(id),\n });\n\n this.alerts.set(id, ref);\n\n return payload;\n }\n\n private remove(id: number): void {\n const ref = this.alerts.get(id);\n if (!ref) return;\n ref.close();\n this.alerts.delete(id);\n }\n\n closeAll() {\n this.alerts.forEach((item) => {\n item.close();\n });\n this.alerts.clear();\n }\n}\n","import { Injector } from '@angular/core';\nimport { NGX_MESSAGE_API } from './models/tokens';\nimport { IMessageOptions } from './models/message-options.interface';\n\n/**\n * Static facade so call sites can use: MSG.warn('msg', opts)\n * Module will set the service instance in its constructor.\n */\nexport class MSG {\n static injector: Injector;\n\n static show<T = any>(options?: IMessageOptions) {\n if (!MSG.injector) {\n throw new Error(\n 'ngx-kit: Error on EnvironmentProvider. Ensure \"provideMessage()\" in root provider.',\n );\n }\n\n return MSG.injector.get(NGX_MESSAGE_API).show<T>(options);\n }\n\n static fire(options?: IMessageOptions) {\n return this.show(options);\n }\n\n static info(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'info',\n title,\n text,\n ...options,\n });\n }\n\n static success(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'success',\n title,\n text,\n ...options,\n });\n }\n static warning(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'warning',\n title,\n text,\n ...options,\n });\n }\n static error(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'error',\n title,\n text,\n ...options,\n });\n }\n static question(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'question',\n title,\n text,\n ...options,\n showConfirmButton: true,\n showCancelButton: true,\n });\n }\n static loading(title: string, text?: string, options?: IMessageOptions) {\n return this.show({\n icon: 'loading',\n title,\n text,\n ...options,\n showConfirmButton: false,\n showCancelButton: false,\n showDenyButton: false,\n });\n }\n}\n\nexport class Modal extends MSG {}\n","import {\n EnvironmentProviders,\n inject,\n Injector,\n makeEnvironmentProviders,\n provideEnvironmentInitializer,\n} from '@angular/core';\nimport { IMessageOptions } from './models/message-options.interface';\nimport { NGX_MESSAGE_API, NGX_MESSAGE_CONFIGS, NGX_MESSAGE_DEFAULT_OPTIONS } from './models/tokens';\nimport { NgxMessageService } from './services/message.service';\nimport { MSG as MessageFacade } from './message-facade';\nimport { Modal as ModalFacade } from './message-facade';\n\nexport function provideMessage(options?: IMessageOptions): EnvironmentProviders {\n return makeEnvironmentProviders([\n {\n provide: NGX_MESSAGE_CONFIGS,\n useValue: { ...NGX_MESSAGE_DEFAULT_OPTIONS, ...(options || {}) },\n },\n {\n provide: NGX_MESSAGE_API,\n useExisting: NgxMessageService,\n },\n provideEnvironmentInitializer(() => {\n MessageFacade.injector = inject(Injector);\n ModalFacade.injector = inject(Injector);\n }),\n ]);\n}\n","import { MessageIcon } from './MessageIcon';\nimport { IMessageOptions } from './message-options.interface';\n\nexport class MessageOptions implements IMessageOptions {\n public constructor(private config?: IMessageOptions) {\n //config = { ...(new MessageOptions()), ...config };\n }\n /**\n * add popover manual to set alert dialog container to top layer\n * - usefull when using alert modal in angular material dialog\n *\n */\n useOverlay?: boolean;\n title?: string = '';\n text?: string = '';\n html?: string | HTMLElement = '';\n backdrop?: boolean = true;\n icon?: MessageIcon;\n width?: number | string;\n allowOutsideClick?: boolean = true;\n allowEscapeKey?: boolean = true;\n allowEnterKey?: boolean = true;\n showConfirmButton?: boolean = true;\n showDenyButton?: boolean = false;\n showCancelButton?: boolean = false;\n confirmButtonText: string = 'Ok';\n denyButtonText?: string = 'No';\n cancelButtonText?: string = 'Cancel';\n confirmButtonColor?: string;\n denyButtonColor?: string;\n cancelButtonColor?: string;\n confirmButtonAriaLabel?: string = '';\n denyButtonAriaLabel?: string = '';\n cancelButtonAriaLabel?: string = '';\n reverseButtons?: boolean = false;\n showCloseButton?: boolean = false;\n containerClass?: string = '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["MessageFacade","ModalFacade"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { TemplateRef, ApplicationRef, EventEmitter, InjectionToken, OnInit, OnDestroy, Renderer2, ElementRef
|
|
2
|
+
import { TemplateRef, ApplicationRef, EventEmitter, InjectionToken, OnInit, OnDestroy, AfterContentInit, Renderer2, ElementRef } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
interface IPosition {
|
|
5
5
|
x: number;
|
|
@@ -19,17 +19,6 @@ declare class DropListGroupRef {
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
declare class PlaceHolderRef {
|
|
22
|
-
/**
|
|
23
|
-
* Custom placeholder content, from `*ngxPlaceholder` inside the `ngxDropList`. When unset,
|
|
24
|
-
* `attach()` falls back to a shallow clone of the dragged element (previous behaviour).
|
|
25
|
-
*
|
|
26
|
-
* Example:
|
|
27
|
-
*
|
|
28
|
-
* <div ngxDropList>
|
|
29
|
-
* <span class="my-placeholder" *ngxPlaceholder></span>
|
|
30
|
-
* ...
|
|
31
|
-
* </div>
|
|
32
|
-
*/
|
|
33
22
|
tpl?: TemplateRef<unknown>;
|
|
34
23
|
/** Set by `NgxPlaceholder` so the embedded view can join Angular's change-detection tree. */
|
|
35
24
|
appRef?: ApplicationRef;
|
|
@@ -200,19 +189,6 @@ declare class DragDropService {
|
|
|
200
189
|
readonly drags: _angular_core.WritableSignal<readonly DragRef<unknown>[]>;
|
|
201
190
|
readonly dropLists: _angular_core.WritableSignal<readonly DropListRef<any>[]>;
|
|
202
191
|
readonly activeDrag: _angular_core.WritableSignal<DragRef<unknown> | null>;
|
|
203
|
-
/**
|
|
204
|
-
* DOM-position registries, used to find the nearest enclosing list/group by walking real
|
|
205
|
-
* ancestor elements instead of Angular's element-injector tree.
|
|
206
|
-
*
|
|
207
|
-
* This matters for `ngTemplateOutlet`-based recursive trees (a list of items whose own
|
|
208
|
-
* children are rendered by re-invoking the SAME `<ng-template>`, as in a tree/outliner UI):
|
|
209
|
-
* each invocation gets a FRESH embedded view whose injector context is wherever the outlet
|
|
210
|
-
* was written in the template, not wherever its content ends up in the DOM. So `inject(TOKEN,
|
|
211
|
-
* {skipSelf})` from one recursion level can never see a provider from another level — the
|
|
212
|
-
* only fix within Angular's own DI is to manually thread `ngTemplateOutletInjector` through
|
|
213
|
-
* every recursive call, which isn't reasonable to require of every consumer of this library.
|
|
214
|
-
* A plain DOM walk has no such limitation: it only cares where elements actually ended up.
|
|
215
|
-
*/
|
|
216
192
|
private readonly listsByEl;
|
|
217
193
|
private readonly groupsByEl;
|
|
218
194
|
registerDragItem(ref: DragRef<any>): void;
|
|
@@ -224,7 +200,7 @@ declare class DragDropService {
|
|
|
224
200
|
/** Nearest registered drop list starting at (and including) `start`, walking up the DOM. */
|
|
225
201
|
findAncestorDropList(start: HTMLElement | ParentNode | null): DropListRef | null;
|
|
226
202
|
/** Nearest registered drop-list group starting at (and including) `start`, walking up the DOM. */
|
|
227
|
-
findAncestorGroup(start:
|
|
203
|
+
findAncestorGroup(start: Node | null): DropListGroupRef | null;
|
|
228
204
|
begin(ref: DragRef<any>): void;
|
|
229
205
|
end(ref: DragRef<any>): void;
|
|
230
206
|
cancelActive(): void;
|
|
@@ -247,6 +223,17 @@ declare class DragDropService {
|
|
|
247
223
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<DragDropService>;
|
|
248
224
|
}
|
|
249
225
|
|
|
226
|
+
declare class DragPreviewRef {
|
|
227
|
+
tpl?: TemplateRef<unknown>;
|
|
228
|
+
/** Set by `ngxDragPreview` so the embedded view can join Angular's change-detection tree. */
|
|
229
|
+
appRef?: ApplicationRef;
|
|
230
|
+
element?: HTMLElement;
|
|
231
|
+
isCustom: boolean;
|
|
232
|
+
private _view?;
|
|
233
|
+
attach(dragEl: HTMLElement, rect: DOMRect): HTMLElement;
|
|
234
|
+
detach(): void;
|
|
235
|
+
}
|
|
236
|
+
|
|
250
237
|
type DragAxis = 'x' | 'y' | undefined;
|
|
251
238
|
declare class DragRef<T = unknown> {
|
|
252
239
|
data?: T;
|
|
@@ -266,6 +253,7 @@ declare class DragRef<T = unknown> {
|
|
|
266
253
|
placeholder?: PlaceHolderRef;
|
|
267
254
|
originDropList: DropListRef<T> | null;
|
|
268
255
|
originIndex: number;
|
|
256
|
+
preview?: DragPreviewRef;
|
|
269
257
|
readonly isDragging: _angular_core.WritableSignal<boolean>;
|
|
270
258
|
readonly position: _angular_core.WritableSignal<IPosition>;
|
|
271
259
|
private startPointer;
|
|
@@ -276,9 +264,6 @@ declare class DragRef<T = unknown> {
|
|
|
276
264
|
private moveDx;
|
|
277
265
|
private moveDy;
|
|
278
266
|
private scrollCompensation;
|
|
279
|
-
private preview?;
|
|
280
|
-
private previewOffsetX;
|
|
281
|
-
private previewOffsetY;
|
|
282
267
|
private sourceVisibility;
|
|
283
268
|
private sourceDisplay;
|
|
284
269
|
private sourcePointerEvents;
|
|
@@ -391,7 +376,7 @@ interface IResizableOutput {
|
|
|
391
376
|
}
|
|
392
377
|
|
|
393
378
|
declare const NGX_DRAGGABLE: InjectionToken<NgxDraggable<unknown>>;
|
|
394
|
-
declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
|
|
379
|
+
declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy, AfterContentInit {
|
|
395
380
|
private readonly host;
|
|
396
381
|
readonly disabled: _angular_core.ModelSignal<boolean>;
|
|
397
382
|
/** Element whose rect constrains the drag. Now actually enforced. */
|
|
@@ -408,6 +393,7 @@ declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
|
|
|
408
393
|
/** Auto-scroll the nearest scrollable ancestor while dragging near its edge. */
|
|
409
394
|
readonly autoScroll: _angular_core.InputSignal<boolean>;
|
|
410
395
|
set data(v: T);
|
|
396
|
+
private readonly customPreview?;
|
|
411
397
|
readonly dragStart: _angular_core.OutputEmitterRef<IPosition>;
|
|
412
398
|
readonly dragMove: _angular_core.OutputEmitterRef<IPosition>;
|
|
413
399
|
readonly dragEnd: _angular_core.OutputEmitterRef<IPosition>;
|
|
@@ -435,6 +421,7 @@ declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
|
|
|
435
421
|
protected readonly renderer: Renderer2;
|
|
436
422
|
constructor(host: ElementRef<HTMLElement>);
|
|
437
423
|
ngOnInit(): void;
|
|
424
|
+
ngAfterContentInit(): void;
|
|
438
425
|
ngOnDestroy(): void;
|
|
439
426
|
private pointerDown;
|
|
440
427
|
private applyDragUpdate;
|
|
@@ -454,7 +441,7 @@ declare class NgxDraggable<T = unknown> implements OnInit, OnDestroy {
|
|
|
454
441
|
private isOnHandle;
|
|
455
442
|
private isInteractive;
|
|
456
443
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDraggable<any>, never>;
|
|
457
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDraggable<any>, "[NgxDraggable],[ngxDraggable]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "boundary": { "alias": "boundary"; "required": false; "isSignal": true; }; "dragRootElement": { "alias": "dragRootElement"; "required": false; "isSignal": true; }; "dragHandle": { "alias": "dragHandle"; "required": false; "isSignal": true; }; "lockAxis": { "alias": "lockAxis"; "required": false; "isSignal": true; }; "dragThreshold": { "alias": "dragThreshold"; "required": false; "isSignal": true; }; "keyboardStep": { "alias": "keyboardStep"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; }; }, { "disabled": "disabledChange"; "dragRootElement": "dragRootElementChange"; "dragHandle": "dragHandleChange"; "dragStart": "dragStart"; "dragMove": "dragMove"; "dragEnd": "dragEnd"; },
|
|
444
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDraggable<any>, "[NgxDraggable],[ngxDraggable]", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "boundary": { "alias": "boundary"; "required": false; "isSignal": true; }; "dragRootElement": { "alias": "dragRootElement"; "required": false; "isSignal": true; }; "dragHandle": { "alias": "dragHandle"; "required": false; "isSignal": true; }; "lockAxis": { "alias": "lockAxis"; "required": false; "isSignal": true; }; "dragThreshold": { "alias": "dragThreshold"; "required": false; "isSignal": true; }; "keyboardStep": { "alias": "keyboardStep"; "required": false; "isSignal": true; }; "autoScroll": { "alias": "autoScroll"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; }; }, { "disabled": "disabledChange"; "dragRootElement": "dragRootElementChange"; "dragHandle": "dragHandleChange"; "dragStart": "dragStart"; "dragMove": "dragMove"; "dragEnd": "dragEnd"; }, ["customPreview"], never, true, never>;
|
|
458
445
|
}
|
|
459
446
|
|
|
460
447
|
declare class NgxResizable {
|
|
@@ -533,6 +520,17 @@ declare class NgxDropListGroup implements OnInit, OnDestroy {
|
|
|
533
520
|
}
|
|
534
521
|
|
|
535
522
|
declare const NGX_PLACEHOLDER: InjectionToken<PlaceHolderRef>;
|
|
523
|
+
/**
|
|
524
|
+
* Custom placeholder content, from `*ngxPlaceholder` inside the `ngxDropList`.
|
|
525
|
+
*
|
|
526
|
+
* @example
|
|
527
|
+
* ```html
|
|
528
|
+
* <div ngxDropList>
|
|
529
|
+
* <span class="my-placeholder" *ngxPlaceholder></span>
|
|
530
|
+
* ...
|
|
531
|
+
* </div>
|
|
532
|
+
* ```
|
|
533
|
+
*/
|
|
536
534
|
declare class NgxPlaceholder {
|
|
537
535
|
readonly tpl: TemplateRef<unknown>;
|
|
538
536
|
readonly _ref: PlaceHolderRef;
|
|
@@ -542,6 +540,28 @@ declare class NgxPlaceholder {
|
|
|
542
540
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxPlaceholder, "[NgxPlaceholder],[ngxPlaceholder]", never, {}, {}, never, never, true, never>;
|
|
543
541
|
}
|
|
544
542
|
|
|
543
|
+
declare const NGX_DRAG_PREVIEW: InjectionToken<DragPreviewRef>;
|
|
544
|
+
/**
|
|
545
|
+
* Custom preview content, from `*ngxDragPreview` inside the `ngxDraggable`.
|
|
546
|
+
*
|
|
547
|
+
* @example
|
|
548
|
+
* ```html
|
|
549
|
+
* <div ngxDropList>
|
|
550
|
+
* <div ngxDraggable>
|
|
551
|
+
* <span class="my-preview" *ngxDragPreview></span>
|
|
552
|
+
* ...
|
|
553
|
+
* </div>
|
|
554
|
+
* </div>
|
|
555
|
+
* ```
|
|
556
|
+
*/
|
|
557
|
+
declare class NgxDragPreview {
|
|
558
|
+
readonly tpl: TemplateRef<unknown>;
|
|
559
|
+
readonly _ref: DragPreviewRef;
|
|
560
|
+
constructor(tpl: TemplateRef<unknown>);
|
|
561
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NgxDragPreview, never>;
|
|
562
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<NgxDragPreview, "[ngxDragPreview]", never, {}, {}, never, never, true, never>;
|
|
563
|
+
}
|
|
564
|
+
|
|
545
565
|
/**
|
|
546
566
|
* True when `element` sits inside a right-to-left context.
|
|
547
567
|
*
|
|
@@ -621,5 +641,5 @@ declare function transferArrayItem<T>(src: T[], dst: T[], from: number, to: numb
|
|
|
621
641
|
*/
|
|
622
642
|
declare function copyArrayItem<T = any>(currentArray: T[], targetArray: T[], currentIndex: number, targetIndex: number): void;
|
|
623
643
|
|
|
624
|
-
export { AutoScroller, DragDropService, DragRef, DropListGroupRef, DropListRef, NGX_DRAGGABLE, NGX_DROPLIST, NGX_DROPLIST_GROUP, NGX_PLACEHOLDER, NgxDraggable, NgxDropList, NgxDropListGroup, NgxPlaceholder, NgxResizable, PlaceHolderRef, adjustForZoom, checkBoundX, checkBoundY, clampResizeWithinBoundary, copyArrayItem, findScrollableAncestor, getPageZoom, getScrollPosition, isRtl, moveItemInArray, resolveLogicalDirection, transferArrayItem };
|
|
644
|
+
export { AutoScroller, DragDropService, DragRef, DropListGroupRef, DropListRef, NGX_DRAGGABLE, NGX_DRAG_PREVIEW, NGX_DROPLIST, NGX_DROPLIST_GROUP, NGX_PLACEHOLDER, NgxDragPreview, NgxDraggable, NgxDropList, NgxDropListGroup, NgxPlaceholder, NgxResizable, PlaceHolderRef, adjustForZoom, checkBoundX, checkBoundY, clampResizeWithinBoundary, copyArrayItem, findScrollableAncestor, getPageZoom, getScrollPosition, isRtl, moveItemInArray, resolveLogicalDirection, transferArrayItem };
|
|
625
645
|
export type { DragAxis, IDropEvent, IPosition, IResizableOutput, LogicalResizeDirection, ResizeDirection };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EnvironmentProviders, Injector, EventEmitter, OnInit, AfterViewInit, ElementRef,
|
|
2
|
+
import { EnvironmentProviders, Injector, EventEmitter, OnInit, AfterViewInit, ElementRef, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as ngx_kit_message from 'ngx-kit/message';
|
|
4
4
|
import * as rxjs from 'rxjs';
|
|
5
5
|
import { SafeHtml, DomSanitizer } from '@angular/platform-browser';
|
|
6
|
+
import { OverlayRef, OverlayService } from 'ngx-kit/core';
|
|
6
7
|
|
|
7
8
|
type MessageIcon = 'None' | 'success' | 'error' | 'warning' | 'info' | 'question' | 'loading';
|
|
8
9
|
|
|
@@ -34,13 +35,6 @@ interface IMessageOptions {
|
|
|
34
35
|
* @default ''
|
|
35
36
|
*/
|
|
36
37
|
html?: string | HTMLElement;
|
|
37
|
-
/**
|
|
38
|
-
* Whether or not should show a full screen click-to-dismiss backdrop.
|
|
39
|
-
* Either a boolean value or a css background value (hex, rgb, rgba, url, etc.)
|
|
40
|
-
*
|
|
41
|
-
* @default true
|
|
42
|
-
*/
|
|
43
|
-
backdrop?: boolean;
|
|
44
38
|
icon?: MessageIcon;
|
|
45
39
|
/**
|
|
46
40
|
* Popup width, including paddings (`box-sizing: border-box`).
|
|
@@ -157,6 +151,9 @@ interface IMessageOptions {
|
|
|
157
151
|
*/
|
|
158
152
|
showCloseButton?: boolean;
|
|
159
153
|
containerClass?: string;
|
|
154
|
+
ariaLabel?: string;
|
|
155
|
+
ariaLabelledby?: string;
|
|
156
|
+
ariaDescribedby?: string;
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
declare function provideMessage(options?: IMessageOptions): EnvironmentProviders;
|
|
@@ -227,37 +224,24 @@ declare class NgxMessageComponent implements OnInit, AfterViewInit {
|
|
|
227
224
|
}>;
|
|
228
225
|
ngOnInit(): void;
|
|
229
226
|
ngAfterViewInit(): void;
|
|
230
|
-
/**
|
|
231
|
-
* وقتی چند تا پیام همزمان باز باشن، هرکدوم listener خودشو روی document
|
|
232
|
-
* داشت — پس یه فشردن Escape/Enter، رویداد رو به *همهشون* همزمان میفرستاد،
|
|
233
|
-
* نه فقط آخرین پیامی که باز شده (رفتار طبیعیِ یه استکِ مودال باید این باشه
|
|
234
|
-
* که فقط بالاترین لایه به کیبورد واکنش نشون بده). این چک همون چیزیه که
|
|
235
|
-
* OverlayService با getLastDialog() برای اورلیها انجام میده.
|
|
236
|
-
*/
|
|
237
227
|
private isTopmost;
|
|
238
|
-
onScapeKey(event: Event): void;
|
|
239
228
|
onEnterKey(event: Event): void;
|
|
240
229
|
onConfirm(): void;
|
|
241
230
|
onCancel(): void;
|
|
242
231
|
onDeny(): void;
|
|
243
232
|
close(): void;
|
|
244
|
-
onOutSideClick(): void;
|
|
245
|
-
innerOnClick(ev: Event): void;
|
|
246
233
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxMessageComponent, never>;
|
|
247
234
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgxMessageComponent, "ngx-message", never, {}, {}, never, never, true, never>;
|
|
248
235
|
}
|
|
249
236
|
|
|
250
237
|
declare class NgxMessageService {
|
|
251
|
-
private appRef;
|
|
252
238
|
private injector;
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
alerts: Map<number, ComponentRef<NgxMessageComponent>>;
|
|
239
|
+
alerts: Map<number, OverlayRef<NgxMessageComponent>>;
|
|
240
|
+
protected readonly overlay: OverlayService;
|
|
256
241
|
insertedId: number;
|
|
257
|
-
constructor(
|
|
242
|
+
constructor(injector: Injector);
|
|
258
243
|
show<T = any>(c?: IMessageOptions): MessageOutput<T>;
|
|
259
|
-
private
|
|
260
|
-
private appendDialogComponentToBody;
|
|
244
|
+
private remove;
|
|
261
245
|
closeAll(): void;
|
|
262
246
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxMessageService, never>;
|
|
263
247
|
static ɵprov: i0.ɵɵInjectableDeclaration<NgxMessageService>;
|