peryl 1.5.23 → 1.5.25
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.
- package/demo/hash_demo.ts +2 -3
- package/demo/hsml-app-tictactoe_demo.ts +2 -3
- package/dist/browser-esmodule/debounce.js +2 -4
- package/dist/browser-esmodule/debounce.js.map +1 -1
- package/dist/browser-esmodule/hash.js.map +1 -1
- package/dist/browser-esmodule/hsml-app.js +7 -1
- package/dist/browser-esmodule/hsml-app.js.map +1 -1
- package/dist/browser-esmodule/hsml-dom.js +7 -1
- package/dist/browser-esmodule/hsml-dom.js.map +1 -1
- package/dist/browser-esmodule/hsml-html.js +7 -1
- package/dist/browser-esmodule/hsml-html.js.map +1 -1
- package/dist/browser-esmodule/hsml-idom.js +7 -1
- package/dist/browser-esmodule/hsml-idom.js.map +1 -1
- package/dist/browser-esmodule/hsml.js +8 -2
- package/dist/browser-esmodule/hsml.js.map +1 -1
- package/dist/browser-esmodule/index.js +9 -5
- package/dist/browser-esmodule/index.js.map +1 -1
- package/dist/browser-umd/debounce.js +1 -1
- package/dist/browser-umd/debounce.js.map +1 -1
- package/dist/browser-umd/hash.js.map +1 -1
- package/dist/browser-umd/hsml-app.js +1 -1
- package/dist/browser-umd/hsml-app.js.map +1 -1
- package/dist/browser-umd/hsml-dom.js +1 -1
- package/dist/browser-umd/hsml-dom.js.map +1 -1
- package/dist/browser-umd/hsml-html.js +1 -1
- package/dist/browser-umd/hsml-html.js.map +1 -1
- package/dist/browser-umd/hsml-idom.js +1 -1
- package/dist/browser-umd/hsml-idom.js.map +1 -1
- package/dist/browser-umd/hsml.js +1 -1
- package/dist/browser-umd/hsml.js.map +1 -1
- package/dist/browser-umd/index.js +1 -1
- package/dist/browser-umd/index.js.map +1 -1
- package/dist/debounce.d.ts +1 -3
- package/dist/debounce.js +2 -4
- package/dist/debounce.js.map +1 -1
- package/dist/demo/{hash_demo.7e0ef005.js → hash_demo.4e831ae6.js} +2 -2
- package/dist/demo/hash_demo.4e831ae6.js.map +1 -0
- package/dist/demo/{hash_demo.57b93f2a.js → hash_demo.80993753.js} +2 -2
- package/dist/demo/hash_demo.80993753.js.map +1 -0
- package/dist/demo/hash_demo.html +1 -1
- package/dist/demo/hsml-app-bysquare_demo.html +1 -1
- package/dist/demo/hsml-app-form-validation_demo.html +1 -1
- package/dist/demo/hsml-app-form_demo.html +1 -1
- package/dist/demo/hsml-app-test_demo.html +1 -1
- package/dist/demo/hsml-app-tictactoe_demo.06bc822a.js +2 -0
- package/dist/demo/hsml-app-tictactoe_demo.06bc822a.js.map +1 -0
- package/dist/demo/hsml-app-tictactoe_demo.edcb7a3e.js +2 -0
- package/dist/demo/hsml-app-tictactoe_demo.edcb7a3e.js.map +1 -0
- package/dist/demo/hsml-app-tictactoe_demo.html +1 -1
- package/dist/demo/hsml-app_demo.html +1 -1
- package/dist/demo/hsml-appel_demo.html +1 -1
- package/dist/demo/hsml-appi_demo.html +1 -1
- package/dist/demo/hsml_demo.11dae6c9.js +2 -0
- package/dist/demo/hsml_demo.11dae6c9.js.map +1 -0
- package/dist/demo/hsml_demo.c2b93717.js +2 -0
- package/dist/demo/hsml_demo.c2b93717.js.map +1 -0
- package/dist/demo/hsml_demo.html +1 -1
- package/dist/hash.d.ts +2 -2
- package/dist/hsml.d.ts +4 -1
- package/dist/hsml.js +5 -2
- package/dist/hsml.js.map +1 -1
- package/package.json +1 -1
- package/src/debounce.ts +21 -8
- package/src/hash.ts +2 -2
- package/src/hsml.ts +12 -1
- package/dist/demo/hash_demo.57b93f2a.js.map +0 -1
- package/dist/demo/hash_demo.7e0ef005.js.map +0 -1
- package/dist/demo/hsml-app-tictactoe_demo.84aaf792.js +0 -2
- package/dist/demo/hsml-app-tictactoe_demo.84aaf792.js.map +0 -1
- package/dist/demo/hsml-app-tictactoe_demo.868e02e5.js +0 -2
- package/dist/demo/hsml-app-tictactoe_demo.868e02e5.js.map +0 -1
- package/dist/demo/hsml_demo.967b2a46.js +0 -2
- package/dist/demo/hsml_demo.967b2a46.js.map +0 -1
- package/dist/demo/hsml_demo.d6914957.js +0 -2
- package/dist/demo/hsml_demo.d6914957.js.map +0 -1
package/demo/hash_demo.ts
CHANGED
|
@@ -12,7 +12,6 @@ interface Query {
|
|
|
12
12
|
c: string;
|
|
13
13
|
time: string;
|
|
14
14
|
u?: string;
|
|
15
|
-
n?: string;
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
const h = new hash.Hash<hash.HashUrlData<keyof Query>>(emitWritten)
|
|
@@ -26,8 +25,8 @@ const h = new hash.Hash<hash.HashUrlData<keyof Query>>(emitWritten)
|
|
|
26
25
|
// .write("hello");
|
|
27
26
|
// .write({ message: "hello" });
|
|
28
27
|
.write({
|
|
29
|
-
path: ["hello", "peter"],
|
|
30
|
-
query: { a: "a?a", b: "b&b", c: " .%", u: undefined
|
|
28
|
+
path: ["hello", "peter", undefined],
|
|
29
|
+
query: { a: "a?a", b: "b&b", c: " .%", u: undefined }
|
|
31
30
|
});
|
|
32
31
|
|
|
33
32
|
(self as any).h = h;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { HElement, HElements } from "../src/hsml";
|
|
2
|
-
import {
|
|
1
|
+
import { HElement, HElements, NBSP } from "../src/hsml";
|
|
2
|
+
import { HApp } from "../src/hsml-app";
|
|
3
3
|
|
|
4
|
-
const NBSP = "\u00A0";
|
|
5
4
|
const CIRC = "\u25EF";
|
|
6
5
|
const CROS = "\u2A2F";
|
|
7
6
|
|
|
@@ -5,13 +5,11 @@ var $0ce6b4362c09d565$exports = {};
|
|
|
5
5
|
|
|
6
6
|
$parcel$export($0ce6b4362c09d565$exports, "debounce", function () { return $0ce6b4362c09d565$export$61fc7d43ac8f84b0; });
|
|
7
7
|
$parcel$export($0ce6b4362c09d565$exports, "Debounce", function () { return $0ce6b4362c09d565$export$73cca143ae6d0e61; });
|
|
8
|
-
function $0ce6b4362c09d565$export$61fc7d43ac8f84b0(
|
|
8
|
+
function $0ce6b4362c09d565$export$61fc7d43ac8f84b0(fnc, delay = 300) {
|
|
9
9
|
let timeout;
|
|
10
10
|
return function(...args) {
|
|
11
11
|
clearTimeout(timeout);
|
|
12
|
-
timeout = setTimeout(()=>
|
|
13
|
-
func.apply(this, args);
|
|
14
|
-
}, delay);
|
|
12
|
+
timeout = setTimeout(()=>fnc.apply(this, args), delay);
|
|
15
13
|
};
|
|
16
14
|
}
|
|
17
15
|
function $0ce6b4362c09d565$export$73cca143ae6d0e61(delay = 300) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":";;;;;;;
|
|
1
|
+
{"mappings":";;;;;;;AAEM,SAAU,0CAA4C,GAAM,EAAE,QAAQ,GAAG,EAA/E;IACI,IAAI;IACJ,OAAO,SAAqB,GAAG,IAAmB,EAAlD;QACI,aAAa;QACb,UAAU,WAAW,IAAM,IAAI,KAAK,CAAC,IAAI,EAAE,OAAO;IACtD;AACJ;AAaM,SAAU,0CAAS,QAAQ,GAAG,EAApC;IACI,OAAO,SAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B,EAAjF;QACI,MAAM,SAAS,WAAW,KAAK;QAC/B,WAAW,KAAK,GAAG,0CAAS,QAAQ;QACpC,OAAO;IACX;AACJ","sources":["src/debounce.ts"],"sourcesContent":["\n\nexport function debounce<F extends (...args: any[]) => any>(fnc: F, delay = 300) {\n let timeout: number | NodeJS.Timeout | undefined;\n return function (this: any, ...args: Parameters<F>) {\n clearTimeout(timeout);\n timeout = setTimeout(() => fnc.apply(this, args), delay);\n };\n}\n\n// export function debounceAsync<F extends (...args: any[]) => any>(fnc: F, delay = 300) {\n// let timeout: number | NodeJS.Timeout | undefined;\n// return function (this: ThisParameterType<F>, ...args: Parameters<F>) {\n// clearTimeout(timeout);\n// return new Promise<ReturnType<F>>((resolve) => {\n// timeout = setTimeout(() => resolve(fnc.apply(this, args)), delay);\n// });\n// };\n// }\n\n// Method decorator\nexport function Debounce(delay = 300) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const method = descriptor.value;\n descriptor.value = debounce(method, delay);\n return descriptor;\n };\n}\n\n\n// TEST\n\n// const d = debounce(\n// function (this: any, x: string, y: number) {\n// console.log(\"debounce\", x, y);\n// },\n// 300);\n// d(\"peter\", 3);\n\n// const da = debounceAsync(\n// function (this: any, x: string, y: number) {\n// console.log(\"debounce\", x, y);\n// },\n// 300);\n// da(\"peter\", 3).then(res => console.log(\"async\", res));\n\n// const o = {\n// x: \"o.x\",\n// m: function (y: number) {\n// console.log(\"o.m\", this.x, y);\n// },\n// d: ({} as any)\n// };\n// o.d = debounce(o.m, 300);\n// o.d(\"test\");\n\n// class O {\n// x: string = \"O.x\";\n\n// @Debounce(300)\n// m(y: string) {\n// console.log(\"O.m\", this.x, y);\n// }\n// }\n// const obj = new O();\n// // obj.m = debounce(obj.m, 300); // decorator equivalent\n// obj.m(\"m(p)\");\n\n// setTimeout(() => obj.m(\"m(p) 200\"), 200);\n// setTimeout(() => obj.m(\"m(p) 1200\"), 1200);\n// setTimeout(() => obj.m(\"m(p) 1400\"), 1400);\n// setTimeout(() => obj.m(\"m(p) 2200\"), 2200);\n// setTimeout(() => obj.m(\"m(p) 2400\"), 2400);\n"],"names":[],"version":3,"file":"debounce.js.map"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/hash.ts"],"sourcesContent":["\nexport interface HashUrlData <QueryKeys extends string = string> {\n path: (string | undefined
|
|
1
|
+
{"mappings":"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","sources":["src/hash.ts"],"sourcesContent":["\nexport interface HashUrlData <QueryKeys extends string = string> {\n path: (string | undefined)[];\n query: {\n [key in QueryKeys]?: string | string[] | undefined;\n };\n}\n\nexport const hashJsonEncode = (data: any) => data ? encodeURIComponent(JSON.stringify(data)) : \"\";\nexport const hashJsonDecode = (str: string) => str ? JSON.parse(decodeURIComponent(str)) : undefined;\n\nexport const hashUrlEncode = <QueryKeys extends string = string>(data: HashUrlData<QueryKeys>): string => {\n // console.log(data);\n const d = typeof data === \"string\"\n ? hashUrlDecode(data)\n : data as HashUrlData;\n const dpath = d.path ?? [];\n const dquery = d.query ?? {};\n const path = dpath.map(p => encodeURIComponent(p ?? \"\")).join(\"/\");\n // const params = new URLSearchParams();\n const query = Object.entries(dquery)\n .reduce(\n (p, c) => {\n if (typeof c[1] === \"string\") {\n p.append(c[0], c[1]);\n } else if (c[1] && typeof c[1].length === \"number\") {\n (c[1] as Array<any>).forEach(v => p.append(c[0], v));\n }\n return p;\n },\n new URLSearchParams())\n .toString();\n const str = `${path}${query ? \"?\" : \"\"}${query}`;\n // console.log(str);\n return str;\n};\n\nexport const hashUrlDecode = <QueryKeys extends string = string>(str: string): HashUrlData<QueryKeys> => {\n // console.log(str);\n const [pathStr, queryStr] = str.split(\"?\");\n // const pathStr = str.substring(0, str.indexOf(\"?\"));\n // const queryStr = str.substring(str.indexOf(\"?\") + 1);\n const path = pathStr.split(\"/\").map(p => decodeURIComponent(p));\n const query = {} as any;\n for (const e of new URLSearchParams(queryStr).entries()) {\n const [k, v] = e;\n if (k in query) {\n if (typeof query[k] === \"string\") {\n query[k] = [query[k], v];\n } else {\n query[k].push(v);\n }\n } else {\n query[k] = v;\n }\n }\n const data = { path, query };\n // console.log(data);\n return data;\n};\n\nexport class Hash<T = string> {\n\n private _cb?: (data: T) => void;\n\n private _emitWritten: boolean;\n private _writtenDataJson?: string;\n\n private _encode = (data: T) => String(data);\n private _decode = (str: string) => str as any as T;\n\n constructor(emitWritten = true) {\n this._emitWritten = emitWritten;\n }\n\n onChange(cb: (data: T) => void): this {\n this._cb = cb;\n return this;\n }\n\n coders(encode: (data: T) => string,\n decode: (data: string) => T): this {\n this._encode = encode;\n this._decode = decode;\n return this;\n }\n\n listen(): this {\n this._cb && this._cb(this.read());\n if (\"onhashchange\" in window) {\n onhashchange = () => {\n const data = this.read();\n // console.log(\"onhashchange\", location.hash, data);\n if (!this._emitWritten) {\n const written = this._writtenDataJson === JSON.stringify(data);\n this._writtenDataJson = undefined;\n if (!written) {\n this._cb && this._cb(data);\n }\n } else {\n this._cb && this._cb(data);\n }\n };\n } else {\n alert(`Browser \"window.onhashchange\" not implemented`);\n // let prevHash = location.hash;\n // if (this._iId) {\n // clearInterval(this._iId);\n // }\n // this._iId = setInterval(() => {\n // if (location.hash !== prevHash) {\n // prevHash = location.hash;\n // const written = this._dataJson === location.hash;\n // this._dataJson = undefined;\n // if (this._emitWritten || !written) {\n // this._cb && this._cb(data);\n // }\n // }\n // }, 500);\n }\n return this;\n }\n\n read(): T {\n return this._decode(location.hash.slice(1));\n }\n\n write(data: T): this {\n location.hash = this._encode(data);\n if (!this._emitWritten) {\n this._writtenDataJson = JSON.stringify(data);\n this._cb && this._cb(data);\n }\n return this;\n }\n\n}\n"],"names":[],"version":3,"file":"hash.js.map"}
|
|
@@ -15,9 +15,15 @@ $parcel$export($32c8c7b45dace799$exports, "hsmls2idomPatch", function () { retur
|
|
|
15
15
|
var $a15669afd069c056$exports = {};
|
|
16
16
|
|
|
17
17
|
$parcel$export($a15669afd069c056$exports, "NBSP", function () { return $a15669afd069c056$export$4442f9d5f627adc8; });
|
|
18
|
+
$parcel$export($a15669afd069c056$exports, "NNBSP", function () { return $a15669afd069c056$export$3027455780d8394; });
|
|
19
|
+
$parcel$export($a15669afd069c056$exports, "THSP", function () { return $a15669afd069c056$export$76bbc0cf5037aeea; });
|
|
20
|
+
$parcel$export($a15669afd069c056$exports, "NUMSP", function () { return $a15669afd069c056$export$480ed2f7fd18b4a2; });
|
|
18
21
|
$parcel$export($a15669afd069c056$exports, "hsml", function () { return $a15669afd069c056$export$8f4ee6ea2853750b; });
|
|
19
22
|
$parcel$export($a15669afd069c056$exports, "hjoin", function () { return $a15669afd069c056$export$7427c8b17ccb408c; });
|
|
20
|
-
const $a15669afd069c056$export$4442f9d5f627adc8 = "\xa0
|
|
23
|
+
const $a15669afd069c056$export$4442f9d5f627adc8 = "\xa0";
|
|
24
|
+
const $a15669afd069c056$export$3027455780d8394 = " ";
|
|
25
|
+
const $a15669afd069c056$export$76bbc0cf5037aeea = " ";
|
|
26
|
+
const $a15669afd069c056$export$480ed2f7fd18b4a2 = " ";
|
|
21
27
|
function $a15669afd069c056$export$8f4ee6ea2853750b(hml, handler, ctx) {
|
|
22
28
|
if (hml === undefined || hml === null) return;
|
|
23
29
|
switch(hml.constructor){
|