Private
Public Access
1
0

feat: Fluent UI Outlook Lite + connections mockup

This commit is contained in:
2026-04-14 18:52:25 +00:00
parent 1199eff6c3
commit dfa4010406
34820 changed files with 1003813 additions and 205 deletions

View File

@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "elementContains", {
enumerable: true,
get: function() {
return elementContains;
}
});
const _getParent = require("./getParent");
function elementContains(parent, child) {
if (!parent || !child) {
return false;
}
if (parent === child) {
return true;
} else {
// Tracks references of nodes that have been visited to prevent infinite loops
const set = new WeakSet();
while(child){
const nextParent = (0, _getParent.getParent)(child, {
skipVirtual: set.has(child)
});
set.add(child);
if (nextParent === parent) {
return true;
}
child = nextParent;
}
}
return false;
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/virtualParent/elementContains.ts"],"sourcesContent":["import { getParent } from './getParent';\n\n/**\n * Similar functionality to `element.contains` DOM API for use without of order DOM elements that\n * checks the virtual parent hierarchy. If a virtual parents exists, it is chosen over the actual parent\n *\n * @internal\n * @returns true if the child can find the parent in its virtual hierarchy\n */\nexport function elementContains(parent: Node | null, child: Node | null): boolean {\n if (!parent || !child) {\n return false;\n }\n\n if (parent === child) {\n return true;\n } else {\n // Tracks references of nodes that have been visited to prevent infinite loops\n const set = new WeakSet<Node>();\n\n while (child) {\n const nextParent: Node | null = getParent(child, {\n skipVirtual: set.has(child),\n });\n set.add(child);\n\n if (nextParent === parent) {\n return true;\n }\n\n child = nextParent;\n }\n }\n\n return false;\n}\n"],"names":["elementContains","parent","child","set","WeakSet","nextParent","getParent","skipVirtual","has","add"],"mappings":";;;;+BASgBA;;;eAAAA;;;2BATU;AASnB,SAASA,gBAAgBC,MAAmB,EAAEC,KAAkB;IACrE,IAAI,CAACD,UAAU,CAACC,OAAO;QACrB,OAAO;IACT;IAEA,IAAID,WAAWC,OAAO;QACpB,OAAO;IACT,OAAO;QACL,8EAA8E;QAC9E,MAAMC,MAAM,IAAIC;QAEhB,MAAOF,MAAO;YACZ,MAAMG,aAA0BC,IAAAA,oBAAS,EAACJ,OAAO;gBAC/CK,aAAaJ,IAAIK,GAAG,CAACN;YACvB;YACAC,IAAIM,GAAG,CAACP;YAER,IAAIG,eAAeJ,QAAQ;gBACzB,OAAO;YACT;YAEAC,QAAQG;QACV;IACF;IAEA,OAAO;AACT"}

View File

@@ -0,0 +1,34 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "getParent", {
enumerable: true,
get: function() {
return getParent;
}
});
const _isVirtualElement = require("./isVirtualElement");
/**
* Gets the virtual parent given the child element, if it exists.
* @internal
*/ function getVirtualParent(child) {
return (0, _isVirtualElement.isVirtualElement)(child) ? child._virtual.parent || null : null;
}
function getParent(child, options = {}) {
if (!child) {
return null;
}
if (!options.skipVirtual) {
const virtualParent = getVirtualParent(child);
if (virtualParent) {
return virtualParent;
}
}
const parent = child.parentNode;
// Node.DOCUMENT_FRAGMENT_NODE = 11
if (parent && parent.nodeType === 11) {
return parent.host;
}
return parent;
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/virtualParent/getParent.ts"],"sourcesContent":["import { isVirtualElement } from './isVirtualElement';\n\ntype GetParentOptions = {\n /**\n * Indicates if getParent() should ignore a virtual parent.\n * @internal\n */\n skipVirtual?: boolean;\n};\n\n/**\n * Gets the virtual parent given the child element, if it exists.\n * @internal\n */\nfunction getVirtualParent(child: Node): Node | null {\n return isVirtualElement(child) ? child._virtual.parent || null : null;\n}\n\n/**\n * Gets the element which is the parent of a given element.\n * This method prefers the virtual parent over real DOM parent when present.\n * @internal\n */\nexport function getParent(child: Node | null, options: GetParentOptions = {}): Node | null {\n if (!child) {\n return null;\n }\n\n if (!options.skipVirtual) {\n const virtualParent = getVirtualParent(child);\n\n if (virtualParent) {\n return virtualParent;\n }\n }\n\n const parent = child.parentNode;\n\n // Node.DOCUMENT_FRAGMENT_NODE = 11\n if (parent && parent.nodeType === 11) {\n return (parent as ShadowRoot).host;\n }\n\n return parent;\n}\n"],"names":["getParent","getVirtualParent","child","isVirtualElement","_virtual","parent","options","skipVirtual","virtualParent","parentNode","nodeType","host"],"mappings":";;;;+BAuBgBA;;;eAAAA;;;kCAvBiB;AAUjC;;;CAGC,GACD,SAASC,iBAAiBC,KAAW;IACnC,OAAOC,IAAAA,kCAAgB,EAACD,SAASA,MAAME,QAAQ,CAACC,MAAM,IAAI,OAAO;AACnE;AAOO,SAASL,UAAUE,KAAkB,EAAEI,UAA4B,CAAC,CAAC;IAC1E,IAAI,CAACJ,OAAO;QACV,OAAO;IACT;IAEA,IAAI,CAACI,QAAQC,WAAW,EAAE;QACxB,MAAMC,gBAAgBP,iBAAiBC;QAEvC,IAAIM,eAAe;YACjB,OAAOA;QACT;IACF;IAEA,MAAMH,SAASH,MAAMO,UAAU;IAE/B,mCAAmC;IACnC,IAAIJ,UAAUA,OAAOK,QAAQ,KAAK,IAAI;QACpC,OAAO,AAACL,OAAsBM,IAAI;IACpC;IAEA,OAAON;AACT"}

View File

@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
elementContains: function() {
return _elementContains.elementContains;
},
getParent: function() {
return _getParent.getParent;
},
setVirtualParent: function() {
return _setVirtualParent.setVirtualParent;
}
});
const _elementContains = require("./elementContains");
const _setVirtualParent = require("./setVirtualParent");
const _getParent = require("./getParent");

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/virtualParent/index.ts"],"sourcesContent":["export { elementContains } from './elementContains';\nexport { setVirtualParent } from './setVirtualParent';\nexport { getParent } from './getParent';\n"],"names":["elementContains","getParent","setVirtualParent"],"mappings":";;;;;;;;;;;IAASA,eAAe;eAAfA,gCAAe;;IAEfC,SAAS;eAATA,oBAAS;;IADTC,gBAAgB;eAAhBA,kCAAgB;;;iCADO;kCACC;2BACP"}

View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "isVirtualElement", {
enumerable: true,
get: function() {
return isVirtualElement;
}
});
function isVirtualElement(element) {
return element && !!element._virtual;
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/virtualParent/isVirtualElement.ts"],"sourcesContent":["import type { VirtualElement } from './types';\n\n/**\n * Determines whether or not an element has the virtual hierarchy extension.\n * @internal\n */\nexport function isVirtualElement(element: Node | VirtualElement): element is VirtualElement {\n return element && !!(<VirtualElement>element)._virtual;\n}\n"],"names":["isVirtualElement","element","_virtual"],"mappings":";;;;+BAMgBA;;;eAAAA;;;AAAT,SAASA,iBAAiBC,OAA8B;IAC7D,OAAOA,WAAW,CAAC,CAAC,AAAiBA,QAASC,QAAQ;AACxD"}

View File

@@ -0,0 +1,26 @@
/**
* Sets the virtual parent of an element.
*
* @internal
* @param child - Theme element to set the virtual parent
* @param parent - The virtual parent, use `undefined` to remove a virtual parent relationship
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "setVirtualParent", {
enumerable: true,
get: function() {
return setVirtualParent;
}
});
function setVirtualParent(child, parent) {
if (!child) {
return;
}
Object.assign(child, {
_virtual: {
parent
}
});
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/virtualParent/setVirtualParent.ts"],"sourcesContent":["/**\n * Sets the virtual parent of an element.\n *\n * @internal\n * @param child - Theme element to set the virtual parent\n * @param parent - The virtual parent, use `undefined` to remove a virtual parent relationship\n */\nexport function setVirtualParent(child: Node, parent?: Node): void {\n if (!child) {\n return;\n }\n\n Object.assign(child, {\n _virtual: {\n parent,\n },\n });\n}\n"],"names":["setVirtualParent","child","parent","Object","assign","_virtual"],"mappings":"AAAA;;;;;;CAMC;;;;+BACeA;;;eAAAA;;;AAAT,SAASA,iBAAiBC,KAAW,EAAEC,MAAa;IACzD,IAAI,CAACD,OAAO;QACV;IACF;IAEAE,OAAOC,MAAM,CAACH,OAAO;QACnBI,UAAU;YACRH;QACF;IACF;AACF"}

View File

@@ -0,0 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

View File

@@ -0,0 +1 @@
{"version":3,"sources":[],"names":[],"mappings":""}