guestbell-forms 3.0.6 → 3.0.8
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.
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
import { FormContextState, ComponentsDict } from './FormContext';
|
2
|
+
import { FormContextState, FormComponentContextState, ComponentsDict } from './FormContext';
|
3
3
|
import { ThemeContextProps } from '../themeProvider/ThemeContext';
|
4
4
|
export declare type FormProps = React.PropsWithChildren<ThemeContextProps & {
|
5
5
|
id?: string;
|
@@ -8,7 +8,7 @@ export declare type FormProps = React.PropsWithChildren<ThemeContextProps & {
|
|
8
8
|
onSubmit?: () => void;
|
9
9
|
extraComponents?: ComponentsDict;
|
10
10
|
component?: keyof JSX.IntrinsicElements;
|
11
|
-
onValidChanged?: (isValid: boolean) => void;
|
11
|
+
onValidChanged?: (isValid: boolean, errors?: FormComponentContextState[]) => void;
|
12
12
|
}>;
|
13
13
|
export interface FormState {
|
14
14
|
contextState: FormContextState;
|
@@ -40,7 +40,7 @@ declare const _default: React.ForwardRefExoticComponent<ThemeContextProps & {
|
|
40
40
|
onSubmit?: () => void;
|
41
41
|
extraComponents?: ComponentsDict;
|
42
42
|
component?: keyof JSX.IntrinsicElements;
|
43
|
-
onValidChanged?: (isValid: boolean) => void;
|
43
|
+
onValidChanged?: (isValid: boolean, errors?: FormComponentContextState[]) => void;
|
44
44
|
} & {
|
45
45
|
children?: React.ReactNode;
|
46
46
|
} & React.RefAttributes<Form>>;
|
@@ -56,7 +56,14 @@ class Form extends React.PureComponent {
|
|
56
56
|
if (((_this$state$contextSt = this.state.contextState) === null || _this$state$contextSt === void 0 ? void 0 : _this$state$contextSt.isFormValid) !== (prevState === null || prevState === void 0 ? void 0 : (_prevState$contextSta = prevState.contextState) === null || _prevState$contextSta === void 0 ? void 0 : _prevState$contextSta.isFormValid)) {
|
57
57
|
var _this$props$onValidCh, _this$props, _this$state$contextSt2;
|
58
58
|
|
59
|
-
|
59
|
+
const componentsWithErrors = this.state.contextState ? Object.keys(this.state.contextState.components).map(key => this.state.contextState.components[key]).filter(component => {
|
60
|
+
if (!component.validation.isValid && !component.validation.name) {
|
61
|
+
console.warn(component, 'Has validation error. FormValidationSummary is present but the component has no validation name');
|
62
|
+
}
|
63
|
+
|
64
|
+
return !component.validation.isValid;
|
65
|
+
}) : [];
|
66
|
+
(_this$props$onValidCh = (_this$props = this.props).onValidChanged) === null || _this$props$onValidCh === void 0 ? void 0 : _this$props$onValidCh.call(_this$props, (_this$state$contextSt2 = this.state.contextState) === null || _this$state$contextSt2 === void 0 ? void 0 : _this$state$contextSt2.isFormValid, componentsWithErrors);
|
60
67
|
}
|
61
68
|
}
|
62
69
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Form.js","names":["Form","React","PureComponent","constructor","props","e","preventDefault","onSubmit","subscribe","bind","unSubscribe","updateCallback","disableComponents","enableComponents","state","contextState","isFormValid","components","componentDidUpdate","prevProps","prevState","snapshot","onValidChanged","extraComponents","Object","keys","forEach","key","component","componentApi","disableComponent","enableComponent","touchAll","touch","unTouchAll","unTouch","render","id","className","mergeContext","children","getIsFormValid","componentId","componentState","setState","previousState","assign","initialValid","validation","isValid","previousComponent","noValidate","showExpandAll","withThemeContext"],"sources":["../../../src/lib/components/form/Form.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport {\r\n FormContextState,\r\n FormComponentContextState,\r\n FormContextProvider,\r\n ComponentsDict,\r\n} from './FormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\n\r\nexport type FormProps = React.PropsWithChildren<\r\n ThemeContextProps & {\r\n id?: string;\r\n className?: string;\r\n noValidate?: boolean;\r\n onSubmit?: () => void;\r\n extraComponents?: ComponentsDict;\r\n component?: keyof JSX.IntrinsicElements;\r\n onValidChanged?: (isValid: boolean) => void;\r\n }\r\n>;\r\n\r\nexport interface FormState {\r\n contextState: FormContextState;\r\n}\r\n\r\nexport class Form extends React.PureComponent<FormProps, FormState> {\r\n public static defaultProps = {\r\n noValidate: false,\r\n showExpandAll: true,\r\n component: 'form' as keyof JSX.IntrinsicElements,\r\n };\r\n\r\n constructor(props: FormProps) {\r\n super(props);\r\n this.subscribe = this.subscribe.bind(this);\r\n this.unSubscribe = this.unSubscribe.bind(this);\r\n this.updateCallback = this.updateCallback.bind(this);\r\n this.disableComponents = this.disableComponents.bind(this);\r\n this.enableComponents = this.enableComponents.bind(this);\r\n this.state = {\r\n contextState: {\r\n subscribe: this.subscribe,\r\n unSubscribe: this.unSubscribe,\r\n isFormValid: true,\r\n updateCallback: this.updateCallback,\r\n disableComponents: this.disableComponents,\r\n enableComponents: this.enableComponents,\r\n components: {},\r\n },\r\n };\r\n }\r\n\r\n public componentDidUpdate(\r\n prevProps: Readonly<FormProps>,\r\n prevState: Readonly<FormState>,\r\n snapshot?: any\r\n ): void {\r\n if (\r\n this.state.contextState?.isFormValid !==\r\n prevState?.contextState?.isFormValid\r\n ) {\r\n this.props.onValidChanged?.(this.state.contextState?.isFormValid);\r\n }\r\n }\r\n\r\n public disableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.disableComponent &&\r\n component.componentApi.disableComponent();\r\n });\r\n }\r\n\r\n public enableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.enableComponent &&\r\n component.componentApi.enableComponent();\r\n });\r\n }\r\n\r\n public touchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.touch &&\r\n component.componentApi.touch();\r\n });\r\n }\r\n\r\n public unTouchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.unTouch &&\r\n component.componentApi.unTouch();\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <this.props.component\r\n {...(this.props.id && { id: this.props.id })}\r\n noValidate={true}\r\n role=\"form\"\r\n className={`input__form validation-form ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onSubmit={this.onSubmit}\r\n >\r\n <FormContextProvider value={this.mergeContext()}>\r\n {this.props.children}\r\n </FormContextProvider>\r\n </this.props.component>\r\n );\r\n }\r\n\r\n private mergeContext(): FormContextState {\r\n if (!this.props.extraComponents) {\r\n return this.state.contextState;\r\n }\r\n const isFormValid =\r\n this.state.contextState.isFormValid &&\r\n this.getIsFormValid(this.props.extraComponents);\r\n return {\r\n ...this.state.contextState,\r\n components: {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n },\r\n isFormValid,\r\n };\r\n }\r\n\r\n private onSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n this.props.onSubmit && this.props.onSubmit();\r\n };\r\n\r\n private subscribe(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n if (componentId) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n if (componentState) {\r\n components[componentId] = componentState;\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private unSubscribe(componentId: string) {\r\n if (componentId) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n delete components[componentId];\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private getIsFormValid(\r\n components: ComponentsDict = this.state.contextState.components,\r\n initialValid: boolean = true\r\n ): boolean {\r\n let isFormValid = initialValid;\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n if (component && component.validation && !component.validation.isValid) {\r\n isFormValid = false;\r\n }\r\n });\r\n return isFormValid;\r\n }\r\n\r\n private updateCallback(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n this.setState(previousState => {\r\n let components = Object.assign({}, previousState.contextState.components);\r\n const previousComponent = components[componentId];\r\n if (componentState && previousComponent) {\r\n components[componentId] = {\r\n ...previousComponent,\r\n ...componentState,\r\n validation: {\r\n ...previousComponent.validation,\r\n ...componentState.validation,\r\n },\r\n };\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...this.state.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport default withThemeContext<FormProps, InstanceType<typeof Form>>(\r\n Form,\r\n 'form'\r\n);\r\n"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Form.js","names":["Form","React","PureComponent","constructor","props","e","preventDefault","onSubmit","subscribe","bind","unSubscribe","updateCallback","disableComponents","enableComponents","state","contextState","isFormValid","components","componentDidUpdate","prevProps","prevState","snapshot","componentsWithErrors","Object","keys","map","key","filter","component","validation","isValid","name","console","warn","onValidChanged","extraComponents","forEach","componentApi","disableComponent","enableComponent","touchAll","touch","unTouchAll","unTouch","render","id","className","mergeContext","children","getIsFormValid","componentId","componentState","setState","previousState","assign","initialValid","previousComponent","noValidate","showExpandAll","withThemeContext"],"sources":["../../../src/lib/components/form/Form.tsx"],"sourcesContent":["// Libs\r\nimport * as React from 'react';\r\n\r\n// Misc\r\nimport {\r\n FormContextState,\r\n FormComponentContextState,\r\n FormContextProvider,\r\n ComponentsDict,\r\n} from './FormContext';\r\nimport { withThemeContext } from '../themeProvider/withThemeContext';\r\nimport { ThemeContextProps } from '../themeProvider/ThemeContext';\r\n\r\nexport type FormProps = React.PropsWithChildren<\r\n ThemeContextProps & {\r\n id?: string;\r\n className?: string;\r\n noValidate?: boolean;\r\n onSubmit?: () => void;\r\n extraComponents?: ComponentsDict;\r\n component?: keyof JSX.IntrinsicElements;\r\n onValidChanged?: (\r\n isValid: boolean,\r\n errors?: FormComponentContextState[]\r\n ) => void;\r\n }\r\n>;\r\n\r\nexport interface FormState {\r\n contextState: FormContextState;\r\n}\r\n\r\nexport class Form extends React.PureComponent<FormProps, FormState> {\r\n public static defaultProps = {\r\n noValidate: false,\r\n showExpandAll: true,\r\n component: 'form' as keyof JSX.IntrinsicElements,\r\n };\r\n\r\n constructor(props: FormProps) {\r\n super(props);\r\n this.subscribe = this.subscribe.bind(this);\r\n this.unSubscribe = this.unSubscribe.bind(this);\r\n this.updateCallback = this.updateCallback.bind(this);\r\n this.disableComponents = this.disableComponents.bind(this);\r\n this.enableComponents = this.enableComponents.bind(this);\r\n this.state = {\r\n contextState: {\r\n subscribe: this.subscribe,\r\n unSubscribe: this.unSubscribe,\r\n isFormValid: true,\r\n updateCallback: this.updateCallback,\r\n disableComponents: this.disableComponents,\r\n enableComponents: this.enableComponents,\r\n components: {},\r\n },\r\n };\r\n }\r\n\r\n public componentDidUpdate(\r\n prevProps: Readonly<FormProps>,\r\n prevState: Readonly<FormState>,\r\n snapshot?: any\r\n ): void {\r\n if (\r\n this.state.contextState?.isFormValid !==\r\n prevState?.contextState?.isFormValid\r\n ) {\r\n const componentsWithErrors = this.state.contextState\r\n ? Object.keys(this.state.contextState.components)\r\n .map(key => this.state.contextState.components[key])\r\n .filter(component => {\r\n if (!component.validation.isValid && !component.validation.name) {\r\n console.warn(\r\n component,\r\n 'Has validation error. FormValidationSummary is present but the component has no validation name'\r\n );\r\n }\r\n return !component.validation.isValid;\r\n })\r\n : [];\r\n this.props.onValidChanged?.(\r\n this.state.contextState?.isFormValid,\r\n componentsWithErrors\r\n );\r\n }\r\n }\r\n\r\n public disableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.disableComponent &&\r\n component.componentApi.disableComponent();\r\n });\r\n }\r\n\r\n public enableComponents() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.enableComponent &&\r\n component.componentApi.enableComponent();\r\n });\r\n }\r\n\r\n public touchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.touch &&\r\n component.componentApi.touch();\r\n });\r\n }\r\n\r\n public unTouchAll() {\r\n const components = {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n };\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n component &&\r\n component.componentApi &&\r\n component.componentApi.unTouch &&\r\n component.componentApi.unTouch();\r\n });\r\n }\r\n\r\n public render() {\r\n return (\r\n <this.props.component\r\n {...(this.props.id && { id: this.props.id })}\r\n noValidate={true}\r\n role=\"form\"\r\n className={`input__form validation-form ${\r\n this.props.className ? this.props.className : ''\r\n }`}\r\n onSubmit={this.onSubmit}\r\n >\r\n <FormContextProvider value={this.mergeContext()}>\r\n {this.props.children}\r\n </FormContextProvider>\r\n </this.props.component>\r\n );\r\n }\r\n\r\n private mergeContext(): FormContextState {\r\n if (!this.props.extraComponents) {\r\n return this.state.contextState;\r\n }\r\n const isFormValid =\r\n this.state.contextState.isFormValid &&\r\n this.getIsFormValid(this.props.extraComponents);\r\n return {\r\n ...this.state.contextState,\r\n components: {\r\n ...this.state.contextState.components,\r\n ...this.props.extraComponents,\r\n },\r\n isFormValid,\r\n };\r\n }\r\n\r\n private onSubmit = (e: React.FormEvent) => {\r\n e.preventDefault();\r\n this.props.onSubmit && this.props.onSubmit();\r\n };\r\n\r\n private subscribe(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n if (componentId) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n if (componentState) {\r\n components[componentId] = componentState;\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private unSubscribe(componentId: string) {\r\n if (componentId) {\r\n this.setState(previousState => {\r\n let components = Object.assign(\r\n {},\r\n previousState.contextState.components\r\n );\r\n delete components[componentId];\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...previousState.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n }\r\n\r\n private getIsFormValid(\r\n components: ComponentsDict = this.state.contextState.components,\r\n initialValid: boolean = true\r\n ): boolean {\r\n let isFormValid = initialValid;\r\n Object.keys(components).forEach(key => {\r\n const component = components[key];\r\n if (component && component.validation && !component.validation.isValid) {\r\n isFormValid = false;\r\n }\r\n });\r\n return isFormValid;\r\n }\r\n\r\n private updateCallback(\r\n componentId: string,\r\n componentState: FormComponentContextState\r\n ) {\r\n this.setState(previousState => {\r\n let components = Object.assign({}, previousState.contextState.components);\r\n const previousComponent = components[componentId];\r\n if (componentState && previousComponent) {\r\n components[componentId] = {\r\n ...previousComponent,\r\n ...componentState,\r\n validation: {\r\n ...previousComponent.validation,\r\n ...componentState.validation,\r\n },\r\n };\r\n }\r\n let isFormValid = this.getIsFormValid(components);\r\n return {\r\n contextState: {\r\n ...this.state.contextState,\r\n components,\r\n isFormValid,\r\n },\r\n };\r\n });\r\n }\r\n}\r\n\r\nexport default withThemeContext<FormProps, InstanceType<typeof Form>>(\r\n Form,\r\n 'form'\r\n);\r\n"],"mappings":"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"}
|
package/build/dist/report.html
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<head>
|
4
4
|
<meta charset="UTF-8"/>
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
6
|
-
<title>guestbell-forms [
|
6
|
+
<title>guestbell-forms [31 Mar 2023 at 12:0]</title>
|
7
7
|
<link rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAABrVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+O1foceMD///+J0/qK1Pr7/v8Xdr/9///W8P4UdL7L7P0Scr2r4Pyj3vwad8D5/f/2/f+55f3E6f34+/2H0/ojfMKpzOd0rNgQcb3F3O/j9f7c8v6g3Pz0/P/w+v/q+P7n9v6T1/uQ1vuE0vqLut/y+v+Z2fvt+f+15Pzv9fuc2/vR7v2V2Pvd6/bg9P7I6/285/2y4/yp3/zp8vk8i8kqgMT7/P31+fyv4vxGkcz6/P6/6P3j7vfS5PNnpNUxhcbO7f7F6v3O4vHK3/DA2u631Ouy0eqXweKJud5wqthfoNMMbLvY8f73+v2dxeR8sNtTmdDx9/zX6PSjyeaCtd1YnNGX2PuQveCGt95Nls42h8dLlM3F4vBtAAAAM3RSTlMAAyOx0/sKBvik8opWGBMOAe3l1snDm2E9LSb06eHcu5JpHbarfHZCN9CBb08zzkdNS0kYaptYAAAFV0lEQVRYw92X51/aYBDHHS2O2qqttVbrqNq9m+TJIAYIShBkWwqIiCgoWvfeq7Z2/s29hyQNyUcR7LveGwVyXy6XH8/9rqxglLfUPLxVduUor3h0rfp2TYvpivk37929TkG037hffoX0+peVtZQc1589rigVUdXS/ABSAyEmGIO/1XfvldSK8vs3OqB6u3m0nxmIrvgB0dj7rr7Y9IbuF68hnfFaiHA/sxqm0wciIG43P60qKv9WXWc1RXGh/mFESFABTSBi0sNAKzqet17eCtOb3kZIDwxEEU0oAIJGYxNBDhBND29e0rtXXbcpuPmED9IhEAAQ/AXEaF8EPmnrrKsv0LvWR3fg5sWDNAFZOgAgaKvZDogHNU9MFwnnYROkc56RD5CjAbQX9Ow4g7upCsvYu55aSI/Nj0H1akgKQEUM94dwK65hYRmFU9MIcH/fqJYOZYcnuJSU/waKDgTOEVaVKhwrTRP5XzgSpAITYzom7UvkhFX5VutmxeNnWDjjswTKTyfgluNDGbUpWissXhF3s7mlSml+czWkg3D0l1nNjGNjz3myOQOa1KM/jOS6ebdbAVTCi4gljHSFrviza7tOgRWcS0MOUX9zdNgag5w7rRqA44Lzw0hr1WqES36dFliSJFlh2rXIae3FFcDDgKdxrUIDePr8jGcSClV1u7A9xeN0ModY/pHMxmR1EzRh8TJiwqsHmKW0l4FCEZI+jHio+JdPPE9qwQtTRxku2D8sIeRL2LnxWSllANCQGOIiqVHAz2ye2JR0DcH+HoxDkaADLjgxjKQ+AwCX/g0+DNgdG0ukYCONAe+dbc2IAc6fwt1ARoDSezNHxV2Cmzwv3O6lDMV55edBGwGK9n1+x2F8EDfAGCxug8MhpsMEcTEAWf3rx2vZhe/LAmtIn/6apE6PN0ULKgywD9mmdxbmFl3OvD5AS5fW5zLbv/YHmcsBTjf/afDz3MaZTVCfAP9z6/Bw6ycv8EUBWJIn9zYcoAWWlW9+OzO3vkTy8H+RANLmdrpOuYWdZYEXpo+TlCJrW5EARb7fF+bWdqf3hhyZI1nWJQHgznErZhbjoEsWqi8dQNoE294aldzFurwSABL2XXMf9+H1VQGke9exw5P/AnA5Pv5ngMul7LOvO922iwACu8WkCwLCafvM4CeWPxfA8lNHcWZSoi8EwMAIciKX2Z4SWCMAa3snCZ/G4EA8D6CMLNFsGQhkkz/gQNEBbPCbWsxGUpYVu3z8IyNAknwJkfPMEhLyrdi5RTyUVACkw4GSFRNWJNEW+fgPGwHD8/JxnRuLabN4CGNRkAE23na2+VmEAUmrYymSGjMAYqH84YUIyzgzs3XC7gNgH36Vcc4zKY9o9fgPBXUAiHHwVboBHGLiX6Zcjp1f2wu4tvzZKo0ecPnDtQYDQvJXaBeNzce45Fp28ZQLrEZVuFqgBwOalArKXnW1UzlnSusQKJqKYNuz4tOnI6sZG4zanpemv+7ySU2jbA9h6uhcgpfy6G2PahirDZ6zvq6zDduMVFTKvzw8wgyEdelwY9in3XkEPs3osJuwRQ4qTkfzifndg9Gfc4pdsu82+tTnHZTBa2EAMrqr2t43pguc8tNm7JQVQ2S0ukj2d22dhXYP0/veWtwKrCkNoNimAN5+Xr/oLrxswKbVJjteWrX7eR63o4j9q0GxnaBdWgGA5VStpanIjQmEhV0/nVt5VOFUvix6awJhPcAaTEShgrG+iGyvb5a0Ndb1YGHFPEwoqAinoaykaID1o1pdPNu7XsnCKQ3R+hwWIIhGvORcJUBYXe3Xa3vq/mF/N9V13ugufMkfXn+KHsRD0B8AAAAASUVORK5CYII=" type="image/x-icon" />
|
8
8
|
|
9
9
|
<script>
|
package/package.json
CHANGED