@origostudio/origo-design 0.0.53 → 0.0.54
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/CHANGELOG.md +4 -3
- package/dist/packages/angular-renderer/CHANGELOG.md +11 -0
- package/dist/packages/angular-renderer/package.json +9 -4
- package/dist/packages/angular-renderer/src/index.d.ts +3 -0
- package/dist/packages/angular-renderer/src/index.js +3 -0
- package/dist/packages/angular-renderer/src/index.js.map +1 -1
- package/dist/packages/angular-renderer/src/lib/overlay/overlay-ref.d.ts +40 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay-ref.js +248 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay-ref.js.map +1 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay.models.d.ts +51 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay.models.js +3 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay.models.js.map +1 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay.service.d.ts +12 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay.service.js +211 -0
- package/dist/packages/angular-renderer/src/lib/overlay/overlay.service.js.map +1 -0
- package/dist/packages/cli/CHANGELOG.md +4 -0
- package/dist/packages/cli/package.json +2 -2
- package/dist/packages/cli/package.json.bak +2 -2
- package/dist/packages/core/CHANGELOG.md +4 -0
- package/dist/packages/core/package.json +1 -1
- package/dist/packages/core/package.json.bak +1 -1
- package/dist/packages/design-tokens/CHANGELOG.md +4 -0
- package/dist/packages/design-tokens/package.json +1 -1
- package/dist/packages/playground/browser/{chunk-DFUtHoSa.js → chunk-B2didn7J.js} +1 -1
- package/dist/packages/playground/browser/{chunk-CZYE6Vo5.js → chunk-BJpNkPjw.js} +1 -1
- package/dist/packages/playground/browser/{chunk-BD3aW3fo.js → chunk-BMHZeB3d.js} +1 -1
- package/dist/packages/playground/browser/{chunk-DoDHfFRC.js → chunk-Bae_RqUz.js} +1 -1
- package/dist/packages/playground/browser/{chunk-Bb34YjCX.js → chunk-Bl9Hil7b.js} +1 -1
- package/dist/packages/playground/browser/{chunk-BGrPMh-Q.js → chunk-CI4TeaQ7.js} +1 -1
- package/dist/packages/playground/browser/{chunk-DjQs2rZT.js → chunk-CcgTDmOq.js} +1 -1
- package/dist/packages/playground/browser/{chunk-Cxq4lcyl.js → chunk-ChCntBeH.js} +1 -1
- package/dist/packages/playground/browser/{chunk-CYa5xYdO.js → chunk-D3Fei55I.js} +1 -1
- package/dist/packages/playground/browser/{chunk-CoyK3eaz.js → chunk-DTvURA18.js} +1 -1
- package/dist/packages/playground/browser/{chunk-K_6Vunnz.js → chunk-DU-D8H8h.js} +1 -1
- package/dist/packages/playground/browser/{chunk-DGFBCrz0.js → chunk-DYrE-2nP.js} +1 -1
- package/dist/packages/playground/browser/{chunk-OWSRr_rS.js → chunk-DZFv-mMu.js} +1 -1
- package/dist/packages/playground/browser/{chunk-D-gQXFhO.js → chunk-DmvRhqJL.js} +1 -1
- package/dist/packages/playground/browser/{chunk-kcBcpdDQ.js → chunk-Q_bSp4tV.js} +1 -1
- package/dist/packages/playground/browser/index.html +1 -1
- package/dist/packages/playground/browser/main-C3BVRL3Q.js +887 -0
- package/package.json +3 -1
- package/packages/angular-renderer/CHANGELOG.md +11 -0
- package/packages/angular-renderer/package.json +9 -4
- package/packages/angular-renderer/src/index.ts +3 -0
- package/packages/angular-renderer/src/lib/overlay/overlay-ref.ts +298 -0
- package/packages/angular-renderer/src/lib/overlay/overlay.models.ts +59 -0
- package/packages/angular-renderer/src/lib/overlay/overlay.service.ts +227 -0
- package/packages/angular-renderer/src/styles/overlay.scss +117 -0
- package/packages/cli/CHANGELOG.md +4 -0
- package/packages/cli/package.json +2 -2
- package/packages/core/CHANGELOG.md +4 -0
- package/packages/core/package.json +1 -1
- package/packages/design-tokens/CHANGELOG.md +4 -0
- package/packages/design-tokens/package.json +1 -1
- package/packages/devtools/CHANGELOG.md +4 -0
- package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/deps___vitest_vm__/_metadata.json +3 -3
- package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/packages/devtools/package.json +3 -3
- package/packages/playground/CHANGELOG.md +4 -0
- package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/deps___vitest_vm__/_metadata.json +3 -3
- package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
- package/packages/playground/package.json +3 -3
- package/dist/packages/playground/browser/main-ZTUYGW6H.js +0 -748
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
## 0.0.
|
|
1
|
+
## 0.0.54 (2026-10-13)
|
|
2
2
|
|
|
3
3
|
### 🚀 Features
|
|
4
4
|
|
|
5
|
-
- add
|
|
6
|
-
- implement
|
|
5
|
+
- add sprint status tracking and retrospective story for overlay portal architecture ([bddb8a6](https://github.com/OrigoStudio/origo-design/commit/bddb8a6))
|
|
6
|
+
- implement Angular overlay and portal architecture with Shadow DOM support ([954c255](https://github.com/OrigoStudio/origo-design/commit/954c255))
|
|
7
|
+
- implement Angular overlay and portal architecture service for angular-renderer ([fe0c96a](https://github.com/OrigoStudio/origo-design/commit/fe0c96a))
|
|
7
8
|
|
|
8
9
|
### ❤️ Thank You
|
|
9
10
|
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## 0.0.54 (2026-10-13)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- implement Angular overlay and portal architecture service for angular-renderer ([fe0c96a](https://github.com/OrigoStudio/origo-design/commit/fe0c96a))
|
|
6
|
+
- implement Angular overlay and portal architecture with Shadow DOM support ([954c255](https://github.com/OrigoStudio/origo-design/commit/954c255))
|
|
7
|
+
|
|
8
|
+
### ❤️ Thank You
|
|
9
|
+
|
|
10
|
+
- Hardik Patel @hardikpatelse
|
|
11
|
+
|
|
1
12
|
## 0.0.53 (2026-10-09)
|
|
2
13
|
|
|
3
14
|
### 🚀 Features
|
|
@@ -1,24 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@origostudio/angular-renderer",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.54",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@origostudio/core": "0.0.
|
|
10
|
-
"@origostudio/design-tokens": "0.0.
|
|
9
|
+
"@origostudio/core": "0.0.54",
|
|
10
|
+
"@origostudio/design-tokens": "0.0.54",
|
|
11
11
|
"tslib": "^2.3.0",
|
|
12
12
|
"@analogjs/vite-plugin-angular": "^2.7.1",
|
|
13
13
|
"zone.js": "^0.16.3",
|
|
14
|
-
"@axe-core/playwright": "^4.13.0"
|
|
14
|
+
"@axe-core/playwright": "^4.13.0",
|
|
15
|
+
"rxjs": "~7.8.0"
|
|
15
16
|
},
|
|
16
17
|
"peerDependencies": {
|
|
18
|
+
"@angular/cdk": ">=18.0.0",
|
|
17
19
|
"@angular/common": ">=18.0.0",
|
|
18
20
|
"@angular/core": ">=18.0.0",
|
|
19
21
|
"@angular/forms": ">=18.0.0",
|
|
20
22
|
"@angular/platform-browser": ">=18.0.0"
|
|
21
23
|
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@angular/cdk": "22.0.7"
|
|
26
|
+
},
|
|
22
27
|
"repository": {
|
|
23
28
|
"type": "git",
|
|
24
29
|
"url": "https://github.com/OrigoStudio/origo-design.git"
|
|
@@ -39,3 +39,6 @@ export * from './components/primitives/divider/divider.component';
|
|
|
39
39
|
export * from './components/primitives/file-input/file-input.component';
|
|
40
40
|
export * from './components/primitives/dropzone/dropzone.component';
|
|
41
41
|
export * from './components/primitives/rich-text-editor/rich-text-editor.component';
|
|
42
|
+
export * from './lib/overlay/overlay.models';
|
|
43
|
+
export * from './lib/overlay/overlay-ref';
|
|
44
|
+
export * from './lib/overlay/overlay.service';
|
|
@@ -44,4 +44,7 @@ tslib_1.__exportStar(require("./components/primitives/divider/divider.component"
|
|
|
44
44
|
tslib_1.__exportStar(require("./components/primitives/file-input/file-input.component"), exports);
|
|
45
45
|
tslib_1.__exportStar(require("./components/primitives/dropzone/dropzone.component"), exports);
|
|
46
46
|
tslib_1.__exportStar(require("./components/primitives/rich-text-editor/rich-text-editor.component"), exports);
|
|
47
|
+
tslib_1.__exportStar(require("./lib/overlay/overlay.models"), exports);
|
|
48
|
+
tslib_1.__exportStar(require("./lib/overlay/overlay-ref"), exports);
|
|
49
|
+
tslib_1.__exportStar(require("./lib/overlay/overlay.service"), exports);
|
|
47
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/angular-renderer/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAqC;AACrC,mEAAyC;AACzC,gEAAsC;AACtC,kDAAqF;AAA5E,8GAAA,mBAAmB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AAEpD,sFAA4D;AAC5D,kGAAwE;AACxE,0FAAgE;AAChE,oGAA0E;AAC1E,sGAA4E;AAC5E,0HAAgG;AAChG,qDAA2B;AAC3B,0FAAgE;AAChE,sGAA4E;AAC5E,sGAA4E;AAC5E,8FAAoE;AACpE,8FAAoE;AACpE,oGAA0E;AAC1E,8FAAoE;AACpE,sFAA4D;AAC5D,wFAA8D;AAC9D,kGAAwE;AACxE,oEAA0C;AAC1C,gGAAsE;AACtE,sFAA4D;AAC5D,sFAA4D;AAC5D,4FAAkE;AAClE,sFAA4D;AAC5D,oGAA0E;AAC1E,oFAA0D;AAC1D,sGAA4E;AAC5E,oGAA0E;AAC1E,oGAA0E;AAC1E,gHAAsF;AACtF,gGAAsE;AACtE,sFAA4D;AAC5D,wFAA8D;AAC9D,4FAAkE;AAClE,kGAAwE;AACxE,8FAAoE;AACpE,8GAAoF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/angular-renderer/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAqC;AACrC,mEAAyC;AACzC,gEAAsC;AACtC,kDAAqF;AAA5E,8GAAA,mBAAmB,OAAA;AAAE,iHAAA,sBAAsB,OAAA;AAEpD,sFAA4D;AAC5D,kGAAwE;AACxE,0FAAgE;AAChE,oGAA0E;AAC1E,sGAA4E;AAC5E,0HAAgG;AAChG,qDAA2B;AAC3B,0FAAgE;AAChE,sGAA4E;AAC5E,sGAA4E;AAC5E,8FAAoE;AACpE,8FAAoE;AACpE,oGAA0E;AAC1E,8FAAoE;AACpE,sFAA4D;AAC5D,wFAA8D;AAC9D,kGAAwE;AACxE,oEAA0C;AAC1C,gGAAsE;AACtE,sFAA4D;AAC5D,sFAA4D;AAC5D,4FAAkE;AAClE,sFAA4D;AAC5D,oGAA0E;AAC1E,oFAA0D;AAC1D,sGAA4E;AAC5E,oGAA0E;AAC1E,oGAA0E;AAC1E,gHAAsF;AACtF,gGAAsE;AACtE,sFAA4D;AAC5D,wFAA8D;AAC9D,4FAAkE;AAClE,kGAAwE;AACxE,8FAAoE;AACpE,8GAAoF;AACpF,uEAA6C;AAC7C,oEAA0C;AAC1C,wEAA8C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DestroyRef, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { OverlayRef as CdkOverlayRef } from '@angular/cdk/overlay';
|
|
3
|
+
import { OrigoOverlayConfig, OrigoOverlayContent, OrigoOverlayRef } from './overlay.models';
|
|
4
|
+
export declare const ORIGO_OVERLAY_FOCUSABLE_SELECTOR = "button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"]):not([disabled])";
|
|
5
|
+
export declare function getDeepActiveElement(doc: Document | null): Element | null;
|
|
6
|
+
export declare class OrigoNoopOverlayRef<T = unknown> implements OrigoOverlayRef<T> {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly isOpen = false;
|
|
9
|
+
constructor(id?: string);
|
|
10
|
+
open(): void;
|
|
11
|
+
close(): void;
|
|
12
|
+
afterClosed(): Promise<T | undefined>;
|
|
13
|
+
updatePosition(): void;
|
|
14
|
+
dispose(): void;
|
|
15
|
+
}
|
|
16
|
+
export declare class OrigoOverlayRefImpl<T = unknown> implements OrigoOverlayRef<T> {
|
|
17
|
+
private readonly cdkOverlayRef;
|
|
18
|
+
private readonly config;
|
|
19
|
+
private readonly document;
|
|
20
|
+
readonly id: string;
|
|
21
|
+
private _isOpen;
|
|
22
|
+
private previousFocusedElement;
|
|
23
|
+
private afterClosedResolve;
|
|
24
|
+
private afterClosedPromise;
|
|
25
|
+
private documentClickListener;
|
|
26
|
+
private documentKeydownListener;
|
|
27
|
+
private backdropSub;
|
|
28
|
+
private resizeObserver;
|
|
29
|
+
private initialFocusTimeout;
|
|
30
|
+
constructor(id: string, cdkOverlayRef: CdkOverlayRef, config: OrigoOverlayConfig, document: Document | null, destroyRef?: DestroyRef);
|
|
31
|
+
get isOpen(): boolean;
|
|
32
|
+
open(content?: OrigoOverlayContent, viewContainerRef?: ViewContainerRef): void;
|
|
33
|
+
private setupListeners;
|
|
34
|
+
private cleanupListeners;
|
|
35
|
+
private syncTriggerAria;
|
|
36
|
+
close(result?: T): void;
|
|
37
|
+
afterClosed(): Promise<T | undefined>;
|
|
38
|
+
updatePosition(): void;
|
|
39
|
+
dispose(): void;
|
|
40
|
+
}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrigoOverlayRefImpl = exports.OrigoNoopOverlayRef = exports.ORIGO_OVERLAY_FOCUSABLE_SELECTOR = void 0;
|
|
4
|
+
exports.getDeepActiveElement = getDeepActiveElement;
|
|
5
|
+
const core_1 = require("@angular/core");
|
|
6
|
+
const portal_1 = require("@angular/cdk/portal");
|
|
7
|
+
exports.ORIGO_OVERLAY_FOCUSABLE_SELECTOR = 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"]):not([disabled])';
|
|
8
|
+
function getDeepActiveElement(doc) {
|
|
9
|
+
if (!doc)
|
|
10
|
+
return null;
|
|
11
|
+
let active = doc.activeElement;
|
|
12
|
+
while (active && active.shadowRoot && active.shadowRoot.activeElement) {
|
|
13
|
+
active = active.shadowRoot.activeElement;
|
|
14
|
+
}
|
|
15
|
+
return active;
|
|
16
|
+
}
|
|
17
|
+
class OrigoNoopOverlayRef {
|
|
18
|
+
id;
|
|
19
|
+
isOpen = false;
|
|
20
|
+
constructor(id = 'noop-overlay') {
|
|
21
|
+
this.id = id;
|
|
22
|
+
}
|
|
23
|
+
open() {
|
|
24
|
+
/* No-op in SSR */
|
|
25
|
+
}
|
|
26
|
+
close() {
|
|
27
|
+
/* No-op in SSR */
|
|
28
|
+
}
|
|
29
|
+
afterClosed() {
|
|
30
|
+
return Promise.resolve(undefined);
|
|
31
|
+
}
|
|
32
|
+
updatePosition() {
|
|
33
|
+
/* No-op in SSR */
|
|
34
|
+
}
|
|
35
|
+
dispose() {
|
|
36
|
+
/* No-op in SSR */
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.OrigoNoopOverlayRef = OrigoNoopOverlayRef;
|
|
40
|
+
class OrigoOverlayRefImpl {
|
|
41
|
+
cdkOverlayRef;
|
|
42
|
+
config;
|
|
43
|
+
document;
|
|
44
|
+
id;
|
|
45
|
+
_isOpen = false;
|
|
46
|
+
previousFocusedElement = null;
|
|
47
|
+
afterClosedResolve;
|
|
48
|
+
afterClosedPromise;
|
|
49
|
+
documentClickListener = null;
|
|
50
|
+
documentKeydownListener = null;
|
|
51
|
+
backdropSub = null;
|
|
52
|
+
resizeObserver = null;
|
|
53
|
+
initialFocusTimeout = null;
|
|
54
|
+
constructor(id, cdkOverlayRef, config, document, destroyRef) {
|
|
55
|
+
this.cdkOverlayRef = cdkOverlayRef;
|
|
56
|
+
this.config = config;
|
|
57
|
+
this.document = document;
|
|
58
|
+
this.id = id;
|
|
59
|
+
this.afterClosedPromise = new Promise(resolve => {
|
|
60
|
+
this.afterClosedResolve = resolve;
|
|
61
|
+
});
|
|
62
|
+
if (destroyRef) {
|
|
63
|
+
destroyRef.onDestroy(() => {
|
|
64
|
+
this.dispose();
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
// Auto-reposition on target resize if requested
|
|
68
|
+
if (this.config.position.type === 'connected' &&
|
|
69
|
+
this.config.position.autoRepositionOnResize !== false &&
|
|
70
|
+
typeof ResizeObserver !== 'undefined') {
|
|
71
|
+
const targetEl = this.config.position.target instanceof core_1.ElementRef
|
|
72
|
+
? this.config.position.target.nativeElement
|
|
73
|
+
: this.config.position.target;
|
|
74
|
+
if (targetEl) {
|
|
75
|
+
this.resizeObserver = new ResizeObserver(() => {
|
|
76
|
+
if (this._isOpen) {
|
|
77
|
+
this.updatePosition();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
this.resizeObserver.observe(targetEl);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
get isOpen() {
|
|
85
|
+
return this._isOpen;
|
|
86
|
+
}
|
|
87
|
+
open(content, viewContainerRef) {
|
|
88
|
+
if (this._isOpen)
|
|
89
|
+
return;
|
|
90
|
+
if (!content && !this.cdkOverlayRef.hasAttached()) {
|
|
91
|
+
throw new Error('[OrigoOverlayRef] Content is required to open overlay. Provide a TemplateRef or Component Type.');
|
|
92
|
+
}
|
|
93
|
+
this.previousFocusedElement = getDeepActiveElement(this.document);
|
|
94
|
+
const effectiveVcr = viewContainerRef ?? this.config.viewContainerRef;
|
|
95
|
+
if (content) {
|
|
96
|
+
if (content instanceof core_1.TemplateRef) {
|
|
97
|
+
if (!effectiveVcr) {
|
|
98
|
+
throw new Error('[OrigoOverlayRef] Opening a TemplateRef requires a ViewContainerRef. Provide it in OrigoOverlayConfig.viewContainerRef or open(template, viewContainerRef).');
|
|
99
|
+
}
|
|
100
|
+
const portal = new portal_1.TemplatePortal(content, effectiveVcr);
|
|
101
|
+
this.cdkOverlayRef.attach(portal);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const portal = new portal_1.ComponentPortal(content, effectiveVcr ?? null);
|
|
105
|
+
this.cdkOverlayRef.attach(portal);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
this._isOpen = true;
|
|
109
|
+
this.syncTriggerAria(true);
|
|
110
|
+
this.setupListeners();
|
|
111
|
+
}
|
|
112
|
+
setupListeners() {
|
|
113
|
+
const overlayPane = this.cdkOverlayRef.overlayElement;
|
|
114
|
+
// 1. Backdrop click
|
|
115
|
+
if (this.config.hasBackdrop && this.config.closeOnBackdropClick !== false) {
|
|
116
|
+
this.backdropSub = this.cdkOverlayRef.backdropClick().subscribe(() => {
|
|
117
|
+
this.close();
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// 2. Outside click with event.composedPath() Shadow DOM piercing
|
|
121
|
+
if (this.config.closeOnOutsideClick !== false && this.document) {
|
|
122
|
+
const triggerEl = this.config.position.type === 'connected'
|
|
123
|
+
? this.config.position.target instanceof core_1.ElementRef
|
|
124
|
+
? this.config.position.target.nativeElement
|
|
125
|
+
: this.config.position.target
|
|
126
|
+
: null;
|
|
127
|
+
this.documentClickListener = (event) => {
|
|
128
|
+
if (!this._isOpen)
|
|
129
|
+
return;
|
|
130
|
+
// Piercing Shadow DOM boundary via composedPath()
|
|
131
|
+
const path = event.composedPath ? event.composedPath() : [];
|
|
132
|
+
const isInsideOverlay = overlayPane && (path.includes(overlayPane) || overlayPane.contains(event.target));
|
|
133
|
+
const isInsideTrigger = triggerEl && (path.includes(triggerEl) || triggerEl.contains(event.target));
|
|
134
|
+
if (!isInsideOverlay && !isInsideTrigger) {
|
|
135
|
+
this.close();
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
this.document.addEventListener('click', this.documentClickListener, true);
|
|
139
|
+
}
|
|
140
|
+
// 3. Keydown handling (Escape & Focus Trap)
|
|
141
|
+
if (this.document) {
|
|
142
|
+
this.documentKeydownListener = (event) => {
|
|
143
|
+
if (!this._isOpen)
|
|
144
|
+
return;
|
|
145
|
+
if (this.config.closeOnEscape !== false && event.key === 'Escape') {
|
|
146
|
+
event.preventDefault();
|
|
147
|
+
event.stopPropagation();
|
|
148
|
+
this.close();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (this.config.trapFocus && event.key === 'Tab' && overlayPane) {
|
|
152
|
+
const focusables = overlayPane.querySelectorAll(exports.ORIGO_OVERLAY_FOCUSABLE_SELECTOR);
|
|
153
|
+
if (focusables.length === 0)
|
|
154
|
+
return;
|
|
155
|
+
const first = focusables[0];
|
|
156
|
+
const last = focusables[focusables.length - 1];
|
|
157
|
+
const active = getDeepActiveElement(this.document);
|
|
158
|
+
if (event.shiftKey) {
|
|
159
|
+
if (active === first || !overlayPane.contains(active)) {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
last.focus();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
if (active === last || !overlayPane.contains(active)) {
|
|
166
|
+
event.preventDefault();
|
|
167
|
+
first.focus();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
this.document.addEventListener('keydown', this.documentKeydownListener, true);
|
|
173
|
+
}
|
|
174
|
+
// 4. Initial Focus
|
|
175
|
+
if (this.config.trapFocus && overlayPane) {
|
|
176
|
+
this.initialFocusTimeout = setTimeout(() => {
|
|
177
|
+
if (!this._isOpen)
|
|
178
|
+
return;
|
|
179
|
+
const firstFocusable = overlayPane.querySelector(exports.ORIGO_OVERLAY_FOCUSABLE_SELECTOR);
|
|
180
|
+
if (firstFocusable) {
|
|
181
|
+
firstFocusable.focus();
|
|
182
|
+
}
|
|
183
|
+
}, 0);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
cleanupListeners() {
|
|
187
|
+
if (this.initialFocusTimeout) {
|
|
188
|
+
clearTimeout(this.initialFocusTimeout);
|
|
189
|
+
this.initialFocusTimeout = null;
|
|
190
|
+
}
|
|
191
|
+
if (this.documentClickListener && this.document) {
|
|
192
|
+
this.document.removeEventListener('click', this.documentClickListener, true);
|
|
193
|
+
this.documentClickListener = null;
|
|
194
|
+
}
|
|
195
|
+
if (this.documentKeydownListener && this.document) {
|
|
196
|
+
this.document.removeEventListener('keydown', this.documentKeydownListener, true);
|
|
197
|
+
this.documentKeydownListener = null;
|
|
198
|
+
}
|
|
199
|
+
if (this.backdropSub) {
|
|
200
|
+
this.backdropSub.unsubscribe();
|
|
201
|
+
this.backdropSub = null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
syncTriggerAria(open) {
|
|
205
|
+
const triggerEl = this.config.position.type === 'connected'
|
|
206
|
+
? this.config.position.target instanceof core_1.ElementRef
|
|
207
|
+
? this.config.position.target.nativeElement
|
|
208
|
+
: this.config.position.target
|
|
209
|
+
: null;
|
|
210
|
+
if (triggerEl && typeof triggerEl.setAttribute === 'function') {
|
|
211
|
+
triggerEl.setAttribute('aria-expanded', open ? 'true' : 'false');
|
|
212
|
+
if (open && !triggerEl.hasAttribute('aria-controls')) {
|
|
213
|
+
triggerEl.setAttribute('aria-controls', this.id);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
close(result) {
|
|
218
|
+
if (!this._isOpen)
|
|
219
|
+
return;
|
|
220
|
+
this.cleanupListeners();
|
|
221
|
+
this.syncTriggerAria(false);
|
|
222
|
+
if (this.cdkOverlayRef.hasAttached()) {
|
|
223
|
+
this.cdkOverlayRef.detach();
|
|
224
|
+
}
|
|
225
|
+
this._isOpen = false;
|
|
226
|
+
// Restore focus into originating element (pierces Shadow DOM)
|
|
227
|
+
if (this.previousFocusedElement && typeof this.previousFocusedElement.focus === 'function') {
|
|
228
|
+
this.previousFocusedElement.focus();
|
|
229
|
+
}
|
|
230
|
+
this.afterClosedResolve(result);
|
|
231
|
+
}
|
|
232
|
+
afterClosed() {
|
|
233
|
+
return this.afterClosedPromise;
|
|
234
|
+
}
|
|
235
|
+
updatePosition() {
|
|
236
|
+
this.cdkOverlayRef.updatePosition();
|
|
237
|
+
}
|
|
238
|
+
dispose() {
|
|
239
|
+
this.close();
|
|
240
|
+
if (this.resizeObserver) {
|
|
241
|
+
this.resizeObserver.disconnect();
|
|
242
|
+
this.resizeObserver = null;
|
|
243
|
+
}
|
|
244
|
+
this.cdkOverlayRef.dispose();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.OrigoOverlayRefImpl = OrigoOverlayRefImpl;
|
|
248
|
+
//# sourceMappingURL=overlay-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay-ref.js","sourceRoot":"","sources":["../../../../../../packages/angular-renderer/src/lib/overlay/overlay-ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { ElementRef, TemplateRef, Type, ViewContainerRef } from '@angular/core';
|
|
2
|
+
export type OrigoOverlayOriginX = 'start' | 'end' | 'center';
|
|
3
|
+
export type OrigoOverlayOriginY = 'top' | 'bottom' | 'center';
|
|
4
|
+
export type OrigoGlobalPositionAlignment = 'center' | 'top' | 'bottom' | 'start' | 'end';
|
|
5
|
+
export interface OrigoConnectedPositionConfig {
|
|
6
|
+
type: 'connected';
|
|
7
|
+
target: ElementRef<HTMLElement> | HTMLElement;
|
|
8
|
+
originX?: OrigoOverlayOriginX;
|
|
9
|
+
originY?: OrigoOverlayOriginY;
|
|
10
|
+
overlayX?: OrigoOverlayOriginX;
|
|
11
|
+
overlayY?: OrigoOverlayOriginY;
|
|
12
|
+
offset?: [number, number];
|
|
13
|
+
autoRepositionOnResize?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface OrigoGlobalPositionConfig {
|
|
16
|
+
type: 'global';
|
|
17
|
+
position?: OrigoGlobalPositionAlignment;
|
|
18
|
+
width?: string;
|
|
19
|
+
height?: string;
|
|
20
|
+
minWidth?: string;
|
|
21
|
+
minHeight?: string;
|
|
22
|
+
maxWidth?: string;
|
|
23
|
+
maxHeight?: string;
|
|
24
|
+
}
|
|
25
|
+
export type OrigoOverlayPosition = OrigoConnectedPositionConfig | OrigoGlobalPositionConfig;
|
|
26
|
+
export type OrigoConnectedPositionStrategy = OrigoConnectedPositionConfig;
|
|
27
|
+
export type OrigoGlobalPositionStrategy = OrigoGlobalPositionConfig;
|
|
28
|
+
export type OrigoOverlayPositionStrategy = OrigoOverlayPosition;
|
|
29
|
+
export type OrigoOverlayContent<C = unknown> = TemplateRef<C> | Type<unknown>;
|
|
30
|
+
export interface OrigoOverlayConfig {
|
|
31
|
+
position: OrigoOverlayPosition;
|
|
32
|
+
hasBackdrop?: boolean;
|
|
33
|
+
backdropClass?: string;
|
|
34
|
+
panelClass?: string | string[];
|
|
35
|
+
closeOnBackdropClick?: boolean;
|
|
36
|
+
closeOnOutsideClick?: boolean;
|
|
37
|
+
closeOnEscape?: boolean;
|
|
38
|
+
trapFocus?: boolean;
|
|
39
|
+
viewContainerRef?: ViewContainerRef;
|
|
40
|
+
direction?: 'ltr' | 'rtl';
|
|
41
|
+
themeScope?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface OrigoOverlayRef<T = unknown> {
|
|
44
|
+
readonly id: string;
|
|
45
|
+
readonly isOpen: boolean;
|
|
46
|
+
open(content?: OrigoOverlayContent, viewContainerRef?: ViewContainerRef): void;
|
|
47
|
+
close(result?: T): void;
|
|
48
|
+
afterClosed(): Promise<T | undefined>;
|
|
49
|
+
updatePosition(): void;
|
|
50
|
+
dispose(): void;
|
|
51
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlay.models.js","sourceRoot":"","sources":["../../../../../../packages/angular-renderer/src/lib/overlay/overlay.models.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DestroyRef } from '@angular/core';
|
|
2
|
+
import { OrigoOverlayConfig, OrigoOverlayRef } from './overlay.models';
|
|
3
|
+
export declare class OrigoOverlayService {
|
|
4
|
+
private readonly overlay;
|
|
5
|
+
private readonly platformId;
|
|
6
|
+
private readonly document;
|
|
7
|
+
get isBrowser(): boolean;
|
|
8
|
+
create<T = unknown>(config: OrigoOverlayConfig, destroyRef?: DestroyRef): OrigoOverlayRef<T>;
|
|
9
|
+
private buildPositionStrategy;
|
|
10
|
+
private resolvePanelClasses;
|
|
11
|
+
private resolveDirection;
|
|
12
|
+
}
|