@hrnec06/util 1.6.1 → 1.6.3

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.
@@ -4,6 +4,8 @@ export type Nullable<T> = T | null;
4
4
  export type Promiseable<T> = T | Promise<T>;
5
5
  export type Voidable<T> = T | void;
6
6
  export type CanBeReadonly<T> = T | Readonly<T>;
7
+ export type NonOptional<T> = Exclude<T, undefined>;
8
+ export type NonNullable<T> = Exclude<T, null>;
7
9
  export type Vector2<T = number> = [T, T];
8
10
  export type Vector3<T = number> = [T, T, T];
9
11
  export type Primitive = string | number | boolean;
@@ -34,4 +36,6 @@ export type ClassInitializer<C extends abstract new (...args: any) => any, Stric
34
36
  export declare namespace ReactUtils {
35
37
  type SetState<T> = React.Dispatch<React.SetStateAction<T>>;
36
38
  type State<T> = [T, SetState<T>];
39
+ type Props<Interface, Element extends Nullable<HTMLElement> = null> = Interface & (Element extends null ? {} : Omit<ElementProps<NonNullable<Element>>, keyof Interface>);
40
+ type ElementProps<T extends HTMLElement> = T extends HTMLButtonElement ? React.ButtonHTMLAttributes<T> : T extends HTMLDivElement ? React.HTMLAttributes<T> : T extends HTMLInputElement ? React.InputHTMLAttributes<T> : T extends HTMLTextAreaElement ? React.TextareaHTMLAttributes<T> : T extends HTMLSelectElement ? React.SelectHTMLAttributes<T> : T extends HTMLFormElement ? React.FormHTMLAttributes<T> : T extends HTMLAnchorElement ? React.AnchorHTMLAttributes<T> : T extends HTMLImageElement ? React.ImgHTMLAttributes<T> : T extends HTMLLabelElement ? React.LabelHTMLAttributes<T> : T extends HTMLOListElement ? React.OlHTMLAttributes<T> : T extends HTMLUListElement ? React.HTMLAttributes<T> : T extends HTMLLIElement ? React.LiHTMLAttributes<T> : T extends HTMLTableElement ? React.TableHTMLAttributes<T> : T extends HTMLTableSectionElement ? React.HTMLAttributes<T> : T extends HTMLTableCellElement ? React.TdHTMLAttributes<T> : T extends HTMLTableRowElement ? React.HTMLAttributes<T> : T extends HTMLVideoElement ? React.VideoHTMLAttributes<T> : T extends HTMLAudioElement ? React.AudioHTMLAttributes<T> : T extends HTMLIFrameElement ? React.IframeHTMLAttributes<T> : T extends HTMLCanvasElement ? React.CanvasHTMLAttributes<T> : T extends HTMLMeterElement ? React.MeterHTMLAttributes<T> : T extends HTMLQuoteElement ? React.QuoteHTMLAttributes<T> : T extends HTMLObjectElement ? React.ObjectHTMLAttributes<T> : T extends HTMLOutputElement ? React.OutputHTMLAttributes<T> : T extends HTMLProgressElement ? React.ProgressHTMLAttributes<T> : T extends HTMLSlotElement ? React.SlotHTMLAttributes<T> : T extends HTMLStyleElement ? React.StyleHTMLAttributes<T> : T extends HTMLTimeElement ? React.TimeHTMLAttributes<T> : T extends HTMLDetailsElement ? React.DetailsHTMLAttributes<T> : T extends HTMLDialogElement ? React.DialogHTMLAttributes<T> : T extends HTMLDataElement ? React.DataHTMLAttributes<T> : T extends HTMLAreaElement ? React.AreaHTMLAttributes<T> : T extends HTMLBaseElement ? React.BaseHTMLAttributes<T> : T extends HTMLBodyElement ? React.HTMLAttributes<T> : T extends HTMLBRElement ? React.HTMLAttributes<T> : T extends HTMLHeadingElement ? React.HTMLAttributes<T> : T extends HTMLHeadElement ? React.HTMLAttributes<T> : T extends HTMLHtmlElement ? React.HtmlHTMLAttributes<T> : T extends HTMLModElement ? React.DelHTMLAttributes<T> : T extends HTMLMapElement ? React.MapHTMLAttributes<T> : T extends HTMLMenuElement ? React.MenuHTMLAttributes<T> : T extends HTMLMetaElement ? React.MetaHTMLAttributes<T> : T extends HTMLScriptElement ? React.ScriptHTMLAttributes<T> : T extends HTMLSourceElement ? React.SourceHTMLAttributes<T> : T extends HTMLTrackElement ? React.TrackHTMLAttributes<T> : T extends HTMLWebViewElement ? React.WebViewHTMLAttributes<T> : React.HTMLAttributes<T>;
37
41
  }
@@ -4,6 +4,8 @@ export type Nullable<T> = T | null;
4
4
  export type Promiseable<T> = T | Promise<T>;
