update to 2.0
I overreached on the getter / setters sharing the same names, and everything _seemed_ to work OK at first, but then when I tried to import it...
This commit is contained in:
44
dist/fluent-dom-esm.js
vendored
44
dist/fluent-dom-esm.js
vendored
@@ -1,25 +1,25 @@
|
||||
// @license magnet:?xt=urn:btih:723febf9f6185544f57f0660a41489c7d6b4931b&dn=wtfpl.txt
|
||||
const version = "1.1.0";
|
||||
const isFluentDomObject = (value) => !!value.fluentDom;
|
||||
const isHTMLElement = (value) => !!value.nodeType;
|
||||
const isNumber = (value) => typeof value === "number";
|
||||
const isString = (value) => typeof value === "string";
|
||||
/**
|
||||
* fluent-dom-esm v1.1.0
|
||||
* fluent-dom-esm v2.0.0
|
||||
*
|
||||
* Fluent DOM Manipulation, adapted to ESM and cranked up to v1.1(.0).
|
||||
* Fluent DOM Manipulation, adapted to ESM and cranked up to v2.0(.0).
|
||||
*
|
||||
* https://git.itsericwoodward.com/eric/fluent-dom-esm
|
||||
*
|
||||
* v1.1.0 Copyright (c) 2025 Eric Woodward
|
||||
* v2.0.0 Copyright (c) 2025 Eric Woodward
|
||||
* Original copyright (c) 2009 Tommy Montgomery (https://glacius.tmont.com/articles/fluent-dom-manipulation-in-javascript)
|
||||
*
|
||||
* Released under the WTFPL (Do What the Fuck You Want to Public License)
|
||||
*
|
||||
* @author Eric Woodward (v1.1.0 update)
|
||||
* @author Eric Woodward (v2.0.0 update)
|
||||
* @author Tommy Montgomery (original)
|
||||
* @license http://sam.zoy.org/wtfpl/
|
||||
*/
|
||||
const APP_VERSION = "2.0.0";
|
||||
const fluentDomEsm = (function() {
|
||||
const FluentDom = function(node) {
|
||||
return new FluentDomInternal(node);
|
||||
@@ -31,12 +31,11 @@ const fluentDomEsm = (function() {
|
||||
};
|
||||
const FluentDomInternal = function(node) {
|
||||
let root = node || null;
|
||||
this.fluentDom = version;
|
||||
this.fluentDom = APP_VERSION;
|
||||
this.a = this.attr = function(name, value) {
|
||||
if (!root || value && !root.setAttribute) {
|
||||
if (!root || typeof name === "undefined" || typeof value === "undefined") {
|
||||
throw new Error("Cannot set an attribute on a non-element");
|
||||
}
|
||||
if (!value) return root.getAttribute(name);
|
||||
root.setAttribute(name, value);
|
||||
return this;
|
||||
};
|
||||
@@ -76,8 +75,8 @@ const fluentDomEsm = (function() {
|
||||
root = null;
|
||||
return this;
|
||||
};
|
||||
this.h = this.href = function(link) {
|
||||
return this.attr("href", link);
|
||||
this.h = this.href = function(url) {
|
||||
return this.attr("href", url);
|
||||
};
|
||||
this.html = function(content) {
|
||||
if (!root) {
|
||||
@@ -85,7 +84,6 @@ const fluentDomEsm = (function() {
|
||||
"Cannot get or set innerHTML for a non-element"
|
||||
);
|
||||
}
|
||||
if (!content) return root.innerHTML;
|
||||
root.innerHTML = content;
|
||||
return this;
|
||||
};
|
||||
@@ -99,26 +97,14 @@ const fluentDomEsm = (function() {
|
||||
root.addEventListener(...props);
|
||||
return this;
|
||||
};
|
||||
this.ohtml = function(content) {
|
||||
if (!root) {
|
||||
throw new Error(
|
||||
"Cannot get or set outerHTML for a non-element"
|
||||
);
|
||||
}
|
||||
if (!content) return root.outerHTML;
|
||||
root.outerHTML = content;
|
||||
return this;
|
||||
};
|
||||
this.s = this.style = function(prop, value) {
|
||||
function styleFunction(prop, value) {
|
||||
if (!root) {
|
||||
throw new Error("Cannot get or set style for a non-element");
|
||||
}
|
||||
if (typeof prop === "undefined") return root.style;
|
||||
if (typeof value !== "undefined") {
|
||||
if (typeof prop === "string" && typeof value !== "undefined") {
|
||||
root.style[prop] = value;
|
||||
return this;
|
||||
}
|
||||
if (typeof prop === "string") return root.style[prop];
|
||||
if (typeof prop !== "object") {
|
||||
throw new Error(
|
||||
`Invalid argument: "prop" must be string or object (found ${typeof prop})`
|
||||
@@ -128,23 +114,23 @@ const fluentDomEsm = (function() {
|
||||
root.style[key] = prop[key];
|
||||
});
|
||||
return this;
|
||||
};
|
||||
}
|
||||
this.s = this.style = styleFunction;
|
||||
this.t = this.text = function(text) {
|
||||
if (!root) {
|
||||
throw new Error(
|
||||
"Cannot get or set innerText for a non-element"
|
||||
);
|
||||
}
|
||||
if (typeof text === "undefined") return root.innerText;
|
||||
return this.append(text);
|
||||
};
|
||||
this.title = function(value) {
|
||||
this.title = function(title) {
|
||||
if (!root) {
|
||||
throw new Error(
|
||||
"Cannot get or set outerHTML for a non-element"
|
||||
);
|
||||
}
|
||||
return this.attr("title", value);
|
||||
return this.attr("title", title);
|
||||
};
|
||||
this.toDom = function() {
|
||||
return root;
|
||||
|
26
dist/fluent-dom-esm.types.d.ts
vendored
Normal file
26
dist/fluent-dom-esm.types.d.ts
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
export interface FluentDomObject {
|
||||
fluentDom: string;
|
||||
a: (name: string, value: string) => FluentDomObject;
|
||||
app: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
|
||||
append: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
|
||||
attr: (name: string, value: string) => FluentDomObject;
|
||||
c: (tagName: string) => FluentDomObject;
|
||||
create: (tagName: string) => FluentDomObject;
|
||||
className: (className: string) => FluentDomObject;
|
||||
clear: () => FluentDomObject;
|
||||
cls: (className: string) => FluentDomObject;
|
||||
clr: () => FluentDomObject;
|
||||
h: (url: string) => FluentDomObject;
|
||||
href: (url: string) => FluentDomObject;
|
||||
html: (content: string) => FluentDomObject;
|
||||
id: (id: string) => FluentDomObject;
|
||||
l: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
|
||||
listen: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
|
||||
s: ((prop: CSSStyleDeclaration) => FluentDomObject) | ((prop: string, value: string) => FluentDomObject);
|
||||
style: ((prop: CSSStyleDeclaration) => FluentDomObject) | ((prop: string, value: string) => FluentDomObject);
|
||||
t: (text: string) => FluentDomObject;
|
||||
text: (text: string) => FluentDomObject;
|
||||
title: (title: string) => FluentDomObject;
|
||||
toDom: () => HTMLElement | null;
|
||||
unlisten: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
|
||||
}
|
35
dist/package.json.d.ts
vendored
35
dist/package.json.d.ts
vendored
@@ -1,35 +0,0 @@
|
||||
declare const _default: {
|
||||
"name": "fluent-dom-esm",
|
||||
"version": "1.1.0",
|
||||
"description": "",
|
||||
"license": "WTFPL",
|
||||
"exports": {
|
||||
".": {
|
||||
"import": "./dist/fluent-dom-esm.js"
|
||||
}
|
||||
},
|
||||
"type": "module",
|
||||
"files": [
|
||||
"dist"
|
||||
],
|
||||
"module": "./dist/fluent-dom-esm.js",
|
||||
"scripts": {
|
||||
"add-license": "cat ./src/license-begin.txt ./dist/fluent-dom-esm.js ./src/license-end.txt > .temp && mv .temp ./dist/fluent-dom-esm.js",
|
||||
"build": "tsc && vite build && yarn add-license",
|
||||
"ci": "yarn build",
|
||||
"dev": "vite",
|
||||
"preview": "vite preview",
|
||||
"prepublishOnly": "yarn build",
|
||||
"postpublish": "git push && git push --tags",
|
||||
"test": "echo 'No tests yet!'"
|
||||
},
|
||||
"devDependencies": {
|
||||
"prettier": "^3.6.2",
|
||||
"typescript": "^5.9.2",
|
||||
"unplugin-dts": "1.0.0-beta.6",
|
||||
"vite": "^7.1.4"
|
||||
}
|
||||
}
|
||||
;
|
||||
|
||||
export default _default;
|
27
dist/src/fluent-dom-esm.types.d.ts
vendored
27
dist/src/fluent-dom-esm.types.d.ts
vendored
@@ -1,27 +0,0 @@
|
||||
export interface FluentDomObject {
|
||||
fluentDom: string;
|
||||
a: (name: string, value?: string) => FluentDomObject | string | null;
|
||||
app: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
|
||||
append: (obj: FluentDomObject | HTMLElement | string) => FluentDomObject;
|
||||
attr: (name: string, value?: string) => FluentDomObject | string | null;
|
||||
c: (tagName: string) => FluentDomObject;
|
||||
create: (tagName: string) => FluentDomObject;
|
||||
className: (className?: string) => FluentDomObject | string | null;
|
||||
clear: () => FluentDomObject;
|
||||
cls: (className?: string) => FluentDomObject | string | null;
|
||||
clr: () => FluentDomObject;
|
||||
h: (url?: string) => FluentDomObject | string | null;
|
||||
href: (url?: string) => FluentDomObject | string | null;
|
||||
html: (content?: string) => string | FluentDomObject;
|
||||
id: (id?: string) => FluentDomObject | string | null;
|
||||
l: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
|
||||
listen: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
|
||||
ohtml: (content?: string) => string | FluentDomObject;
|
||||
s: (prop?: CSSStyleDeclaration | string, value?: string) => FluentDomObject | CSSStyleDeclaration | string | undefined;
|
||||
style: (prop?: CSSStyleDeclaration | string, value?: string) => FluentDomObject | CSSStyleDeclaration | string | undefined;
|
||||
t: (text?: string) => FluentDomObject | string;
|
||||
text: (text?: string) => FluentDomObject | string;
|
||||
title: (title?: string) => FluentDomObject | string | null;
|
||||
toDom: () => HTMLElement | null;
|
||||
unlisten: (type: keyof HTMLElementEventMap, listener: () => {}, optionsOrUseCapture?: boolean | object) => FluentDomObject;
|
||||
}
|
Reference in New Issue
Block a user