niris-public-community-components 0.0.5 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/form-niris.d.ts.map +1 -1
- package/dist/form-niris.js +3 -3
- package/dist/form-niris.js.map +1 -1
- package/dist/form-to-niris.js +3 -3
- package/dist/index.js +2 -2
- package/dist/textarea-to-niris.js +9 -60
- package/package.json +1 -1
- package/src/form-niris.ts +16 -16
- package/src/textarea-to-niris.ts +1 -1
package/dist/form-niris.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"form-niris.d.ts","sourceRoot":"","sources":["../src/form-niris.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAqB,MAAM,KAAK,CAAC;AAQnD,OAAO,EAAO,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAE7D,OAAO,EACL,cAAc,EAKf,MAAM,SAAS,CAAC;AAajB,eAAO,MAAO,SAAS;;GAAE,SAAS;;CAIhC,CAAC;AAQH;;GAEG;AACH,qBACa,SAAU,SAAQ,UAAU;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,cAAc,EAAE,CAAC;IAE3D,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,WAAW,CAAQ;IAED,UAAU,
|
1
|
+
{"version":3,"file":"form-niris.d.ts","sourceRoot":"","sources":["../src/form-niris.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAqB,MAAM,KAAK,CAAC;AAQnD,OAAO,EAAO,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAE7D,OAAO,EACL,cAAc,EAKf,MAAM,SAAS,CAAC;AAajB,eAAO,MAAO,SAAS;;GAAE,SAAS;;CAIhC,CAAC;AAQH;;GAEG;AACH,qBACa,SAAU,SAAQ,UAAU;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,cAAc,EAAE,CAAC;IAE3D,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,WAAW,CAAQ;IAED,UAAU,SAAgB;IAC1B,UAAU,SAAe;IAEzB,MAAM,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAG5D,OAAO,CAAC,SAAS,CAAiB;IAGlC,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,YAAY,CAAgB;IAGpC,OAAO,CAAC,QAAQ,CAAS;IAGzB,OAAO,CAAC,KAAK,CAAS;IAGtB,OAAO,CAAC,WAAW,CAAM;IAGzB,OAAO,CAAC,cAAc,CAAM;IAGF,MAAM,SACoD;IAIpF,OAAO,CAAC,MAAM,CAAM;IAGpB,OAAO,CAAC,YAAY,CAAM;IAG1B,OAAO,CAAC,QAAQ,CAAM;IAGtB,OAAO,CAAC,SAAS,CAAM;IAGvB,OAAO,CAAC,OAAO,CAAS;;IA+BxB,SAAS;IAQT,QAAQ;IAeC,YAAY;IAOrB,uBAAuB;IAUd,iBAAiB;YAKZ,eAAe;IAgB7B,OAAO,CAAC,YAAY,CA6BjB;IAEM,OAAO;IAIhB,OAAO,CAAC,SAAS;IAIR,MAAM;IAaf,WAAW;IAgCX,aAAa;IAgCb,YAAY;IAgBZ,UAAU;IA2LV,iBAAiB;IAoGjB,iBAAiB;IAsDjB,SAAS;IAiEH,QAAQ,CAAC,KAAK,EAAE,WAAW;IAqFjC,YAAY,CAAC,IAAI,EAAE,GAAG;IA6BtB,YAAY,CAAC,KAAK,EAAE,UAAU;IAyB9B,KAAK,IAAI,MAAM,EAAE;IAWX,UAAU,CAAC,CAAC,EAAE,iBAAiB;IA8B/B,aAAa;IAqBnB,OAAgB,MAAM,4BAmQpB;CACH;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
|
package/dist/form-niris.js
CHANGED
@@ -92,7 +92,7 @@ let FormNiris = class FormNiris extends LitElement {
|
|
92
92
|
this.extensionFiles = '';
|
93
93
|
this.characteristics = [];
|
94
94
|
this.locale = this.locale ? this.locale : 'es';
|
95
|
-
setLocale(this.locale);
|
95
|
+
// setLocale(this.locale);
|
96
96
|
// Map
|
97
97
|
L.Icon.Default.imagePath = `https://unpkg.com/leaflet@${L.version}/dist/images/`;
|
98
98
|
this._markerIcon = new L.Icon({
|
@@ -597,7 +597,7 @@ let FormNiris = class FormNiris extends LitElement {
|
|
597
597
|
<div>
|
598
598
|
<button
|
599
599
|
type="button"
|
600
|
-
.disabled="${!
|
600
|
+
.disabled="${!this.street.length}"
|
601
601
|
@click="${this.searchAddress}"
|
602
602
|
>
|
603
603
|
${msg('Buscar')}
|
@@ -705,7 +705,7 @@ let FormNiris = class FormNiris extends LitElement {
|
|
705
705
|
});
|
706
706
|
if ('characteristics' in errors) {
|
707
707
|
const characteristics = errors['characteristics'];
|
708
|
-
for (
|
708
|
+
for (const [key, errors] of characteristics.entries()) {
|
709
709
|
if (Object.keys(errors).length !== 0) {
|
710
710
|
debugger;
|
711
711
|
const input = this.shadowRoot?.getElementById(`niris-${key}`);
|
package/dist/form-niris.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"form-niris.js","sourceRoot":"","sources":["../src/form-niris.ts"],"names":[],"mappings":"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","sourcesContent":["import {LitElement, html, css, nothing} from 'lit';\nimport {property, state} from 'lit/decorators.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {choose} from 'lit/directives/choose.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {when} from 'lit/directives/when.js';\nimport {Task} from '@lit/task';\nimport {globalStyles} from './styles/globalStyles';\nimport {Icon, LeafletMouseEvent, Map, Marker} from 'leaflet';\nimport {msg, localized } from '@lit/localize';\nimport {\n Characteristic,\n CharacteristicElement,\n CharacteristicTypeEnum,\n Districte,\n FormDataIncidents,\n} from './types';\nimport {configureLocalization} from '@lit/localize';\n// Generated via output.localeCodesModule\nimport {sourceLocale, targetLocales} from './generated/locale-codes.js';\n\n// https://github.com/Leaflet/Leaflet/issues/7055\n// https://github.com/Leaflet/Leaflet/pull/7174\n// https://github.com/Leaflet/Leaflet/pull/6239\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport * as L from 'leaflet/dist/leaflet-src.esm.js';\n\n\nexport const {getLocale, setLocale} = configureLocalization({\n sourceLocale,\n targetLocales,\n loadLocale: (locale) => import(`./generated/locales/${locale}.js`),\n});\n\n/* TODO:\n- Boton volver, ruta por property o volver atras mirando hsitory\n- Mascaras \n- Validaciones archivos extensiones.\n*/\n\n/**\n * An example element.\n */\n@localized()\nexport class FormNiris extends LitElement {\n @property({type: Number}) detailID: Number | undefined;\n @property({type: String}) actionUrl: string;\n @property({type: String}) apiUrl: string;\n\n @property({type: String}) area: string;\n @property({type: String}) element: string;\n @property({type: String}) detail: string;\n @property({type: Array}) characteristics: Characteristic[];\n\n private _marker!: Marker | null;\n private _map!: Map;\n private _markerIcon!: Icon;\n\n @property({type: String}) defaultLat: string = '39.5701058'; // Palma de Mallorca\n @property({type: String}) defaultLon: string = '2.6487098';\n\n @property({type: String}) locale: 'es' | 'en' | 'ca' = 'es';\n\n @state()\n private isCitizen: Boolean = true;\n\n @state()\n private activeMap: boolean = false;\n\n @state()\n private ubiDistricts: Object[] = [];\n\n @state()\n private submited: boolean = false;\n\n @state()\n private error: boolean = false;\n\n @state()\n private incidenceId: string = '';\n\n @state()\n private extensionFiles: string = '';\n\n /* Map */\n @property({type: String}) domain: string =\n 'https://iris2-backend-demo-iris-community.labs.apsl.io/services/iris/api-public';\n // TODO property for lat and lon\n\n @state()\n private street: string = '';\n\n @state()\n private streetNumber: string = '';\n\n @state()\n private latitude: string = '';\n\n @state()\n private longitude: string = '';\n\n @state()\n private loading: boolean = false;\n\n constructor() {\n super();\n this.detailID = undefined;\n this.actionUrl = '';\n this.apiUrl = '';\n\n this.area = '';\n this.element = '';\n this.detail = '';\n this.extensionFiles = '';\n this.characteristics = [];\n\n this.locale = this.locale ? this.locale : 'es';\n setLocale(this.locale);\n\n // Map\n L.Icon.Default.imagePath = `https://unpkg.com/leaflet@${L.version}/dist/images/`;\n this._markerIcon = new L.Icon({\n iconUrl:\n 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png',\n shadowUrl:\n 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n popupAnchor: [1, -34],\n shadowSize: [41, 41],\n }); \n }\n\n getApiUrl() {\n if (this.apiUrl.endsWith('/')) {\n return this.apiUrl.slice(0, this.apiUrl.lastIndexOf('/'));\n } else {\n return this.apiUrl;\n }\n }\n\n _loadMap() {\n const mapEl = this.shadowRoot?.querySelector('#map');\n this._map = L.map(mapEl, {\n markerZoomAnimation: false,\n attributionControl: false,\n }).setView([this.defaultLat, this.defaultLon], 15);\n\n L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution:\n '© <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors',\n }).addTo(this._map);\n\n this._map.on('click', (e) => this.onMapClick(e));\n }\n\n override firstUpdated() {\n /* Disable default form validation */\n const form = this.shadowRoot?.querySelector('form');\n form?.setAttribute('novalidate', '');\n this.addOnChangEventToInputs()\n }\n\n addOnChangEventToInputs() {\n const inputs: HTMLInputElement[] = Array.from(this.shadowRoot?.querySelectorAll('input') ?? []);\n inputs.forEach((input: HTMLInputElement) => {\n input.addEventListener('keyup', () => { \n input.setCustomValidity('');\n });\n });\n }\n\n /* Lifecycle */\n override connectedCallback() {\n super.connectedCallback();\n this._fetchDistricts();\n }\n\n private async _fetchDistricts() {\n const response = await fetch(`${this.getApiUrl()}/districts`, {\n headers: {\n 'Accept-Language': this.locale,\n },\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n\n data.results.map((district: Districte) => {\n this.ubiDistricts.push({value: `${district.id}`, label: district.name});\n });\n }\n\n private _fetchFields = new Task(this, {\n task: async ([detailID], {signal}) => {\n const response = await fetch(\n `${this.getApiUrl()}/details/${detailID}/fields`,\n {\n headers: {\n 'Accept-Language': this.locale,\n },\n signal\n }\n );\n if (!response.ok) {\n this.error = true;\n }\n const data = await response.json();\n this.area = data.area;\n this.element = data.element;\n this.detail = data.detail;\n this.characteristics = data.characteristics as Characteristic[];\n this.extensionFiles = data.extension_files;\n const ubiInfo = data.mandatory_drupal_fields.ubication;\n if (ubiInfo?.street_name && ubiInfo?.number) {\n this.activeMap = true;\n this._loadMap();\n }\n\n return data;\n },\n args: () => [this.detailID],\n });\n\n override updated() {\n this.addOnChangEventToInputs();\n }\n\n private changeTab(value: Boolean) {\n this.isCitizen = value;\n }\n\n override render() {\n let content = html``;\n\n if (this.error || this.submited) {\n content = this.error ? this.renderError() : this.renderSuccess();\n } else {\n content = this.renderForm();\n }\n\n return html` ${this.renderHeader()}\n <main class=\"container\">${content}</main>`;\n }\n\n renderError() {\n return html`\n <section class=\"success-submit\">\n <article class=\"success-submit__card success-submit__card--error \">\n <svg\n class=\"succes-submit__svg succes-submit__svg--error\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100px\"\n height=\"100px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M10.0303 8.96965C9.73741 8.67676 9.26253 8.67676 8.96964 8.96965C8.67675 9.26255 8.67675 9.73742 8.96964 10.0303L10.9393 12L8.96966 13.9697C8.67677 14.2625 8.67677 14.7374 8.96966 15.0303C9.26255 15.3232 9.73743 15.3232 10.0303 15.0303L12 13.0607L13.9696 15.0303C14.2625 15.3232 14.7374 15.3232 15.0303 15.0303C15.3232 14.7374 15.3232 14.2625 15.0303 13.9696L13.0606 12L15.0303 10.0303C15.3232 9.73744 15.3232 9.26257 15.0303 8.96968C14.7374 8.67678 14.2625 8.67678 13.9696 8.96968L12 10.9393L10.0303 8.96965Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 1.25C6.06294 1.25 1.25 6.06294 1.25 12C1.25 17.9371 6.06294 22.75 12 22.75C17.9371 22.75 22.75 17.9371 22.75 12C22.75 6.06294 17.9371 1.25 12 1.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75C17.1086 2.75 21.25 6.89137 21.25 12C21.25 17.1086 17.1086 21.25 12 21.25C6.89137 21.25 2.75 17.1086 2.75 12Z\"\n />\n </svg>\n <h2 class=\"succes-submit__title\">${msg('Ha ocurrido un error')}</h2>\n <p class=\"success-submit__text\">\n ${msg('Sentimos las molestias. Vuelva a intentelo más tarde')}.\n </p>\n <a class=\"success-submit__anchor btn btn-error text-center\" href=\"/\"\n >${msg('Volver')}</a\n >\n </article>\n </section>\n `;\n }\n renderSuccess() {\n return html`\n <section class=\"success-submit\">\n <article class=\"success-submit__card\">\n <svg\n class=\"succes-submit__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100px\"\n height=\"100px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M16.0303 10.0303C16.3232 9.73744 16.3232 9.26256 16.0303 8.96967C15.7374 8.67678 15.2626 8.67678 14.9697 8.96967L10.5 13.4393L9.03033 11.9697C8.73744 11.6768 8.26256 11.6768 7.96967 11.9697C7.67678 12.2626 7.67678 12.7374 7.96967 13.0303L9.96967 15.0303C10.2626 15.3232 10.7374 15.3232 11.0303 15.0303L16.0303 10.0303Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 1.25C6.06294 1.25 1.25 6.06294 1.25 12C1.25 17.9371 6.06294 22.75 12 22.75C17.9371 22.75 22.75 17.9371 22.75 12C22.75 6.06294 17.9371 1.25 12 1.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75C17.1086 2.75 21.25 6.89137 21.25 12C21.25 17.1086 17.1086 21.25 12 21.25C6.89137 21.25 2.75 17.1086 2.75 12Z\"\n />\n </svg>\n <h2 class=\"succes-submit__title\">${msg('¡Ficha creada!')}</h2>\n <p class=\"success-submit__text\">\n ${msg('El codi de seguiment és')}:\n <strong class=\"color-primary\">${this.incidenceId}</strong>\n </p>\n <button type=\"button\" class=\"success-submit__anchor btn text-center\" @click=\"${() => history.back()}\">${msg('Volver')}:</button>\n </article>\n </section>\n `;\n }\n\n renderHeader() {\n return html`\n <header class=\"header\">\n <h1 class=\"header__title\">\n ${this.area} > ${this.element} > ${this.detail}\n </h1>\n <p class=\"header__info\">\n ${msg('Agradecemos que nos haya hecho llegar su reconocimiento, el cual se hará llegar al departamento responsable. Con esta información, damos por contestada su comunicación')}.\n </p>\n <p class=\"header__info info--danger\">\n ${msg('Los campos marcados con un (*) son obligatorios.')}\n </p>\n </header>\n `;\n }\n\n renderForm() {\n const classesActiveCitizen = this.isCitizen ? 'tablink--active' : '';\n const classesActiveCompnay = !this.isCitizen ? 'tablink--active' : '';\n\n const stylesCharacteristics = {\n display: this.characteristics.length == 0 ? 'none' : '',\n };\n\n return html`\n <section class=\"record\">\n <h2 class=\"record__comment\">${msg('Mensaje')}</h2>\n <form method=\"post\" @submit=${this.onSubmit}>\n <input\n type=\"hidden\"\n name=\"detailId\"\n value=\"${ifDefined(this.detailID)}\"\n />\n <label for=\"comments\">${msg('Escriba brevemente su mensaje')}*:</label>\n <textarea\n id=\"comments\"\n name=\"comments\"\n required\n minlength=\"4\"\n placeholder=${msg('Escribe tu consulta aquí')}\n ></textarea>\n <label for=\"file\">${msg('Añadir archivo')}</label>\n <input\n multiple\n accept=\".${this.extensionFiles.split(';').join(',.')}\"\n type=\"file\"\n name=\"file\"\n id=\"input_1\"\n aria-describedby=\"help-input_1\"\n />\n <p class=\"text-error\"></p>\n <div class=\"help-text\" id=\"file\">\n ${msg('Aceptados:')} ${this.extensionFiles}\n </div>\n\n <section class=\"map\">\n <h2 class=\"text-center\">${msg('Ubicación')}</h2>\n <div id=\"map\" ?hidden=${!this.activeMap}></div>\n ${when(\n this.activeMap,\n () => this.renderMap(),\n () =>\n this.ubiDistricts.length > 0\n ? html`\n <div>\n <label for=\"map-district\">${msg('Distrito*:')}</label>\n <select\n required\n id=\"map-district\"\n name=\"location.district\"\n >\n ${this.ubiDistricts.map(\n (district: any) =>\n html`<option value=\"${district.value}\">\n ${district.label}\n </option>`\n )}\n </select>\n </div>\n `\n : html``\n )}\n </section>\n\n <h2\n class=\"text-center color-primary\"\n style=${styleMap(stylesCharacteristics)}\n >\n ${msg('Características de la petición')}\n </h2>\n <section class=\"characteristics-form\">\n ${this._fetchFields.render({\n pending: () => html`<p>${msg('Cargando formulario')}...</p>`,\n complete: () => html`\n ${this.characteristics.map(\n (characteristic) => html`\n <div>\n <label for=\"niris-${characteristic.id}\"\n >${characteristic.title}${characteristic.mandatory\n ? '*'\n : ''}:</label\n >\n ${choose(\n characteristic.type,\n [\n [\n CharacteristicTypeEnum.Number,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"number\"\n ?required=${characteristic.mandatory}\n placeholder=${characteristic.explanatory_text}\n />`,\n ],\n [\n CharacteristicTypeEnum.Options,\n () => html`<select\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n ?required=${characteristic.mandatory}\n >\n ${characteristic.options.map(\n (option) =>\n html`<option value=\"${option}\">\n ${option}\n </option>`\n )}\n </select>`,\n ],\n [\n CharacteristicTypeEnum.Date,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"date\"\n ?required=${characteristic.mandatory}\n />`,\n ],\n [\n CharacteristicTypeEnum.Time,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"time\"\n ?required=${characteristic.mandatory}\n />`,\n ],\n [\n CharacteristicTypeEnum.Text,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"text\"\n ?required=${characteristic.mandatory}\n placeholder=${characteristic.explanatory_text}\n />`,\n ],\n ],\n () => html`<p>${msg('Not implemented')}</p>`\n )}\n </div>\n `\n )}\n `,\n error: () => html`<p>${msg('Error cargando el formulario')}</p>`,\n })}\n </section>\n\n <h2 class=\"text-center\">${msg('Datos personales')}</h2>\n <div class=\"tab\">\n <div\n class=\"tab__tablink ${classesActiveCitizen}\"\n @click=${() => this.changeTab(true)}\n >\n ${msg('Ciudadano')}\n </div>\n <div\n class=\"tab__tablink ${classesActiveCompnay}\"\n @click=\"${() => this.changeTab(false)}\"\n >\n ${msg('Empresa/Entidad')}\n </div>\n </div>\n <div class=\"tab__tabcontent\">\n ${this.isCitizen\n ? this.renderCitizenForm()\n : this.renderCompanyForm()}\n </div>\n <button id=\"submit-btn\" type=\"submit\" ?disabled=${this.loading}>\n <div class=\"loader\" ?hidden=${!this.loading} id=\"loader\"></div>\n ${this.loading ? 'Enviando' : 'Enviar'}\n <!-- TODO -->\n </button>\n </form>\n </section>\n `;\n }\n\n renderCitizenForm() {\n return html`\n <div>\n <label for=\"nameCitizen\">${msg('Nombre')}*:</label>\n <input id=\"nameCitizen\" name=\"nameCitizen\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"firstSurname\">${msg('Primer apellido')}*:</label>\n <input id=\"firstSurname\" name=\"firstSurname\" type=\"text\" />\n </div>\n\n <div>\n <label for=\"secondSurname\">${msg('Segundo apellido')}*:</label>\n <input id=\"secondSurname\" name=\"secondSurname\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"document-type\">${msg('Tipo de Documento')}*:</label>\n <select id=\"typeDocument\" name=\"typeDocument\" required>\n <option value=\"0\" selected>${msg('NIF/DNI')}</option>\n <option value=\"1\">${msg('NIE')}</option>\n <option value=\"2\">${msg('Passaporte')}</option>\n </select>\n </div>\n\n <div>\n <label for=\"numberDocument\">${msg('Núm. Documento')}*:</label>\n <input\n id=\"numberDocument\"\n name=\"numberDocument\"\n type=\"text\"\n required\n />\n </div>\n\n <div>\n <label for=\"birthYear\">${msg('Año de nacimiento')}:</label>\n <select id=\"birthYear\" name=\"birthYear\">\n ${this.years().map(\n (year) => html`<option value=\"${year}\">${year}</option>`\n )}\n </select>\n </div>\n\n ${this.ubiDistricts.length > 0\n ? html`\n <div>\n <label for=\"district\">${msg('Distrito')}*:</label>\n <select required id=\"district\" name=\"district\">\n ${this.ubiDistricts.map(\n (district: any) =>\n html`<option value=\"${district.value}\">\n ${district.label}\n </option>`\n )}\n </select>\n </div>\n `\n : nothing}\n\n <div>\n <label for=\"email\">${msg('Correo electrónico')}*:</label>\n <input\n id=\"email\"\n name=\"email\"\n type=\"email\"\n required\n placeholder=${msg('Escribe tu correo')}\n />\n </div>\n\n <div>\n <label for=\"email_confirm\">${msg('Confirma correo electrónico')}*:</label>\n <input\n id=\"email_confirm\"\n name=\"email_confirm\"\n @focusout=${(event: FocusEvent) => this.confirmEmail(event as FocusEvent)}\n type=\"email\"\n required\n placeholder=${msg('Confirma tu correo')}\n />\n <span class=\"text-error\" hidden id=\"email_confirm_error\"\n >${msg('Los emails no conciden')}</span\n >\n </div>\n\n <div>\n <label for=\"phone\">${msg('Teléfono')}*:</label>\n <input\n id=\"phone\"\n name=\"phone\"\n type=\"tel\"\n minlength=\"9\"\n placeholder=${msg('Escribe tu teléfono')}\n />\n </div>\n `;\n }\n\n renderCompanyForm() {\n return html`\n <div>\n <label for=\"socialReason\">${msg('Razón social')}*:</label>\n <input id=\"socialReason\" name=\"socialReason\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"contactPerson\">${msg('Persona de contacto')}*:</label>\n <input id=\"contactPerson\" name=\"contactPerson\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"cif\">${msg('CIF')}*:</label>\n <input id=\"cif\" name=\"cif\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"email\">${msg('Email')}*:</label>\n <input\n id=\"email\"\n name=\"email\"\n type=\"text\"\n type=\"email\"\n required\n />\n </div>\n\n <div>\n <label for=\"email_confirm\">${msg('Confirma el email')}*:</label>\n <input\n id=\"email_confirm\"\n name=\"email_confirm\"\n type=\"text\"\n type=\"email\"\n required\n @focusout=${(event: FocusEvent) => this.confirmEmail(event as FocusEvent)}\n />\n <span class=\"text-error\" hidden id=\"email_confirm_error\"\n >${msg('Los emails no conciden')}</span\n >\n </div>\n\n <div>\n <label for=\"phone\">${msg('Idioma de la respuesta')}*:</label>\n <select id=\"phone\" name=\"language\" required>\n <option value=\"es\" selected>${msg('Español')}</option>\n <option value=\"ca\">${msg('Catalán')}</option>\n <option value=\"en\">${msg('Inglés')}</option>\n </select>\n </div>\n `;\n }\n\n renderMap() {\n return html`\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.skypack.dev/leaflet/dist/leaflet.css\"\n />\n <section class=\"map-form\">\n <div>\n <label for=\"map-address\">${msg('Calle')}*:</label>\n <input\n id=\"map-address\"\n required\n type=\"text\"\n @keyup=\"${(event: KeyboardEvent) =>\n (this.street = (event.target as HTMLInputElement).value)}\"\n .value=\"${this.street}\"\n name=\"address\"\n />\n <input name=\"latitude\" hidden .value=\"${this.latitude}\" />\n <input name=\"longitude\" hidden .value=\"${this.longitude}\" />\n </div>\n\n <div>\n <label for=\"map-number\">${msg('Número')}*:</label>\n <input\n id=\"map-number\"\n @keyup=\"${(event: KeyboardEvent) =>\n (this.streetNumber = (event.target as HTMLInputElement).value)}\"\n .value=\"${this.streetNumber}\"\n required\n type=\"text\"\n name=\"number\"\n />\n </div>\n\n <div>\n <button\n type=\"button\"\n .disabled=\"${!Boolean(this.street.length)}\"\n @click=\"${this.searchAddress}\"\n >\n ${msg('Buscar')}\n </button>\n </div>\n </section>\n\n <section class=\"map-form-grid\">\n <div>\n <label for=\"map-floor\">${msg('Piso')}:</label>\n <input id=\"map-floor\" type=\"text\" name=\"floor\" />\n </div>\n\n <div>\n <label for=\"map-stair\">${msg('Escalera')}:</label>\n <input id=\"map-stair\" type=\"text\" name=\"stair\" />\n </div>\n\n <div>\n <label for=\"map-door\">${msg('Puerta')}:</label>\n <input id=\"map-door\" type=\"text\" name=\"door\" />\n </div>\n </section>\n `;\n }\n\n async onSubmit(event: SubmitEvent) {\n this.loading = true;\n event.preventDefault();\n event.stopImmediatePropagation();\n\n const form = event.target as HTMLFormElement;\n\n if (!form.checkValidity()) {\n form.reportValidity();\n this.loading = false;\n return;\n } \n\n const files = form.file.files;\n const formData = new FormData();\n const value: FormDataIncidents = Object.fromEntries(\n new FormData(form).entries()\n );\n\n if (this.activeMap) {\n value.location = {};\n value.location['address'] = value.address;\n value.location['number'] = value.number;\n value.location['latitude'] = value.latitude;\n value.location['longitude'] = value.longitude;\n value.location['floor'] = value.floor;\n value.location['stair'] = value.stair;\n value.location['door'] = value.door;\n } else {\n value.location = {district: value.district};\n }\n\n //Save the file separated from the body\n value.file = [];\n if (files.length > 0) {\n for (let i = 0; i < files.length; i++) {\n const file = {\n filename: files[i].name,\n file: files[i],\n };\n value.file.push(file);\n }\n }\n\n // add inputs with name starting with \"characteristic-\" to the values object adding a new key \"characteristics\"\n const characteristics = Object.keys(value).filter((key) =>\n key.startsWith('characteristic-')\n );\n value.characteristics = characteristics.map((key) => {\n const id = key.split('-')[1];\n // @ts-ignore\n const val = value[key];\n // @ts-ignore\n delete value[key];\n\n return {id, value: val} as unknown as CharacteristicElement;\n });\n\n formData.append('body', JSON.stringify(value));\n\n const response = await fetch(`${this.getApiUrl()}/incidences`, {\n headers: {\n 'Accept-Language': this.locale,\n },\n method: 'POST',\n body: formData,\n });\n\n if (!response.ok && response.status !== 400) {\n this.error = true;\n this.loading = false;\n return;\n }\n\n if (response.status === 400) {\n const data = await response.json();\n this.handlerError(data);\n } else {\n const data = await response.json();\n this.incidenceId = data.incidenceId;\n this.submited = true;\n }\n this.loading = false;\n }\n\n handlerError(data: any) {\n const errors = data;\n Object.keys(errors).map((key) => {\n const input = this.shadowRoot?.getElementById(\n `${key}`\n ) as HTMLInputElement;\n if (key in errors && input) {\n input.setCustomValidity(errors[key]);\n input.reportValidity();\n }\n });\n\n if ('characteristics' in errors) {\n const characteristics = errors['characteristics'];\n for (let [key, errors] of characteristics.entries()) {\n if (Object.keys(errors).length !== 0) {\n debugger;\n const input = this.shadowRoot?.getElementById(\n `niris-${key}`\n ) as HTMLInputElement;\n errors.value.forEach((error: string) => {\n input.setCustomValidity(error);\n input.reportValidity();\n });\n }\n }\n }\n }\n\n confirmEmail(event: FocusEvent) {\n const email = this.shadowRoot?.getElementById('email') as HTMLInputElement;\n const emailConfirm = this.shadowRoot?.getElementById(\n 'email_confirm'\n ) as HTMLInputElement;\n const error = this.shadowRoot?.getElementById(\n 'email_confirm_error'\n ) as HTMLElement;\n const submit = this.shadowRoot?.getElementById(\n 'submit-btn'\n ) as HTMLButtonElement;\n\n if (email.value !== emailConfirm.value) {\n error.hidden = false;\n submit.disabled = true;\n emailConfirm.classList.add('invalid');\n } else {\n error.hidden = true;\n submit.disabled = false;\n emailConfirm.classList.remove('invalid');\n }\n\n (event.target as HTMLInputElement).reportValidity();\n }\n\n years(): number[] {\n const currentYear = new Date().getFullYear();\n const years = [];\n for (let i = currentYear - 100; i <= currentYear; i++) {\n years.push(i);\n }\n\n years.reverse();\n return years;\n }\n\n async onMapClick(e: LeafletMouseEvent) {\n if (this._marker) {\n this._map.removeLayer(this._marker);\n }\n this._marker = new L.marker([e.latlng.lat, e.latlng.lng], {\n icon: this._markerIcon,\n }).addTo(this._map);\n try {\n const response = await fetch(\n `${this.domain}/geo_proxy/ubication/reverse/?lat=${e.latlng.lat}&lon=${e.latlng.lng}`,\n {\n headers: {\n 'Accept-Language': this.locale,\n },\n }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n } else {\n const ubi = await response.json();\n this.street = ubi.street;\n this.streetNumber = ubi.street2;\n this.latitude = ubi.latitude;\n this.longitude = ubi.longitude;\n }\n } catch (error) {\n console.info(error);\n }\n }\n\n async searchAddress() {\n try {\n const response = await fetch(\n `${this.domain}/geo_proxy/ubication/search/?q=${this.street}, ${this.streetNumber}`,\n {\n headers: {\n 'Accept-Language': this.locale,\n },\n }\n );\n if (this._marker) {\n this._map.removeLayer(this._marker);\n }\n const data = await response.json();\n this._marker = new L.marker([data[0].lat, data[0].lon]).addTo(this._map);\n this._map.setView([data[0].lat, data[0].lon], 15);\n } catch (error) {\n console.error(error);\n }\n }\n\n static override styles = [\n globalStyles,\n css`\n :host {\n --primary-color: #03599d;\n --padding: 0.7rem 0.7rem;\n --font-size: 1rem;\n --border-radius: 0rem;\n --font-weight: 500;\n --font-family: 'Arial', sans-serif;\n --color-button: #fff;\n --error-color: #c23939;\n --tab-secondary-color: #ced1d7;\n }\n /* Style the tab */\n .tab {\n overflow: hidden;\n background-color: #e5e7eb;\n width: 100%;\n }\n\n /* Style the buttons inside the tab */\n .tab__tablink {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 14px 0px;\n transition: 0.3s;\n font-size: 17px;\n line-height: 20px;\n width: 50%;\n text-align: center;\n font-weight: bold;\n color: #4b5563;\n border-top: 4px solid var(--tab-secondary-color);\n background-color: var(--tab-secondary-color);\n }\n .tab__tabcontent {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 0.5rem;\n justify-content: space-between;\n width: 100%;\n background-color: #e5e7eb;\n padding: 1.5rem;\n color: #676774;\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n }\n\n .tablink--active {\n background-color: #e5e7eb;\n color: #4b5563;\n border-top: 4px solid var(--primary-color);\n }\n\n .tab__tablink:not(.tablink--active):hover {\n filter: brightness(90%);\n color: #545466;\n }\n\n .container {\n max-width: 1280px;\n width: 100%;\n margin: 0 auto;\n }\n\n .header {\n padding: 2rem;\n text-align: center;\n margin: 0 auto;\n background-color: #f5f5f5;\n }\n\n .header__info {\n margin: 0.5rem auto;\n max-width: 1280px;\n color: #676774;\n }\n .header__title {\n font-size: 1.8rem;\n }\n\n .info--danger {\n color: red;\n }\n\n .record {\n width: 70%;\n margin: 0 auto;\n }\n\n .record__comment {\n font-size: 1.5rem;\n margin-bottom: 2rem;\n text-align: center;\n }\n\n /* utility classes */\n .color-primary {\n color: var(--primary-color);\n }\n\n .hide {\n display: none;\n }\n\n .text-center {\n text-align: center;\n }\n\n .mx-auto {\n margin: 0 auto;\n }\n\n .self-center {\n align-self: center;\n }\n\n .help-text {\n font-size: 0.9rem;\n color: #676774;\n }\n\n /* characteristics-form\" */\n .characteristics-form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 0.5rem;\n }\n\n /* Success Card */\n .success-submit {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .success-submit__card {\n margin: 4rem 0;\n width: 25rem;\n height: 35rem;\n -webkit-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n -moz-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n border-top: 5px solid var(--primary-color);\n }\n\n .success-submit__card:hover {\n -webkit-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n -moz-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n box-shadow: 4px 4px 17px 2px rgba(77, 77, 77, 0.5);\n transition: 0.5s;\n }\n\n .success-submit__card--error {\n border-top: 5px solid var(--error-color);\n }\n\n .succes-submit__svg {\n margin-top: 20%;\n fill: var(--primary-color);\n filter: opacity(70%);\n }\n\n .succes-submit__svg:hover {\n transform: rotate(360deg);\n transition: 0.5s;\n }\n\n .succes-submit__svg--error {\n fill: var(--error-color);\n }\n\n .succes-submit__title {\n font-size: 1.8rem;\n margin-bottom: 2rem;\n color: #373e47;\n }\n\n .success-submit__text {\n font-size: 1.3rem;\n padding: 0 3rem;\n text-align: center;\n }\n\n .success-submit__anchor {\n font-size: 1.2rem;\n text-decoration: none;\n width: 100%;\n padding: 1rem;\n }\n\n /* Map */\n #map {\n margin-bottom: 2rem;\n width: 100%;\n height: 30vh;\n border: 1px solid #676774;\n }\n .map-form {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: 1rem;\n }\n\n .map-form div:nth-child(1) {\n flex-basis: 60%;\n }\n .map-form div:nth-child(2) {\n flex-basis: 30%;\n }\n .map-form button {\n flex-basis: 20%;\n margin-bottom: 0.5rem;\n }\n\n .map-form-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 1rem;\n }\n\n .loader {\n width: 18px;\n padding: 4px;\n float: left;\n aspect-ratio: 1;\n border-radius: 50%;\n background: #ffffff;\n --_m: \n conic-gradient(#22222200 10%,#000),\n linear-gradient(#000 0 0) content-box;\n -webkit-mask: var(--_m);\n mask: var(--_m);\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n animation: l3 1s infinite linear;\n }\n @keyframes l3 {to{transform: rotate(1turn)}}\n\n /* Media queries */\n @media screen and (max-width: 640px) {\n .record {\n width: 96%;\n }\n .success-submit__card {\n width: 80%;\n }\n }\n `,\n ];\n}\n\ncustomElements.define('form-niris', FormNiris);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'form-niris': FormNiris;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"form-niris.js","sourceRoot":"","sources":["../src/form-niris.ts"],"names":[],"mappings":"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","sourcesContent":["import {LitElement, html, css, nothing} from 'lit';\nimport {property, state} from 'lit/decorators.js';\nimport {styleMap} from 'lit/directives/style-map.js';\nimport {choose} from 'lit/directives/choose.js';\nimport {ifDefined} from 'lit/directives/if-defined.js';\nimport {when} from 'lit/directives/when.js';\nimport {Task} from '@lit/task';\nimport {globalStyles} from './styles/globalStyles';\nimport {Icon, LeafletMouseEvent, Map, Marker} from 'leaflet';\nimport {msg, localized } from '@lit/localize';\nimport {\n Characteristic,\n CharacteristicElement,\n CharacteristicTypeEnum,\n Districte,\n FormDataIncidents,\n} from './types';\nimport {configureLocalization} from '@lit/localize';\n// Generated via output.localeCodesModule\nimport {sourceLocale, targetLocales} from './generated/locale-codes.js';\n\n// https://github.com/Leaflet/Leaflet/issues/7055\n// https://github.com/Leaflet/Leaflet/pull/7174\n// https://github.com/Leaflet/Leaflet/pull/6239\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nimport * as L from 'leaflet/dist/leaflet-src.esm.js';\n\n\nexport const {getLocale, setLocale} = configureLocalization({\n sourceLocale,\n targetLocales,\n loadLocale: (locale) => import(`./generated/locales/${locale}.js`),\n});\n\n/* TODO:\n- Boton volver, ruta por property o volver atras mirando hsitory\n- Mascaras \n- Validaciones archivos extensiones.\n*/\n\n/**\n * An example element.\n */\n@localized()\nexport class FormNiris extends LitElement {\n @property({type: Number}) detailID: Number | undefined;\n @property({type: String}) actionUrl: string;\n @property({type: String}) apiUrl: string;\n\n @property({type: String}) area: string;\n @property({type: String}) element: string;\n @property({type: String}) detail: string;\n @property({type: Array}) characteristics: Characteristic[];\n\n private _marker!: Marker | null;\n private _map!: Map;\n private _markerIcon!: Icon;\n\n @property({type: String}) defaultLat = '39.5701058'; // Palma de Mallorca\n @property({type: String}) defaultLon = '2.6487098';\n\n @property({type: String}) locale: 'es' | 'en' | 'ca' = 'es';\n\n @state()\n private isCitizen: Boolean = true;\n\n @state()\n private activeMap = false;\n\n @state()\n private ubiDistricts: Object[] = [];\n\n @state()\n private submited = false;\n\n @state()\n private error = false;\n\n @state()\n private incidenceId = '';\n\n @state()\n private extensionFiles = '';\n\n /* Map */\n @property({type: String}) domain =\n 'https://iris2-backend-demo-iris-community.labs.apsl.io/services/iris/api-public';\n // TODO property for lat and lon\n\n @state()\n private street = '';\n\n @state()\n private streetNumber = '';\n\n @state()\n private latitude = '';\n\n @state()\n private longitude = '';\n\n @state()\n private loading = false;\n\n constructor() {\n super();\n this.detailID = undefined;\n this.actionUrl = '';\n this.apiUrl = '';\n\n this.area = '';\n this.element = '';\n this.detail = '';\n this.extensionFiles = '';\n this.characteristics = [];\n\n this.locale = this.locale ? this.locale : 'es';\n // setLocale(this.locale);\n\n // Map\n L.Icon.Default.imagePath = `https://unpkg.com/leaflet@${L.version}/dist/images/`;\n this._markerIcon = new L.Icon({\n iconUrl:\n 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png',\n shadowUrl:\n 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png',\n iconSize: [25, 41],\n iconAnchor: [12, 41],\n popupAnchor: [1, -34],\n shadowSize: [41, 41],\n }); \n }\n\n getApiUrl() {\n if (this.apiUrl.endsWith('/')) {\n return this.apiUrl.slice(0, this.apiUrl.lastIndexOf('/'));\n } else {\n return this.apiUrl;\n }\n }\n\n _loadMap() {\n const mapEl = this.shadowRoot?.querySelector('#map');\n this._map = L.map(mapEl, {\n markerZoomAnimation: false,\n attributionControl: false,\n }).setView([this.defaultLat, this.defaultLon], 15);\n\n L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution:\n '© <a href=\"http://www.openstreetmap.org/copyright\">OpenStreetMap</a> contributors',\n }).addTo(this._map);\n\n this._map.on('click', (e) => this.onMapClick(e));\n }\n\n override firstUpdated() {\n /* Disable default form validation */\n const form = this.shadowRoot?.querySelector('form');\n form?.setAttribute('novalidate', '');\n this.addOnChangEventToInputs()\n }\n\n addOnChangEventToInputs() {\n const inputs: HTMLInputElement[] = Array.from(this.shadowRoot?.querySelectorAll('input') ?? []);\n inputs.forEach((input: HTMLInputElement) => {\n input.addEventListener('keyup', () => { \n input.setCustomValidity('');\n });\n });\n }\n\n /* Lifecycle */\n override connectedCallback() {\n super.connectedCallback();\n this._fetchDistricts();\n }\n\n private async _fetchDistricts() {\n const response = await fetch(`${this.getApiUrl()}/districts`, {\n headers: {\n 'Accept-Language': this.locale,\n },\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n\n data.results.map((district: Districte) => {\n this.ubiDistricts.push({value: `${district.id}`, label: district.name});\n });\n }\n\n private _fetchFields = new Task(this, {\n task: async ([detailID], {signal}) => {\n const response = await fetch(\n `${this.getApiUrl()}/details/${detailID}/fields`,\n {\n headers: {\n 'Accept-Language': this.locale,\n },\n signal\n }\n );\n if (!response.ok) {\n this.error = true;\n }\n const data = await response.json();\n this.area = data.area;\n this.element = data.element;\n this.detail = data.detail;\n this.characteristics = data.characteristics as Characteristic[];\n this.extensionFiles = data.extension_files;\n const ubiInfo = data.mandatory_drupal_fields.ubication;\n if (ubiInfo?.street_name && ubiInfo?.number) {\n this.activeMap = true;\n this._loadMap();\n }\n\n return data;\n },\n args: () => [this.detailID],\n });\n\n override updated() {\n this.addOnChangEventToInputs();\n }\n\n private changeTab(value: Boolean) {\n this.isCitizen = value;\n }\n\n override render() {\n let content = html``;\n\n if (this.error || this.submited) {\n content = this.error ? this.renderError() : this.renderSuccess();\n } else {\n content = this.renderForm();\n }\n\n return html` ${this.renderHeader()}\n <main class=\"container\">${content}</main>`;\n }\n\n renderError() {\n return html`\n <section class=\"success-submit\">\n <article class=\"success-submit__card success-submit__card--error \">\n <svg\n class=\"succes-submit__svg succes-submit__svg--error\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100px\"\n height=\"100px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M10.0303 8.96965C9.73741 8.67676 9.26253 8.67676 8.96964 8.96965C8.67675 9.26255 8.67675 9.73742 8.96964 10.0303L10.9393 12L8.96966 13.9697C8.67677 14.2625 8.67677 14.7374 8.96966 15.0303C9.26255 15.3232 9.73743 15.3232 10.0303 15.0303L12 13.0607L13.9696 15.0303C14.2625 15.3232 14.7374 15.3232 15.0303 15.0303C15.3232 14.7374 15.3232 14.2625 15.0303 13.9696L13.0606 12L15.0303 10.0303C15.3232 9.73744 15.3232 9.26257 15.0303 8.96968C14.7374 8.67678 14.2625 8.67678 13.9696 8.96968L12 10.9393L10.0303 8.96965Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 1.25C6.06294 1.25 1.25 6.06294 1.25 12C1.25 17.9371 6.06294 22.75 12 22.75C17.9371 22.75 22.75 17.9371 22.75 12C22.75 6.06294 17.9371 1.25 12 1.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75C17.1086 2.75 21.25 6.89137 21.25 12C21.25 17.1086 17.1086 21.25 12 21.25C6.89137 21.25 2.75 17.1086 2.75 12Z\"\n />\n </svg>\n <h2 class=\"succes-submit__title\">${msg('Ha ocurrido un error')}</h2>\n <p class=\"success-submit__text\">\n ${msg('Sentimos las molestias. Vuelva a intentelo más tarde')}.\n </p>\n <a class=\"success-submit__anchor btn btn-error text-center\" href=\"/\"\n >${msg('Volver')}</a\n >\n </article>\n </section>\n `;\n }\n renderSuccess() {\n return html`\n <section class=\"success-submit\">\n <article class=\"success-submit__card\">\n <svg\n class=\"succes-submit__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100px\"\n height=\"100px\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M16.0303 10.0303C16.3232 9.73744 16.3232 9.26256 16.0303 8.96967C15.7374 8.67678 15.2626 8.67678 14.9697 8.96967L10.5 13.4393L9.03033 11.9697C8.73744 11.6768 8.26256 11.6768 7.96967 11.9697C7.67678 12.2626 7.67678 12.7374 7.96967 13.0303L9.96967 15.0303C10.2626 15.3232 10.7374 15.3232 11.0303 15.0303L16.0303 10.0303Z\"\n />\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M12 1.25C6.06294 1.25 1.25 6.06294 1.25 12C1.25 17.9371 6.06294 22.75 12 22.75C17.9371 22.75 22.75 17.9371 22.75 12C22.75 6.06294 17.9371 1.25 12 1.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75C17.1086 2.75 21.25 6.89137 21.25 12C21.25 17.1086 17.1086 21.25 12 21.25C6.89137 21.25 2.75 17.1086 2.75 12Z\"\n />\n </svg>\n <h2 class=\"succes-submit__title\">${msg('¡Ficha creada!')}</h2>\n <p class=\"success-submit__text\">\n ${msg('El codi de seguiment és')}:\n <strong class=\"color-primary\">${this.incidenceId}</strong>\n </p>\n <button type=\"button\" class=\"success-submit__anchor btn text-center\" @click=\"${() => history.back()}\">${msg('Volver')}:</button>\n </article>\n </section>\n `;\n }\n\n renderHeader() {\n return html`\n <header class=\"header\">\n <h1 class=\"header__title\">\n ${this.area} > ${this.element} > ${this.detail}\n </h1>\n <p class=\"header__info\">\n ${msg('Agradecemos que nos haya hecho llegar su reconocimiento, el cual se hará llegar al departamento responsable. Con esta información, damos por contestada su comunicación')}.\n </p>\n <p class=\"header__info info--danger\">\n ${msg('Los campos marcados con un (*) son obligatorios.')}\n </p>\n </header>\n `;\n }\n\n renderForm() {\n const classesActiveCitizen = this.isCitizen ? 'tablink--active' : '';\n const classesActiveCompnay = !this.isCitizen ? 'tablink--active' : '';\n\n const stylesCharacteristics = {\n display: this.characteristics.length == 0 ? 'none' : '',\n };\n\n return html`\n <section class=\"record\">\n <h2 class=\"record__comment\">${msg('Mensaje')}</h2>\n <form method=\"post\" @submit=${this.onSubmit}>\n <input\n type=\"hidden\"\n name=\"detailId\"\n value=\"${ifDefined(this.detailID)}\"\n />\n <label for=\"comments\">${msg('Escriba brevemente su mensaje')}*:</label>\n <textarea\n id=\"comments\"\n name=\"comments\"\n required\n minlength=\"4\"\n placeholder=${msg('Escribe tu consulta aquí')}\n ></textarea>\n <label for=\"file\">${msg('Añadir archivo')}</label>\n <input\n multiple\n accept=\".${this.extensionFiles.split(';').join(',.')}\"\n type=\"file\"\n name=\"file\"\n id=\"input_1\"\n aria-describedby=\"help-input_1\"\n />\n <p class=\"text-error\"></p>\n <div class=\"help-text\" id=\"file\">\n ${msg('Aceptados:')} ${this.extensionFiles}\n </div>\n\n <section class=\"map\">\n <h2 class=\"text-center\">${msg('Ubicación')}</h2>\n <div id=\"map\" ?hidden=${!this.activeMap}></div>\n ${when(\n this.activeMap,\n () => this.renderMap(),\n () =>\n this.ubiDistricts.length > 0\n ? html`\n <div>\n <label for=\"map-district\">${msg('Distrito*:')}</label>\n <select\n required\n id=\"map-district\"\n name=\"location.district\"\n >\n ${this.ubiDistricts.map(\n (district: any) =>\n html`<option value=\"${district.value}\">\n ${district.label}\n </option>`\n )}\n </select>\n </div>\n `\n : html``\n )}\n </section>\n\n <h2\n class=\"text-center color-primary\"\n style=${styleMap(stylesCharacteristics)}\n >\n ${msg('Características de la petición')}\n </h2>\n <section class=\"characteristics-form\">\n ${this._fetchFields.render({\n pending: () => html`<p>${msg('Cargando formulario')}...</p>`,\n complete: () => html`\n ${this.characteristics.map(\n (characteristic) => html`\n <div>\n <label for=\"niris-${characteristic.id}\"\n >${characteristic.title}${characteristic.mandatory\n ? '*'\n : ''}:</label\n >\n ${choose(\n characteristic.type,\n [\n [\n CharacteristicTypeEnum.Number,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"number\"\n ?required=${characteristic.mandatory}\n placeholder=${characteristic.explanatory_text}\n />`,\n ],\n [\n CharacteristicTypeEnum.Options,\n () => html`<select\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n ?required=${characteristic.mandatory}\n >\n ${characteristic.options.map(\n (option) =>\n html`<option value=\"${option}\">\n ${option}\n </option>`\n )}\n </select>`,\n ],\n [\n CharacteristicTypeEnum.Date,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"date\"\n ?required=${characteristic.mandatory}\n />`,\n ],\n [\n CharacteristicTypeEnum.Time,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"time\"\n ?required=${characteristic.mandatory}\n />`,\n ],\n [\n CharacteristicTypeEnum.Text,\n () =>\n html`<input\n id=\"niris-${characteristic.id}\"\n name=\"characteristic-${characteristic.id}\"\n type=\"text\"\n ?required=${characteristic.mandatory}\n placeholder=${characteristic.explanatory_text}\n />`,\n ],\n ],\n () => html`<p>${msg('Not implemented')}</p>`\n )}\n </div>\n `\n )}\n `,\n error: () => html`<p>${msg('Error cargando el formulario')}</p>`,\n })}\n </section>\n\n <h2 class=\"text-center\">${msg('Datos personales')}</h2>\n <div class=\"tab\">\n <div\n class=\"tab__tablink ${classesActiveCitizen}\"\n @click=${() => this.changeTab(true)}\n >\n ${msg('Ciudadano')}\n </div>\n <div\n class=\"tab__tablink ${classesActiveCompnay}\"\n @click=\"${() => this.changeTab(false)}\"\n >\n ${msg('Empresa/Entidad')}\n </div>\n </div>\n <div class=\"tab__tabcontent\">\n ${this.isCitizen\n ? this.renderCitizenForm()\n : this.renderCompanyForm()}\n </div>\n <button id=\"submit-btn\" type=\"submit\" ?disabled=${this.loading}>\n <div class=\"loader\" ?hidden=${!this.loading} id=\"loader\"></div>\n ${this.loading ? 'Enviando' : 'Enviar'}\n <!-- TODO -->\n </button>\n </form>\n </section>\n `;\n }\n\n renderCitizenForm() {\n return html`\n <div>\n <label for=\"nameCitizen\">${msg('Nombre')}*:</label>\n <input id=\"nameCitizen\" name=\"nameCitizen\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"firstSurname\">${msg('Primer apellido')}*:</label>\n <input id=\"firstSurname\" name=\"firstSurname\" type=\"text\" />\n </div>\n\n <div>\n <label for=\"secondSurname\">${msg('Segundo apellido')}*:</label>\n <input id=\"secondSurname\" name=\"secondSurname\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"document-type\">${msg('Tipo de Documento')}*:</label>\n <select id=\"typeDocument\" name=\"typeDocument\" required>\n <option value=\"0\" selected>${msg('NIF/DNI')}</option>\n <option value=\"1\">${msg('NIE')}</option>\n <option value=\"2\">${msg('Passaporte')}</option>\n </select>\n </div>\n\n <div>\n <label for=\"numberDocument\">${msg('Núm. Documento')}*:</label>\n <input\n id=\"numberDocument\"\n name=\"numberDocument\"\n type=\"text\"\n required\n />\n </div>\n\n <div>\n <label for=\"birthYear\">${msg('Año de nacimiento')}:</label>\n <select id=\"birthYear\" name=\"birthYear\">\n ${this.years().map(\n (year) => html`<option value=\"${year}\">${year}</option>`\n )}\n </select>\n </div>\n\n ${this.ubiDistricts.length > 0\n ? html`\n <div>\n <label for=\"district\">${msg('Distrito')}*:</label>\n <select required id=\"district\" name=\"district\">\n ${this.ubiDistricts.map(\n (district: any) =>\n html`<option value=\"${district.value}\">\n ${district.label}\n </option>`\n )}\n </select>\n </div>\n `\n : nothing}\n\n <div>\n <label for=\"email\">${msg('Correo electrónico')}*:</label>\n <input\n id=\"email\"\n name=\"email\"\n type=\"email\"\n required\n placeholder=${msg('Escribe tu correo')}\n />\n </div>\n\n <div>\n <label for=\"email_confirm\">${msg('Confirma correo electrónico')}*:</label>\n <input\n id=\"email_confirm\"\n name=\"email_confirm\"\n @focusout=${(event: FocusEvent) => this.confirmEmail(event as FocusEvent)}\n type=\"email\"\n required\n placeholder=${msg('Confirma tu correo')}\n />\n <span class=\"text-error\" hidden id=\"email_confirm_error\"\n >${msg('Los emails no conciden')}</span\n >\n </div>\n\n <div>\n <label for=\"phone\">${msg('Teléfono')}*:</label>\n <input\n id=\"phone\"\n name=\"phone\"\n type=\"tel\"\n minlength=\"9\"\n placeholder=${msg('Escribe tu teléfono')}\n />\n </div>\n `;\n }\n\n renderCompanyForm() {\n return html`\n <div>\n <label for=\"socialReason\">${msg('Razón social')}*:</label>\n <input id=\"socialReason\" name=\"socialReason\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"contactPerson\">${msg('Persona de contacto')}*:</label>\n <input id=\"contactPerson\" name=\"contactPerson\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"cif\">${msg('CIF')}*:</label>\n <input id=\"cif\" name=\"cif\" type=\"text\" required />\n </div>\n\n <div>\n <label for=\"email\">${msg('Email')}*:</label>\n <input\n id=\"email\"\n name=\"email\"\n type=\"text\"\n type=\"email\"\n required\n />\n </div>\n\n <div>\n <label for=\"email_confirm\">${msg('Confirma el email')}*:</label>\n <input\n id=\"email_confirm\"\n name=\"email_confirm\"\n type=\"text\"\n type=\"email\"\n required\n @focusout=${(event: FocusEvent) => this.confirmEmail(event as FocusEvent)}\n />\n <span class=\"text-error\" hidden id=\"email_confirm_error\"\n >${msg('Los emails no conciden')}</span\n >\n </div>\n\n <div>\n <label for=\"phone\">${msg('Idioma de la respuesta')}*:</label>\n <select id=\"phone\" name=\"language\" required>\n <option value=\"es\" selected>${msg('Español')}</option>\n <option value=\"ca\">${msg('Catalán')}</option>\n <option value=\"en\">${msg('Inglés')}</option>\n </select>\n </div>\n `;\n }\n\n renderMap() {\n return html`\n <link\n rel=\"stylesheet\"\n href=\"https://cdn.skypack.dev/leaflet/dist/leaflet.css\"\n />\n <section class=\"map-form\">\n <div>\n <label for=\"map-address\">${msg('Calle')}*:</label>\n <input\n id=\"map-address\"\n required\n type=\"text\"\n @keyup=\"${(event: KeyboardEvent) =>\n (this.street = (event.target as HTMLInputElement).value)}\"\n .value=\"${this.street}\"\n name=\"address\"\n />\n <input name=\"latitude\" hidden .value=\"${this.latitude}\" />\n <input name=\"longitude\" hidden .value=\"${this.longitude}\" />\n </div>\n\n <div>\n <label for=\"map-number\">${msg('Número')}*:</label>\n <input\n id=\"map-number\"\n @keyup=\"${(event: KeyboardEvent) =>\n (this.streetNumber = (event.target as HTMLInputElement).value)}\"\n .value=\"${this.streetNumber}\"\n required\n type=\"text\"\n name=\"number\"\n />\n </div>\n\n <div>\n <button\n type=\"button\"\n .disabled=\"${!this.street.length}\"\n @click=\"${this.searchAddress}\"\n >\n ${msg('Buscar')}\n </button>\n </div>\n </section>\n\n <section class=\"map-form-grid\">\n <div>\n <label for=\"map-floor\">${msg('Piso')}:</label>\n <input id=\"map-floor\" type=\"text\" name=\"floor\" />\n </div>\n\n <div>\n <label for=\"map-stair\">${msg('Escalera')}:</label>\n <input id=\"map-stair\" type=\"text\" name=\"stair\" />\n </div>\n\n <div>\n <label for=\"map-door\">${msg('Puerta')}:</label>\n <input id=\"map-door\" type=\"text\" name=\"door\" />\n </div>\n </section>\n `;\n }\n\n async onSubmit(event: SubmitEvent) {\n this.loading = true;\n event.preventDefault();\n event.stopImmediatePropagation();\n\n const form = event.target as HTMLFormElement;\n\n if (!form.checkValidity()) {\n form.reportValidity();\n this.loading = false;\n return;\n } \n\n const files = form.file.files;\n const formData = new FormData();\n const value: FormDataIncidents = Object.fromEntries(\n new FormData(form).entries()\n );\n\n if (this.activeMap) {\n value.location = {};\n value.location['address'] = value.address;\n value.location['number'] = value.number;\n value.location['latitude'] = value.latitude;\n value.location['longitude'] = value.longitude;\n value.location['floor'] = value.floor;\n value.location['stair'] = value.stair;\n value.location['door'] = value.door;\n } else {\n value.location = {district: value.district};\n }\n\n //Save the file separated from the body\n value.file = [];\n if (files.length > 0) {\n for (let i = 0; i < files.length; i++) {\n const file = {\n filename: files[i].name,\n file: files[i],\n };\n value.file.push(file);\n }\n }\n\n // add inputs with name starting with \"characteristic-\" to the values object adding a new key \"characteristics\"\n const characteristics = Object.keys(value).filter((key) =>\n key.startsWith('characteristic-')\n );\n value.characteristics = characteristics.map((key) => {\n const id = key.split('-')[1];\n // @ts-ignore\n const val = value[key];\n // @ts-ignore\n delete value[key];\n\n return {id, value: val} as unknown as CharacteristicElement;\n });\n\n formData.append('body', JSON.stringify(value));\n\n const response = await fetch(`${this.getApiUrl()}/incidences`, {\n headers: {\n 'Accept-Language': this.locale,\n },\n method: 'POST',\n body: formData,\n });\n\n if (!response.ok && response.status !== 400) {\n this.error = true;\n this.loading = false;\n return;\n }\n\n if (response.status === 400) {\n const data = await response.json();\n this.handlerError(data);\n } else {\n const data = await response.json();\n this.incidenceId = data.incidenceId;\n this.submited = true;\n }\n this.loading = false;\n }\n\n handlerError(data: any) {\n const errors = data;\n Object.keys(errors).map((key) => {\n const input = this.shadowRoot?.getElementById(\n `${key}`\n ) as HTMLInputElement;\n if (key in errors && input) {\n input.setCustomValidity(errors[key]);\n input.reportValidity();\n }\n });\n\n if ('characteristics' in errors) {\n const characteristics = errors['characteristics'];\n for (const [key, errors] of characteristics.entries()) {\n if (Object.keys(errors).length !== 0) {\n debugger;\n const input = this.shadowRoot?.getElementById(\n `niris-${key}`\n ) as HTMLInputElement;\n errors.value.forEach((error: string) => {\n input.setCustomValidity(error);\n input.reportValidity();\n });\n }\n }\n }\n }\n\n confirmEmail(event: FocusEvent) {\n const email = this.shadowRoot?.getElementById('email') as HTMLInputElement;\n const emailConfirm = this.shadowRoot?.getElementById(\n 'email_confirm'\n ) as HTMLInputElement;\n const error = this.shadowRoot?.getElementById(\n 'email_confirm_error'\n ) as HTMLElement;\n const submit = this.shadowRoot?.getElementById(\n 'submit-btn'\n ) as HTMLButtonElement;\n\n if (email.value !== emailConfirm.value) {\n error.hidden = false;\n submit.disabled = true;\n emailConfirm.classList.add('invalid');\n } else {\n error.hidden = true;\n submit.disabled = false;\n emailConfirm.classList.remove('invalid');\n }\n\n (event.target as HTMLInputElement).reportValidity();\n }\n\n years(): number[] {\n const currentYear = new Date().getFullYear();\n const years = [];\n for (let i = currentYear - 100; i <= currentYear; i++) {\n years.push(i);\n }\n\n years.reverse();\n return years;\n }\n\n async onMapClick(e: LeafletMouseEvent) {\n if (this._marker) {\n this._map.removeLayer(this._marker);\n }\n this._marker = new L.marker([e.latlng.lat, e.latlng.lng], {\n icon: this._markerIcon,\n }).addTo(this._map);\n try {\n const response = await fetch(\n `${this.domain}/geo_proxy/ubication/reverse/?lat=${e.latlng.lat}&lon=${e.latlng.lng}`,\n {\n headers: {\n 'Accept-Language': this.locale,\n },\n }\n );\n if (!response.ok) {\n throw new Error(response.statusText);\n } else {\n const ubi = await response.json();\n this.street = ubi.street;\n this.streetNumber = ubi.street2;\n this.latitude = ubi.latitude;\n this.longitude = ubi.longitude;\n }\n } catch (error) {\n console.info(error);\n }\n }\n\n async searchAddress() {\n try {\n const response = await fetch(\n `${this.domain}/geo_proxy/ubication/search/?q=${this.street}, ${this.streetNumber}`,\n {\n headers: {\n 'Accept-Language': this.locale,\n },\n }\n );\n if (this._marker) {\n this._map.removeLayer(this._marker);\n }\n const data = await response.json();\n this._marker = new L.marker([data[0].lat, data[0].lon]).addTo(this._map);\n this._map.setView([data[0].lat, data[0].lon], 15);\n } catch (error) {\n console.error(error);\n }\n }\n\n static override styles = [\n globalStyles,\n css`\n :host {\n --primary-color: #03599d;\n --padding: 0.7rem 0.7rem;\n --font-size: 1rem;\n --border-radius: 0rem;\n --font-weight: 500;\n --font-family: 'Arial', sans-serif;\n --color-button: #fff;\n --error-color: #c23939;\n --tab-secondary-color: #ced1d7;\n }\n /* Style the tab */\n .tab {\n overflow: hidden;\n background-color: #e5e7eb;\n width: 100%;\n }\n\n /* Style the buttons inside the tab */\n .tab__tablink {\n background-color: inherit;\n float: left;\n border: none;\n outline: none;\n cursor: pointer;\n padding: 14px 0px;\n transition: 0.3s;\n font-size: 17px;\n line-height: 20px;\n width: 50%;\n text-align: center;\n font-weight: bold;\n color: #4b5563;\n border-top: 4px solid var(--tab-secondary-color);\n background-color: var(--tab-secondary-color);\n }\n .tab__tabcontent {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 0.5rem;\n justify-content: space-between;\n width: 100%;\n background-color: #e5e7eb;\n padding: 1.5rem;\n color: #676774;\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n }\n\n .tablink--active {\n background-color: #e5e7eb;\n color: #4b5563;\n border-top: 4px solid var(--primary-color);\n }\n\n .tab__tablink:not(.tablink--active):hover {\n filter: brightness(90%);\n color: #545466;\n }\n\n .container {\n max-width: 1280px;\n width: 100%;\n margin: 0 auto;\n }\n\n .header {\n padding: 2rem;\n text-align: center;\n margin: 0 auto;\n background-color: #f5f5f5;\n }\n\n .header__info {\n margin: 0.5rem auto;\n max-width: 1280px;\n color: #676774;\n }\n .header__title {\n font-size: 1.8rem;\n }\n\n .info--danger {\n color: red;\n }\n\n .record {\n width: 70%;\n margin: 0 auto;\n }\n\n .record__comment {\n font-size: 1.5rem;\n margin-bottom: 2rem;\n text-align: center;\n }\n\n /* utility classes */\n .color-primary {\n color: var(--primary-color);\n }\n\n .hide {\n display: none;\n }\n\n .text-center {\n text-align: center;\n }\n\n .mx-auto {\n margin: 0 auto;\n }\n\n .self-center {\n align-self: center;\n }\n\n .help-text {\n font-size: 0.9rem;\n color: #676774;\n }\n\n /* characteristics-form\" */\n .characteristics-form {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 0.5rem;\n }\n\n /* Success Card */\n .success-submit {\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .success-submit__card {\n margin: 4rem 0;\n width: 25rem;\n height: 35rem;\n -webkit-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n -moz-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n border-top: 5px solid var(--primary-color);\n }\n\n .success-submit__card:hover {\n -webkit-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n -moz-box-shadow: 2px 2px 15px 0px rgba(77, 77, 77, 0.5);\n box-shadow: 4px 4px 17px 2px rgba(77, 77, 77, 0.5);\n transition: 0.5s;\n }\n\n .success-submit__card--error {\n border-top: 5px solid var(--error-color);\n }\n\n .succes-submit__svg {\n margin-top: 20%;\n fill: var(--primary-color);\n filter: opacity(70%);\n }\n\n .succes-submit__svg:hover {\n transform: rotate(360deg);\n transition: 0.5s;\n }\n\n .succes-submit__svg--error {\n fill: var(--error-color);\n }\n\n .succes-submit__title {\n font-size: 1.8rem;\n margin-bottom: 2rem;\n color: #373e47;\n }\n\n .success-submit__text {\n font-size: 1.3rem;\n padding: 0 3rem;\n text-align: center;\n }\n\n .success-submit__anchor {\n font-size: 1.2rem;\n text-decoration: none;\n width: 100%;\n padding: 1rem;\n }\n\n /* Map */\n #map {\n margin-bottom: 2rem;\n width: 100%;\n height: 30vh;\n border: 1px solid #676774;\n }\n .map-form {\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n gap: 1rem;\n }\n\n .map-form div:nth-child(1) {\n flex-basis: 60%;\n }\n .map-form div:nth-child(2) {\n flex-basis: 30%;\n }\n .map-form button {\n flex-basis: 20%;\n margin-bottom: 0.5rem;\n }\n\n .map-form-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 1rem;\n }\n\n .loader {\n width: 18px;\n padding: 4px;\n float: left;\n aspect-ratio: 1;\n border-radius: 50%;\n background: #ffffff;\n --_m: \n conic-gradient(#22222200 10%,#000),\n linear-gradient(#000 0 0) content-box;\n -webkit-mask: var(--_m);\n mask: var(--_m);\n -webkit-mask-composite: source-out;\n mask-composite: subtract;\n animation: l3 1s infinite linear;\n }\n @keyframes l3 {to{transform: rotate(1turn)}}\n\n /* Media queries */\n @media screen and (max-width: 640px) {\n .record {\n width: 96%;\n }\n .success-submit__card {\n width: 80%;\n }\n }\n `,\n ];\n}\n\ncustomElements.define('form-niris', FormNiris);\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'form-niris': FormNiris;\n }\n}\n"]}
|