5
5
  export type Voidable<T> = T | void;
6
6
  export type CanBeReadonly<T> = T | Readonly<T>;
7
+ export type NonOptional<T> = Exclude<T, undefined>;
8
+ export type NonNullable<T> = Exclude<T, null>;
7
9
  export type Vector2<T = number> = [T, T];
8
10
  export type Vector3<T = number> = [T, T, T];
9
11
  export type Primitive = string | number | boolean;
@@ -34,4 +36,6 @@ export type ClassInitializer<C extends abstract new (...args: any) => any, Stric
34
36
  export declare namespace ReactUtils {
35
37
  type SetState<T> = React.Dispatch<React.SetStateAction<T>>;
36
38
  type State<T> = [T, SetState<T>];
39
+ type Props<Interface, Element extends Nullable<HTMLElement> = null> = Interface & (Element extends null ? {} : Omit<ElementProps<NonNullable<Element>>, keyof Interface>);
40
+ type ElementProps<T extends HTMLElement> = T extends HTMLButtonElement ? React.ButtonHTMLAttributes<T> : T extends HTMLDivElement ? React.HTMLAttributes<T> : T extends HTMLInputElement ? React.InputHTMLAttributes<T> : T extends HTMLTextAreaElement ? React.TextareaHTMLAttributes<T> : T extends HTMLSelectElement ? React.SelectHTMLAttributes<T> : T extends HTMLFormElement ? React.FormHTMLAttributes<T> : T extends HTMLAnchorElement ? React.AnchorHTMLAttributes<T> : T extends HTMLImageElement ? React.ImgHTMLAttributes<T> : T extends HTMLLabelElement ? React.LabelHTMLAttributes<T> : T extends HTMLOListElement ? React.OlHTMLAttributes<T> : T extends HTMLUListElement ? React.HTMLAttributes<T> : T extends HTMLLIElement ? React.LiHTMLAttributes<T> : T extends HTMLTableElement ? React.TableHTMLAttributes<T> : T extends HTMLTableSectionElement ? React.HTMLAttributes<T> : T extends HTMLTableCellElement ? React.TdHTMLAttributes<T> : T extends HTMLTableRowElement ? React.HTMLAttributes<T> : T extends HTMLVideoElement ? React.VideoHTMLAttributes<T> : T extends HTMLAudioElement ? React.AudioHTMLAttributes<T> : T extends HTMLIFrameElement ? React.IframeHTMLAttributes<T> : T extends HTMLCanvasElement ? React.CanvasHTMLAttributes<T> : T extends HTMLMeterElement ? React.MeterHTMLAttributes<T> : T extends HTMLQuoteElement ? React.QuoteHTMLAttributes<T> : T extends HTMLObjectElement ? React.ObjectHTMLAttributes<T> : T extends HTMLOutputElement ? React.OutputHTMLAttributes<T> : T extends HTMLProgressElement ? React.ProgressHTMLAttributes<T> : T extends HTMLSlotElement ? React.SlotHTMLAttributes<T> : T extends HTMLStyleElement ? React.StyleHTMLAttributes<T> : T extends HTMLTimeElement ? React.TimeHTMLAttributes<T> : T extends HTMLDetailsElement ? React.DetailsHTMLAttributes<T> : T extends HTMLDialogElement ? React.DialogHTMLAttributes<T> : T extends HTMLDataElement ? React.DataHTMLAttributes<T> : T extends HTMLAreaElement ? React.AreaHTMLAttributes<T> : T extends HTMLBaseElement ? React.BaseHTMLAttributes<T> : T extends HTMLBodyElement ? React.HTMLAttributes<T> : T extends HTMLBRElement ? React.HTMLAttributes<T> : T extends HTMLHeadingElement ? React.HTMLAttributes<T> : T extends HTMLHeadElement ? React.HTMLAttributes<T> : T extends HTMLHtmlElement ? React.HtmlHTMLAttributes<T> : T extends HTMLModElement ? React.DelHTMLAttributes<T> : T extends HTMLMapElement ? React.MapHTMLAttributes<T> : T extends HTMLMenuElement ? React.MenuHTMLAttributes<T> : T extends HTMLMetaElement ? React.MetaHTMLAttributes<T> : T extends HTMLScriptElement ? React.ScriptHTMLAttributes<T> : T extends HTMLSourceElement ? React.SourceHTMLAttributes<T> : T extends HTMLTrackElement ? React.TrackHTMLAttributes<T> : T extends HTMLWebViewElement ? React.WebViewHTMLAttributes<T> : React.HTMLAttributes<T>;
37
41
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hrnec06/util",
3
- "version": "1.6.1",
3
+ "version": "1.6.3",
4
4
  "description": "A set of utilities",
5
5
  "type": "module",
6
6
  "main": "dist/esm/index.js",