Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: correct types declarations align to source code #300

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
root = true

[*]
indent_style = space
indent_size = 4
tab_width = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
node_modules/
yarn.lock
package-lock.json
6 changes: 4 additions & 2 deletions css-element-queries.d.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
export { ResizeSensor, ResizeSensorCallback, Size } from "./src/ResizeSensor";
export { ElementQueries } from './src/ElementQueries';
import * as ResizeSensor from "./src/ResizeSensor";
import * as ElementQueries from "./src/ElementQueries";

export { ResizeSensor, ElementQueries };
28 changes: 16 additions & 12 deletions src/ElementQueries.d.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
export declare class ElementQueries {
/**
* Attaches to DOMLoadContent
*/
static listen(): void;

/**
* Parses all available CSS and attach ResizeSensor to those elements which have rules attached.
* Make sure this is called after 'load' event, because CSS files are not ready when domReady is fired.
*/
static init(): void;
declare namespace ElementQueries {}

declare class ElementQueries {
/**
* Attaches to DOMLoadContent
*/
static listen(): void;

/**
* Parses all available CSS and attach ResizeSensor to those elements which have rules attached.
* Make sure this is called after 'load' event, because CSS files are not ready when domReady is fired.
*/
static init(): void;
}

export default ElementQueries;
export = ElementQueries;

export as namespace ElementQueries;
30 changes: 20 additions & 10 deletions src/ResizeSensor.d.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,26 @@
export declare interface Size {
width: number;
height: number;
}
declare namespace ResizeSensor {
interface Size {
width: number;
height: number;
}

export declare type ResizeSensorCallback = (size: Size) => void;
type ResizeSensorCallback = (size: Size) => void;
}

export declare class ResizeSensor {
declare class ResizeSensor {
/**
* Creates a new resize sensor on given elements. The provided callback is called max 1 times per requestAnimationFrame and
* is called initially.
*/
constructor(element: Element | Element[], callback: ResizeSensorCallback);
constructor(
element: Element | Element[],
callback: ResizeSensor.ResizeSensorCallback
);

/**
* Removes the resize sensor, and stops listening to resize events.
*/
detach(callback?: ResizeSensorCallback): void;
detach(callback?: ResizeSensor.ResizeSensorCallback): void;

/**
* Resets the resize sensors, so for the next element resize is correctly detected. This is rare cases necessary
Expand All @@ -26,7 +31,10 @@ export declare class ResizeSensor {
/**
* Removes the resize sensor, and stops listening to resize events.
*/
static detach(element: Element | Element[], callback?: ResizeSensorCallback): void;
static detach(
element: Element | Element[],
callback?: ResizeSensor.ResizeSensorCallback
): void;

/**
* Resets the resize sensors, so for the next element resize is correctly detected. This is rare cases necessary
Expand All @@ -35,4 +43,6 @@ export declare class ResizeSensor {
static reset(element: Element | Element[]): void;
}

export default ResizeSensor;
export = ResizeSensor;

export as namespace ResizeSensor;
2 changes: 0 additions & 2 deletions tests/mutation/app.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
declare const ResizeSensor;

const state: {
dragged: Element
} = {
Expand Down
4 changes: 4 additions & 0 deletions tests/types/ElementQueries.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import * as ElementQueries from "../../src/ElementQueries";

ElementQueries.listen();
ElementQueries.init();
18 changes: 18 additions & 0 deletions tests/types/ResizeSensor.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import * as ResizeSensor from "../../src/ResizeSensor";

const container = document.getElementById("container");

const callback: ResizeSensor.ResizeSensorCallback = (
size: ResizeSensor.Size
) => {
console.log(size);
};

const resizeSensor = new ResizeSensor(container, callback);
resizeSensor.detach();
resizeSensor.detach(callback);
resizeSensor.reset();

ResizeSensor.detach(container);
ResizeSensor.detach(container, callback);
ResizeSensor.reset(container);
11 changes: 11 additions & 0 deletions tests/types/global.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
ElementQueries.listen();
ElementQueries.init();

const container = document.getElementById("container");

const resizeSensor = new ResizeSensor(container, () => {});
resizeSensor.detach();
resizeSensor.reset();

ResizeSensor.detach(container);
ResizeSensor.reset(container);
13 changes: 13 additions & 0 deletions tests/types/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { ElementQueries, ResizeSensor } from "../..";

ElementQueries.listen();
ElementQueries.init();

const container = document.getElementById("container");

const resizeSensor = new ResizeSensor(container, () => {});
resizeSensor.detach();
resizeSensor.reset();

ResizeSensor.detach(container);
ResizeSensor.reset(container);