peryl 1.5.21 → 1.5.22
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/hsml-appel_demo.html +1 -1
- package/demo/hsml-appel_demo.ts +14 -10
- package/dist/browser-esmodule/hsml-app.js +24 -25
- package/dist/browser-esmodule/hsml-app.js.map +1 -1
- package/dist/browser-esmodule/index.js +24 -25
- package/dist/browser-esmodule/index.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/index.js +1 -1
- package/dist/browser-umd/index.js.map +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.html +1 -1
- package/dist/demo/hsml-app_demo.html +1 -1
- package/dist/demo/hsml-appel_demo.39c5c95a.js +2 -0
- package/dist/demo/hsml-appel_demo.39c5c95a.js.map +1 -0
- package/dist/demo/hsml-appel_demo.fd0c6348.js +2 -0
- package/dist/demo/hsml-appel_demo.fd0c6348.js.map +1 -0
- package/dist/demo/hsml-appel_demo.html +1 -1
- package/dist/demo/hsml-appi_demo.26745db2.js +2 -0
- package/dist/demo/hsml-appi_demo.26745db2.js.map +1 -0
- package/dist/demo/hsml-appi_demo.eab18b83.js +2 -0
- package/dist/demo/hsml-appi_demo.eab18b83.js.map +1 -0
- package/dist/demo/hsml-appi_demo.html +1 -1
- package/dist/hsml-app.d.ts +8 -8
- package/dist/hsml-app.js +22 -17
- package/dist/hsml-app.js.map +1 -1
- package/package.json +1 -1
- package/src/hsml-app.ts +51 -29
- package/dist/browser-esmodule/google-analytics.js +0 -50
- package/dist/browser-esmodule/google-analytics.js.map +0 -1
- package/dist/browser-umd/google-analytics.js +0 -2
- package/dist/browser-umd/google-analytics.js.map +0 -1
- package/dist/demo/hsml-appel_demo.1da052b6.js +0 -2
- package/dist/demo/hsml-appel_demo.1da052b6.js.map +0 -1
- package/dist/demo/hsml-appel_demo.7fcc74a6.js +0 -2
- package/dist/demo/hsml-appel_demo.7fcc74a6.js.map +0 -1
- package/dist/demo/hsml-appi_demo.3d3d0e4e.js +0 -2
- package/dist/demo/hsml-appi_demo.3d3d0e4e.js.map +0 -1
- package/dist/demo/hsml-appi_demo.eac28520.js +0 -2
- package/dist/demo/hsml-appi_demo.eac28520.js.map +0 -1
- package/dist/google-analytics.d.ts +0 -21
- package/dist/google-analytics.js +0 -63
- package/dist/google-analytics.js.map +0 -1
- package/src/google-analytics.ts +0 -79
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"mappings":"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","sources":["src/hsml-app.ts"],"sourcesContent":["import { HAttrOnData, HAttrOnDataFnc, HElement, HElements, HHandlerCtx } from \"./hsml\";\nimport { hsmls2idomPatch } from \"./hsml-idom\";\n\nexport type HState<State> = () => State;\n\nexport type HView<State, HActionType extends string> = (\n state: State\n) => HElements<HActionType>;\n\nexport type HView1<State, HActionType extends string> = (\n state: State\n) => HElement<HActionType>;\n\nexport type HAppAction =\n | \"happ-init\"\n | \"happ-mount\"\n | \"happ-umount\"\n | \"happ-action\"\n | \"happ-attribute\";\n\nexport enum HAppActions {\n init = \"happ-init\",\n mount = \"happ-mount\",\n umount = \"happ-umount\",\n action = \"happ-action\",\n attribute = \"happ-attribute\"\n}\n\nexport interface HAction<HActionType extends string> {\n type: HActionType;\n data?: any;\n event?: Event;\n}\n\nexport type HDispatchScope =\n | \"element\"\n | \"window\";\n\nexport enum HDispatchScopes {\n element = \"element\",\n window = \"window\"\n}\n\nexport type HDispatch<HActionType extends string> = (\n type: HAction<HActionType>[\"type\"],\n data?: HAction<HActionType>[\"data\"],\n scope?: HDispatchScope | HDispatchScopes\n) => Promise<void>;\n\nexport type HDispatcher<State, HActionType extends string> = (\n // this: HApp<State, HActionType>,\n action: HAction<HActionType | HAppAction | HAppActions>,\n state: State,\n dispatch: HDispatch<HActionType>\n) => Promise<void>;\n\nconst schedule = window.requestAnimationFrame ||\n // window.webkitRequestAnimationFrame ||\n // (window as any).mozRequestAnimationFrame ||\n // (window as any).oRequestAnimationFrame ||\n // (window as any).msRequestAnimationFrame ||\n function (callback: Function) { window.setTimeout(callback, 1000 / 60); };\n\nconst unschedule = window.cancelAnimationFrame ||\n // window.webkitCancelAnimationFrame ||\n // (window as any).mozCancelAnimationFrame ||\n // (window as any).oCancelAnimationFrame ||\n // (window as any).msCancelAnimationFrame ||\n function (handle: number) { window.clearTimeout(handle); };\n\nconst msgAction = \"action:\";\nconst msgDispatch = \"dispatch:\";\nconst msgRender = \"render:\";\nconst msgUpdate = \"update:\";\n\nconst HAPP = \"happ\";\n\nexport interface HAppI<State, HActionType extends string> {\n state: HState<State>;\n view: HView<State, HActionType>;\n dispatcher: HDispatcher<State, HActionType>;\n element?: Element | string | null;\n debug?: boolean;\n name?: string;\n attributes?: string[];\n}\n\n/**\n * HApp definition\n *\n * @param hAppI HApp definition\n * @returns HApp instance\n */\nexport function happ<State, HActionType extends string>(hAppI: {\n state: HState<State>;\n view: HView<State, HActionType>;\n dispatcher: HDispatcher<State, HActionType>;\n element: Element | string | null;\n debug?: boolean;\n name?: string;\n // attributes?: string[];\n}) {\n return new HApp<State, HActionType>(\n hAppI.state,\n hAppI.view,\n hAppI.dispatcher,\n hAppI.element,\n hAppI.debug,\n hAppI.name\n // hAppI!.attributes\n );\n}\n\n// export type Class<T = object> = new (...args: any[]) => T;\n\n// export function happi<State, HActionType extends string>(\n// hAppI: Class<HAppI<State, HActionType>>,\n// element?: Element | string | null,\n// debug? boolean,\n// name?: string,\n// attributes: string[]\n// ) {\n// const hapi = new hAppI();\n// return new HApp<State, HActionType>(\n// hapi.state,\n// hapi.view,\n// hapi.dispatcher,\n// element,\n// debug\n// );\n// }\n\n// HAppEl\n\n/**\n * HApp custom HTML element definition.\n *\n * @param hAppI HApp definition\n */\nexport function happel<State, HActionType extends string>(hAppI: {\n state: HState<State>;\n view: HView<State, HActionType>;\n dispatcher: HDispatcher<State, HActionType>;\n /** Element suffix name, element name patern is `happ-${name}` */\n name: string;\n /** Element attribute list */\n attributes: string[];\n debug?: boolean;\n}): void {\n customElements.define(\n `${HAPP}-${hAppI.name}`,\n class HAppElement extends HTMLElement {\n static get observedAttributes() {\n return hAppI.attributes;\n }\n\n private _happel: HApp<State, HActionType>;\n\n constructor() {\n super();\n this._happel = new HApp<State, HActionType>(\n hAppI.state,\n hAppI.view,\n hAppI.dispatcher,\n undefined,\n hAppI.debug,\n hAppI.name,\n hAppI.attributes\n );\n (this._happel as any).customElement = this;\n }\n\n connectedCallback() {\n // this._happel.mount(this);\n this.attachShadow({ mode: \"open\" });\n this._happel.mount(this.shadowRoot as any);\n }\n\n disconnectedCallback() {\n this._happel.umount();\n }\n\n adoptedCallback() {\n this._happel.update();\n }\n\n attributeChangedCallback(\n attrName: string,\n oldVal: string | null,\n newVal: string | null\n ) {\n this._happel.dispatch(\n HAppActions.attribute as any,\n { attrName, oldVal, newVal });\n }\n }\n );\n}\n\n/**\n * HSML App\n */\nexport class HApp<State, HActionType extends string> implements HHandlerCtx<HActionType> {\n\n static log = console.log;\n static error = console.error;\n static warn = console.warn;\n\n readonly state: State;\n readonly view: HView<State, HActionType>;\n readonly dispatcher: HDispatcher<State, HActionType>;\n\n debug: boolean;\n\n readonly name: string;\n readonly attributes: string[];\n\n readonly element?: HTMLElement;\n readonly refs: { [key: string]: HTMLElement } = {};\n\n readonly customElement?: HTMLElement; // happ custom html element\n\n private _updateSched?: number;\n\n // private _onDispatch?: HDispatcher<State>;\n\n private _windowActionListener?: (event: Event) => void;\n\n constructor(\n state: HState<State>,\n view: HView<State, HActionType>,\n dispatcher?: HDispatcher<State, HActionType>,\n element?: Element | string | null,\n debug?: boolean ,\n name?: string,\n attributes?: string[]\n ) {\n this.debug = debug ?? false;\n this.name = name ?? HAPP;\n this.attributes = attributes ?? [];\n this.state = state();\n this.view = view;\n this.dispatcher = dispatcher ?? (async (a) => HApp.log(this.name, msgAction, a.type, a.data));\n this._dispatchAction(HAppActions.init, this).then(() => element && this.mount(element));\n }\n\n /**\n * Dispatch app action.\n */\n dispatch: HDispatch<HActionType> = async (\n type: HActionType,\n data?: any,\n scope?: HDispatchScope\n ): Promise<void> => {\n return this._dispatchAction(type, data, undefined, scope);\n }\n\n // onDispatch = (dispatcher: HDispatcher<State>): this => {\n // this._onDispatch = dispatcher;\n // return this;\n // }\n\n private async _dispatchAction(\n type: HActionType | HAppAction | HAppActions,\n data?: any,\n event?: Event,\n scope?: HDispatchScope\n ): Promise<void> {\n if (this.debug) {\n HApp.log(this.name, msgAction, { type, data, event });\n const t0 = performance.now();\n await this._dispatch(type, data, event, scope);\n const t1 = performance.now();\n HApp.log(this.name, msgDispatch, `${t1 - t0} ms`, this.state);\n } else {\n await this._dispatch(type, data, event, scope);\n }\n }\n\n private async _dispatch(\n type: HActionType | HAppAction | HAppActions,\n data: any,\n event?: Event,\n scope?: HDispatchScope\n ): Promise<void> {\n if (!scope) {\n try {\n await this.dispatcher(\n { type: type as HActionType, data, event },\n this.state,\n this.dispatch\n );\n } catch (e) {\n HApp.error(this.name, msgDispatch, e);\n }\n this.update();\n }\n scope === \"element\" && this._dispatchElement(type, data);\n scope === \"window\" && this._dispatchWindow(type, data);\n }\n\n private async _dispatchElement(\n type: HActionType | HAppAction | HAppActions,\n data?: any\n ): Promise<void> {\n this.customElement && elementDispatchCustomEvent(this.customElement, HAppActions.action, { type, data });\n !this.customElement && this.element && elementDispatchCustomEvent(this.element, HAppActions.action, { type, data });\n // this._onDispatch?.({ type, data, event }, this.state, this.dispatch);\n }\n\n private async _dispatchWindow(\n type: HActionType | HAppAction | HAppActions,\n data?: any): Promise<void> {\n window.dispatchEvent(new CustomEvent(HAppActions.action, { detail: { type, data } }));\n }\n\n /**\n * Window action listen and route actions to dispatcher.\n * Call this method on app mount action.\n * Listening will be stopped on app umount automatically.\n */\n windowActionListen() {\n if (!this._windowActionListener) {\n this._windowActionListener = (event: Event) => {\n const action = (event as CustomEvent).detail as HAction<HActionType>;\n this._dispatchAction(HAppActions.action, action);\n };\n window.addEventListener(HAppActions.action, this._windowActionListener);\n } else {\n HApp.warn(\"windowEventListener already added\");\n }\n }\n\n /**\n * Render HSML based on app state.\n */\n render = (): HElements<HActionType> => {\n if (this.debug) {\n const t0 = performance.now();\n let hsmls;\n try {\n hsmls = this.view(this.state);\n } catch (e) {\n HApp.error(this.name, msgRender, e);\n }\n const t1 = performance.now();\n HApp.log(this.name, msgRender, `${t1 - t0} ms`, hsmls);\n return hsmls ?? [];\n } else {\n let hsmls;\n try {\n hsmls = this.view(this.state);\n } catch (e) {\n HApp.error(this.name, msgRender, e);\n }\n return hsmls ?? [];\n }\n }\n\n /**\n * HSML action callback.\n */\n actionCb = (actionType: HActionType, data: HAttrOnData, event: Event): void => {\n data = (data?.constructor === Function)\n ? (data as HAttrOnDataFnc)(event)\n : data;\n if (data === undefined && event) {\n if (event instanceof CustomEvent) {\n data = event.detail;\n } else {\n data = formData(event) as any;\n // TODO middlewares for data processing\n // const middlewares: ((data: any, event: Event) => any)[] = [];\n // data = middlewares.reduce(\n // (data, middleware) => middleware(data, event),\n // data\n // );\n }\n }\n this._dispatchAction(actionType, data, event);\n }\n\n private _updateDom<HActionType extends string>(\n el: Element,\n hsml: HElements<HActionType>,\n ctx: HHandlerCtx<HActionType>\n ): void {\n if (this.debug) {\n const t0 = performance.now();\n hsmls2idomPatch(el, hsml, ctx);\n const t1 = performance.now();\n HApp.log(this.name, msgUpdate, `${t1 - t0} ms`, el);\n } else {\n hsmls2idomPatch(el, hsml, ctx);\n }\n }\n\n /**\n * Mount app to DOM element.\n *\n * @param e DOM element\n */\n mount = (e: Element | string | null): this => {\n const el = (typeof e === \"string\") ? document.getElementById(e) : e;\n if (el && (el as any)[HAPP]) {\n const a = (el as any)[HAPP] as HApp<State, HActionType>;\n a.umount();\n }\n if (el && !this.element) {\n (this as any).element = el;\n (el as any)[HAPP] = this;\n const hsmls = (this as any).render();\n this._updateDom<HActionType>(el, hsmls, this);\n this._dispatchAction(HAppActions.mount, this.element);\n }\n return this;\n }\n\n /**\n * Umount app to DOM element.\n */\n umount = (): this => {\n if (this.element) {\n this._dispatchAction(HAppActions.umount, this.element);\n if (this.element.hasAttribute(HAPP)) {\n this.element.removeAttribute(HAPP);\n }\n const aNodes = this.element.querySelectorAll(`[${HAPP}]`);\n for (let i = 0; i < aNodes.length; i++) {\n const a = (aNodes[i] as any).happ as HApp<State, HActionType>;\n a?.umount();\n }\n while (this.element.firstChild /*.hasChildNodes()*/) {\n this.element.removeChild(this.element.firstChild);\n }\n delete (this.element as any).happ;\n (this as any).element = undefined;\n }\n if (this._windowActionListener) {\n window.removeEventListener(HAppActions.action, this._windowActionListener);\n }\n return this;\n }\n\n /**\n * Update DOM element based on app state.\n */\n update = (): this => {\n if (this.element && !this._updateSched) {\n this._updateSched = schedule(() => {\n if (this.element) {\n const hsmls = this.render();\n this._updateDom<HActionType>(this.element, hsmls, this);\n }\n this._updateSched = undefined;\n });\n }\n return this;\n }\n\n toHsml = (): HElement<HActionType> => {\n if (this.element) {\n if (this._updateSched) {\n unschedule(this._updateSched);\n this._updateSched = undefined;\n } else {\n return [\"div\", { skip: true }];\n }\n }\n const hsmls = this.render();\n hsmls.push(\n (e: Element) => {\n if (!this.element) {\n (this as any).element = e;\n (e as any).happ = this;\n this._dispatchAction(HAppActions.mount, this.element);\n }\n });\n return [\"div\", hsmls];\n }\n\n toHtml = (): string => {\n return this.element ? this.element.outerHTML : \"\";\n }\n\n}\n\nfunction elementDispatchCustomEvent<HActionType extends string>(\n el: HTMLElement,\n type: HActionType,\n data: any\n) {\n el?.dispatchEvent(new CustomEvent(type, { detail: data }));\n (el as any)[`on${type}`]?.(new CustomEvent(type, { detail: data }));\n}\n\ntype FormDataInputValue = string | number | boolean | null | Array<string | number | boolean | null>;\n\ntype FormInputData = {\n name?: string;\n value: FormDataInputValue;\n valueString?: string;\n valueNumber?: number | null;\n valueDate?: Date | null;\n validation: string;\n valid: boolean;\n};\n\ntype FormData = {\n data: {\n [name: string]: FormDataInputValue;\n };\n validation: { [name: string]: string };\n valid: boolean;\n};\n\nexport type HFormInputData<Value = FormDataInputValue> = {\n name?: string;\n value: Value;\n valueString?: string | null;\n valueNumber?: number | null;\n valueDate?: Date | null;\n validation: string;\n valid: boolean;\n};\n\nexport type HFormData<Data> = {\n data: Data;\n validation: { [name in keyof Data]?: string };\n valid?: boolean;\n};\n\nfunction formData(e: Event): FormData | FormInputData | undefined {\n const el = e.target as HTMLElement;\n switch (el.nodeName) {\n case \"FORM\":\n (e as Event).preventDefault();\n const form: FormData = {\n data: {},\n validation: {},\n valid: true\n };\n const els = (el as HTMLFormElement).elements;\n for (let i = 0; i < els.length; i++) {\n const inputData = formInputData(els[i]);\n if (inputData && inputData.name) {\n const formData = form.data;\n const name = inputData.name;\n const value = inputData.value;\n if (formData[name] === undefined) {\n formData[name] = value;\n } else if (typeof formData[name] === \"string\" || formData[name] instanceof String) {\n if (value instanceof Array) {\n formData[name] = [formData[name] as string, ...value];\n } else {\n formData[name] = [formData[name] as string, value as string];\n }\n } else if (formData[name] instanceof Array) {\n if (value instanceof Array) {\n formData[name] = (formData[name] as Array<any>).concat(value);\n } else {\n (formData[name] as Array<any>).push(value);\n }\n } else {\n if (value instanceof Array) {\n formData[name] = [formData[name] as string, ...value];\n } else {\n formData[name] = [formData[name] as string, value];\n }\n }\n if (formData[name] instanceof Array) {\n formData[name] = (formData[name] as Array<any>)\n .filter(d => d !== null);\n if ((els[i] as HTMLInputElement).type === \"radio\") {\n formData[name] = (formData[name] as Array<any>).length\n ? (formData[name] as Array<any>)[0]\n : null;\n }\n }\n if (inputData.validation) {\n form.validation[name] = inputData.validation;\n }\n if (!inputData.valid) {\n form.valid = false;\n }\n }\n }\n return form;\n default:\n return formInputData(el);\n }\n}\n\nfunction formInputData(el: Element): FormInputData | undefined {\n // Client-side form validation\n // https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation\n const vel = el as HTMLInputElement;\n if (vel.willValidate) {\n let valid = true;\n for (const key in vel.validity) {\n if (key !== \"customError\" && key !== \"valid\") {\n if ((vel.validity as any)[key]) {\n const msgs = (vel as any)[\"validation\"];\n if (msgs) {\n const msg = (msgs as any)[key];\n if (msg) {\n vel.setCustomValidity(msg);\n // vel.reportValidity();\n valid = false;\n break;\n } else {\n vel.setCustomValidity(\"\");\n // vel.reportValidity();\n break;\n }\n }\n }\n }\n }\n if (valid) {\n vel.setCustomValidity(\"\");\n // vel.reportValidity();\n }\n }\n\n let data: FormInputData | undefined;\n switch (el.nodeName) {\n case \"INPUT\":\n const iel = el as HTMLInputElement;\n switch (iel.type) {\n case \"text\":\n case \"hidden\":\n case \"password\":\n case \"email\":\n case \"search\":\n case \"url\":\n case \"tel\":\n case \"color\":\n case \"submit\":\n case \"button\":\n data = {\n name: iel.name,\n value: iel.value === \"\" ? null : iel.value,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n break;\n case \"number\":\n case \"range\":\n data = {\n name: iel.name,\n value: isNaN(iel.valueAsNumber)\n ? null\n : iel.valueAsNumber,\n valueString: iel.value,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n break;\n case \"datetime-local\":\n data = {\n name: iel.name,\n value: iel.value === \"\" ? null : iel.value,\n valueNumber: isNaN(iel.valueAsNumber)\n ? null\n : iel.valueAsNumber,\n valueDate: isNaN(iel.valueAsNumber)\n ? null\n : new Date(iel.valueAsNumber),\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n break;\n case \"date\":\n case \"month\":\n case \"time\":\n case \"week\":\n data = {\n name: iel.name,\n value: iel.value === \"\" ? null : iel.value,\n valueNumber: isNaN(iel.valueAsNumber)\n ? null\n : iel.valueAsNumber,\n valueDate: iel.valueAsDate,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n break;\n case \"radio\":\n data = {\n name: iel.name,\n value: iel.checked ? iel.value : null,\n valueString: iel.value,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n break;\n case \"checkbox\":\n if (iel.value === \"on\") { // value not set in element\n data = {\n name: iel.name,\n value: iel.checked,\n valueString: iel.value,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n } else {\n data = {\n name: iel.name,\n value: iel.checked ? String(iel.value) : null,\n valueString: iel.value,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n }\n break;\n case \"file\":\n const files = (iel as any).files as FileList;\n const value: any = iel.multiple\n ? files[0]\n : files.length === 1 ? files[0] : null;\n data = {\n name: iel.name,\n value,\n valueString: iel.value,\n validation: iel.validationMessage,\n valid: iel.validity.valid\n };\n break;\n }\n break;\n case \"SELECT\":\n const sel = el as HTMLSelectElement;\n if (sel.multiple) {\n const values = Array.from(sel.selectedOptions).map(o => o.value);\n data = {\n name: sel.name,\n value: values,\n valueString: sel.value,\n validation: sel.validationMessage,\n valid: sel.validity.valid\n };\n } else {\n data = {\n name: sel.name,\n value: sel.value === \"\" ? null : sel.value,\n validation: sel.validationMessage,\n valid: sel.validity.valid\n };\n }\n break;\n case \"TEXTAREA\":\n const tel = el as HTMLTextAreaElement;\n data = {\n name: tel.name,\n value: tel.value === \"\" ? null : tel.value,\n validation: tel.validationMessage,\n valid: tel.validity.valid\n };\n break;\n case \"BUTTON\":\n const bel = el as HTMLButtonElement;\n data = {\n name: bel.name,\n value: bel.value === \"\" ? null : bel.value,\n validation: bel.validationMessage,\n valid: bel.validity.valid\n };\n break;\n }\n return data;\n}\n"],"names":["$fe5fa9c04fc86188$export$3dcd9fad60135c2c","HAppActions","$fe5fa9c04fc86188$export$3d736e925369e0e4","HDispatchScopes","$fe5fa9c04fc86188$var$schedule","window","requestAnimationFrame","callback","setTimeout","$fe5fa9c04fc86188$var$unschedule","cancelAnimationFrame","handle","clearTimeout","$fe5fa9c04fc86188$var$msgAction","$fe5fa9c04fc86188$var$msgDispatch","$fe5fa9c04fc86188$var$msgRender","$fe5fa9c04fc86188$var$HAPP","$fe5fa9c04fc86188$export$eb8950696418f795","hAppI","$fe5fa9c04fc86188$export$8cfef5dc37c46888","state","view","dispatcher","element","debug","name","$fe5fa9c04fc86188$export$1cfc54b3834d3c50","customElements","define","HTMLElement","observedAttributes","attributes","constructor","super","this","_happel","undefined","customElement","connectedCallback","attachShadow","mode","mount","shadowRoot","disconnectedCallback","umount","adoptedCallback","update","attributeChangedCallback","attrName","oldVal","newVal","dispatch","attribute","refs","type","data","scope","$fe5fa9c04fc86188$var$__awaiter","_dispatchAction","render","t0","performance","now","hsmls","e","error","t1","log","actionCb","actionType","event","Function","CustomEvent","detail","el","target","nodeName","preventDefault","form","validation","valid","els","elements","i","length","inputData","$fe5fa9c04fc86188$var$formInputData","formData","value","String","Array","concat","push","filter","d","$fe5fa9c04fc86188$var$formData","document","getElementById","_updateDom","hasAttribute","removeAttribute","aNodes","querySelectorAll","a","happ","firstChild","removeChild","_windowActionListener","removeEventListener","action","_updateSched","toHsml","skip","toHtml","outerHTML","init","then","_dispatch","_dispatchElement","_dispatchWindow","$fe5fa9c04fc86188$var$elementDispatchCustomEvent","dispatchEvent","windowActionListen","warn","addEventListener","hsml","ctx","$hrCkK","hsmls2idomPatch","_b","_a","call","vel","willValidate","key","validity","msgs","msg","setCustomValidity","iel","validationMessage","isNaN","valueAsNumber","valueString","valueNumber","valueDate","Date","valueAsDate","checked","files","multiple","sel","values","from","selectedOptions","map","o","tel","bel","console"],"version":3,"file":"hsml-appi_demo.eac28520.js.map"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare class GA {
|
|
2
|
-
static ga: GA;
|
|
3
|
-
static init(trackingId: string, dimensions?: Object): void;
|
|
4
|
-
static pageview(path: string, title?: string): void;
|
|
5
|
-
static event(name: string, parameters?: {
|
|
6
|
-
[k: string]: string;
|
|
7
|
-
}): void;
|
|
8
|
-
static set(parameters: {
|
|
9
|
-
[k: string]: string;
|
|
10
|
-
}): void;
|
|
11
|
-
private _trackingId;
|
|
12
|
-
constructor(trackingId: string, dimensions?: Object);
|
|
13
|
-
pageview(path: string, title?: string): void;
|
|
14
|
-
event(name: string, parameters?: {
|
|
15
|
-
[k: string]: string;
|
|
16
|
-
}): void;
|
|
17
|
-
set(parameters: {
|
|
18
|
-
[k: string]: string;
|
|
19
|
-
}): void;
|
|
20
|
-
private _load;
|
|
21
|
-
}
|
package/dist/google-analytics.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GA = void 0;
|
|
4
|
-
class GA {
|
|
5
|
-
static init(trackingId, dimensions) {
|
|
6
|
-
GA.ga = new GA(trackingId, dimensions);
|
|
7
|
-
}
|
|
8
|
-
static pageview(path, title) {
|
|
9
|
-
if (GA.ga) {
|
|
10
|
-
GA.ga.pageview(path, title);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
static event(name, parameters) {
|
|
14
|
-
if (GA.ga) {
|
|
15
|
-
GA.ga.event(name, parameters);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
static set(parameters) {
|
|
19
|
-
if (GA.ga) {
|
|
20
|
-
GA.ga.set(parameters);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
constructor(trackingId, dimensions) {
|
|
24
|
-
this._trackingId = trackingId;
|
|
25
|
-
this._load();
|
|
26
|
-
}
|
|
27
|
-
pageview(path, title) {
|
|
28
|
-
if (this._trackingId) {
|
|
29
|
-
self.gtag("config", this._trackingId, {
|
|
30
|
-
page_path: path,
|
|
31
|
-
page_title: title
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
event(name, parameters) {
|
|
36
|
-
if (this._trackingId) {
|
|
37
|
-
self.gtag("event", name, parameters);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
set(parameters) {
|
|
41
|
-
if (this._trackingId) {
|
|
42
|
-
self.gtag("set", parameters);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
_load() {
|
|
46
|
-
if (this._trackingId) {
|
|
47
|
-
const script = document.createElement("script");
|
|
48
|
-
script.async = true;
|
|
49
|
-
script.src = `https://www.googletagmanager.com/gtag/js?id=${this._trackingId}`;
|
|
50
|
-
document.getElementsByTagName("head")[0].appendChild(script);
|
|
51
|
-
const script1 = document.createElement("script");
|
|
52
|
-
script1.textContent = `
|
|
53
|
-
window.dataLayer = window.dataLayer || [];
|
|
54
|
-
function gtag(){dataLayer.push(arguments);}
|
|
55
|
-
gtag('js', new Date());
|
|
56
|
-
gtag('config', '${this._trackingId}');
|
|
57
|
-
`;
|
|
58
|
-
document.getElementsByTagName("head")[0].appendChild(script1);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.GA = GA;
|
|
63
|
-
//# sourceMappingURL=google-analytics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"google-analytics.js","sourceRoot":"","sources":["../src/google-analytics.ts"],"names":[],"mappings":";;;AACA,MAAa,EAAE;IAIX,MAAM,CAAC,IAAI,CAAC,UAAkB,EAAE,UAAmB;QAC/C,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,KAAc;QACxC,IAAI,EAAE,CAAC,EAAE,EAAE;YACP,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC/B;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,UAAoC;QAC3D,IAAI,EAAE,CAAC,EAAE,EAAE;YACP,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACjC;IACL,CAAC;IAED,MAAM,CAAC,GAAG,CAAC,UAAmC;QAC1C,IAAI,EAAE,CAAC,EAAE,EAAE;YACP,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SACzB;IACL,CAAC;IAID,YAAY,UAAkB,EAAE,UAAmB;QAC/C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,KAAc;QACjC,IAAI,IAAI,CAAC,WAAW,EAAE;YACjB,IAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EACzC;gBACI,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,KAAK;aACpB,CAAC,CAAC;SACV;IACL,CAAC;IAED,KAAK,CAAC,IAAY,EAAE,UAAoC;QACpD,IAAI,IAAI,CAAC,WAAW,EAAE;YACjB,IAAY,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;SACjD;IACL,CAAC;IAED,GAAG,CAAC,UAAmC;QACnC,IAAI,IAAI,CAAC,WAAW,EAAE;YACjB,IAAY,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;SACzC;IACL,CAAC;IAEO,KAAK;QACT,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,MAAM,CAAC,GAAG,GAAG,+CAA+C,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/E,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACjD,OAAO,CAAC,WAAW,GAAG;;;;kCAIA,IAAI,CAAC,WAAW;aACrC,CAAC;YACF,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACjE;IACL,CAAC;CAEJ;AAzED,gBAyEC"}
|
package/src/google-analytics.ts
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export class GA {
|
|
3
|
-
|
|
4
|
-
static ga: GA;
|
|
5
|
-
|
|
6
|
-
static init(trackingId: string, dimensions?: Object) {
|
|
7
|
-
GA.ga = new GA(trackingId, dimensions);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
static pageview(path: string, title?: string): void {
|
|
11
|
-
if (GA.ga) {
|
|
12
|
-
GA.ga.pageview(path, title);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
static event(name: string, parameters?: { [k: string]: string }): void {
|
|
17
|
-
if (GA.ga) {
|
|
18
|
-
GA.ga.event(name, parameters);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
static set(parameters: { [k: string]: string }): void {
|
|
23
|
-
if (GA.ga) {
|
|
24
|
-
GA.ga.set(parameters);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private _trackingId: string;
|
|
29
|
-
|
|
30
|
-
constructor(trackingId: string, dimensions?: Object) {
|
|
31
|
-
this._trackingId = trackingId;
|
|
32
|
-
this._load();
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
pageview(path: string, title?: string): void {
|
|
36
|
-
if (this._trackingId) {
|
|
37
|
-
(self as any).gtag("config", this._trackingId,
|
|
38
|
-
{
|
|
39
|
-
page_path: path,
|
|
40
|
-
page_title: title
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
event(name: string, parameters?: { [k: string]: string }): void {
|
|
46
|
-
if (this._trackingId) {
|
|
47
|
-
(self as any).gtag("event", name, parameters);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
set(parameters: { [k: string]: string }): void {
|
|
52
|
-
if (this._trackingId) {
|
|
53
|
-
(self as any).gtag("set", parameters);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
private _load(): void {
|
|
58
|
-
if (this._trackingId) {
|
|
59
|
-
const script = document.createElement("script");
|
|
60
|
-
script.async = true;
|
|
61
|
-
script.src = `https://www.googletagmanager.com/gtag/js?id=${this._trackingId}`;
|
|
62
|
-
document.getElementsByTagName("head")[0].appendChild(script);
|
|
63
|
-
|
|
64
|
-
const script1 = document.createElement("script");
|
|
65
|
-
script1.textContent = `
|
|
66
|
-
window.dataLayer = window.dataLayer || [];
|
|
67
|
-
function gtag(){dataLayer.push(arguments);}
|
|
68
|
-
gtag('js', new Date());
|
|
69
|
-
gtag('config', '${this._trackingId}');
|
|
70
|
-
`;
|
|
71
|
-
document.getElementsByTagName("head")[0].appendChild(script1);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// const ga = new GA("track-id");
|
|
78
|
-
// GA.ga = ga;
|
|
79
|
-
// ga.pageview("my-page");
|