refactor(editor): unify directories naming (#11516)

**Directory Structure Changes**

- Renamed multiple block-related directories by removing the "block-" prefix:
  - `block-attachment` → `attachment`
  - `block-bookmark` → `bookmark`
  - `block-callout` → `callout`
  - `block-code` → `code`
  - `block-data-view` → `data-view`
  - `block-database` → `database`
  - `block-divider` → `divider`
  - `block-edgeless-text` → `edgeless-text`
  - `block-embed` → `embed`
This commit is contained in:
Saul-Mirone
2025-04-07 12:34:40 +00:00
parent e1bd2047c4
commit 1f45cc5dec
893 changed files with 439 additions and 460 deletions
@@ -0,0 +1,85 @@
type PriorityQueueNode<T, K> = {
value: T;
priority: K;
};
export class PriorityQueue<T, K> {
heap: PriorityQueueNode<T, K>[] = [];
constructor(private readonly _compare: (a: K, b: K) => number) {}
bubbleDown(): void {
let index = 0;
const length = this.heap.length;
const element = this.heap[0];
for (;;) {
const leftChildIndex = 2 * index + 1;
const rightChildIndex = 2 * index + 2;
let swap = -1;
let leftChild: PriorityQueueNode<T, K>,
rightChild: PriorityQueueNode<T, K>;
if (leftChildIndex < length) {
leftChild = this.heap[leftChildIndex];
if (this._compare(leftChild.priority, element.priority) < 0) {
swap = leftChildIndex;
}
}
if (rightChildIndex < length) {
leftChild = this.heap[leftChildIndex];
rightChild = this.heap[rightChildIndex];
if (
(swap === null &&
this._compare(rightChild.priority, element.priority) < 0) ||
(swap !== null &&
this._compare(rightChild.priority, leftChild.priority) < 0)
) {
swap = rightChildIndex;
}
}
if (swap === -1) break;
this.heap[index] = this.heap[swap];
this.heap[swap] = element;
index = swap;
}
}
bubbleUp(index: number = this.heap.length - 1): void {
const element = this.heap[index];
while (index > 0) {
const parentIndex = Math.floor((index - 1) / 2);
const parent = this.heap[parentIndex];
if (this._compare(parent.priority, element.priority) <= 0) break;
this.heap[parentIndex] = element;
this.heap[index] = parent;
index = parentIndex;
}
}
dequeue(): T | null {
const min = this.heap[0];
const end = this.heap.pop();
if (this.heap.length > 0 && end) {
this.heap[0] = end;
this.bubbleDown();
}
return min?.value ?? null;
}
empty(): boolean {
return this.heap.length === 0;
}
enqueue(value: T, priority: K): void {
const node = { value, priority };
this.heap.push(node);
this.bubbleUp();
}
}