peryl 1.5.2 → 1.5.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.
Files changed (184) hide show
  1. package/README.md +30 -16
  2. package/demo/hsml-app-form-validation_demo.ts +22 -23
  3. package/demo/hsml-app-form_demo.ts +24 -20
  4. package/demo/hsml-app-test_demo.ts +35 -36
  5. package/demo/hsml-app-tictactoe_demo.ts +16 -15
  6. package/demo/hsml-app_demo.ts +20 -12
  7. package/demo/hsml-appel_demo.html +7 -0
  8. package/demo/hsml-appel_demo.ts +33 -25
  9. package/demo/hsml-appi_demo.ts +9 -9
  10. package/demo/hsml_demo.ts +27 -22
  11. package/demo/js/hsml-app-js-happi_demo.html +16 -8
  12. package/demo/js/hsml-app-js_demo.html +15 -15
  13. package/dist/browser-esmodule/encode.js.map +1 -1
  14. package/dist/browser-esmodule/hsml-app.js +67 -73
  15. package/dist/browser-esmodule/hsml-app.js.map +1 -1
  16. package/dist/browser-esmodule/hsml-convert.js.map +1 -1
  17. package/dist/browser-esmodule/hsml-dom.js +3 -3
  18. package/dist/browser-esmodule/hsml-dom.js.map +1 -1
  19. package/dist/browser-esmodule/hsml-h.js.map +1 -1
  20. package/dist/browser-esmodule/hsml-html.js +2 -2
  21. package/dist/browser-esmodule/hsml-html.js.map +1 -1
  22. package/dist/browser-esmodule/hsml-idom.js +5 -5
  23. package/dist/browser-esmodule/hsml-idom.js.map +1 -1
  24. package/dist/browser-esmodule/hsml.js.map +1 -1
  25. package/dist/browser-esmodule/http.js.map +1 -1
  26. package/dist/browser-esmodule/index.js +71 -77
  27. package/dist/browser-esmodule/index.js.map +1 -1
  28. package/dist/browser-esmodule/router.js.map +1 -1
  29. package/dist/browser-umd/encode.js +1 -1
  30. package/dist/browser-umd/encode.js.map +1 -1
  31. package/dist/browser-umd/hsml-app.js +1 -1
  32. package/dist/browser-umd/hsml-app.js.map +1 -1
  33. package/dist/browser-umd/hsml-convert.js.map +1 -1
  34. package/dist/browser-umd/hsml-dom.js +1 -1
  35. package/dist/browser-umd/hsml-dom.js.map +1 -1
  36. package/dist/browser-umd/hsml-h.js.map +1 -1
  37. package/dist/browser-umd/hsml-html.js +1 -1
  38. package/dist/browser-umd/hsml-html.js.map +1 -1
  39. package/dist/browser-umd/hsml-idom.js +1 -1
  40. package/dist/browser-umd/hsml-idom.js.map +1 -1
  41. package/dist/browser-umd/hsml.js.map +1 -1
  42. package/dist/browser-umd/http.js +1 -1
  43. package/dist/browser-umd/http.js.map +1 -1
  44. package/dist/browser-umd/index.js +1 -1
  45. package/dist/browser-umd/index.js.map +1 -1
  46. package/dist/browser-umd/router.js +1 -1
  47. package/dist/browser-umd/router.js.map +1 -1
  48. package/dist/browser-umd/validators-moment.js +1 -1
  49. package/dist/browser-umd/validators-moment.js.map +1 -1
  50. package/dist/browser-umd/validators-numeral.js.map +1 -1
  51. package/dist/demo/encode_demo.ce182166.js.map +1 -1
  52. package/dist/demo/encode_demo.f40a44eb.js.map +1 -1
  53. package/dist/demo/hsml-app-form-validation_demo.a9e2c583.js +2 -0
  54. package/dist/demo/hsml-app-form-validation_demo.a9e2c583.js.map +1 -0
  55. package/dist/demo/hsml-app-form-validation_demo.bb392ab0.js +2 -0
  56. package/dist/demo/hsml-app-form-validation_demo.bb392ab0.js.map +1 -0
  57. package/dist/demo/hsml-app-form-validation_demo.c6856b02.js +2 -0
  58. package/dist/demo/hsml-app-form-validation_demo.c6856b02.js.map +1 -0
  59. package/dist/demo/hsml-app-form-validation_demo.fdcc0b2d.js +2 -0
  60. package/dist/demo/hsml-app-form-validation_demo.fdcc0b2d.js.map +1 -0
  61. package/dist/demo/hsml-app-form-validation_demo.html +1 -1
  62. package/dist/demo/hsml-app-form_demo.e36ef1e9.js +2 -0
  63. package/dist/demo/hsml-app-form_demo.e36ef1e9.js.map +1 -0
  64. package/dist/demo/hsml-app-form_demo.fd22dfcf.js +2 -0
  65. package/dist/demo/hsml-app-form_demo.fd22dfcf.js.map +1 -0
  66. package/dist/demo/hsml-app-form_demo.html +1 -1
  67. package/dist/demo/hsml-app-test_demo.ba5f166c.js +2 -0
  68. package/dist/demo/hsml-app-test_demo.ba5f166c.js.map +1 -0
  69. package/dist/demo/hsml-app-test_demo.e8b5e4b2.js +2 -0
  70. package/dist/demo/hsml-app-test_demo.e8b5e4b2.js.map +1 -0
  71. package/dist/demo/hsml-app-test_demo.html +1 -1
  72. package/dist/demo/hsml-app-tictactoe_demo.03d8363f.js +2 -0
  73. package/dist/demo/hsml-app-tictactoe_demo.03d8363f.js.map +1 -0
  74. package/dist/demo/hsml-app-tictactoe_demo.399f8e69.js +2 -0
  75. package/dist/demo/hsml-app-tictactoe_demo.399f8e69.js.map +1 -0
  76. package/dist/demo/hsml-app-tictactoe_demo.html +1 -1
  77. package/dist/demo/hsml-app_demo.44aa1072.js +2 -0
  78. package/dist/demo/hsml-app_demo.44aa1072.js.map +1 -0
  79. package/dist/demo/hsml-app_demo.70ef3e7a.js +2 -0
  80. package/dist/demo/hsml-app_demo.70ef3e7a.js.map +1 -0
  81. package/dist/demo/hsml-app_demo.html +1 -1
  82. package/dist/demo/hsml-appel_demo.2a9f7f3f.js +2 -0
  83. package/dist/demo/hsml-appel_demo.2a9f7f3f.js.map +1 -0
  84. package/dist/demo/hsml-appel_demo.bea7849a.js +2 -0
  85. package/dist/demo/hsml-appel_demo.bea7849a.js.map +1 -0
  86. package/dist/demo/hsml-appel_demo.html +1 -1
  87. package/dist/demo/hsml-appi_demo.3dc5de90.js +2 -0
  88. package/dist/demo/hsml-appi_demo.3dc5de90.js.map +1 -0
  89. package/dist/demo/hsml-appi_demo.bfc7056a.js +2 -0
  90. package/dist/demo/hsml-appi_demo.bfc7056a.js.map +1 -0
  91. package/dist/demo/hsml-appi_demo.html +1 -1
  92. package/dist/demo/hsml-convert_demo.0ea1fa3b.js.map +1 -1
  93. package/dist/demo/hsml-convert_demo.63e3e7b5.js.map +1 -1
  94. package/dist/demo/{hsml_demo.ff950ba1.js → hsml_demo.a248689a.js} +2 -2
  95. package/dist/demo/hsml_demo.a248689a.js.map +1 -0
  96. package/dist/demo/hsml_demo.eb3b08be.js +2 -0
  97. package/dist/demo/hsml_demo.eb3b08be.js.map +1 -0
  98. package/dist/demo/hsml_demo.html +1 -1
  99. package/dist/demo/http_demo.3e7da3d8.js.map +1 -1
  100. package/dist/demo/http_demo.8e435f23.js.map +1 -1
  101. package/dist/demo/i18n_demo.html +1 -1
  102. package/dist/demo/router_demo.3cfa03aa.js.map +1 -1
  103. package/dist/demo/router_demo.89ab1681.js.map +1 -1
  104. package/dist/demo/{validators_demo.252e13a6.js → validators_demo.90ff6001.js} +2 -2
  105. package/dist/demo/validators_demo.90ff6001.js.map +1 -0
  106. package/dist/demo/{validators_demo.66893723.js → validators_demo.ef5b2dea.js} +2 -2
  107. package/dist/demo/validators_demo.ef5b2dea.js.map +1 -0
  108. package/dist/demo/validators_demo.html +1 -1
  109. package/dist/encode.js +1 -1
  110. package/dist/encode.js.map +1 -1
  111. package/dist/hsml-app.d.ts +38 -37
  112. package/dist/hsml-app.js +60 -62
  113. package/dist/hsml-app.js.map +1 -1
  114. package/dist/hsml-convert.d.ts +3 -3
  115. package/dist/hsml-convert.js.map +1 -1
  116. package/dist/hsml-dom.d.ts +2 -2
  117. package/dist/hsml-dom.js +3 -3
  118. package/dist/hsml-dom.js.map +1 -1
  119. package/dist/hsml-h.d.ts +8 -8
  120. package/dist/hsml-h.js.map +1 -1
  121. package/dist/hsml-html.d.ts +4 -4
  122. package/dist/hsml-html.js +2 -2
  123. package/dist/hsml-html.js.map +1 -1
  124. package/dist/hsml-idom.d.ts +2 -2
  125. package/dist/hsml-idom.js +5 -5
  126. package/dist/hsml-idom.js.map +1 -1
  127. package/dist/hsml.d.ts +26 -27
  128. package/dist/hsml.js.map +1 -1
  129. package/dist/http.js +1 -1
  130. package/dist/http.js.map +1 -1
  131. package/dist/router.js +1 -1
  132. package/dist/router.js.map +1 -1
  133. package/package.json +8 -8
  134. package/src/hsml-app.ts +209 -144
  135. package/src/hsml-convert.ts +8 -8
  136. package/src/hsml-dom.ts +18 -18
  137. package/src/hsml-h.ts +10 -10
  138. package/src/hsml-html.ts +19 -19
  139. package/src/hsml-idom.ts +25 -25
  140. package/src/hsml.ts +46 -143
  141. package/demo/hsml-appc_demo.html +0 -16
  142. package/demo/hsml-appc_demo.ts +0 -49
  143. package/dist/demo/hsml-app-form-validation_demo.0b03b743.js +0 -2
  144. package/dist/demo/hsml-app-form-validation_demo.0b03b743.js.map +0 -1
  145. package/dist/demo/hsml-app-form-validation_demo.b3a5c810.js +0 -2
  146. package/dist/demo/hsml-app-form-validation_demo.b3a5c810.js.map +0 -1
  147. package/dist/demo/hsml-app-form-validation_demo.d3925067.js +0 -2
  148. package/dist/demo/hsml-app-form-validation_demo.d3925067.js.map +0 -1
  149. package/dist/demo/hsml-app-form-validation_demo.f757d763.js +0 -2
  150. package/dist/demo/hsml-app-form-validation_demo.f757d763.js.map +0 -1
  151. package/dist/demo/hsml-app-form_demo.007ffcaa.js +0 -2
  152. package/dist/demo/hsml-app-form_demo.007ffcaa.js.map +0 -1
  153. package/dist/demo/hsml-app-form_demo.a034239d.js +0 -2
  154. package/dist/demo/hsml-app-form_demo.a034239d.js.map +0 -1
  155. package/dist/demo/hsml-app-test_demo.35c14dc9.js +0 -2
  156. package/dist/demo/hsml-app-test_demo.35c14dc9.js.map +0 -1
  157. package/dist/demo/hsml-app-test_demo.3c7e16ae.js +0 -2
  158. package/dist/demo/hsml-app-test_demo.3c7e16ae.js.map +0 -1
  159. package/dist/demo/hsml-app-tictactoe_demo.5f4861c1.js +0 -2
  160. package/dist/demo/hsml-app-tictactoe_demo.5f4861c1.js.map +0 -1
  161. package/dist/demo/hsml-app-tictactoe_demo.7deeabad.js +0 -2
  162. package/dist/demo/hsml-app-tictactoe_demo.7deeabad.js.map +0 -1
  163. package/dist/demo/hsml-app_demo.87d83c29.js +0 -2
  164. package/dist/demo/hsml-app_demo.87d83c29.js.map +0 -1
  165. package/dist/demo/hsml-app_demo.941a13a6.js +0 -2
  166. package/dist/demo/hsml-app_demo.941a13a6.js.map +0 -1
  167. package/dist/demo/hsml-appc_demo.0234ff15.js +0 -2
  168. package/dist/demo/hsml-appc_demo.0234ff15.js.map +0 -1
  169. package/dist/demo/hsml-appc_demo.f5783031.js +0 -2
  170. package/dist/demo/hsml-appc_demo.f5783031.js.map +0 -1
  171. package/dist/demo/hsml-appc_demo.html +0 -1
  172. package/dist/demo/hsml-appel_demo.0e8a4d4c.js +0 -2
  173. package/dist/demo/hsml-appel_demo.0e8a4d4c.js.map +0 -1
  174. package/dist/demo/hsml-appel_demo.1a5c2c26.js +0 -2
  175. package/dist/demo/hsml-appel_demo.1a5c2c26.js.map +0 -1
  176. package/dist/demo/hsml-appi_demo.2c3fb511.js +0 -2
  177. package/dist/demo/hsml-appi_demo.2c3fb511.js.map +0 -1
  178. package/dist/demo/hsml-appi_demo.427fdebd.js +0 -2
  179. package/dist/demo/hsml-appi_demo.427fdebd.js.map +0 -1
  180. package/dist/demo/hsml_demo.33f28c29.js +0 -2
  181. package/dist/demo/hsml_demo.33f28c29.js.map +0 -1
  182. package/dist/demo/hsml_demo.ff950ba1.js.map +0 -1
  183. package/dist/demo/validators_demo.252e13a6.js.map +0 -1
  184. package/dist/demo/validators_demo.66893723.js.map +0 -1
