@acorex/cdk 22.1.7 → 22.2.0-next.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.
Files changed (81) hide show
  1. package/auto-follow-scroll/README.md +9 -0
  2. package/fesm2022/acorex-cdk-accordion.mjs +19 -19
  3. package/fesm2022/acorex-cdk-accordion.mjs.map +1 -1
  4. package/fesm2022/acorex-cdk-auto-follow-scroll.mjs +187 -0
  5. package/fesm2022/acorex-cdk-auto-follow-scroll.mjs.map +1 -0
  6. package/fesm2022/acorex-cdk-carousel.mjs +25 -7
  7. package/fesm2022/acorex-cdk-carousel.mjs.map +1 -1
  8. package/fesm2022/acorex-cdk-clipboard.mjs +6 -6
  9. package/fesm2022/acorex-cdk-clipboard.mjs.map +1 -1
  10. package/fesm2022/acorex-cdk-common.mjs +146 -92
  11. package/fesm2022/acorex-cdk-common.mjs.map +1 -1
  12. package/fesm2022/acorex-cdk-dom.mjs +3 -3
  13. package/fesm2022/acorex-cdk-dom.mjs.map +1 -1
  14. package/fesm2022/acorex-cdk-drag-drop.mjs +161 -69
  15. package/fesm2022/acorex-cdk-drag-drop.mjs.map +1 -1
  16. package/fesm2022/acorex-cdk-drawer.mjs +11 -11
  17. package/fesm2022/acorex-cdk-drawer.mjs.map +1 -1
  18. package/fesm2022/acorex-cdk-focus-trap.mjs +3 -3
  19. package/fesm2022/acorex-cdk-focus-trap.mjs.map +1 -1
  20. package/fesm2022/acorex-cdk-full-screen.mjs +26 -147
  21. package/fesm2022/acorex-cdk-full-screen.mjs.map +1 -1
  22. package/fesm2022/acorex-cdk-gesture.mjs +30 -4
  23. package/fesm2022/acorex-cdk-gesture.mjs.map +1 -1
  24. package/fesm2022/acorex-cdk-highlight.mjs +8 -78
  25. package/fesm2022/acorex-cdk-highlight.mjs.map +1 -1
  26. package/fesm2022/acorex-cdk-horizontal-scroll.mjs +27 -10
  27. package/fesm2022/acorex-cdk-horizontal-scroll.mjs.map +1 -1
  28. package/fesm2022/acorex-cdk-input-mask.mjs +3 -3
  29. package/fesm2022/acorex-cdk-input-mask.mjs.map +1 -1
  30. package/fesm2022/acorex-cdk-list-navigation.mjs +10 -10
  31. package/fesm2022/acorex-cdk-list-navigation.mjs.map +1 -1
  32. package/fesm2022/acorex-cdk-outline.mjs +277 -74
  33. package/fesm2022/acorex-cdk-outline.mjs.map +1 -1
  34. package/fesm2022/acorex-cdk-overlay.mjs +224 -21
  35. package/fesm2022/acorex-cdk-overlay.mjs.map +1 -1
  36. package/fesm2022/acorex-cdk-pan-view.mjs +3 -3
  37. package/fesm2022/acorex-cdk-pan-view.mjs.map +1 -1
  38. package/fesm2022/acorex-cdk-qrcode.mjs.map +1 -1
  39. package/fesm2022/acorex-cdk-resizable.mjs +483 -200
  40. package/fesm2022/acorex-cdk-resizable.mjs.map +1 -1
  41. package/fesm2022/acorex-cdk-selection.mjs +10 -10
  42. package/fesm2022/acorex-cdk-selection.mjs.map +1 -1
  43. package/fesm2022/acorex-cdk-shimmer.mjs +220 -0
  44. package/fesm2022/acorex-cdk-shimmer.mjs.map +1 -0
  45. package/fesm2022/acorex-cdk-sliding-item.mjs +3 -3
  46. package/fesm2022/acorex-cdk-sliding-item.mjs.map +1 -1
  47. package/fesm2022/acorex-cdk-sticky.mjs +3 -3
  48. package/fesm2022/acorex-cdk-sticky.mjs.map +1 -1
  49. package/fesm2022/acorex-cdk-uploader.mjs +9 -9
  50. package/fesm2022/acorex-cdk-uploader.mjs.map +1 -1
  51. package/fesm2022/acorex-cdk-viewport-guard.mjs +616 -0
  52. package/fesm2022/acorex-cdk-viewport-guard.mjs.map +1 -0
  53. package/fesm2022/acorex-cdk-virtual-scroll.mjs +10 -10
  54. package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
  55. package/fesm2022/acorex-cdk-wysiwyg.mjs +689 -37
  56. package/fesm2022/acorex-cdk-wysiwyg.mjs.map +1 -1
  57. package/fesm2022/acorex-cdk-z-index.mjs +3 -3
  58. package/fesm2022/acorex-cdk-z-index.mjs.map +1 -1
  59. package/fesm2022/acorex-cdk.mjs.map +1 -1
  60. package/package.json +23 -7
  61. package/shimmer/README.md +11 -0
  62. package/types/acorex-cdk-auto-follow-scroll.d.ts +72 -0
  63. package/types/acorex-cdk-carousel.d.ts +2 -0
  64. package/types/acorex-cdk-clipboard.d.ts +1 -1
  65. package/types/acorex-cdk-common.d.ts +36 -19
  66. package/types/acorex-cdk-drag-drop.d.ts +43 -17
  67. package/types/acorex-cdk-full-screen.d.ts +18 -43
  68. package/types/acorex-cdk-gesture.d.ts +11 -1
  69. package/types/acorex-cdk-highlight.d.ts +1 -28
  70. package/types/acorex-cdk-horizontal-scroll.d.ts +3 -0
  71. package/types/acorex-cdk-outline.d.ts +20 -0
  72. package/types/acorex-cdk-overlay.d.ts +60 -4
  73. package/types/acorex-cdk-resizable.d.ts +80 -38
  74. package/types/acorex-cdk-shimmer.d.ts +68 -0
  75. package/types/acorex-cdk-uploader.d.ts +1 -1
  76. package/types/acorex-cdk-viewport-guard.d.ts +99 -0
  77. package/types/acorex-cdk-wysiwyg.d.ts +118 -14
  78. package/wysiwyg/README.md +3 -1
  79. package/fesm2022/acorex-cdk-double-click.mjs +0 -178
  80. package/fesm2022/acorex-cdk-double-click.mjs.map +0 -1
  81. package/types/acorex-cdk-double-click.d.ts +0 -66
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-cdk-viewport-guard.mjs","sources":["../../../../packages/cdk/viewport-guard/src/lib/viewport-guard-overlay.component.ts","../../../../packages/cdk/viewport-guard/src/lib/viewport-guard.presenter.ts","../../../../packages/cdk/viewport-guard/src/lib/viewport-guard-template.directive.ts","../../../../packages/cdk/viewport-guard/src/lib/min-viewport.directive.ts","../../../../packages/cdk/viewport-guard/src/lib/orientation-lock.directive.ts","../../../../packages/cdk/viewport-guard/src/acorex-cdk-viewport-guard.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nimport {\n AXViewportGuardTemplateContext,\n AXViewportGuardTemplateData,\n AXViewportGuardView,\n} from './viewport-guard.types';\n\n@Component({\n selector: 'ax-viewport-guard-overlay',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet],\n host: {\n class: 'ax-vg-host',\n },\n template: `\n @if (guard(); as view) {\n <div\n class=\"ax-vg\"\n role=\"alertdialog\"\n aria-modal=\"true\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"view.template ? null : 'ax-vg-title'\"\n [attr.aria-describedby]=\"view.template ? null : 'ax-vg-message'\"\n [attr.aria-label]=\"view.template ? view.title : null\"\n >\n @if (view.template; as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"context(view)\" />\n } @else {\n <section class=\"ax-vg__card\" [attr.data-kind]=\"view.kind\">\n <div\n class=\"ax-vg__art\"\n [class.ax-vg__art--portrait]=\"view.kind === 'orientation' && view.orientation === 'portrait'\"\n [class.ax-vg__art--landscape]=\"view.kind === 'orientation' && view.orientation === 'landscape'\"\n aria-hidden=\"true\"\n >\n @switch (view.kind) {\n @case ('size') {\n <svg class=\"ax-vg__glyph\" viewBox=\"0 0 64 64\" fill=\"none\">\n <rect x=\"18\" y=\"18\" width=\"28\" height=\"28\" rx=\"6\" stroke=\"currentColor\" stroke-width=\"2.25\" />\n <path\n d=\"M10 18V10h8M54 18V10h-8M10 46v8h8M54 46v8h-8\"\n stroke=\"currentColor\"\n stroke-width=\"2.25\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n }\n @case ('orientation') {\n <svg class=\"ax-vg__orbit\" viewBox=\"0 0 64 64\" fill=\"none\">\n <path\n d=\"M32 54A22 22 0 1 1 48.4 17.3\"\n stroke=\"currentColor\"\n stroke-width=\"2.4\"\n stroke-linecap=\"round\"\n />\n <path d=\"M52.7 22.1 45 19.5 50.9 14.1Z\" fill=\"currentColor\" />\n </svg>\n <svg class=\"ax-vg__phone\" viewBox=\"0 0 64 64\" fill=\"none\">\n <rect x=\"24\" y=\"12\" width=\"16\" height=\"40\" rx=\"4\" stroke=\"currentColor\" stroke-width=\"2.25\" />\n <path d=\"M29 18h6\" stroke=\"currentColor\" stroke-width=\"2.25\" stroke-linecap=\"round\" />\n <circle cx=\"32\" cy=\"45\" r=\"1.35\" fill=\"currentColor\" />\n </svg>\n }\n }\n </div>\n <div class=\"ax-vg__copy\">\n <p class=\"ax-vg__kicker\">{{ view.kicker }}</p>\n <h2 id=\"ax-vg-title\" class=\"ax-vg__title\">{{ view.title }}</h2>\n <p id=\"ax-vg-message\" class=\"ax-vg__message\">{{ view.message }}</p>\n <p class=\"ax-vg__hint\">{{ view.hint }}</p>\n </div>\n </section>\n }\n </div>\n }\n `,\n styleUrl: './viewport-guard-overlay.component.css',\n})\nexport class AXViewportGuardOverlayComponent {\n readonly guard = input<AXViewportGuardView | null>(null);\n\n protected context(view: AXViewportGuardView): AXViewportGuardTemplateContext {\n const message: AXViewportGuardTemplateData = {\n kind: view.kind,\n orientation: view.orientation,\n kicker: view.kicker,\n title: view.title,\n message: view.message,\n hint: view.hint,\n };\n return { $implicit: message, message };\n }\n}\n","import { AXTranslateParams, AXTranslationService } from '@acorex/core/translation';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ApplicationRef,\n ComponentRef,\n DestroyRef,\n DOCUMENT,\n ElementRef,\n EnvironmentInjector,\n Injectable,\n NgZone,\n PLATFORM_ID,\n afterNextRender,\n createComponent,\n effect,\n inject,\n signal,\n untracked,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { AXViewportGuardOverlayComponent } from './viewport-guard-overlay.component';\nimport {\n AXOrientationGuardRequest,\n AXSizeGuardRequest,\n AXViewportGuardMessage,\n AXViewportGuardRequest,\n AXViewportGuardView,\n AXViewportSnapshot,\n} from './viewport-guard.types';\n\nconst PHONE_SHORT_SIDE = 540;\nconst EMPTY_SNAPSHOT: AXViewportSnapshot = { width: 0, height: 0, portrait: true, phone: false, ready: false };\n\n@Injectable({ providedIn: 'root' })\nexport class AXViewportGuardPresenter {\n private readonly appRef = inject(ApplicationRef);\n private readonly environmentInjector = inject(EnvironmentInjector);\n private readonly destroyRef = inject(DestroyRef);\n private readonly document = inject(DOCUMENT);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly zone = inject(NgZone);\n private readonly translation = inject(AXTranslationService);\n\n private readonly requests = signal(new Map<string, AXViewportGuardRequest>());\n private readonly lang = signal(this.translation.getActiveLang());\n readonly snapshot = signal<AXViewportSnapshot>(EMPTY_SNAPSHOT);\n\n private viewRef: ComponentRef<AXViewportGuardOverlayComponent> | null = null;\n private listening = false;\n private bodyOverflow: string | null = null;\n private focusedKey = '';\n\n constructor() {\n this.translation.langChanges$.pipe(takeUntilDestroyed()).subscribe((lang) => this.lang.set(lang));\n\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n\n effect(() => {\n const view = this.activeView();\n untracked(() => this.sync(view));\n });\n }\n\n ensureListening(): void {\n if (this.listening || !isPlatformBrowser(this.platformId)) {\n return;\n }\n const win = this.document.defaultView;\n if (!win) {\n return;\n }\n\n this.listening = true;\n const portrait = win.matchMedia('(orientation: portrait)');\n const publish = () => this.zone.run(() => this.snapshot.set(readViewport(win)));\n const publishSoon = () => {\n publish();\n win.requestAnimationFrame(publish);\n };\n\n publish();\n win.addEventListener('resize', publish, { passive: true });\n win.visualViewport?.addEventListener('resize', publish);\n win.addEventListener('orientationchange', publishSoon);\n portrait.addEventListener('change', publishSoon);\n this.destroyRef.onDestroy(() => {\n win.removeEventListener('resize', publish);\n win.visualViewport?.removeEventListener('resize', publish);\n win.removeEventListener('orientationchange', publishSoon);\n portrait.removeEventListener('change', publishSoon);\n });\n }\n\n claim(id: string, request: AXViewportGuardRequest | null): void {\n this.requests.update((current) => {\n const existing = current.get(id);\n if (!request && !existing) {\n return current;\n }\n if (request && existing && sameRequest(existing, request)) {\n return current;\n }\n const next = new Map(current);\n if (request) {\n next.set(id, request);\n } else {\n next.delete(id);\n }\n return next;\n });\n }\n\n private activeView(): AXViewportGuardView | null {\n this.lang();\n const request = pickRequest(this.requests());\n if (!request) {\n return null;\n }\n return request.kind === 'size' ? this.sizeView(request) : this.orientationView(request);\n }\n\n private sizeView(request: AXSizeGuardRequest): AXViewportGuardView {\n const copy = request.message;\n const width = request.minWidth > 0 ? String(request.minWidth) : '';\n const height = request.minHeight != null && request.minHeight > 0 ? String(request.minHeight) : '';\n const params = {\n width: isolate(width),\n height: isolate(height),\n size: isolate(width && height ? `${width} × ${height}` : width || height),\n };\n const hintKey = width && height ? 'hint' : height ? 'hint-height' : 'hint-width';\n\n return {\n kind: 'size',\n orientation: null,\n kicker: this.part(copy?.kicker, 'viewport-guard.size.kicker'),\n title: this.part(copy?.title, 'viewport-guard.size.title'),\n message: this.part(copy?.message, 'viewport-guard.size.message'),\n hint: this.part(copy?.hint, `viewport-guard.size.${hintKey}`, params),\n template: request.template,\n };\n }\n\n private orientationView(request: AXOrientationGuardRequest): AXViewportGuardView {\n const copy = request.message;\n const mode = request.orientation;\n return {\n kind: 'orientation',\n orientation: mode,\n kicker: this.part(copy?.kicker, 'viewport-guard.orientation.kicker'),\n title: this.part(copy?.title, `viewport-guard.orientation.title-${mode}`),\n message: this.part(copy?.message, `viewport-guard.orientation.message-${mode}`),\n hint: this.part(copy?.hint, `viewport-guard.orientation.hint-${mode}`),\n template: request.template,\n };\n }\n\n private part(custom: string | null | undefined, key: string, params?: AXTranslateParams): string {\n const source = custom?.trim() || key;\n return this.translation.translateSync(source, { scope: 'acorex', params });\n }\n\n private sync(view: AXViewportGuardView | null): void {\n if (!view) {\n this.teardown();\n return;\n }\n this.lockScroll();\n const ref = this.ensureView();\n ref.setInput('guard', view);\n ref.changeDetectorRef.detectChanges();\n this.focus(view);\n }\n\n private ensureView(): ComponentRef<AXViewportGuardOverlayComponent> {\n if (this.viewRef) {\n return this.viewRef;\n }\n const ref = createComponent(AXViewportGuardOverlayComponent, { environmentInjector: this.environmentInjector });\n this.appRef.attachView(ref.hostView);\n const host = ref.location.nativeElement;\n const body = this.document.body;\n const fontFamily = body ? this.document.defaultView?.getComputedStyle(body).fontFamily : '';\n if (fontFamily) {\n host.style.fontFamily = fontFamily;\n }\n this.document.documentElement.appendChild(host);\n this.viewRef = ref;\n return ref;\n }\n\n private focus(view: AXViewportGuardView): void {\n const key = `${view.kind}|${view.orientation}|${view.title}|${view.message}|${view.hint}`;\n if (key === this.focusedKey) {\n return;\n }\n this.focusedKey = key;\n queueMicrotask(() => {\n const dialog = this.viewRef?.location.nativeElement.querySelector('[role=\"alertdialog\"]') as HTMLElement | null;\n dialog?.focus({ preventScroll: true });\n });\n }\n\n private lockScroll(): void {\n const body = this.document.body;\n if (!body || this.bodyOverflow !== null) {\n return;\n }\n this.bodyOverflow = body.style.overflow;\n body.style.overflow = 'hidden';\n }\n\n private teardown(): void {\n this.focusedKey = '';\n const body = this.document.body;\n if (body && this.bodyOverflow !== null) {\n body.style.overflow = this.bodyOverflow;\n this.bodyOverflow = null;\n }\n if (!this.viewRef) {\n return;\n }\n this.appRef.detachView(this.viewRef.hostView);\n this.viewRef.destroy();\n this.viewRef = null;\n }\n}\n\nlet nextGuardId = 0;\n\n/** Wires a directive to the shared overlay. Call from the directive constructor. */\nexport function connectViewportGuard(prefix: string, active: () => AXViewportGuardRequest | null): void {\n const host = inject<ElementRef<HTMLElement>>(ElementRef).nativeElement;\n const presenter = inject(AXViewportGuardPresenter);\n const platformId = inject(PLATFORM_ID);\n const destroyRef = inject(DestroyRef);\n const id = `${prefix}-${++nextGuardId}`;\n\n if (!isPlatformBrowser(platformId)) {\n return;\n }\n\n afterNextRender(() => presenter.ensureListening());\n effect(() => {\n const request = active();\n untracked(() => {\n presenter.claim(id, request);\n if (request) {\n lockHost(host, id);\n } else {\n unlockHost(host, id);\n }\n });\n });\n destroyRef.onDestroy(() => {\n presenter.claim(id, null);\n unlockHost(host, id);\n });\n}\n\nfunction readViewport(win: Window): AXViewportSnapshot {\n const coarse = win.matchMedia('(pointer: coarse)').matches;\n const shortSide = Math.min(win.screen.width, win.screen.height);\n const dpr = win.devicePixelRatio || 1;\n const cssShortSide =\n shortSide > PHONE_SHORT_SIDE && dpr > 1 && shortSide / dpr <= PHONE_SHORT_SIDE ? shortSide / dpr : shortSide;\n\n return {\n width: Math.round(win.innerWidth),\n height: Math.round(win.innerHeight),\n portrait: win.matchMedia('(orientation: portrait)').matches,\n phone: coarse && cssShortSide <= PHONE_SHORT_SIDE,\n ready: true,\n };\n}\n\nfunction pickRequest(requests: ReadonlyMap<string, AXViewportGuardRequest>): AXViewportGuardRequest | null {\n let size: AXSizeGuardRequest | null = null;\n let orientation: AXOrientationGuardRequest | null = null;\n for (const request of requests.values()) {\n if (request.kind === 'size') {\n const wider = size != null && request.minWidth > size.minWidth;\n const taller =\n size != null && request.minWidth === size.minWidth && (request.minHeight ?? 0) > (size.minHeight ?? 0);\n if (!size || wider || taller) {\n size = request;\n }\n } else {\n orientation ??= request;\n }\n }\n return size ?? orientation;\n}\n\nfunction sameRequest(left: AXViewportGuardRequest, right: AXViewportGuardRequest): boolean {\n if (left.kind !== right.kind || left.template !== right.template || !sameMessage(left.message, right.message)) {\n return false;\n }\n if (left.kind === 'size' && right.kind === 'size') {\n return left.minWidth === right.minWidth && left.minHeight === right.minHeight;\n }\n return left.kind === 'orientation' && right.kind === 'orientation' && left.orientation === right.orientation;\n}\n\nfunction sameMessage(left: AXViewportGuardMessage | null, right: AXViewportGuardMessage | null): boolean {\n return (\n left?.kicker === right?.kicker &&\n left?.title === right?.title &&\n left?.message === right?.message &&\n left?.hint === right?.hint\n );\n}\n\nfunction isolate(value: string): string {\n return value ? `\\u2066${value}\\u2069` : '';\n}\n\ninterface HostLock {\n tokens: Set<string>;\n display: string;\n inert: boolean;\n ariaHidden: string | null;\n}\n\nconst hostLocks = new WeakMap<HTMLElement, HostLock>();\n\nfunction lockHost(element: HTMLElement, token: string): void {\n let state = hostLocks.get(element);\n if (!state) {\n state = {\n tokens: new Set(),\n display: element.style.getPropertyValue('display'),\n inert: element.hasAttribute('inert'),\n ariaHidden: element.getAttribute('aria-hidden'),\n };\n hostLocks.set(element, state);\n }\n state.tokens.add(token);\n element.style.setProperty('display', 'none', 'important');\n element.setAttribute('inert', '');\n element.setAttribute('aria-hidden', 'true');\n}\n\nfunction unlockHost(element: HTMLElement, token: string): void {\n const state = hostLocks.get(element);\n if (!state) {\n return;\n }\n state.tokens.delete(token);\n if (state.tokens.size > 0) {\n return;\n }\n if (state.display) {\n element.style.setProperty('display', state.display);\n } else {\n element.style.removeProperty('display');\n }\n if (state.inert) {\n element.setAttribute('inert', '');\n } else {\n element.removeAttribute('inert');\n }\n if (state.ariaHidden == null) {\n element.removeAttribute('aria-hidden');\n } else {\n element.setAttribute('aria-hidden', state.ariaHidden);\n }\n hostLocks.delete(element);\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\n\nimport { AXViewportGuardTemplateContext } from './viewport-guard.types';\n\n/**\n * Types an `ng-template` whose `let-message` is the resolved guard copy.\n *\n * ```html\n * <ng-template #warning axViewportGuardTemplate let-message>\n * <h2>{{ message.title }}</h2>\n * <p>{{ message.message }}</p>\n * </ng-template>\n *\n * <div axMinViewport=\"1024\" [template]=\"warning\"></div>\n * ```\n */\n@Directive({\n selector: 'ng-template[axViewportGuardTemplate]',\n})\nexport class AXViewportGuardTemplateDirective {\n readonly template = inject(TemplateRef<AXViewportGuardTemplateContext>);\n\n static ngTemplateContextGuard(\n _directive: AXViewportGuardTemplateDirective,\n _context: unknown,\n ): _context is AXViewportGuardTemplateContext {\n return true;\n }\n}\n","import { contentChild, Directive, inject, input, TemplateRef } from '@angular/core';\n\nimport { AXViewportGuardPresenter, connectViewportGuard } from './viewport-guard.presenter';\nimport { AXViewportGuardTemplateDirective } from './viewport-guard-template.directive';\nimport {\n AXViewportGuardMessage,\n AXViewportGuardRequest,\n AXViewportGuardTemplateContext,\n} from './viewport-guard.types';\n\n/**\n * Hides the host when the viewport is smaller than the given size.\n *\n * ```html\n * <div axMinViewport=\"1024\" [minHeight]=\"640\" [message]=\"copy\" [template]=\"warning\"></div>\n * ```\n */\n@Directive({\n selector: '[axMinViewport]',\n exportAs: 'axMinViewport',\n})\nexport class AXMinViewportDirective {\n /** Minimum viewport width in CSS pixels. */\n readonly minWidth = input(0, { alias: 'axMinViewport', transform: pxInput });\n\n /** Minimum viewport height in CSS pixels. Omitted heights are ignored. */\n readonly minHeight = input<number | null>(null, { transform: optionalPxInput });\n\n /** Replaces any part of the default translated warning. */\n readonly message = input<AXViewportGuardMessage | null>(null);\n\n /** Custom warning. `let-message` receives the resolved copy. */\n readonly template = input<TemplateRef<AXViewportGuardTemplateContext> | null>(null);\n\n private readonly presenter = inject(AXViewportGuardPresenter);\n private readonly projectedTemplate = contentChild(AXViewportGuardTemplateDirective, { descendants: true });\n\n constructor() {\n connectViewportGuard('size', () => this.request());\n }\n\n private request(): AXViewportGuardRequest | null {\n const message = this.message();\n const template = this.template() ?? this.projectedTemplate()?.template ?? null;\n const viewport = this.presenter.snapshot();\n const minWidth = this.minWidth();\n const minHeight = this.minHeight();\n if (!viewport.ready) {\n return null;\n }\n const blocked =\n (minWidth > 0 && viewport.width < minWidth) ||\n (minHeight != null && minHeight > 0 && viewport.height < minHeight);\n return blocked ? { kind: 'size', minWidth, minHeight, message, template } : null;\n }\n}\n\nfunction pxInput(value: unknown): number {\n if (value == null || value === '') {\n return 0;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : 0;\n}\n\nfunction optionalPxInput(value: unknown): number | null {\n if (value == null || value === '') {\n return null;\n }\n const parsed = Number(value);\n return Number.isFinite(parsed) ? parsed : null;\n}\n","import { booleanAttribute, contentChild, Directive, inject, input, TemplateRef } from '@angular/core';\n\nimport { AXViewportGuardPresenter, connectViewportGuard } from './viewport-guard.presenter';\nimport { AXViewportGuardTemplateDirective } from './viewport-guard-template.directive';\nimport {\n AXScreenOrientation,\n AXViewportGuardMessage,\n AXViewportGuardRequest,\n AXViewportGuardTemplateContext,\n} from './viewport-guard.types';\n\n/**\n * On a phone, hides the host when the device is not in the required orientation.\n *\n * ```html\n * <div axOrientationLock=\"landscape\" [message]=\"copy\" [template]=\"warning\"></div>\n * ```\n */\n@Directive({\n selector: '[axOrientationLock]',\n exportAs: 'axOrientationLock',\n})\nexport class AXOrientationLockDirective {\n /** Orientation that keeps the page visible. */\n readonly orientation = input.required<AXScreenOrientation>({ alias: 'axOrientationLock' });\n\n /**\n * Limits the guard to phones. Set to false to apply it on every device.\n *\n * @defaultValue true\n */\n readonly phonesOnly = input(true, { transform: booleanAttribute });\n\n /** Replaces any part of the default translated warning. */\n readonly message = input<AXViewportGuardMessage | null>(null);\n\n /** Custom warning. `let-message` receives the resolved copy. */\n readonly template = input<TemplateRef<AXViewportGuardTemplateContext> | null>(null);\n\n private readonly presenter = inject(AXViewportGuardPresenter);\n private readonly projectedTemplate = contentChild(AXViewportGuardTemplateDirective, { descendants: true });\n\n constructor() {\n connectViewportGuard('orientation', () => this.request());\n }\n\n private request(): AXViewportGuardRequest | null {\n const orientation = this.orientation();\n const message = this.message();\n const template = this.template() ?? this.projectedTemplate()?.template ?? null;\n const viewport = this.presenter.snapshot();\n if ((orientation !== 'portrait' && orientation !== 'landscape') || !viewport.ready) {\n return null;\n }\n if (this.phonesOnly() && !viewport.phone) {\n return null;\n }\n const current: AXScreenOrientation = viewport.portrait ? 'portrait' : 'landscape';\n return current === orientation ? null : { kind: 'orientation', orientation, message, template };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -8,10 +8,10 @@ class AXVirtualScrollingItemDirective {
8
8
  get nativeElement() {
9
9
  return this.elementRef.nativeElement;
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: AXVirtualScrollingItemDirective, isStandalone: true, selector: "[axVirtualScrollingItem]", ngImport: i0 }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AXVirtualScrollingItemDirective, isStandalone: true, selector: "[axVirtualScrollingItem]", ngImport: i0 }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollingItemDirective, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollingItemDirective, decorators: [{
15
15
  type: Directive,
16
16
  args: [{ selector: '[axVirtualScrollingItem]' }]
17
17
  }] });
@@ -83,10 +83,10 @@ class AXVirtualScrollingContainerDirective {
83
83
  get __hostClass() {
84
84
  return `${this.height()}`;
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollingContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
87
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.0.8", type: AXVirtualScrollingContainerDirective, isStandalone: true, selector: "[axVirtualScrollingContainer]", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { ScrollEnd: "ScrollEnd" }, host: { properties: { "style.height": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXVirtualScrollingItemDirective, isSignal: true }], ngImport: i0 }); }
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollingContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
87
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "22.1.6", type: AXVirtualScrollingContainerDirective, isStandalone: true, selector: "[axVirtualScrollingContainer]", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { ScrollEnd: "ScrollEnd" }, host: { properties: { "style.height": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXVirtualScrollingItemDirective, isSignal: true }], ngImport: i0 }); }
88
88
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollingContainerDirective, decorators: [{
89
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollingContainerDirective, decorators: [{
90
90
  type: Directive,
91
91
  args: [{ selector: '[axVirtualScrollingContainer]' }]
92
92
  }], propDecorators: { height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: true }] }], ScrollEnd: [{ type: i0.Output, args: ["ScrollEnd"] }], children: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => AXVirtualScrollingItemDirective), { isSignal: true }] }], __hostClass: [{
@@ -97,11 +97,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
97
97
  const COMPONENT = [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective];
98
98
  const MODULES = [];
99
99
  class AXVirtualScrollModule {
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollModule, imports: [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective], exports: [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective] }); }
102
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollModule, imports: [MODULES] }); }
100
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
101
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollModule, imports: [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective], exports: [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective] }); }
102
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollModule, imports: [MODULES] }); }
103
103
  }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXVirtualScrollModule, decorators: [{
104
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXVirtualScrollModule, decorators: [{
105
105
  type: NgModule,
106
106
  args: [{
107
107
  imports: [...MODULES, ...COMPONENT],
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-cdk-virtual-scroll.mjs","sources":["../../../../packages/cdk/virtual-scroll/src/lib/virtual-scrolling-item/virtual-scrolling-item.directive.ts","../../../../packages/cdk/virtual-scroll/src/lib/virtual-scrolling-contianer/virtual-scrolling-contianer.directive.ts","../../../../packages/cdk/virtual-scroll/src/lib/virtual-scroll.module.ts","../../../../packages/cdk/virtual-scroll/src/acorex-cdk-virtual-scroll.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({ selector: '[axVirtualScrollingItem]' })\nexport class AXVirtualScrollingItemDirective {\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n public get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import {\n afterNextRender,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXVirtualScrollingItemDirective } from '../virtual-scrolling-item/virtual-scrolling-item.directive';\n\n@Directive({ selector: '[axVirtualScrollingContainer]' })\nexport class AXVirtualScrollingContainerDirective {\n height = input.required<string>();\n\n /** @ignore */\n protected observer = new IntersectionObserver(this.callBack.bind(this));\n\n ScrollEnd = output();\n\n /** @ignore */\n loading = false;\n\n container = inject(ElementRef);\n\n /** @ignore */\n protected children = contentChildren(AXVirtualScrollingItemDirective);\n\n /** @ignore */\n protected firstCall = signal(false);\n\n /** @ignore */\n protected lastChildElem = computed<Element | null>(() => {\n return this.children()[0]?.nativeElement;\n });\n\n /** @ignore */\n protected firstChildElem = computed<Element | null>(() => {\n return this.children()[this.children().length - 1]?.nativeElement;\n });\n\n /** @ignore */\n #eff2 = effect(() => {\n if (this.lastChildElem()) {\n this.observer.observe(this.lastChildElem());\n }\n });\n\n /** @ignore */\n #eff3 = effect(() => {\n if (this.firstChildElem() && !this.loading) {\n setTimeout(() => {\n this.container.nativeElement.scrollTo({\n top: this.container.nativeElement.scrollHeight,\n behavior: 'instant',\n });\n });\n }\n });\n\n #init = afterNextRender(() => {\n (this.container.nativeElement as HTMLElement).style.overflowY = 'auto';\n (this.container.nativeElement as HTMLElement).style.display = 'block';\n });\n\n /** @ignore */\n protected callBack(entries: IntersectionObserverEntry[]) {\n if (entries[0].isIntersecting && this.firstCall()) {\n this.ScrollEnd.emit();\n this.loading = true;\n }\n this.loading = false;\n this.firstCall.set(true);\n }\n\n @HostBinding('style.height')\n get __hostClass(): string {\n return `${this.height()}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXVirtualScrollingContainerDirective } from './virtual-scrolling-contianer/virtual-scrolling-contianer.directive';\nimport { AXVirtualScrollingItemDirective } from './virtual-scrolling-item/virtual-scrolling-item.directive';\n\nconst COMPONENT = [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXVirtualScrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-cdk-virtual-scroll.mjs","sources":["../../../../packages/cdk/virtual-scroll/src/lib/virtual-scrolling-item/virtual-scrolling-item.directive.ts","../../../../packages/cdk/virtual-scroll/src/lib/virtual-scrolling-contianer/virtual-scrolling-contianer.directive.ts","../../../../packages/cdk/virtual-scroll/src/lib/virtual-scroll.module.ts","../../../../packages/cdk/virtual-scroll/src/acorex-cdk-virtual-scroll.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({ selector: '[axVirtualScrollingItem]' })\nexport class AXVirtualScrollingItemDirective {\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n public get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import {\n afterNextRender,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXVirtualScrollingItemDirective } from '../virtual-scrolling-item/virtual-scrolling-item.directive';\n\n@Directive({ selector: '[axVirtualScrollingContainer]' })\nexport class AXVirtualScrollingContainerDirective {\n height = input.required<string>();\n\n /** @ignore */\n protected observer = new IntersectionObserver(this.callBack.bind(this));\n\n ScrollEnd = output();\n\n /** @ignore */\n loading = false;\n\n container = inject(ElementRef);\n\n /** @ignore */\n protected children = contentChildren(AXVirtualScrollingItemDirective);\n\n /** @ignore */\n protected firstCall = signal(false);\n\n /** @ignore */\n protected lastChildElem = computed<Element | null>(() => {\n return this.children()[0]?.nativeElement;\n });\n\n /** @ignore */\n protected firstChildElem = computed<Element | null>(() => {\n return this.children()[this.children().length - 1]?.nativeElement;\n });\n\n /** @ignore */\n #eff2 = effect(() => {\n if (this.lastChildElem()) {\n this.observer.observe(this.lastChildElem());\n }\n });\n\n /** @ignore */\n #eff3 = effect(() => {\n if (this.firstChildElem() && !this.loading) {\n setTimeout(() => {\n this.container.nativeElement.scrollTo({\n top: this.container.nativeElement.scrollHeight,\n behavior: 'instant',\n });\n });\n }\n });\n\n #init = afterNextRender(() => {\n (this.container.nativeElement as HTMLElement).style.overflowY = 'auto';\n (this.container.nativeElement as HTMLElement).style.display = 'block';\n });\n\n /** @ignore */\n protected callBack(entries: IntersectionObserverEntry[]) {\n if (entries[0].isIntersecting && this.firstCall()) {\n this.ScrollEnd.emit();\n this.loading = true;\n }\n this.loading = false;\n this.firstCall.set(true);\n }\n\n @HostBinding('style.height')\n get __hostClass(): string {\n return `${this.height()}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXVirtualScrollingContainerDirective } from './virtual-scrolling-contianer/virtual-scrolling-contianer.directive';\nimport { AXVirtualScrollingItemDirective } from './virtual-scrolling-item/virtual-scrolling-item.directive';\n\nconst COMPONENT = [AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective];\n\nconst MODULES = [];\n\n@NgModule({\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXVirtualScrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}