@@ -1 +1 @@
1
- {"mappings":"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","sources":["src/http.ts"],"sourcesContent":["\nfunction isArray(obj: any) {\n return Array.isArray ?\n Array.isArray(obj) :\n (obj == null || obj === undefined || \"boolean|number|string|function|xml\".indexOf(typeof obj) !== -1) ?\n false :\n (typeof obj.length === \"number\" && !(obj.propertyIsEnumerable(\"length\")));\n}\n\nexport function decodeUrlQuery(queryStr: string): { [key: string]: string } {\n const query: { [key: string]: string } = {};\n if (queryStr) {\n const a = queryStr.substr(1).split(\"&\");\n for (const item of a) {\n const b = item.split(\"=\");\n query[decodeURIComponent(b[0])] = decodeURIComponent(b[1] ?? \"\");\n }\n }\n return query;\n}\n\nexport function encodeUrlQuery(query: any): string {\n const key_value_pairs: any[] = [];\n for (const key in query) {\n if (query.hasOwnProperty(key)) {\n const value = query[key];\n if (typeof value === \"object\") {\n if (isArray(value)) {\n for (const item of value) {\n key_value_pairs.push(\n [key, typeof item === \"object\" ?\n JSON.stringify(item) : item]);\n }\n } else {\n key_value_pairs.push([key, JSON.stringify(value)]);\n }\n } else {\n key_value_pairs.push([key, value]);\n }\n }\n }\n for (let j = 0, pair: any; pair = key_value_pairs[j++];) {\n key_value_pairs[j - 1] = `${encodeURIComponent(pair[0])}=${encodeURIComponent(pair[1])}`;\n }\n return key_value_pairs.join(\"&\");\n}\n\n\nexport class HttpResponse {\n\n private _xhr: XMLHttpRequest;\n\n constructor(xhr: XMLHttpRequest) {\n this._xhr = xhr;\n }\n\n getHeaders(): string {\n return this._xhr.getAllResponseHeaders();\n }\n\n getHeader(header: string): string | null {\n return this._xhr.getResponseHeader(header);\n }\n\n getBody(): any {\n return this._xhr.response;\n }\n\n getType(): string {\n return this._xhr.responseType;\n }\n\n getContentType(): string | null {\n return this.getHeader(\"Content-Type\");\n }\n\n getText(): string {\n return this._xhr.responseText;\n }\n\n getJson(): any {\n return JSON.parse(this._xhr.responseText);\n }\n\n getXml(): Document | null {\n return this._xhr.responseXML;\n }\n\n}\n\n\nexport interface HttpProgress {\n loaded: number;\n total?: number;\n}\n\nexport type HttpMethod =\n | \"GET\"\n | \"POST\"\n | \"PUT\"\n | \"DELETE\"\n | \"PATCH\"\n | \"HEAD\"\n | \"CONNECT\"\n | \"OPTIONS\"\n | \"TRACE\";\n\nexport type HttpResponseType =\n | \"arraybuffer\"\n | \"blob\"\n | \"document\"\n | \"json\"\n | \"text\";\n\nexport const authBasic = (login: string, password: string) => (req: HttpRequest) => {\n req.headers({ \"Authorization\": \"Basic \" + btoa(login + \":\" + password) });\n};\n\nexport const authJwt = (jwt: string) => (req: HttpRequest) => {\n req.headers({ \"Authorization\": \"Bearer \" + jwt });\n};\n\nexport class HttpRequest {\n\n static readonly xhrs: HttpRequest[] = [];\n\n static onRequest?: (request: HttpRequest) => void;\n static onResponse?: (response: HttpResponse) => void;\n static onError?: (e: Event) => void;\n\n static abortAll() {\n HttpRequest.xhrs.forEach(x => x.abort());\n HttpRequest.xhrs.length = 0;\n }\n\n private _url?: string;\n private _query?: Object;\n private _method: HttpMethod = \"GET\";\n private _headers: { [key: string]: string } = {};\n private _timeout?: number;\n private _responseType?: HttpResponseType;\n\n private _onProgress?: (progress: HttpProgress) => void;\n private _onResponse?: (response: HttpResponse) => void;\n private _onError?: (e?: Event) => void;\n\n private _xhr?: XMLHttpRequest;\n private _async: boolean = true;\n private _noCache: boolean = false;\n\n get(url: string, query?: Object): this {\n this.method(\"GET\");\n this.url(url, query);\n return this;\n }\n\n post(url: string, query?: Object): this {\n this.method(\"POST\");\n this.url(url, query);\n return this;\n }\n\n put(url: string, query?: Object): this {\n this.method(\"PUT\");\n this.url(url, query);\n return this;\n }\n\n patch(url: string, query?: Object): this {\n this.method(\"PATCH\");\n this.url(url, query);\n return this;\n }\n\n del(url: string, query?: Object): this {\n this.method(\"DELETE\");\n this.url(url, query);\n return this;\n }\n\n url(url: string, query?: Object): this {\n this._url = url;\n this._query = query;\n return this;\n }\n\n method(method: HttpMethod): this {\n this._method = method;\n return this;\n }\n\n headers(headers: { [key: string]: string }): this {\n for (const key in headers) {\n if (headers.hasOwnProperty(key)) {\n this._headers[key] = headers[key];\n }\n }\n return this;\n }\n\n use(middleware: (req: HttpRequest) => void): this {\n middleware(this);\n return this;\n }\n\n timeout(timeout: number): this {\n this._timeout = timeout;\n return this;\n }\n\n responseType(type: HttpResponseType): this {\n this._responseType = type;\n return this;\n }\n\n onProgress(onProgress: (progress: HttpProgress) => void): this {\n this._onProgress = onProgress;\n return this;\n }\n\n onResponse(onResponse: (response: HttpResponse) => void): this {\n this._onResponse = onResponse;\n return this;\n }\n\n onError(onError: (e?: Event) => void): this {\n this._onError = onError;\n return this;\n }\n\n async(async: boolean = true): this {\n this._async = async;\n return this;\n }\n\n noCache(noCache: boolean = true): this {\n this._noCache = noCache;\n return this;\n }\n\n abort(): this {\n if (this._xhr) {\n this._xhr.abort();\n }\n return this;\n }\n\n send(data?: any, contentType?: string): void {\n if (contentType) {\n this._headers[\"Content-Type\"] = contentType;\n }\n // this._headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n this._send(data, this._headers);\n }\n\n sendPromise(data?: any, contentType?: string): Promise<HttpResponse> {\n return new Promise<HttpResponse>((res, rej) => {\n this._onResponse = res;\n this._onError = rej;\n if (contentType) {\n this._headers[\"Content-Type\"] = contentType;\n }\n this._send(data, this._headers);\n });\n }\n\n private _send(data?: any, headers?: { [key: string]: string }): void {\n const xhr = new XMLHttpRequest();\n this._xhr = xhr;\n\n let url = this._url ?? \"\";\n if (this._query) {\n const query = encodeUrlQuery(this._query);\n url = query ? `${url}?${query}` : url;\n }\n if (this._noCache) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + new Date().getTime();\n }\n // console.debug(\"HttpRequest: \" + this._method + \" \" + url, data);\n\n if (this._responseType) {\n this._xhr.responseType = this._responseType;\n }\n\n if (\"onprogress\" in xhr) {\n if (this._onProgress) {\n const onprogress = (e: ProgressEvent) => {\n this._onProgress!({\n loaded: e.loaded,\n total: e.lengthComputable ? e.total : undefined\n });\n };\n xhr.upload.onprogress = onprogress;\n xhr.onprogress = onprogress;\n }\n }\n\n HttpRequest.xhrs.push(this);\n\n xhr.open(this._method, url, this._async);\n\n for (const header in headers) {\n if (headers.hasOwnProperty(header)) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n\n if (this._timeout) {\n xhr.timeout = this._timeout;\n }\n\n if (\"ontimeout\" in xhr) {\n if (this._onError || HttpRequest.onError) {\n xhr.ontimeout = (e: ProgressEvent) => {\n HttpRequest.onError && HttpRequest.onError(e);\n this._onError && this._onError(e);\n };\n }\n }\n\n if (\"onabort\" in xhr) {\n if (this._onError || HttpRequest.onError) {\n xhr.onabort = (e: ProgressEvent) => {\n HttpRequest.onError && HttpRequest.onError(e);\n this._onError && this._onError(e);\n };\n }\n }\n\n if (this._onError || HttpRequest.onError) {\n xhr.onerror = (e: ProgressEvent) => {\n HttpRequest.onError && HttpRequest.onError(e);\n this._onError && this._onError(e);\n };\n }\n\n if (this._async) {\n if (\"onload\" in xhr) {\n xhr.onload = (e: ProgressEvent) => {\n (HttpRequest as any).xhrs = HttpRequest.xhrs.filter(x => this !== x);\n if (xhr.status >= 200 && xhr.status < 300) {\n const respone = new HttpResponse(xhr);\n if (HttpRequest.onResponse) {\n HttpRequest.onResponse(respone);\n }\n if (this._onResponse) {\n this._onResponse(respone);\n }\n } else {\n if (HttpRequest.onError) {\n HttpRequest.onError(e);\n }\n if (this._onError) {\n this._onError(e);\n }\n }\n };\n } else {\n // legacy\n (xhr as any).onreadystatechange = (e: Event) => {\n switch ((xhr as any).readyState) {\n // 0 UNSENT Client has been created. open() not called yet.\n // 1 OPENED open() has been called.\n // 2 HEADERS_RECEIVED send() has been called, and headers and status are available.\n // 3 LOADING Downloading; responseText holds partial data.\n // 4 DONE The operation is complete.\n // case 3: // loading\n // if (this._onProgress) {\n // this._onProgress(new HttpResponse(httpRequest));\n // }\n // break;\n case 4: // done\n (HttpRequest as any).xhrs = HttpRequest.xhrs.filter(x => this !== x);\n // const httpStatusOk = xhr.status >= 200 && xhr.status < 300;\n // schemes other than http/https (file, ftp)\n // const fileFtpStatusOk = xhr.status === 0 && !this._url.match(/^https?:\\/\\//);\n // const fileFtpStatusOk = xhr.status === 0 && !xhr.responseURL.match(/^https?:\\/\\//);\n // if (httpStatusOk || fileFtpStatusOk) {\n if ((xhr as any).status >= 200 && (xhr as any).status < 300) {\n const respone = new HttpResponse(xhr);\n if (HttpRequest.onResponse) {\n HttpRequest.onResponse(respone);\n }\n if (this._onResponse) {\n this._onResponse(respone);\n }\n } else {\n if (HttpRequest.onError) {\n HttpRequest.onError(e);\n }\n if (this._onError) {\n this._onError(e);\n }\n }\n break;\n default:\n }\n };\n }\n\n if (data !== undefined) {\n if (\n typeof data === \"string\" ||\n data instanceof FormData ||\n data instanceof Blob\n ) {\n xhr.send(data);\n } else {\n if (!this._headers[\"Content-Type\"]) {\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n }\n xhr.send(JSON.stringify(data));\n }\n } else {\n xhr.send();\n }\n } else {\n if (data) {\n const payload = (typeof data === \"string\") ? data : JSON.stringify(data);\n xhr.send(payload);\n } else {\n xhr.send();\n }\n return JSON.parse(xhr.responseText);\n }\n }\n\n}\n\n\nexport function httpGet(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"GET\").url(url, query);\n}\n\nexport function httpPost(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"POST\").url(url, query);\n}\n\nexport function httpPut(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"PUT\").url(url, query);\n}\n\nexport function httpPatch(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"PATCH\").url(url, query);\n}\n\nexport function httpDelete(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"DELETE\").url(url, query);\n}\n\nexport function httpOnRequest(onRequest: (req: HttpRequest) => void): void {\n HttpRequest.onRequest = onRequest;\n}\n\nexport function httpOnResponse(onResponse: (req: HttpResponse) => void): void {\n HttpRequest.onResponse = onResponse;\n}\n\nexport function httpOnError(onError: (req: Event) => void): void {\n HttpRequest.onError = onError;\n}\n\nexport const http = {\n get: httpGet,\n post: httpPost,\n put: httpPut,\n patch: httpPatch,\n delete: httpDelete,\n onRequest: httpOnRequest,\n onResponse: httpOnResponse,\n onError: httpOnError\n};\n"],"names":[],"version":3,"file":"http.js.map"}
1
+ {"mappings":"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","sources":["src/http.ts"],"sourcesContent":["\nfunction isArray(obj: any) {\n return Array.isArray ?\n Array.isArray(obj) :\n (obj == null || obj === undefined || \"boolean|number|string|function|xml\".indexOf(typeof obj) !== -1) ?\n false :\n (typeof obj.length === \"number\" && !(obj.propertyIsEnumerable(\"length\")));\n}\n\nexport function decodeUrlQuery(queryStr: string): { [key: string]: string } {\n const query: { [key: string]: string } = {};\n if (queryStr) {\n const a = queryStr.substr(1).split(\"&\");\n for (const item of a) {\n const b = item.split(\"=\");\n query[decodeURIComponent(b[0])] = decodeURIComponent(b[1] ?? \"\");\n }\n }\n return query;\n}\n\nexport function encodeUrlQuery(query: any): string {\n const key_value_pairs: any[] = [];\n for (const key in query) {\n if (query.hasOwnProperty(key)) {\n const value = query[key];\n if (typeof value === \"object\") {\n if (isArray(value)) {\n for (const item of value) {\n key_value_pairs.push(\n [key, typeof item === \"object\" ?\n JSON.stringify(item) : item]);\n }\n } else {\n key_value_pairs.push([key, JSON.stringify(value)]);\n }\n } else {\n key_value_pairs.push([key, value]);\n }\n }\n }\n for (let j = 0, pair: any; pair = key_value_pairs[j++];) {\n key_value_pairs[j - 1] = `${encodeURIComponent(pair[0])}=${encodeURIComponent(pair[1])}`;\n }\n return key_value_pairs.join(\"&\");\n}\n\n\nexport class HttpResponse {\n\n private _xhr: XMLHttpRequest;\n\n constructor(xhr: XMLHttpRequest) {\n this._xhr = xhr;\n }\n\n getHeaders(): string {\n return this._xhr.getAllResponseHeaders();\n }\n\n getHeader(header: string): string | null {\n return this._xhr.getResponseHeader(header);\n }\n\n getBody(): any {\n return this._xhr.response;\n }\n\n getType(): string {\n return this._xhr.responseType;\n }\n\n getContentType(): string | null {\n return this.getHeader(\"Content-Type\");\n }\n\n getText(): string {\n return this._xhr.responseText;\n }\n\n getJson(): any {\n return JSON.parse(this._xhr.responseText);\n }\n\n getXml(): Document | null {\n return this._xhr.responseXML;\n }\n\n}\n\n\nexport interface HttpProgress {\n loaded: number;\n total?: number;\n}\n\nexport type HttpMethod =\n | \"GET\"\n | \"POST\"\n | \"PUT\"\n | \"DELETE\"\n | \"PATCH\"\n | \"HEAD\"\n | \"CONNECT\"\n | \"OPTIONS\"\n | \"TRACE\";\n\nexport type HttpResponseType =\n | \"arraybuffer\"\n | \"blob\"\n | \"document\"\n | \"json\"\n | \"text\";\n\nexport const authBasic = (login: string, password: string) => (req: HttpRequest) => {\n req.headers({ \"Authorization\": \"Basic \" + btoa(login + \":\" + password) });\n};\n\nexport const authJwt = (jwt: string) => (req: HttpRequest) => {\n req.headers({ \"Authorization\": \"Bearer \" + jwt });\n};\n\nexport class HttpRequest {\n\n static readonly xhrs: HttpRequest[] = [];\n\n static onRequest?: (request: HttpRequest) => void;\n static onResponse?: (response: HttpResponse) => void;\n static onError?: (e: Event) => void;\n\n static abortAll() {\n HttpRequest.xhrs.forEach(x => x.abort());\n HttpRequest.xhrs.length = 0;\n }\n\n private _url?: string;\n private _query?: Object;\n private _method: HttpMethod = \"GET\";\n private _headers: { [key: string]: string } = {};\n private _timeout?: number;\n private _responseType?: HttpResponseType;\n\n private _onProgress?: (progress: HttpProgress) => void;\n private _onResponse?: (response: HttpResponse) => void;\n private _onError?: (e?: Event) => void;\n\n private _xhr?: XMLHttpRequest;\n private _async: boolean = true;\n private _noCache: boolean = false;\n\n get(url: string, query?: Object): this {\n this.method(\"GET\");\n this.url(url, query);\n return this;\n }\n\n post(url: string, query?: Object): this {\n this.method(\"POST\");\n this.url(url, query);\n return this;\n }\n\n put(url: string, query?: Object): this {\n this.method(\"PUT\");\n this.url(url, query);\n return this;\n }\n\n patch(url: string, query?: Object): this {\n this.method(\"PATCH\");\n this.url(url, query);\n return this;\n }\n\n del(url: string, query?: Object): this {\n this.method(\"DELETE\");\n this.url(url, query);\n return this;\n }\n\n url(url: string, query?: Object): this {\n this._url = url;\n this._query = query;\n return this;\n }\n\n method(method: HttpMethod): this {\n this._method = method;\n return this;\n }\n\n headers(headers: { [key: string]: string }): this {\n for (const key in headers) {\n if (headers.hasOwnProperty(key)) {\n this._headers[key] = headers[key];\n }\n }\n return this;\n }\n\n use(middleware: (req: HttpRequest) => void): this {\n middleware(this);\n return this;\n }\n\n timeout(timeout: number): this {\n this._timeout = timeout;\n return this;\n }\n\n responseType(type: HttpResponseType): this {\n this._responseType = type;\n return this;\n }\n\n onProgress(onProgress: (progress: HttpProgress) => void): this {\n this._onProgress = onProgress;\n return this;\n }\n\n onResponse(onResponse: (response: HttpResponse) => void): this {\n this._onResponse = onResponse;\n return this;\n }\n\n onError(onError: (e?: Event) => void): this {\n this._onError = onError;\n return this;\n }\n\n async(async: boolean = true): this {\n this._async = async;\n return this;\n }\n\n noCache(noCache: boolean = true): this {\n this._noCache = noCache;\n return this;\n }\n\n abort(): this {\n if (this._xhr) {\n this._xhr.abort();\n }\n return this;\n }\n\n send(data?: any, contentType?: string): void {\n if (contentType) {\n this._headers[\"Content-Type\"] = contentType;\n }\n // this._headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n this._send(data, this._headers);\n }\n\n sendPromise(data?: any, contentType?: string): Promise<HttpResponse> {\n return new Promise<HttpResponse>((res, rej) => {\n this._onResponse = res;\n this._onError = rej;\n if (contentType) {\n this._headers[\"Content-Type\"] = contentType;\n }\n this._send(data, this._headers);\n });\n }\n\n private _send(data?: any, headers?: { [key: string]: string }): void {\n const xhr = new XMLHttpRequest();\n this._xhr = xhr;\n\n let url = this._url ?? \"\";\n if (this._query) {\n const query = encodeUrlQuery(this._query);\n url = query ? `${url}?${query}` : url;\n }\n if (this._noCache) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + new Date().getTime();\n }\n // console.debug(\"HttpRequest: \" + this._method + \" \" + url, data);\n\n if (this._responseType) {\n this._xhr.responseType = this._responseType;\n }\n\n if (\"onprogress\" in xhr) {\n if (this._onProgress) {\n const onprogress = (e: ProgressEvent) => {\n this._onProgress!({\n loaded: e.loaded,\n total: e.lengthComputable ? e.total : undefined\n });\n };\n xhr.upload.onprogress = onprogress;\n xhr.onprogress = onprogress;\n }\n }\n\n HttpRequest.xhrs.push(this);\n\n xhr.open(this._method, url, this._async);\n\n for (const header in headers) {\n if (headers.hasOwnProperty(header)) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n\n if (this._timeout) {\n xhr.timeout = this._timeout;\n }\n\n if (\"ontimeout\" in xhr) {\n if (this._onError || HttpRequest.onError) {\n xhr.ontimeout = (e: ProgressEvent) => {\n HttpRequest.onError && HttpRequest.onError(e);\n this._onError && this._onError(e);\n };\n }\n }\n\n if (\"onabort\" in xhr) {\n if (this._onError || HttpRequest.onError) {\n xhr.onabort = (e: ProgressEvent) => {\n HttpRequest.onError && HttpRequest.onError(e);\n this._onError && this._onError(e);\n };\n }\n }\n\n if (this._onError || HttpRequest.onError) {\n xhr.onerror = (e: ProgressEvent) => {\n HttpRequest.onError && HttpRequest.onError(e);\n this._onError && this._onError(e);\n };\n }\n\n if (this._async) {\n if (\"onload\" in xhr) {\n xhr.onload = (e: ProgressEvent) => {\n (HttpRequest as any).xhrs = HttpRequest.xhrs.filter(x => this !== x);\n if (xhr.status >= 200 && xhr.status < 300) {\n const respone = new HttpResponse(xhr);\n if (HttpRequest.onResponse) {\n HttpRequest.onResponse(respone);\n }\n if (this._onResponse) {\n this._onResponse(respone);\n }\n } else {\n if (HttpRequest.onError) {\n HttpRequest.onError(e);\n }\n if (this._onError) {\n this._onError(e);\n }\n }\n };\n } else {\n // legacy\n (xhr as any).onreadystatechange = (e: Event) => {\n switch ((xhr as any).readyState) {\n // 0 UNSENT Client has been created. open() not called yet.\n // 1 OPENED open() has been called.\n // 2 HEADERS_RECEIVED send() has been called, and headers and status are available.\n // 3 LOADING Downloading; responseText holds partial data.\n // 4 DONE The operation is complete.\n // case 3: // loading\n // if (this._onProgress) {\n // this._onProgress(new HttpResponse(httpRequest));\n // }\n // break;\n case 4: // done\n (HttpRequest as any).xhrs = HttpRequest.xhrs.filter(x => this !== x);\n // const httpStatusOk = xhr.status >= 200 && xhr.status < 300;\n // schemes other than http/https (file, ftp)\n // const fileFtpStatusOk = xhr.status === 0 && !this._url.match(/^https?:\\/\\//);\n // const fileFtpStatusOk = xhr.status === 0 && !xhr.responseURL.match(/^https?:\\/\\//);\n // if (httpStatusOk || fileFtpStatusOk) {\n if ((xhr as any).status >= 200 && (xhr as any).status < 300) {\n const respone = new HttpResponse(xhr);\n if (HttpRequest.onResponse) {\n HttpRequest.onResponse(respone);\n }\n if (this._onResponse) {\n this._onResponse(respone);\n }\n } else {\n if (HttpRequest.onError) {\n HttpRequest.onError(e);\n }\n if (this._onError) {\n this._onError(e);\n }\n }\n break;\n default:\n }\n };\n }\n\n if (data !== undefined) {\n if (\n typeof data === \"string\" ||\n data instanceof FormData ||\n data instanceof Blob\n ) {\n xhr.send(data);\n } else {\n if (!this._headers[\"Content-Type\"]) {\n xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n }\n xhr.send(JSON.stringify(data));\n }\n } else {\n xhr.send();\n }\n } else {\n if (data) {\n const payload = (typeof data === \"string\") ? data : JSON.stringify(data);\n xhr.send(payload);\n } else {\n xhr.send();\n }\n return JSON.parse(xhr.responseText);\n }\n }\n\n}\n\n\nexport function httpGet(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"GET\").url(url, query);\n}\n\nexport function httpPost(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"POST\").url(url, query);\n}\n\nexport function httpPut(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"PUT\").url(url, query);\n}\n\nexport function httpPatch(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"PATCH\").url(url, query);\n}\n\nexport function httpDelete(url: string, query?: Object): HttpRequest {\n return new HttpRequest().method(\"DELETE\").url(url, query);\n}\n\nexport function httpOnRequest(onRequest: (req: HttpRequest) => void): void {\n HttpRequest.onRequest = onRequest;\n}\n\nexport function httpOnResponse(onResponse: (req: HttpResponse) => void): void {\n HttpRequest.onResponse = onResponse;\n}\n\nexport function httpOnError(onError: (req: Event) => void): void {\n HttpRequest.onError = onError;\n}\n\nexport const http = {\n get: httpGet,\n post: httpPost,\n put: httpPut,\n patch: httpPatch,\n delete: httpDelete,\n onRequest: httpOnRequest,\n onResponse: httpOnResponse,\n onError: httpOnError\n};\n"],"names":[],"version":3,"file":"http.js.map"}
@@ -864,12 +864,12 @@ class $9013ae9f0ac3e1ae$export$84202caead5689ba {
864
864
 
865
865
  var $9adf8bc2f1ba310f$exports = {};
866
866
 
867
- $parcel$export($9adf8bc2f1ba310f$exports, "HAppAction", function () { return $9adf8bc2f1ba310f$export$15cfcbba5b21308e; }, function (v) { return $9adf8bc2f1ba310f$export$15cfcbba5b21308e = v; });
867
+ $parcel$export($9adf8bc2f1ba310f$exports, "HAppActions", function () { return $9adf8bc2f1ba310f$export$3dcd9fad60135c2c; }, function (v) { return $9adf8bc2f1ba310f$export$3dcd9fad60135c2c = v; });
868
+ $parcel$export($9adf8bc2f1ba310f$exports, "HDispatchScopes", function () { return $9adf8bc2f1ba310f$export$3d736e925369e0e4; }, function (v) { return $9adf8bc2f1ba310f$export$3d736e925369e0e4 = v; });
868
869
  $parcel$export($9adf8bc2f1ba310f$exports, "happ", function () { return $9adf8bc2f1ba310f$export$eb8950696418f795; }, function (v) { return $9adf8bc2f1ba310f$export$eb8950696418f795 = v; });
869
870
  $parcel$export($9adf8bc2f1ba310f$exports, "HApp", function () { return $9adf8bc2f1ba310f$export$8cfef5dc37c46888; }, function (v) { return $9adf8bc2f1ba310f$export$8cfef5dc37c46888 = v; });
870
871
  $parcel$export($9adf8bc2f1ba310f$exports, "happi", function () { return $9adf8bc2f1ba310f$export$e905700d74a7763f; }, function (v) { return $9adf8bc2f1ba310f$export$e905700d74a7763f = v; });
871
872
  $parcel$export($9adf8bc2f1ba310f$exports, "happel", function () { return $9adf8bc2f1ba310f$export$1cfc54b3834d3c50; }, function (v) { return $9adf8bc2f1ba310f$export$1cfc54b3834d3c50 = v; });
872
- $parcel$export($9adf8bc2f1ba310f$exports, "controllersDdispatcher", function () { return $9adf8bc2f1ba310f$export$dd8a94d3c5ec9827; }, function (v) { return $9adf8bc2f1ba310f$export$dd8a94d3c5ec9827 = v; });
873
873
  var $32c8c7b45dace799$exports = {};
874
874
 
875
875
  $parcel$export($32c8c7b45dace799$exports, "hsml2idomPatch", function () { return $32c8c7b45dace799$export$c539705c0f97f623; });
@@ -1707,9 +1707,9 @@ class $32c8c7b45dace799$var$HsmlIDomHandler {
1707
1707
  case "_id":
1708
1708
  case "_classes":
1709
1709
  case "_ref":
1710
- case "_key":
1711
- case "_skip":
1712
1710
  case "_hObj":
1711
+ case "key":
1712
+ case "skip":
1713
1713
  break;
1714
1714
  case "id":
1715
1715
  id = attrs[a];
@@ -1759,14 +1759,14 @@ class $32c8c7b45dace799$var$HsmlIDomHandler {
1759
1759
  }
1760
1760
  if (classes.length) props.unshift("class", classes.join(" "));
1761
1761
  if (id) props.unshift("id", id);
1762
- (0, $820cd2154730c00b$export$c08238b528ee4605)(tag, attrs._key, undefined, ...props);
1763
- if (attrs._skip) (0, $f070ae32bf01fca2$export$955fc4a6c4be454d)();
1762
+ (0, $820cd2154730c00b$export$c08238b528ee4605)(tag, attrs.key, undefined, ...props);
1763
+ if (attrs.skip) (0, $f070ae32bf01fca2$export$955fc4a6c4be454d)();
1764
1764
  if (ctx && ref) ctx.refs[ref] = (0, $f070ae32bf01fca2$export$910f131cbf8f9c16)();
1765
1765
  if (hObj && hObj.mount && hObj.mount.constructor === Function) {
1766
1766
  hObj.mount((0, $f070ae32bf01fca2$export$910f131cbf8f9c16)());
1767
1767
  (0, $f070ae32bf01fca2$export$955fc4a6c4be454d)();
1768
1768
  }
1769
- return attrs._skip ? true : false;
1769
+ return attrs.skip ? true : false;
1770
1770
  }
1771
1771
  close(tag, children, ctx) {
1772
1772
  (0, $820cd2154730c00b$export$5a9f50133313a819)(tag);
@@ -1834,13 +1834,19 @@ var $9adf8bc2f1ba310f$var$__awaiter = undefined && undefined.__awaiter || functi
1834
1834
  const $9adf8bc2f1ba310f$var$log = console.log;
1835
1835
  const $9adf8bc2f1ba310f$var$error = console.error;
1836
1836
  const $9adf8bc2f1ba310f$var$warn = console.warn;
1837
- var $9adf8bc2f1ba310f$export$15cfcbba5b21308e;
1838
- (function(HAppAction) {
1839
- HAppAction["_init"] = "_init";
1840
- HAppAction["_mount"] = "_mount";
1841
- HAppAction["_umount"] = "_umount";
1842
- HAppAction["_element"] = "_element";
1843
- })($9adf8bc2f1ba310f$export$15cfcbba5b21308e || ($9adf8bc2f1ba310f$export$15cfcbba5b21308e = {}));
1837
+ var $9adf8bc2f1ba310f$export$3dcd9fad60135c2c;
1838
+ (function(HAppActions) {
1839
+ HAppActions["init"] = "init";
1840
+ HAppActions["mount"] = "mount";
1841
+ HAppActions["umount"] = "umount";
1842
+ HAppActions["action"] = "action";
1843
+ HAppActions["elementAttr"] = "elementAttr";
1844
+ })($9adf8bc2f1ba310f$export$3dcd9fad60135c2c || ($9adf8bc2f1ba310f$export$3dcd9fad60135c2c = {}));
1845
+ var $9adf8bc2f1ba310f$export$3d736e925369e0e4;
1846
+ (function(HDispatchScopes) {
1847
+ HDispatchScopes["element"] = "element";
1848
+ HDispatchScopes["window"] = "window";
1849
+ })($9adf8bc2f1ba310f$export$3d736e925369e0e4 || ($9adf8bc2f1ba310f$export$3d736e925369e0e4 = {}));
1844
1850
  const $9adf8bc2f1ba310f$var$schedule = window.requestAnimationFrame || function(callback) {
1845
1851
  window.setTimeout(callback, 1000 / 60);
1846
1852
  };
@@ -1854,9 +1860,9 @@ const $9adf8bc2f1ba310f$var$msgUpdate = "HApp update:";
1854
1860
  function $9adf8bc2f1ba310f$export$eb8950696418f795(state, view, dispatcher, element = document.body) {
1855
1861
  return new $9adf8bc2f1ba310f$export$8cfef5dc37c46888(state, view, dispatcher, element);
1856
1862
  }
1857
- function $9adf8bc2f1ba310f$export$e905700d74a7763f(hAppI, e = document.body) {
1863
+ function $9adf8bc2f1ba310f$export$e905700d74a7763f(hAppI, element = document.body) {
1858
1864
  const hapi = new hAppI();
1859
- return new $9adf8bc2f1ba310f$export$8cfef5dc37c46888(hapi.state, hapi.view, hapi.dispatcher, e);
1865
+ return new $9adf8bc2f1ba310f$export$8cfef5dc37c46888(hapi.state, hapi.view, hapi.dispatcher, element);
1860
1866
  }
1861
1867
  function $9adf8bc2f1ba310f$export$1cfc54b3834d3c50(elementName, elementAttrs, state, view, dispatcher) {
1862
1868
  customElements.define(elementName, class HAppElement extends HTMLElement {
@@ -1876,7 +1882,7 @@ function $9adf8bc2f1ba310f$export$1cfc54b3834d3c50(elementName, elementAttrs, st
1876
1882
  this._happel.update();
1877
1883
  }
1878
1884
  attributeChangedCallback(attrName, oldVal, newVal) {
1879
- this._happel.dispatch($9adf8bc2f1ba310f$export$15cfcbba5b21308e._element, {
1885
+ this._happel.dispatch("elementAttr", {
1880
1886
  attrName: attrName,
1881
1887
  oldVal: oldVal,
1882
1888
  newVal: newVal
@@ -1889,42 +1895,34 @@ function $9adf8bc2f1ba310f$export$1cfc54b3834d3c50(elementName, elementAttrs, st
1889
1895
  }
1890
1896
  });
1891
1897
  }
1892
- function $9adf8bc2f1ba310f$export$dd8a94d3c5ec9827(controllers) {
1893
- return function(action) {
1894
- return $9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1895
- const controller = controllers[action.type];
1896
- if (controller) controller.apply(this, [
1897
- action.data,
1898
- action.event
1899
- ]);
1900
- else $9adf8bc2f1ba310f$var$warn("no controller for action", action);
1901
- });
1902
- };
1903
- }
1904
1898
  const $9adf8bc2f1ba310f$var$HAPP = "happ";
1905
1899
  class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
1906
- _dispatch(type, data, event) {
1907
- var _a;
1900
+ _dispatchAction(type, data, event, scope) {
1908
1901
  return $9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1909
- try {
1910
- yield this.dispatcher({
1902
+ if ($9adf8bc2f1ba310f$export$8cfef5dc37c46888.debug) {
1903
+ $9adf8bc2f1ba310f$var$log($9adf8bc2f1ba310f$var$msgAction, {
1911
1904
  type: type,
1912
1905
  data: data,
1913
1906
  event: event
1914
- }, this.state, this.dispatch);
1915
- (_a = this._onDispatch) === null || _a === void 0 || _a.call(this, {
1907
+ });
1908
+ const t0 = performance.now();
1909
+ yield this._dispatch(type, data, event, scope);
1910
+ const t1 = performance.now();
1911
+ $9adf8bc2f1ba310f$var$log($9adf8bc2f1ba310f$var$msgDispatch, `${t1 - t0} ms`, this.state);
1912
+ } else yield this._dispatch(type, data, event, scope);
1913
+ });
1914
+ }
1915
+ _dispatch(type, data, event, scope) {
1916
+ return $9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1917
+ try {
1918
+ yield this.dispatcher({
1916
1919
  type: type,
1917
1920
  data: data,
1918
1921
  event: event
1919
1922
  }, this.state, this.dispatch);
1920
- this.dom && $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(this.dom, $9adf8bc2f1ba310f$var$HAPP, {
1921
- type: type,
1922
- data: data,
1923
- event: event
1924
- });
1925
- this.customElement && $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(this.customElement, type, data);
1926
- !this.customElement && this.dom && $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(this.dom, type, data);
1927
1923
  this.update();
1924
+ scope === "element" && this._dispatchElement(type, data);
1925
+ scope === "window" && this._dispatchWindow(type, data);
1928
1926
  } catch (e) {
1929
1927
  $9adf8bc2f1ba310f$var$error($9adf8bc2f1ba310f$var$msgDispatch, e);
1930
1928
  }
@@ -1934,35 +1932,31 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
1934
1932
  if (!this._windowEventListener) {
1935
1933
  this._windowEventListener = (event)=>{
1936
1934
  const action = event.detail;
1937
- this.dispatch(action.type, action.data, event);
1935
+ this._dispatchAction(action.type, action.data);
1938
1936
  };
1939
- window.addEventListener($9adf8bc2f1ba310f$var$HAPP, this._windowEventListener);
1937
+ window.addEventListener("action", this._windowEventListener);
1940
1938
  } else $9adf8bc2f1ba310f$var$warn("windowEventListener olready setted");
1941
1939
  }
1942
1940
  windowDispatchOff() {
1943
- if (this._windowEventListener) window.removeEventListener($9adf8bc2f1ba310f$var$HAPP, this._windowEventListener);
1941
+ if (this._windowEventListener) window.removeEventListener("action", this._windowEventListener);
1944
1942
  }
1945
- constructor(state, view, dispatcher, e = document.body){
1943
+ constructor(state, view, dispatcher, element = document.body){
1946
1944
  this.refs = {};
1947
- this.onDispatch = (dispatcher)=>{
1948
- this._onDispatch = dispatcher;
1949
- return this;
1950
- };
1951
- this.dispatch = (type, data, event)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1952
- if ($9adf8bc2f1ba310f$export$8cfef5dc37c46888.debug) {
1953
- $9adf8bc2f1ba310f$var$log($9adf8bc2f1ba310f$var$msgAction, {
1954
- type: type,
1955
- data: data,
1956
- event: event
1957
- });
1958
- const t0 = performance.now();
1959
- yield this._dispatch(type, data, event);
1960
- const t1 = performance.now();
1961
- $9adf8bc2f1ba310f$var$log($9adf8bc2f1ba310f$var$msgDispatch, `${t1 - t0} ms`, this.state);
1962
- } else yield this._dispatch(type, data, event);
1945
+ this.dispatch = (type, data, scope)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1946
+ return this._dispatchAction(type, data, undefined, scope);
1947
+ });
1948
+ this._dispatchElement = (type, data)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1949
+ this.customElement && $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(this.customElement, "action", {
1950
+ type: type,
1951
+ data: data
1952
+ });
1953
+ !this.customElement && this.dom && $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(this.dom, "action", {
1954
+ type: type,
1955
+ data: data
1956
+ });
1963
1957
  });
1964
- this.windowDispatch = (type, data, event)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1965
- window.dispatchEvent(new CustomEvent($9adf8bc2f1ba310f$var$HAPP, {
1958
+ this._dispatchWindow = (type, data)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
1959
+ window.dispatchEvent(new CustomEvent("action", {
1966
1960
  detail: {
1967
1961
  type: type,
1968
1962
  data: data
@@ -1991,13 +1985,13 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
1991
1985
  return hsmls !== null && hsmls !== void 0 ? hsmls : [];
1992
1986
  }
1993
1987
  };
1994
- this.actionCb = (action, data, event)=>{
1988
+ this.actionCb = (actionType, data, event)=>{
1995
1989
  data = (data === null || data === void 0 ? void 0 : data.constructor) === Function ? data(event) : data;
1996
1990
  if (data === undefined && event) {
1997
1991
  if (event instanceof CustomEvent) data = event.detail;
1998
1992
  else data = $9adf8bc2f1ba310f$var$formData(event);
1999
1993
  }
2000
- this.dispatch(action, data, event);
1994
+ this._dispatchAction(actionType, data, event);
2001
1995
  };
2002
1996
  this.mount = (e = document.body)=>{
2003
1997
  var _a;
@@ -2011,13 +2005,13 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
2011
2005
  el[$9adf8bc2f1ba310f$var$HAPP] = this;
2012
2006
  const hsmls = this.render();
2013
2007
  $9adf8bc2f1ba310f$var$updateDom(el, hsmls, this);
2014
- this.dispatch($9adf8bc2f1ba310f$export$15cfcbba5b21308e._mount, this.dom);
2008
+ this._dispatchAction("mount", this.dom);
2015
2009
  }
2016
2010
  return this;
2017
2011
  };
2018
2012
  this.umount = ()=>{
2019
2013
  if (this.dom) {
2020
- this.dispatch($9adf8bc2f1ba310f$export$15cfcbba5b21308e._umount, this.dom);
2014
+ this._dispatchAction("umount", this.dom);
2021
2015
  if (this.dom.hasAttribute($9adf8bc2f1ba310f$var$HAPP)) this.dom.removeAttribute($9adf8bc2f1ba310f$var$HAPP);
2022
2016
  const aNodes = this.dom.querySelectorAll(`[${$9adf8bc2f1ba310f$var$HAPP}]`);
2023
2017
  for(let i = 0; i < aNodes.length; i++){
@@ -2048,7 +2042,7 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
2048
2042
  } else return [
2049
2043
  "div",
2050
2044
  {
2051
- _skip: true
2045
+ skip: true
2052
2046
  }
2053
2047
  ];
2054
2048
  }
@@ -2057,7 +2051,7 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
2057
2051
  if (!this.dom) {
2058
2052
  this.dom = e;
2059
2053
  e.happ = this;
2060
- this.dispatch($9adf8bc2f1ba310f$export$15cfcbba5b21308e._mount, this.dom);
2054
+ this._dispatchAction("mount", this.dom);
2061
2055
  }
2062
2056
  });
2063
2057
  return [
@@ -2073,7 +2067,7 @@ class $9adf8bc2f1ba310f$export$8cfef5dc37c46888 {
2073
2067
  this.dispatcher = dispatcher !== null && dispatcher !== void 0 ? dispatcher : (a)=>$9adf8bc2f1ba310f$var$__awaiter(this, void 0, void 0, function*() {
2074
2068
  return $9adf8bc2f1ba310f$var$log($9adf8bc2f1ba310f$var$msgAction, a.type, a.data);
2075
2069
  });
2076
- this.dispatch($9adf8bc2f1ba310f$export$15cfcbba5b21308e._init, this).then(()=>this.mount(e));
2070
+ this._dispatchAction("init", this).then(()=>this.mount(element));
2077
2071
  }
2078
2072
  }
2079
2073
  $9adf8bc2f1ba310f$export$8cfef5dc37c46888.debug = false;
@@ -2090,7 +2084,7 @@ function $9adf8bc2f1ba310f$var$elementDispatchCustomEvent(el, type, data) {
2090
2084
  el === null || el === void 0 || el.dispatchEvent(new CustomEvent(type, {
2091
2085
  detail: data
2092
2086
  }));
2093
- (_b = (_a = el)[`on${type.toLowerCase()}`]) === null || _b === void 0 || _b.call(_a, new CustomEvent(type, {
2087
+ (_b = (_a = el)[`on${type}`]) === null || _b === void 0 || _b.call(_a, new CustomEvent(type, {
2094
2088
  detail: data
2095
2089
  }));
2096
2090
  }
@@ -2239,9 +2233,9 @@ class $870bc263ac7a2220$var$HsmlDomHandler {
2239
2233
  case "_id":
2240
2234
  case "_classes":
2241
2235
  case "_ref":
2242
- case "_key":
2243
- case "_skip":
2244
2236
  case "_hObj":
2237
+ case "key":
2238
+ case "skip":
2245
2239
  break;
2246
2240
  case "id":
2247
2241
  id = attrs[a];
@@ -2290,7 +2284,7 @@ class $870bc263ac7a2220$var$HsmlDomHandler {
2290
2284
  }
2291
2285
  if (ctx && ref) ctx.refs[ref] = this._current;
2292
2286
  if (hObj && hObj.mount && hObj.mount.constructor === Function) hObj.mount(e);
2293
- return attrs._skip ? true : false;
2287
+ return attrs.skip ? true : false;
2294
2288
  }
2295
2289
  close(tag, children, ctx) {
2296
2290
  var _a;
@@ -2367,9 +2361,9 @@ class $8b772788eaa59994$var$HsmlHtmlHandler {
2367
2361
  case "_id":
2368
2362
  case "_classes":
2369
2363
  case "_ref":
2370
- case "_key":
2371
- case "_skip":
2372
2364
  case "_hObj":
2365
+ case "key":
2366
+ case "skip":
2373
2367
  break;
2374
2368
  case "id":
2375
2369
  id = attrs[a];