UNPKG

angular-bootstrap-italia

Version:

<p align="center"> <h1 align="center">Bootstrap Italia + Angular 9</h1>

17 lines 93.9 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/router"),require("@angular/forms"),require("rxjs/operators"),require("rxjs/internal/Subject"),require("rxjs/internal/observable/empty"),require("@angular/common/http"),require("leaflet"),require("leaflet-draw"),require("leaflet-draw-locales")):"function"==typeof define&&define.amd?define("angular-bootstrap-italia",["exports","@angular/core","@angular/common","@angular/router","@angular/forms","rxjs/operators","rxjs/internal/Subject","rxjs/internal/observable/empty","@angular/common/http","leaflet","leaflet-draw","leaflet-draw-locales"],t):t((e=e||self)["angular-bootstrap-italia"]={},e.ng.core,e.ng.common,e.ng.router,e.ng.forms,e.rxjs.operators,e.rxjs["internal/Subject"],e.rxjs["internal/observable/empty"],e.ng.common.http,e.leaflet,null,e.leafletDrawLocales)}(this,(function(e,t,n,i,r,a,o,s,l,c,d,p){"use strict";p=p&&Object.prototype.hasOwnProperty.call(p,"default")?p.default:p;
/*! *****************************************************************************
    Copyright (c) Microsoft Corporation.

    Permission to use, copy, modify, and/or distribute this software for any
    purpose with or without fee is hereby granted.

    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
    ***************************************************************************** */
var u=function(e,t){return(u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};function m(e,t){function n(){this.constructor=e}u(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}function g(e,t,n,i){var r,a=arguments.length,o=a<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,n,i);else for(var s=e.length-1;s>=0;s--)(r=e[s])&&(o=(a<3?r(o):a>3?r(t,n,o):r(t,n))||o);return a>3&&o&&Object.defineProperty(t,n,o),o}function f(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function v(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var i,r,a=n.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(i=a.next()).done;)o.push(i.value)}catch(e){r={error:e}}finally{try{i&&!i.done&&(n=a.return)&&n.call(a)}finally{if(r)throw r.error}}return o}function h(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(v(arguments[t]));return e}var b=function(){function e(){this.logout=new t.EventEmitter}return e.prototype.onLogout=function(e){this.logout.emit(e)},g([t.Input()],e.prototype,"owner",void 0),g([t.Input()],e.prototype,"appName",void 0),g([t.Input()],e.prototype,"isAuthenticated",void 0),g([t.Input()],e.prototype,"menuItems",void 0),g([t.Input()],e.prototype,"loginRoute",void 0),g([t.Input()],e.prototype,"userName",void 0),g([t.Output()],e.prototype,"logout",void 0),e=g([t.Component({selector:"lib-header",template:'<div class="it-header-wrapper">\r\n\r\n  <div class="it-header-slim-wrapper">\r\n    <div class="container-fluid">\r\n      <div class="row">\r\n        <div class="col-12">\r\n          <div class="it-header-slim-wrapper-content">\r\n            <a class="d-lg-block navbar-brand" href="http://www.protezionecivile.gov.it/">{{ owner }}</a>\r\n            <div class="it-header-slim-right-zone">\r\n              <div class="nav-item dropdown">\r\n                <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-expanded="false">\r\n                  <span>ITA</span>\r\n                  <svg class="icon d-none d-lg-block">\r\n                    <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-expand"></use>\r\n                  </svg>\r\n                </a>\r\n                <div class="dropdown-menu">\r\n                  <div class="row">\r\n                    <div class="col-12">\r\n                      <div class="link-list-wrapper">\r\n                        <ul class="link-list">\r\n                          <li>\r\n                            <a class="list-item" href="#"><span>ITA</span></a>\r\n                          </li>\r\n                          <li>\r\n                            <a class="list-item" href="#"><span>ENG</span></a>\r\n                          </li>\r\n                        </ul>\r\n                      </div>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </div>\r\n              <a [routerLink]="[loginRoute]" class="btn btn-primary btn-icon btn-full"\r\n                *ngIf="!isAuthenticated; else elseBlock">\r\n                <span class="rounded-icon">\r\n                  <svg class="icon icon-primary">\r\n                    <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-user"></use>\r\n                  </svg>\r\n                </span>\r\n                <span class="d-none d-lg-block">Accedi</span>\r\n              </a>\r\n              <ng-template #elseBlock>\r\n                <div class="dropdown">\r\n                  <a class="btn btn-primary btn-icon btn-full" href="#" role="button" id="dropdownMenuLink"\r\n                    data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">\r\n                    <span class="rounded-icon">\r\n                      <svg class="icon icon-primary">\r\n                        <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-user"></use>\r\n                      </svg>\r\n                    </span>\r\n                    <span class="d-none d-lg-block">{{ userName }}</span>\r\n                  </a>\r\n                  <div class="dropdown-menu" aria-labelledby="dropdownMenuLink">\r\n                    <div class="link-list-wrapper">\r\n                      <ul class="link-list">\r\n                        <li><a class="list-item" href="#" (click)="onLogout($event)"><span>Logout</span></a></li>\r\n                      </ul>\r\n                    </div>\r\n                  </div>\r\n                </div>\r\n              </ng-template>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n\r\n  <div class="it-nav-wrapper">\r\n    <div class="it-header-center-wrapper">\r\n      <div class="container-fluid">\r\n        <div class="row">\r\n          <div class="col-12">\r\n            <div class="it-header-center-content-wrapper">\r\n              <div class="it-brand-wrapper">\r\n                <a href="#">\r\n                  <svg class="icon">\r\n                    <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-code-circle"></use>\r\n                  </svg>\r\n                  <div class="it-brand-text">\r\n                    <h2 class="no_toc">{{ appName }}</h2>\r\n                    <h3 class="no_toc d-none d-md-block">Inserire qui la tag line</h3>\r\n                  </div>\r\n                </a>\r\n              </div>\r\n              <div class="it-right-zone">\r\n                <div class="it-socials d-none d-md-flex">\r\n                  <span>Seguici su</span>\r\n                  <ul>\r\n                    <li>\r\n                      <a href="#" aria-label="Facebook" target="_blank">\r\n                        <svg class="icon">\r\n                          <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-facebook"></use>\r\n                        </svg>\r\n                      </a>\r\n                    </li>\r\n                    <li>\r\n                      <a href="#" aria-label="Github" target="_blank">\r\n                        <svg class="icon">\r\n                          <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-github"></use>\r\n                        </svg>\r\n                      </a>\r\n                    </li>\r\n                    <li>\r\n                      <a href="#" target="_blank" aria-label="Twitter">\r\n                        <svg class="icon">\r\n                          <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-twitter"></use>\r\n                        </svg>\r\n                      </a>\r\n                    </li>\r\n                  </ul>\r\n                </div>\r\n                <div class="it-search-wrapper" *ngIf="isAuthenticated">\r\n                  <span class="d-none d-md-block">Cerca</span>\r\n                  <a class="search-link rounded-icon" href="#" aria-label="Cerca" data-toggle="modal"\r\n                    data-target="#modalSearchFullScreen" data-backdrop="false">\r\n                    <svg class="icon">\r\n                      <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-search"></use>\r\n                    </svg>\r\n                  </a>\r\n                </div>\r\n              </div>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <lib-header-navbar [menuItems]="menuItems" *ngIf="isAuthenticated"></lib-header-navbar>\r\n    <lib-search-modal *ngIf="isAuthenticated"></lib-search-modal>\r\n  </div>\r\n</div>\r\n'})],e)}(),y=function(){function e(){}return g([t.Input()],e.prototype,"owner",void 0),g([t.Input()],e.prototype,"appName",void 0),e=g([t.Component({selector:"lib-footer",template:'<footer class="it-footer">\r\n  <div class="it-footer-main">\r\n    <div class="container-fluid">\r\n      <section>\r\n        <div class="row clearfix">\r\n          <div class="col-sm-12">\r\n            <div class="it-brand-wrapper">\r\n              <a href="#">\r\n                <svg class="icon">\r\n                  <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-code-circle"></use>\r\n                </svg>\r\n                <div class="it-brand-text">\r\n                  <h2 class="no_toc">{{ appName }}</h2>\r\n                  <h3 class="no_toc d-none d-md-block">Inserire qui la tag line</h3>\r\n                </div>\r\n              </a>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </section>\r\n      <section>\r\n        <div class="row">\r\n          <div class="col-lg-3 col-md-3 col-sm-6 pb-2">\r\n            <h4>\r\n              <a href="#" title="Vai alla pagina: Amministrazione">Amministrazione</a>\r\n            </h4>\r\n            <div class="link-list-wrapper">\r\n              <ul class="footer-list link-list clearfix">\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Giunta e consiglio">Giunta e consiglio</a>\r\n                </li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Aree di competenza">Aree di competenza</a>\r\n                </li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Dipendenti">Dipendenti</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Luoghi">Luoghi</a></li>\r\n                <li><a class="list-item" href="#"\r\n                    title="Vai alla pagina: Associazioni e società partecipate">Associazioni e società partecipate</a>\r\n                </li>\r\n              </ul>\r\n            </div>\r\n          </div>\r\n          <div class="col-lg-3 col-md-3 col-sm-6 pb-2">\r\n            <h4>\r\n              <a href="#" title="Vai alla pagina: Servizi">Servizi</a>\r\n            </h4>\r\n            <div class="link-list-wrapper">\r\n              <ul class="footer-list link-list clearfix">\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Pagamenti">Pagamenti</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Sostegno">Sostegno</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Domande e iscrizioni">Domande e iscrizioni</a>\r\n                </li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Segnalazioni">Segnalazioni</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Autorizzazioni e concessioni">Autorizzazioni e\r\n                    concessioni</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Certificati e dichiarazioni">Certificati e\r\n                    dichiarazioni</a></li>\r\n              </ul>\r\n            </div>\r\n          </div>\r\n          <div class="col-lg-3 col-md-3 col-sm-6 pb-2">\r\n            <h4>\r\n              <a href="#" title="Vai alla pagina: Novità">Novità</a>\r\n            </h4>\r\n            <div class="link-list-wrapper">\r\n              <ul class="footer-list link-list clearfix">\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Notizie">Notizie</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Eventi">Eventi</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Comunicati stampa">Comunicati stampa</a></li>\r\n              </ul>\r\n            </div>\r\n          </div>\r\n          <div class="col-lg-3 col-md-3 col-sm-6">\r\n            <h4>\r\n              <a href="#" title="Vai alla pagina: Documenti">Documenti</a>\r\n            </h4>\r\n            <div class="link-list-wrapper">\r\n              <ul class="footer-list link-list clearfix">\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Progetti e attività">Progetti e attività</a>\r\n                </li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Delibere, determine e ordinanze">Delibere,\r\n                    determine e ordinanze</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Bandi">Bandi</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Concorsi">Concorsi</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Albo pretorio">Albo pretorio</a></li>\r\n              </ul>\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </section>\r\n      <section class="py-4 border-white border-top">\r\n        <div class="row">\r\n          <div class="col-lg-4 col-md-4 pb-2">\r\n            <h4><a href="#" title="Vai alla pagina: Contatti">Contatti</a></h4>\r\n            <p>\r\n              <strong>Comune di Lorem Ipsum</strong><br> Via Roma 0 - 00000 Lorem Ipsum Codice fiscale / P. IVA:\r\n              000000000\r\n            </p>\r\n            <div class="link-list-wrapper">\r\n              <ul class="footer-list link-list clearfix">\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: Posta Elettronica Certificata">Posta\r\n                    Elettronica Certificata</a></li>\r\n                <li><a class="list-item" href="#" title="Vai alla pagina: URP - Ufficio Relazioni con il Pubblico">URP -\r\n                    Ufficio Relazioni con il Pubblico</a></li>\r\n              </ul>\r\n            </div>\r\n          </div>\r\n          <div class="col-lg-4 col-md-4 pb-2">\r\n            <h4><a href="#" title="Vai alla pagina: Lorem Ipsum">Lorem Ipsum</a></h4>\r\n          </div>\r\n          <div class="col-lg-4 col-md-4 pb-2">\r\n            <div class="pb-2">\r\n              <h4><a href="#" title="Vai alla pagina: Seguici su">Seguici su</a></h4>\r\n              <ul class="list-inline text-left social">\r\n                <li class="list-inline-item"><a class="p-2 text-white" href="#" target="_blank"><svg\r\n                      class="icon icon-sm icon-white align-top">\r\n                      <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-designers-italia"></use>\r\n                    </svg><span class="sr-only">Designers Italia</span></a></li>\r\n                <li class="list-inline-item"><a class="p-2 text-white" href="#" target="_blank"><svg\r\n                      class="icon icon-sm icon-white align-top">\r\n                      <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-twitter"></use>\r\n                    </svg><span class="sr-only">Twitter</span></a></li>\r\n                <li class="list-inline-item"><a class="p-2 text-white" href="#" target="_blank"><svg\r\n                      class="icon icon-sm icon-white align-top">\r\n                      <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-medium"></use>\r\n                    </svg><span class="sr-only">Medium</span></a></li>\r\n                <li class="list-inline-item"><a class="p-2 text-white" href="#" target="_blank"><svg\r\n                      class="icon icon-sm icon-white align-top">\r\n                      <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-behance"></use>\r\n                    </svg><span class="sr-only">Behance</span></a></li>\r\n              </ul>\r\n            </div>\r\n            <div class="pb-2">\r\n              <h4><a href="#" title="Vai alla pagina: Newsletter">Newsletter</a></h4>\r\n              <p>Form Newsletter</p>\r\n              \x3c!--<form action="#" method="post">\r\n              <label for="input-newsletter" class="active">Iscriviti per riceverla</label>\r\n              <div class="input-group">\r\n                <div class="input-group-prepend">\r\n                  <div class="input-group-text">@</div>\r\n                </div>\r\n                <input type="text" class="form-control" id="input-newsletter" name="input-newsletter" placeholder="Scrivi il tuo indirizzo email" >\r\n                <div class="input-group-append">\r\n                  <button class="btn btn-outline-secondary" type="button" id="button-addon2">Button</button>\r\n                </div>\r\n              </div>\r\n              <button class="btn btn-default pull-right" type="submit">Iscriviti</button>\r\n            </form>--\x3e\r\n            </div>\r\n          </div>\r\n        </div>\r\n      </section>\r\n    </div>\r\n  </div>\r\n  <div class="it-footer-small-prints clearfix">\r\n    <div class="container-fluid">\r\n      <h3 class="sr-only">Sezione Link Utili</h3>\r\n      <ul class="it-footer-small-prints-list list-inline mb-0 d-flex flex-column flex-md-row">\r\n        <li class="list-inline-item"><a href="#" title="Note Legali">Media policy</a></li>\r\n        <li class="list-inline-item"><a href="#" title="Note Legali">Note legali</a></li>\r\n        <li class="list-inline-item"><a href="#" title="Privacy-Cookies">Privacy policy</a></li>\r\n        <li class="list-inline-item"><a href="#" title="Mappa del sito">Mappa del sito</a> </li>\r\n      </ul>\r\n    </div>\r\n  </div>\r\n</footer>\r\n'})],e)}(),x=function(){function e(){}return g([t.Input()],e.prototype,"menuItems",void 0),e=g([t.Component({selector:"lib-header-navbar",template:'<div class="it-header-navbar-wrapper">\r\n  <div class="container-fluid">\r\n    <div class="row">\r\n      <div class="col-12">\r\n\r\n        <nav class="navbar navbar-expand-lg has-megamenu">\r\n          <button class="custom-navbar-toggler" type="button" aria-controls="nav10" aria-expanded="false"\r\n            aria-label="Toggle navigation" data-target="#nav10">\r\n            <svg class="icon">\r\n              <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-burger"></use>\r\n            </svg>\r\n          </button>\r\n          <div class="navbar-collapsable" id="nav10">\r\n            <div class="overlay"></div>\r\n            <div class="close-div sr-only">\r\n              <button class="btn close-menu" type="button"><span class="it-close"></span>close</button>\r\n            </div>\r\n            <div class="menu-wrapper">\r\n\r\n              <ul class="navbar-nav">\r\n\r\n                <ng-template ngFor let-item [ngForOf]="menuItems">\r\n                  <ng-container [ngSwitch]="item.type">\r\n\r\n                    <li *ngSwitchCase="\'link\'" class="nav-item" routerLinkActive="active"\r\n                      [routerLinkActiveOptions]="{exact: true}">\r\n\r\n                      <a *ngIf="!item.disabled; else elseBlock" class="nav-link" [routerLink]="[item.href]"\r\n                        routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" #rla="routerLinkActive">\r\n                        <span>{{ item.title }}</span>\r\n                        <span *ngIf="rla.isActive" class="sr-only"> attivo</span>\r\n                      </a>\r\n\r\n                      <ng-template #elseBlock>\r\n                        <a class="nav-link disabled" [routerLink]="[item.href]"><span>{{ item.title }}</span></a>\r\n                      </ng-template>\r\n\r\n                    </li>\r\n\r\n                    <li class="nav-item dropdown" *ngSwitchCase="\'dropdown\'">\r\n                      <lib-dropdown *ngSwitchCase="\'dropdown\'" [title]="item.title" [heading]="item.payload.heading"\r\n                        [items]="item.payload.elements"></lib-dropdown>\r\n                    </li>\r\n\r\n                  </ng-container>\r\n                </ng-template>\r\n\r\n              </ul>\r\n            </div>\r\n\r\n          </div>\r\n        </nav>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n',styles:[""]})],e)}(),w=function(){function e(){}return g([t.Input()],e.prototype,"title",void 0),g([t.Input()],e.prototype,"heading",void 0),g([t.Input()],e.prototype,"items",void 0),e=g([t.Component({selector:"lib-dropdown",template:'<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" aria-expanded="false">\r\n  <span>{{ title }}</span>\r\n  <svg class="icon icon-xs">\r\n    <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-expand"></use>\r\n  </svg>\r\n</a>\r\n<div class="dropdown-menu">\r\n  <div class="link-list-wrapper">\r\n    <ul class="link-list">\r\n      <li>\r\n        <h3 class="no_toc" id="heading">{{ heading }}</h3>\r\n      </li>\r\n\r\n      <li *ngFor="let item of items">\r\n        <a *ngIf="!item.isDivider && item.disabled==true" class="list-item disabled"\r\n          aria-disabled="true"><span>ciao</span></a>\r\n\r\n        <a *ngIf="!item.isDivider && !item.disabled" class="\'list-item" [routerLink]="[item.href]"\r\n          routerLinkActive="active" [routerLinkActiveOptions]="{exact: true}" #rla="routerLinkActive">\r\n          <span>{{ item.title }}</span>\r\n          <span *ngIf="rla.isActive" class="sr-only">active</span>\r\n        </a>\r\n\r\n        <span *ngIf="item.isDivider" class="divider"></span>\r\n      </li>\r\n\r\n    </ul>\r\n  </div>\r\n</div>\r\n',styles:[""]})],e)}(),k=function(){function e(){}return e.prototype.ngOnInit=function(){},e=g([t.Component({selector:"lib-blank-page",template:'<div class="container-fluid my-4 px-4">\r\n  <ng-content></ng-content>\r\n</div>\r\n'})],e)}(),I=function(){function e(){this.formSubmit=new t.EventEmitter}return e.prototype.onSubmit=function(e){if(e.valid){var t=e.value.email,n=e.value.password;this.formSubmit.emit({email:t,password:n}),e.reset()}},g([t.Input()],e.prototype,"isLoading",void 0),g([t.Output()],e.prototype,"formSubmit",void 0),e=g([t.Component({selector:"lib-login-page",template:'<div id="content" class="container py-5">\r\n  <div class="wrapper">\r\n\r\n    <section class="container" style="max-width: 40em">\r\n      <h1 class="pb-5">Log in</h1>\r\n\r\n      <form class="login" #authForm="ngForm" (ngSubmit)="onSubmit(authForm)" *ngIf="!isLoading">\r\n\r\n        <div class="form-group">\r\n          <input type="text" name="email" class="form-control " id="email" ngModel required email>\r\n          <label for="email">Email</label>\r\n        </div>\r\n\r\n        <div class="form-group">\r\n          <input type="password" name="password" class="form-control input-password" id="password" ngModel required minlength="14">\r\n          <label for="password">Password</label>\r\n          <span class="password-icon bg-transparent" aria-hidden="true">\r\n            <svg class="password-icon-visible icon icon-sm">\r\n              <use\r\n                xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-password-visible">\r\n              </use>\r\n            </svg>\r\n            <svg class="password-icon-invisible icon icon-sm d-none">\r\n              <use\r\n                xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-password-invisible">\r\n              </use>\r\n            </svg>\r\n          </span>\r\n        </div>\r\n\r\n        <div class="form-check">\r\n          <input id="remember" name="remember" type="checkbox">\r\n          <label for="remember">Ricordami</label>\r\n        </div>\r\n\r\n        <div class="py-4 login_buttons">\r\n          <button class="btn btn-primary" type="submit" [disabled]="!authForm.valid">Log in</button>\r\n        </div>\r\n\r\n        \x3c!-- <p>Se non hai ancora creato un account, <a [routerLink]="[\'/\']" >registrati</a> adesso.</p> --\x3e\r\n\r\n        <p>Se invece hai dimenticato la password, puoi <a [routerLink]="[\'/reset-password\']">reimpostarla</a>.</p>\r\n\r\n      </form>\r\n\r\n    </section>\r\n\r\n  </div>\r\n</div>\r\n',styles:[".form-group{margin-bottom:1.5rem}"]})],e)}(),C=function(){function e(){}return e=g([t.Component({selector:"lib-reset-password-page",template:'<div id="content" class="container py-5">\r\n  <div class="wrapper">\r\n\r\n    <section class="container" style="max-width: 40em">\r\n      <h1>Re-imposta la Password</h1>\r\n\r\n      <p>Hai dimenticato la tua password? Inserisci qui sotto l\'indirizzo e-mail con cui ti sei registrato, ti invieremo\r\n        una mail con un link per re-impostarla.</p>\r\n\r\n      <form method="POST" action="/accounts/password/reset/" class="password_reset">\r\n\r\n        <div class="form-group">\r\n          <input type="email" class="form-control" id="id_email" name="email">\r\n          <label for="id_email">E-mail</label>\r\n        </div>\r\n\r\n        <button class="btn btn-primary" type="submit">Re-imposta la mia Password</button>\r\n      </form>\r\n    </section>\r\n\r\n  </div>\r\n</div>\r\n',styles:[".form-group{margin-bottom:1.5rem}"]})],e)}(),S=function(){function e(){this.paginationChange=new t.EventEmitter,this.detailSelected=new t.EventEmitter}return e.prototype.ngOnInit=function(){var e=this;this.loading=!0,this.loadingSub=this.$rows.subscribe((function(t){t&&(e.loading=!1)}))},e.prototype.ngOnChanges=function(e){e.pagination&&(this.loading=!1)},e.prototype.ngOnDestroy=function(){this.loadingSub&&this.loadingSub.unsubscribe()},e.prototype.emitNewPagination=function(e){this.loading=!0,this.paginationChange.emit(e)},e.prototype.getElemKeys=function(e){return Object.keys(e)},e.prototype.onDetail=function(e){this.detailSelected.emit(e)},g([t.Input()],e.prototype,"columns",void 0),g([t.Input()],e.prototype,"detailUpdate",void 0),g([t.Input()],e.prototype,"$rows",void 0),g([t.Input()],e.prototype,"pagination",void 0),g([t.Output()],e.prototype,"paginationChange",void 0),g([t.Output()],e.prototype,"detailSelected",void 0),e=g([t.Component({selector:"lib-table",template:'<div class="table-responsive my-5 shadow">\r\n  <table class="table mb-0 bg-white">\r\n    <thead>\r\n      <tr>\r\n        <th scope="col" *ngFor="let colItem of columns">\r\n          <span>{{ colItem.label }}</span>\r\n          \x3c!-- <svg class="icon icon-xs">\r\n                    <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-expand">\r\n                    </use>\r\n                  </svg> --\x3e\r\n        </th>\r\n        <th scope="col" *ngIf="detailUpdate">\r\n          <span> Azione </span>\r\n        </th>\r\n      </tr>\r\n    </thead>\r\n    <tbody>\r\n      <tr *ngIf="loading">\r\n        <td [attr.colspan]="detailUpdate ? columns.length + 1 : columns.length">\r\n          <div class="progress progress-indeterminate" style="width: 100%;">\r\n            <span class="sr-only">In elaborazione...</span>\r\n            <div class="progress-bar" role="progressbar"></div>\r\n          </div>\r\n        </td>\r\n      </tr>\r\n\r\n      <tr *ngFor="let item of $rows | async">\r\n        <td class="align-middle" *ngFor="let column of columns">\r\n          {{ item[column.key] }}\r\n        </td>\r\n        <td class="align-middle" *ngIf="detailUpdate">\r\n          <a href="javascript:void(0);" class="btn btn-secondary btn-xs btn-icon" role="button" aria-disabled="true" (click)="onDetail(item)">\r\n            <svg class="icon icon-white">\r\n              <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-search">\r\n              </use>\r\n            </svg>\r\n            <span>Dettagli</span>\r\n          </a>\r\n        </td>\r\n      </tr>\r\n    </tbody>\r\n  </table>\r\n</div>\r\n<lib-table-pagination *ngIf="pagination" [currentPagination]="pagination"\r\n  (paginationChange)="emitNewPagination($event)"></lib-table-pagination>\r\n',styles:[""]})],e)}(),P=function(){function e(){}return e.prototype.ngOnInit=function(){},e=g([t.Component({selector:"lib-search-modal",template:'<div class="modal sfs-modal fade show" tabindex="-1" role="dialog" id="modalSearchFullScreen">\r\n  <div class="modal-dialog" role="document">\r\n     <div class="modal-content">\r\n       <div class="container">\r\n         \x3c!-- Header --\x3e\r\n         <div class="row mt-5 mb-5">\r\n           <div class="col-12 d-flex justify-content-between align-items-center">\r\n             <h1 class="text-secondary">Cerca</h1>\r\n             <button class="close" type="button" data-dismiss="modal" aria-label="Close">\r\n               <svg class="icon icon-lg">\r\n                 <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-close"></use>\r\n               </svg>\r\n             </button>\r\n           </div>\r\n         </div>\r\n\r\n         \x3c!-- Input --\x3e\r\n         <div class="row">\r\n           <div class="col-12">\r\n             <form id="autocompleteSearchForm" autocomplete="off">\r\n               <div class="form-group autocomplete-wrapper-big">\r\n                 <input\r\n                   autocomplete="off"\r\n                   type="search"\r\n                   class="autocomplete"\r\n                   placeholder="Cerca eventi, bollettini o per tag"\r\n                   id="autocompleteSearchFullScreen"\r\n                   name="autocompleteSearchFullScreen">\r\n                 <span class="autocomplete-icon" aria-hidden="true">\r\n                   <svg class="icon icon-sm">\r\n                     <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-search"></use>\r\n                   </svg>\r\n                 </span>\r\n                 <ul class="autocomplete-list" id="autocompleteListSearchFullScreen"></ul>\r\n                 <label for="autocompleteSearchFullScreen" class="sr-only">Cerca nel sito</label>\r\n               </div>\r\n             </form>\r\n           </div>\r\n         </div>\r\n\r\n         \x3c!-- Filters --\x3e\r\n         <div id="autocompleteFilters" class="row">\r\n           <div class="col-12 sfs-modal-tags-container">\r\n             <button type="button" class="btn btn-xs sfs-btn-tag btn-primary" data-filter="">Tutto</button>\r\n             <button type="button" class="btn btn-xs sfs-btn-tag btn-icon btn-outline-secondary" data-filter="progetto">\r\n               <svg class="icon icon-secondary">\r\n                 <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-map-marker-circle"></use>\r\n               </svg>\r\n               <span>Eventi</span>\r\n             </button>\r\n             <button type="button" class="btn btn-xs sfs-btn-tag btn-icon btn-outline-secondary" data-filter="documento">\r\n               <svg class="icon icon-secondary">\r\n                 <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-note"></use>\r\n               </svg>\r\n               <span>Bollettini</span>\r\n             </button>\r\n             <button type="button" class="btn btn-xs sfs-btn-tag btn-icon btn-outline-secondary" data-filter="amministrazione">\r\n               <svg class="icon icon-secondary">\r\n                 <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-star-outline"></use>\r\n               </svg>\r\n               <span>Coau</span>\r\n             </button>\r\n           </div>\r\n         </div>\r\n       </div>\r\n     </div>\r\n  </div>\r\n</div>\r\n',styles:[".form-group{margin-bottom:1.5rem}.sfs-modal-button{background:0 0;border:none;color:#fff}.sfs-modal-button span{display:none;font-size:16px}.sfs-modal-button .sfs-modal-button-icon-bg{background:0 0;border-radius:44px;height:auto;width:auto;margin-left:0;flex:0 0 44px}.sfs-modal-button .sfs-modal-button-icon-bg .icon-primary{fill:#fff!important}@media (min-width:576px){.sfs-modal-button span{display:block;margin-bottom:1px}.sfs-modal-button .sfs-modal-button-icon-bg{background:#fff;height:44px;width:44px;margin-left:10px}.sfs-modal-button .sfs-modal-button-icon-bg .icon-primary{fill:#06c!important}}.sfs-modal.modal{height:100%;height:calc(100% - 48px);top:48px;bottom:0;left:0;right:0;border:none;background:#fff;border-radius:0;padding:0;z-index:1072;padding-right:0!important}@media (min-width:576px){.sfs-modal.modal{height:calc(100% - 54px);top:54px}}@media (min-width:992px){.sfs-modal.modal{height:calc(100% - 48px);top:48px}}.sfs-modal.modal .modal-dialog{background:#fff;margin:0;max-width:none;height:100%}.sfs-modal.modal .modal-dialog .modal-content{min-height:100%;box-shadow:none}.sfs-modal.modal .modal-dialog .modal-content .autocomplete-wrapper-big .autocomplete{padding-left:65px}.sfs-modal.modal .modal-dialog .modal-content .autocomplete-wrapper-big .autocomplete-list{z-index:1}.sfs-modal.modal .modal-dialog .modal-content .autocomplete-wrapper-big .autocomplete-list .autocomplete-list-freesearch a{font-size:16px;font-weight:600;color:#06c}.sfs-modal.modal .modal-dialog .modal-content .autocomplete-wrapper-big .autocomplete-list .autocomplete-list-freesearch a .search-icon{margin-top:1px}.sfs-modal.modal .modal-dialog .modal-content .autocomplete-wrapper-big .autocomplete-list .autocomplete-list-freesearch a .right-arrow-icon{margin-top:2px}.sfs-modal.modal .sfs-modal-tags-container .sfs-btn-tag{margin-right:10px;margin-bottom:10px}.sfs-modal.modal .sfs-modal-tags-container .btn-outline-secondary{box-shadow:inset 0 0 0 1px #5f7285}"]})],e)}(),E=function(){function e(){this.paginationChange=new t.EventEmitter,this.pages=[],this.currentPageRound=[]}return e.prototype.ngOnInit=function(){this.setPageRound(1)},e.prototype.ngOnChanges=function(e){e.currentPagination&&this.setPageRound(this.currentPagination.currentPage)},e.prototype.setPage=function(e){this.currentPagination.currentPage=e,this.setPageRound(e),this.paginationChange.emit({page:this.currentPagination.currentPage,pageSize:this.currentPagination.pageSize})},e.prototype.nextPage=function(){var e=this.currentPagination.currentPage+1;this.pages.find((function(t){return t.page===e}))&&(this.currentPagination.currentPage=e,this.setPageRound(e),this.paginationChange.emit({page:this.currentPagination.currentPage,pageSize:this.currentPagination.pageSize}))},e.prototype.previousPage=function(){var e=this.currentPagination.currentPage-1;this.pages.find((function(t){return t.page===e}))&&(this.currentPagination.currentPage=e,this.setPageRound(e),this.paginationChange.emit({page:this.currentPagination.currentPage,pageSize:this.currentPagination.pageSize}))},e.prototype.changePageSize=function(e){this.currentPagination.pageSize=e,this.paginationChange.emit({page:1,pageSize:this.currentPagination.pageSize})},e.prototype.setPageRound=function(e){if(this.pages=[],this.currentPagination.totalPages>7){var t=e-2>1?e-2:2,n=e+2<this.currentPagination.totalPages?e+2:this.currentPagination.totalPages-1;this.pages.push({separator:!1,page:1}),t>2&&this.pages.push({separator:!0});for(var i=t>2?n:t+3,r=e>this.currentPagination.totalPages-4?this.currentPagination.totalPages-4:t;r<=i;r++)this.pages.push({separator:!1,page:r});n<this.currentPagination.totalPages-1&&this.pages.push({separator:!0}),this.pages.push({separator:!1,page:this.currentPagination.totalPages})}else for(r=1;r<=this.currentPagination.totalPages;r++)this.pages.push({separator:!1,page:r})},g([t.Input()],e.prototype,"currentPagination",void 0),g([t.Output()],e.prototype,"paginationChange",void 0),e=g([t.Component({selector:"lib-table-pagination",template:'<div class="row">\r\n  <div class="col">\r\n    <nav class="pagination-wrapper justify-content-center" aria-label="Esempio di navigazione della pagina">\r\n      <ul class="pagination">\r\n        <li class="page-item">\r\n          <a class="page-link" href="javascript:void(0);" (click)="previousPage()">\r\n            <svg class="icon icon-primary">\r\n              <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-chevron-left">\r\n              </use>\r\n            </svg>\r\n            <span class="sr-only">Pagina precedente</span>\r\n          </a>\r\n        </li>\r\n\r\n        <li class="page-item" *ngFor="let elem of pages">\r\n\r\n          <a class="page-link" href="javascript:void(0);" aria-current="page"\r\n            *ngIf="!elem.separator && elem.page === currentPagination.currentPage" (click)="setPage(elem.page)">\r\n            {{ elem.page }}\r\n          </a>\r\n\r\n          <a class="page-link" href="javascript:void(0);" (click)="setPage(elem.page)"\r\n            *ngIf="!elem.separator && elem.page !== currentPagination.currentPage;">{{ elem.page }}</a>\r\n\r\n          <span class="page-link" *ngIf="elem.separator">...</span>\r\n\r\n        </li>\r\n\r\n        <li class="page-item">\r\n          <a class="page-link" href="javascript:void(0);" (click)="nextPage()">\r\n            <span class="sr-only">Pagina successiva</span>\r\n            <svg class="icon icon-primary">\r\n              <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-chevron-right">\r\n              </use>\r\n            </svg>\r\n          </a>\r\n        </li>\r\n      </ul>\r\n\r\n      <div class="dropdown">\r\n        <a class="btn btn-dropdown dropdown-toggle" href="javascript:void(0);" role="button" id="pagerChanger"\r\n          data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Salta alla pagina">pag. {{ currentPagination.pageSize }}</a>\r\n        <div class="dropdown-menu" aria-labelledby="pagerChanger">\r\n          <div class="link-list-wrapper">\r\n            <ul class="link-list">\r\n              <li><a class="list-item" href="javascript:void(0);" (click)="changePageSize(10)"><span>pag. 10</span></a></li>\r\n              <li><a class="list-item" href="javascript:void(0);" (click)="changePageSize(20)"><span>pag. 20</span></a></li>\r\n              <li><a class="list-item" href="javascript:void(0);" (click)="changePageSize(30)"><span>pag. 30</span></a></li>\r\n              <li><a class="list-item" href="javascript:void(0);" (click)="changePageSize(40)"><span>pag. 40</span></a></li>\r\n              <li><a class="list-item" href="javascript:void(0);" (click)="changePageSize(50)"><span>pag. 50</span></a></li>\r\n            </ul>\r\n          </div>\r\n        </div>\r\n      </div>\r\n\r\n    </nav>\r\n  </div>\r\n</div>\r\n',styles:[""]})],e)}(),F=function(){function e(){}return e.prototype.toFormGroup=function(e,t){void 0===t&&(t=null);var n={};return e.forEach((function(e){var i;i="boolean"!=typeof e.value&&"",t&&(i=t[e.key]),n[e.key]=e.required?new r.FormControl({value:e.value||i,disabled:e.disabled},r.Validators.required):new r.FormControl({value:e.value||i,disabled:e.disabled})})),new r.FormGroup(n)},e=g([t.Injectable()],e)}(),L=function(){function e(e){this.qcs=e,this.fromValueChange=new t.EventEmitter,this.submitedEvent=new t.EventEmitter,this.latitude=42.5,this.longitude=12.5}return e.prototype.ngOnInit=function(){var e,t,n,i,r=this;this.widthExp=100/this.stepElements.length,this.currentStepIndex=1,this.validSteps=[],this.touchedSteps=[],this.formRows=[].concat.apply([],h(this.stepElements.map((function(e){return e.fromRows}))));var o=[].concat.apply([],h(this.formRows.map((function(e){return e.items}))));this.stepForm=this.qcs.toFormGroup(o),this.mapId=this.getMapId();var s=this.stepElements.find((function(e){return e.mapId})).fromRows;this.mapFormFields=[].concat.apply([],h(s.map((function(e){return e.items})))),null===(e=this.stepForm.controls.latitude)||void 0===e||e.setValue(42.5),this.latSub=null===(t=this.stepForm.controls.latitude)||void 0===t?void 0:t.valueChanges.pipe(a.debounceTime(500),a.distinctUntilChanged()).subscribe((function(e){r.latitude=e})),null===(n=this.stepForm.controls.longitude)||void 0===n||n.setValue(12.5),this.lngSub=null===(i=this.stepForm.controls.longitude)||void 0===i?void 0:i.valueChanges.pipe(a.debounceTime(500),a.distinctUntilChanged()).subscribe((function(e){r.longitude=e})),this.formStateSubscription=this.stepForm.valueChanges.subscribe((function(e){var t,n=r.mapFormFields.map((function(e){return e.key})),i=[];n.forEach((function(e){var t=r.stepForm.value[e];"object"==typeof t&&i.push(r.stepForm.value[e]),(null==t?void 0:t.shapelight)&&(r.mapShapePolygon=t.shapelight)})),(null==i?void 0:i.length)>0&&(r.mapBboxPolygon=null===(t=i[i.length-1])||void 0===t?void 0:t.boundingbox),r.fromValueChange.emit(e)}))},e.prototype.ngOnDestroy=function(){this.formStateSubscription&&this.formStateSubscription.unsubscribe(),this.latSub&&this.latSub.unsubscribe(),this.lngSub&&this.lngSub.unsubscribe()},Object.defineProperty(e.prototype,"stepRows",{get:function(){var e=this;return this.stepElements.find((function(t){return t.index===e.currentStepIndex})).fromRows},enumerable:!0,configurable:!0}),e.prototype.getItems=function(e){var t=this;return e.items.filter((function(e){var n,i,a,o,s,l,c,d=!1;if((null===(n=e.parentShowCondition)||void 0===n?void 0:n.parentKey)&&(null===(i=e.parentShowCondition)||void 0===i?void 0:i.parentValue)===t.stepForm.get(e.parentShowCondition.parentKey).value&&(d=!0),(null===(a=e.parentShowCondition)||void 0===a?void 0:a.parentKey)&&"object"==typeof(null===(o=e.parentShowCondition)||void 0===o?void 0:o.parentValue)&&JSON.stringify(null===(s=e.parentShowCondition)||void 0===s?void 0:s.parentValue)===JSON.stringify(t.stepForm.get(e.parentShowCondition.parentKey).value)&&(d=!0),!e.parentShowCondition||d)return null===(l=t.stepForm.get(e.key))||void 0===l||l.setValidators(r.Validators.required),e;null===(c=t.stepForm.get(e.key))||void 0===c||c.setValidators(null)}))},e.prototype.getPratentField=function(e){return[].concat.apply([],h(this.formRows.map((function(e){return e.items})))).find((function(t){return t.parentFieldKey===e}))},e.prototype.isValidStep=function(e){return!!this.validSteps.find((function(t){return t===e}))},e.prototype.setValidStep=function(e){var t,n=this.stepElements.find((function(t){return t.index===e})).fromRows.map((function(e){return e.items})),i=[].concat.apply([],h(n)).map((function(e){return e.key})),r=this.stepForm.controls,a=Object.keys(r).filter((function(e){return i.includes(e)&&r[e].valid})).reduce((function(e,t){return e[t]=r[t],e}),{});(function(e,t){if(e===t)return!0;if(null==e||null==t)return!1;if(e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0})(i,Object.keys(a))?-1===(t=this.validSteps.indexOf(e,0))&&this.validSteps.push(e):(t=this.validSteps.indexOf(e,0))>-1&&this.validSteps.splice(t,1)},e.prototype.isTouchedStep=function(e){return!!this.touchedSteps.find((function(t){return t===e}))},e.prototype.prevStep=function(){this.stepForm.updateValueAndValidity(),this.setValidStep(this.currentStepIndex),this.touchedSteps.push(this.currentStepIndex),this.currentStepIndex--},e.prototype.nextStep=function(){this.stepForm.updateValueAndValidity(),this.setValidStep(this.currentStepIndex),this.touchedSteps.push(this.currentStepIndex),this.currentStepIndex++},e.prototype.onSubmit=function(){this.submitedEvent.emit(this.stepForm.getRawValue())},e.prototype.stepHaveMap=function(e){var t=this.stepElements.find((function(t){return t.index===e}));return!(!t||!t.mapId)},e.prototype.getMapGeojson=function(e){this.mapGeoJson=e,console.log(e)},e.prototype.getMapId=function(){var e=this.stepElements.find((function(e){return e.mapId}));return e&&e.mapId?e.mapId:null},e.ctorParameters=function(){return[{type:F}]},g([t.Input()],e.prototype,"stepElements",void 0),g([t.Output()],e.prototype,"fromValueChange",void 0),g([t.Output()],e.prototype,"submitedEvent",void 0),e=g([t.Component({selector:"lib-stepper",template:'<div class="steppers">\r\n  <ul class="steppers-header custom-stepper-header">\r\n\r\n    <li *ngFor="let step of stepElements"\r\n      [ngClass]="{\'active\': step.index === currentStepIndex, \'confirmed\': step.index !== currentStepIndex && isValidStep(step.index)}"\r\n      [ngStyle]="{\'width\': widthExp  + \'%\'}">\r\n      {{ step.label }}\r\n      <svg class="icon icon-success steppers-success" *ngIf="step.index !== currentStepIndex && isValidStep(step.index)">\r\n        <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-check"></use>\r\n      </svg>\r\n      <svg class="icon icon-warning steppers-success" *ngIf="step.index !== currentStepIndex && !isValidStep(step.index) && isTouchedStep(step.index)">\r\n        <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-info-circle"></use>\r\n      </svg>\r\n      <span class="sr-only" *ngIf="step.index === currentStepIndex">Attivo</span>\r\n      <span class="sr-only" *ngIf="step.index !== currentStepIndex && isValidStep(step.index)">Confermato</span>\r\n    </li>\r\n\r\n    <li class="steppers-index" aria-hidden="true">{{ currentStepIndex }}/{{ stepElements.length }}</li>\r\n\r\n  </ul>\r\n  <div class="align-middle custom-stepper" aria-live="polite">\r\n    <form [formGroup]="stepForm">\r\n      <div class="form-row" *ngFor="let row of stepRows">\r\n        <div class="custom-form-group" *ngFor="let item of getItems(row)" [ngClass]="item.class">\r\n          <lib-dynamic-form-element [field]="item" [parentField]="getPratentField(item.parentFieldKey)" [form]="stepForm"></lib-dynamic-form-element>\r\n        </div>\r\n      </div>\r\n      <div class="form-map" *ngIf="stepHaveMap(currentStepIndex)">\r\n        <lib-leaflet-map [latitude]="latitude" [longitude]="longitude" [bboxPolygon]="mapBboxPolygon" [shapePolygon]="mapShapePolygon" (geoJson)="getMapGeojson($event)" [enableEdit]="true"></lib-leaflet-map>\r\n      </div>\r\n    </form>\r\n  </div>\r\n\r\n  <nav class="steppers-nav custom-stepper-nav">\r\n    <button type="button" class="btn btn-outline-primary btn-sm steppers-btn-prev" (click)="prevStep()" [disabled]="currentStepIndex === 1">\r\n      <svg class="icon icon-primary">\r\n        <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-chevron-left"></use>\r\n      </svg>\r\n      Indietro\r\n    </button>\r\n    <button type="button" class="btn btn-primary btn-sm steppers-btn-save" (click)="onSubmit()" [disabled]="!stepForm.valid">Salva</button>\r\n    <button type="button" class="btn btn-outline-primary btn-sm steppers-btn-next" (click)="nextStep()" [disabled]="currentStepIndex === stepElements.length">Avanti\r\n      <svg class="icon icon-primary">\r\n        <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-chevron-right"></use>\r\n      </svg>\r\n    </button>\r\n  </nav>\r\n</div>\r\n',styles:[".custom-stepper{min-height:20em;padding-top:3em;padding-left:1em;padding-right:1em;justify-content:center;align-items:center;color:#333}@media (min-width:992px){.custom-stepper{min-height:22em}.custom-stepper .form-map{margin-bottom:3em}.custom-stepper-header{box-shadow:0 10px 40px -30px grey}.custom-stepper-nav{box-shadow:0 -15px 30px -25px grey}.custom-form-group{min-height:5em}}"]})],e)}();var V,O=function(){function e(){}return e.prototype.ngOnInit=function(){this.modalId||(this.modalId="libModal")},e.prototype.openModal=function(){$("#"+this.modalId).modal("show")},e.prototype.closeModal=function(){$("#"+this.modalId).modal("hide")},g([t.Input()],e.prototype,"buttonLabel",void 0),g([t.Input()],e.prototype,"modalTitle",void 0),g([t.Input()],e.prototype,"modalId",void 0),e=g([t.Component({selector:"lib-dialog",template:'\x3c!-- Button trigger modal --\x3e\r\n<button type="button" class="btn btn-primary" data-toggle="modal" [attr.data-target]="\'#\' + modalId" *ngIf="buttonLabel">\r\n  {{ buttonLabel }}\r\n</button>\r\n\r\n\x3c!-- Modal --\x3e\r\n<div class="modal fade" tabindex="-1" role="dialog" [id]="modalId" data-keyboard="false" data-backdrop="static">\r\n  <div class="modal-dialog modal-dialog-centered modal-lg" role="document">\r\n    <div class="modal-content">\r\n      <div class="modal-header">\r\n        <h5 class="modal-title">\r\n          {{ modalTitle }}\r\n        </h5>\r\n        <button class="close" type="button" data-dismiss="modal" aria-label="Close">\r\n          <svg class="icon">\r\n            <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-close"></use>\r\n          </svg>\r\n        </button>\r\n      </div>\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </div>\r\n</div>\r\n',styles:[""]})],e)}(),M=function(){function e(e){this.qcs=e,this.rows=[],this.submitEvent=new t.EventEmitter,this.cancelEvent=new t.EventEmitter,this.payLoad=""}return e.prototype.ngOnInit=function(){this.submitLabel||(this.submitLabel="Conferma");var e=[].concat.apply([],h(this.rows.map((function(e){return e.items}))));this.form=this.qcs.toFormGroup(e,this.defaultState)},e.prototype.onSubmit=function(){this.submitEvent.emit(this.form.getRawValue())},e.prototype.onCancel=function(){this.form.reset(),this.cancelEvent.emit()},e.ctorParameters=function(){return[{type:F}]},g([t.Input()],e.prototype,"rows",void 0),g([t.Input()],e.prototype,"defaultState",void 0),g([t.Input()],e.prototype,"submitLabel",void 0),g([t.Output()],e.prototype,"submitEvent",void 0),g([t.Output()],e.prototype,"cancelEvent",void 0),e=g([t.Component({selector:"lib-dynamic-form",template:'<div>\r\n  <form (ngSubmit)="onSubmit()" [formGroup]="form">\r\n\r\n    <div *ngFor="let row of rows">\r\n      <div class="form-row">\r\n        <div *ngFor="let item of row.items" [ngClass]="item.class">\r\n          <lib-dynamic-form-element [field]="item" [form]="form">\r\n          </lib-dynamic-form-element>\r\n        </div>\r\n      </div>\r\n    </div>\r\n\r\n    <ng-content></ng-content>\r\n\r\n    <div class="form-row mt-5">\r\n      <div class="form-group col text-center">\r\n        <button type="button" class="btn btn-outline-primary mr-1" (click)="onCancel()">Annulla</button>\r\n        <button type="submit" class="btn btn-primary" [disabled]="!form.valid">{{ submitLabel }}</button>\r\n      </div>\r\n    </div>\r\n  </form>\r\n\r\n  <div *ngIf="payLoad" class="form-row">\r\n    <strong>Saved the following values</strong><br>{{payLoad}}\r\n  </div>\r\n</div>\r\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[""]})],e)}(),z=function(){function e(){this.newInsertEvent=new t.EventEmitter,this.parentValue=null}return e.prototype.ngOnInit=function(){var e=this;this.field.parentFieldKey&&(this.parentSubscription=this.form.get(this.field.parentFieldKey).valueChanges.subscribe((function(t){var n,i,r,a,o=!1;(e.form.get(e.field.parentFieldKey).valid&&"autocomplete"!==(null===(n=e.parentField)||void 0===n?void 0:n.controlType)||(null===(i=e.form.get(e.field.parentFieldKey))||void 0===i?void 0:i.value)&&"object"==typeof e.form.get(e.field.parentFieldKey).value&&Object.keys(e.form.get(e.field.parentFieldKey).value).length>0)&&(o=!0),o?(null===(r=e.form.get(e.field.key))||void 0===r?void 0:r.disabled)&&e.form.get(e.field.key).enable():(null===(a=e.form.get(e.field.key))||void 0===a?void 0:a.enable)&&(e.form.get(e.field.key).reset(),e.form.get(e.field.key).disable()),e.parentValue=t})))},e.prototype.ngOnDestroy=function(){this.parentSubscription&&this.parentSubscription.unsubscribe()},Object.defineProperty(e.prototype,"isValid",{get:function(){return this.form.controls[this.field.key].valid},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isTouched",{get:function(){return this.form.controls[this.field.key].touched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDirty",{get:function(){return this.form.controls[this.field.key].dirty},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isPristine",{get:function(){return this.form.controls[this.field.key].pristine},enumerable:!0,configurable:!0}),e.prototype.emitNewInsert=function(e){this.newInsertEvent.emit(e)},g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"parentField",void 0),g([t.Output()],e.prototype,"newInsertEvent",void 0),e=g([t.Component({selector:"lib-dynamic-form-element",template:'<div [ngSwitch]="field.controlType">\r\n\r\n  <lib-checkbox *ngSwitchCase="\'checkbox\'" [field]="field" [form]="form" [valid]="isValid && (isTouched || isDirty)"\r\n    [invalid]="!isValid && (isTouched || isDirty)">\r\n  </lib-checkbox>\r\n\r\n  <lib-textbox *ngSwitchCase="\'textbox\'" [field]="field" [form]="form" [valid]="isValid && (isTouched || isDirty)"\r\n    [invalid]="!isValid && (isTouched || isDirty)"></lib-textbox>\r\n\r\n  <lib-textbox-number *ngSwitchCase="\'textbox-number\'" [field]="field" [form]="form"\r\n    [valid]="isValid && (isTouched || isDirty)" [invalid]="!isValid && (isTouched || isDirty)" [min]="field.min" [max]="field.max"></lib-textbox-number>\r\n\r\n  <lib-textarea *ngSwitchCase="\'textarea\'" [field]="field" [form]="form" [valid]="isValid && (isTouched || isDirty)"\r\n    [invalid]="!isValid && (isTouched || isDirty)"></lib-textarea>\r\n\r\n  <lib-select *ngSwitchCase="\'dropdown\'" [field]="field" [form]="form" [valid]="isValid && (isTouched || isDirty)"\r\n    [invalid]="!isValid && (isTouched || isDirty)"></lib-select>\r\n\r\n  <lib-typeahead *ngSwitchCase="\'autocomplete\'" [field]="field" [form]="form" [parentValue]="parentValue" (newInsertEvent)="emitNewInsert($event)"></lib-typeahead>\r\n\r\n  <lib-date-picker *ngSwitchCase="\'datepicker\'" [field]="field" [form]="form" [valid]="isValid && (isTouched || isDirty)"\r\n  [invalid]="!isValid && (isTouched || isDirty)"></lib-date-picker>\r\n\r\n</div>\r\n',styles:[""]})],e)}(),j=function(){function e(){}return e.prototype.ngOnInit=function(){},g([t.Input()],e.prototype,"confirmMessage",void 0),e=g([t.Component({selector:"lib-confirm-dialog",template:'\x3c!-- Modal --\x3e\n<div class="modal" tabindex="-1" role="dialog" id="libConfirmModal">\n  <div class="modal-dialog modal-dialog-centered" role="document">\n    <div class="modal-content">\n      <div class="modal-header">\n        <h5 class="modal-title">Conferma Operazione\n        </h5>\n      </div>\n      <div class="modal-body">\n        <p>{{ confirmMessage }}</p>\n      </div>\n      <div class="modal-footer">\n        <button class="btn btn-outline-primary btn-sm" type="button" data-dismiss="modal">Annulla</button>\n        <button class="btn btn-primary btn-sm" type="button">Conferma</button>\n      </div>\n    </div>\n  </div>\n</div>\n',styles:[""]})],e)}(),D=function(){function e(e){this.httpClient=e}return e.prototype.searchElements=function(e,t,n,i,r){return t[i]=n,r&&Object.keys(r).forEach((function(e){return t[e]=r[e]})),this.httpClient.post(e,t)},e.ctorParameters=function(){return[{type:l.HttpClient}]},e.ɵprov=t.ɵɵdefineInjectable({factory:function(){return new e(t.ɵɵinject(l.HttpClient))},token:e,providedIn:"root"}),e=g([t.Injectable({providedIn:"root"})],e)}(),T=function(){function e(e){this.searchService=e,this.parentValue=null,this.newInsertEvent=new t.EventEmitter,this.autocompleteListOpened=!1,this.filteredData$=new o.Subject,this.dataLength=7,this.isFilled=!1,this.isLoading=!1}return e.prototype.ngOnInit=function(){var e,t=this;(null===(e=this.form.controls[this.field.key])||void 0===e?void 0:e.value)&&(this.isFilled=!0),this.form.controls[this.field.key].valueChanges.pipe(a.tap((function(e){e&&"string"!=typeof e&&e[t.field.asyncParams.searchField]?t.autocompleteInput.nativeElement.value=e[t.field.asyncParams.searchField]:e&&(t.autocompleteListOpened=!0)})),a.debounceTime(300),a.tap((function(e){"string"==typeof e&&(t.filteredData$.next(null),t.isLoading=!0)})),a.switchMap((function(e){var n={};if(t.parentValue){var i=t.field.parentFieldFilterKey,r=t.parentValue[i];n[t.field.asyncParams.parentFilterName]=r}return"string"==typeof e?t.searchService.searchElements(t.field.asyncParams.url,t.field.asyncParams.requestModel,e,t.field.asyncParams.searchField,n).pipe(a.finalize((function(){return t.isLoading=!1}))):s.EMPTY}))).subscribe((function(e){t.filteredData$.next(e.items)})),this.field.parentFieldKey&&this.form.get(this.field.parentFieldKey).valueChanges.subscribe((function(e){var n,i=t.form.get(t.field.key).value;!e||"object"==typeof e&&e[t.field.parentFieldFilterKey]===(null==i?void 0:i[null===(n=t.field.asyncParams)||void 0===n?void 0:n.parentFilterName])||(t.form.get(t.field.key).reset(),t.form.get(t.field.key).setValue("")),e||(t.autocompleteListOpened=!1)}))},e.prototype.ngAfterViewInit=function(){var e,t;(null===(e=this.form.controls[this.field.key])||void 0===e?void 0:e.value)&&(null===(t=this.form.controls[this.field.key])||void 0===t?void 0:t.value[this.field.asyncParams.searchField])&&(this.autocompleteInput.nativeElement.value=this.form.controls[this.field.key].value[this.field.asyncParams.searchField])},e.prototype.onBlur=function(e){this.isFilled=!0,e.relatedTarget&&"input"!==e.localname||(this.autocompleteListOpened=!1)},e.prototype.onFocus=function(e){var t,n;(null===(t=this.form.get(this.field.parentFieldKey))||void 0===t?void 0:t.value)&&!(null===(n=this.form.get(this.field.key))||void 0===n?void 0:n.value)&&(this.autocompleteListOpened=!0)},Object.defineProperty(e.prototype,"isValidItem",{get:function(){return"object"==typeof this.form.controls[this.field.key].value?(this.form.controls[this.field.key].errors&&this.form.controls[this.field.key].setErrors(null),!0):(this.form.controls[this.field.key].errors||this.form.controls[this.field.key].setErrors({incorrect:!0}),!1)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isTouched",{get:function(){return this.form.controls[this.field.key].touched},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isDirty",{get:function(){return this.form.controls[this.field.key].dirty},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isEnabled",{get:function(){return this.form.controls[this.field.key].enabled},enumerable:!0,configurable:!0}),e.prototype.autocompleteHighlights=function(e){var t=this.form.controls[this.field.key].value;return e.replace(new RegExp(t,"gi"),(function(e){return"<mark>"+e+"</mark>"}))},e.prototype.autocompleteSetValue=function(e){this.form.controls[this.field.key].patchValue(e),this.autocompleteListOpened=!1},e.prototype.newInsert=function(e){this.newInsertEvent.emit(e)},e.ctorParameters=function(){return[{type:D}]},g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"parentValue",void 0),g([t.Output()],e.prototype,"newInsertEvent",void 0),g([t.ViewChild("typeahead")],e.prototype,"autocompleteInput",void 0),e=g([t.Component({selector:"lib-typeahead",template:'<div class="form-group" [formGroup]="form">\r\n\r\n  <input #typeahead type="search" class="autocomplete" placeholder="Testo da cercare" [formControlName]="field.key"\r\n    autocomplete="off" [class.ng-valid]="isValidItem && (isTouched || isDirty)"\r\n    [class.ng-invalid]="field.required && !isValidItem && isFilled && (isTouched || isDirty)" (blur)="onBlur($event)"\r\n    (focus)="onFocus($event)">\r\n  <span class="autocomplete-icon" aria-hidden="true">\r\n    <svg class="icon icon-sm" *ngIf="isEnabled">\r\n      <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-search"></use>\r\n    </svg>\r\n  </span>\r\n  <ul class="autocomplete-list" id="{{ \'autocomplete-\' + field.key }}"\r\n    [class.autocomplete-list-show]="autocompleteListOpened">\r\n    <span class="autocomplete-list-item" *ngIf="isLoading">\r\n      <span class="autocomplete-list-text">\r\n        Ricerca...\r\n      </span>\r\n    </span>\r\n    <span class="autocomplete-list-item" *ngIf="(filteredData$ | async)?.length == 0 && !field.addNew">\r\n      <span class="autocomplete-list-text">\r\n        Nessun risultato trovato...\r\n      </span>\r\n    </span>\r\n    <li *ngIf="(filteredData$ | async)?.length == 0 && field.addNew">\r\n      <a href="javascript:void(0);" (click)="newInsert(field.key)">\r\n        <span class="autocomplete-list-text">\r\n          Nessun risultato! Aggiungi nuovo elemento...\r\n        </span>\r\n      </a>\r\n    </li>\r\n    <li *ngFor="let item of (filteredData$ | async)">\r\n      <a href="javascript:void(0);" (click)="autocompleteSetValue(item)">\r\n        <span class="autocomplete-list-text">\r\n          <span [innerHTML]="autocompleteHighlights(item[field.asyncParams.searchField])"></span>\r\n        </span>\r\n      </a>\r\n    </li>\r\n  </ul>\r\n  <label [for]="field.key" [class.active]="true">\r\n    {{ field.label }}\r\n    <span *ngIf="field.required"> *</span>\r\n  </label>\r\n  <lib-validation-messages [field]="field" [valid]="isValidItem && (isTouched || isDirty)"\r\n    [invalid]="field.required && !isValidItem && isFilled && (isTouched || isDirty)"></lib-validation-messages>\r\n</div>\r\n',styles:[".autocomplete.ng-valid{border-color:#28a745;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2300cc85' viewBox='0 0 460 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:center right calc(2.275em + .1875rem)}.autocomplete.ng-invalid{border-color:#dc3545;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f73e5a' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:center right calc(2.275em + .1875rem)}.autocomplete-list-item{padding:12px 24px;display:block;display:flex;justify-content:flex-start;align-items:flex-start;color:#455b71;line-height:1.2;font-size:1rem}.autocomplete-list-item:hover{color:#06c;text-decoration:none}.autocomplete-list-item:hover .icon{fill:#06c}.autocomplete-list-item:hover .autocomplete-list-text span{text-decoration:underline}.autocomplete-list-item:hover .autocomplete-list-text em,.autocomplete-list-item:hover mark{color:#06c}.autocomplete-list-item .avatar,.autocomplete-list-item .icon{margin-right:16px;flex-shrink:0}.autocomplete-list-item .icon{fill:#455b71}.autocomplete-list-item .autocomplete-list-text{margin-top:2px}.autocomplete-list-item .autocomplete-list-text em{font-style:normal;text-transform:uppercase;font-size:.75rem;color:#455b71;font-weight:600;letter-spacing:.1em;display:block;margin-top:4px}"]})],e)}(),N=function(){function e(){}return e.prototype.ngAfterViewInit=function(){$(".custom-select").selectpicker()},e.prototype.getFormattedValue=function(e){return this.field.formattedValueKey&&"object"==typeof e?e[this.field.formattedValueKey]:e},g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),e=g([t.Component({selector:"lib-select",template:'<div class="form-group" [formGroup]="form">\n  <div class="bootstrap-select-wrapper" [class.ng-valid]="valid" [class.ng-invalid]="invalid">\n    <select class="custom-select" [id]="field.key" [formControlName]="field.key" [required]="field.required">\n      <option value="" title="Scegli un\'opzione" data-content="Annulla <span class=\'reset-label\'></span>"></option>\n      <option *ngFor="let opt of field.options" [ngValue]="getFormattedValue(opt.value)">{{opt.key}}</option>\n    </select>\n    <label [for]="field.key">\n      {{ field.label }}\n      <span *ngIf="field.required"> *</span>\n    </label>\n    <lib-validation-messages [field]="field" [valid]="valid" [invalid]="invalid"></lib-validation-messages>\n  </div>\n</div>\n',styles:[".bootstrap-select-wrapper.ng-valid{border-color:#28a745;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2300cc85' viewBox='0 0 460 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:center right calc(1.275em + .1875rem)}.bootstrap-select-wrapper.ng-valid button .filter-option{position:relative}.bootstrap-select-wrapper.ng-valid button .filter-option:after{content:\"\";height:1px;position:absolute;left:0;right:0;background:#28a745!important;bottom:0;transition:.3s;transform-origin:bottom}.bootstrap-select-wrapper.ng-invalid{border-bottom:1px #dc3545;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f73e5a' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:top calc(.465em + .1875rem) right calc(1.275em + .1875rem)}.bootstrap-select-wrapper.ng-invalid button .filter-option{position:relative}.bootstrap-select-wrapper.ng-invalid button .filter-option:after{content:\"\";height:1px;position:absolute;left:0;right:0;background:#dc3545!important;bottom:0;transition:.3s;transform-origin:bottom}"]})],e)}(),A=function(){function e(){this.activeLabel=!1}return Object.defineProperty(e.prototype,"isActive",{get:function(){return this.form.controls[this.field.key].value},enumerable:!0,configurable:!0}),g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),e=g([t.Component({selector:"lib-textbox",template:'<div class="form-group" [formGroup]="form">\n  <input class="form-control" [type]="field.type" [id]="field.key" [formControlName]="field.key"\n    [required]="field.required">\n  <label class="fixedLabel" [for]="field.key" [class.active]="isActive">\n    {{ field.label }}\n    <span *ngIf="field.required"> *</span>\n  </label>\n  <lib-validation-messages [field]="field" [valid]="valid" [invalid]="invalid"></lib-validation-messages>\n</div>\n',styles:[".form-control.ng-touched.ng-valid{border-color:#28a745;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2300cc85' viewBox='0 0 192 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.ng-touched.ng-invalid{border-color:#dc3545;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f73e5a' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.fixedLabel{width:auto!important}"]})],e)}(),B=function(){function e(){}return e.prototype.ngOnInit=function(){this.field.value?this.form.get(this.field.key).setValue(this.field.value):this.min>0?this.form.get(this.field.key).setValue(this.min):this.form.get(this.field.key).setValue(0)},e.prototype.increseValue=function(e){e.stopPropagation();var t=(this.form.get(this.field.key).value||0)+1;(null===this.max||t<=this.max)&&this.form.get(this.field.key).setValue(t)},e.prototype.decreseValue=function(e){e.stopPropagation();var t=(this.form.get(this.field.key).value||0)-1;(null===this.min||t>=this.min)&&this.form.get(this.field.key).setValue(t)},g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),g([t.Input()],e.prototype,"min",void 0),g([t.Input()],e.prototype,"max",void 0),e=g([t.Component({selector:"lib-textbox-number",template:'<div class="form-number" [formGroup]="form">\n  <label [for]="field.key" class="input-number-label">\n    {{ field.label }}\n    <span *ngIf="field.required"> *</span>\n  </label>\n  <span>\n    <input type="number" [id]="field.key" [formControlName]="field.key"\n      [required]="field.required" [min]="min" [max]="max">\n    \x3c!-- <button type="button" class="input-number-add">\n      <span class="sr-only">Aumenta valore</span>\n    </button>\n    <button type="button" class="input-number-sub">\n      <span class="sr-only">Diminuisci valore</span>\n    </button> --\x3e\n  </span>\n  <lib-validation-messages [field]="field" [valid]="valid" [invalid]="invalid"></lib-validation-messages>\n</div>\n',styles:[".input-number-box.ng-touched.ng-valid{border-color:#28a745;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2300cc85' viewBox='0 0 460 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:center right calc(1.275em + .1875rem)}.input-number-box.ng-touched.ng-invalid{border-color:#dc3545;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f73e5a' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:center right calc(1.275em + .1875rem)}.form-number{margin-top:-1.2em}"]})],e)}(),q=function(){function e(){}return g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),e=g([t.Component({selector:"lib-checkbox",template:'<div [formGroup]="form">\n  <div class="form-check">\n    <input type="checkbox" value="" [id]="field.key" [formControlName]="field.key" [required]="field.required">\n    <label [for]="field.key">\n      {{ field.label }}\n    </label>\n    <lib-validation-messages [field]="field" [valid]="valid" [invalid]="invalid"></lib-validation-messages>\n</div>\n',styles:[""]})],e)}(),R=function(){function e(){}return Object.defineProperty(e.prototype,"isActive",{get:function(){return this.form.controls[this.field.key].value},enumerable:!0,configurable:!0}),g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),e=g([t.Component({selector:"lib-textarea",template:'<div class="form-group" [formGroup]="form">\n  <textarea [id]="field.key" rows="3" [formControlName]="field.key" [required]="field.required"></textarea>\n  <label class="fixedLabel" [for]="field.key" [class.active]="isActive">\n    {{ field.label }}\n    <span *ngIf="field.required"> *</span>\n  </label>\n  <lib-validation-messages [field]="field" [valid]="valid" [invalid]="invalid"></lib-validation-messages>\n</div>\n',styles:["textarea.ng-touched.ng-valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%2300cc85' viewBox='0 0 460 512'%3E%3Cpath d='M435.848 83.466L172.804 346.51l-96.652-96.652c-4.686-4.686-12.284-4.686-16.971 0l-28.284 28.284c-4.686 4.686-4.686 12.284 0 16.971l133.421 133.421c4.686 4.686 12.284 4.686 16.971 0l299.813-299.813c4.686-4.686 4.686-12.284 0-16.971l-28.284-28.284c-4.686-4.686-12.284-4.686-16.97 0z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}textarea.ng-touched.ng-invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23f73e5a' viewBox='0 0 384 512'%3E%3Cpath d='M231.6 256l130.1-130.1c4.7-4.7 4.7-12.3 0-17l-22.6-22.6c-4.7-4.7-12.3-4.7-17 0L192 216.4 61.9 86.3c-4.7-4.7-12.3-4.7-17 0l-22.6 22.6c-4.7 4.7-4.7 12.3 0 17L152.4 256 22.3 386.1c-4.7 4.7-4.7 12.3 0 17l22.6 22.6c4.7 4.7 12.3 4.7 17 0L192 295.6l130.1 130.1c4.7 4.7 12.3 4.7 17 0l22.6-22.6c4.7-4.7 4.7-12.3 0-17L231.6 256z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:calc(.75em + .375rem) calc(.75em + .375rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.fixedLabel{width:auto!important}"]})],e)}(),_=function(){function e(){}return g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),e=g([t.Component({selector:"lib-validation-messages",template:'<div class="valid-message" [class.message-textarea]="field.controlType === \'textarea\'"\n  *ngIf="valid">{{ field.validMessage }}</div>\n<div class="invalid-message" [class.message-textarea]="field.controlType === \'textarea\'"\n  *ngIf="invalid">{{ field.invalidMessage }}</div>\n',styles:[".invalid-message{display:block;width:100%;margin-top:.25rem;margin-left:.5rem;font-size:.777rem;color:#d9364f}.valid-message{display:block;width:100%;margin-top:.25rem;margin-left:.5rem;font-size:.777rem;color:#008758}.message-textarea{margin-top:-.1rem}"]})],e)}(),G=function(){function e(){}return e.prototype.ngAfterViewInit=function(){$(".it-date-datepicker").datepicker({inputFormat:["dd/MM/yyyy"],outputFormat:"dd/MM/yyyy"})},g([t.Input()],e.prototype,"field",void 0),g([t.Input()],e.prototype,"form",void 0),g([t.Input()],e.prototype,"valid",void 0),g([t.Input()],e.prototype,"invalid",void 0),e=g([t.Component({selector:"lib-date-picker",template:'<div class="it-datepicker-wrapper">\n  <div class="form-group" [formGroup]="form">\n    <input class="form-control it-date-datepicker" type="text" placeholder="inserisci la data in formato gg/mm/aaaa" [id]="field.key" [formControlName]="field.key" [required]="field.required">\n    <label [for]="field.key">\n      {{ field.label }}\n      <span *ngIf="field.required"> *</span>\n    </label>\n    <lib-validation-messages [field]="field" [valid]="valid" [invalid]="invalid"></lib-validation-messages>\n  </div>\n</div>\n',styles:[""]})],e)}(),K=function(){function e(){}return e=g([t.NgModule({imports:[n.CommonModule,r.ReactiveFormsModule],declarations:[T,N,A,B,q,R,_,G],exports:[T,N,A,B,q,R,_,G],providers:[D]})],e)}(),J=function(){function e(e){this.qcs=e,this.rows=[],this.submitEvent=new t.EventEmitter,this.newInsertEvent=new t.EventEmitter}return e.prototype.ngOnInit=function(){this.needConfirm=!1;var e=[].concat.apply([],h(this.rows.map((function(e){return e.items}))));this.form=this.qcs.toFormGroup(e,this.defaultState)},e.prototype.ngOnChanges=function(e){var t=this;e.defaultState&&this.defaultState&&Object.keys(this.defaultState).forEach((function(e){t.form.get(e)&&t.form.get(e).setValue(t.defaultState[e])}))},e.prototype.toggleConfirm=function(e){this.needConfirm=e},e.prototype.resetForm=function(){this.needConfirm=!1,this.form.reset()},Object.defineProperty(e.prototype,"flatValues",{get:function(){var e=this,t=Object.keys(this.form.getRawValue()),n=[].concat.apply([],h(this.rows.map((function(e){return e.items}))));return t.map((function(t){var i,r,a;if("object"!=typeof e.form.get(t).value)a=e.form.get(t).value;else{var o=(null===(r=null===(i=n.find((function(e){return e.key===t})))||void 0===i?void 0:i.asyncParams)||void 0===r?void 0:r.searchField)||n.find((function(e){return e.key===t})).formattedValueKey;a=e.form.get(t).value[o]}return{label:n.find((function(e){return e.key===t})).label,value:a}}))},enumerable:!0,configurable:!0}),e.prototype.onSubmit=function(){var e=this,t=this.form.getRawValue();this.defaultState&&Object.keys(this.defaultState).filter((function(e){return!Object.keys(t).includes(e)})).forEach((function(n){t[n]=e.defaultState[n]}));this.submitEvent.emit(t)},e.prototype.emitNewInsert=function(e){this.newInsertEvent.emit(e)},e.ctorParameters=function(){return[{type:F}]},g([t.Input()],e.prototype,"rows",void 0),g([t.Input()],e.prototype,"defaultState",void 0),g([t.Output()],e.prototype,"submitEvent",void 0),g([t.Output()],e.prototype,"newInsertEvent",void 0),e=g([t.Component({selector:"lib-dynamic-modal-form",template:'<div>\n  <form (ngSubmit)="onSubmit()" [formGroup]="form">\n\n    <div class="modal-body">\n\n      <div class="mt-3" *ngIf="!needConfirm">\n        <div *ngFor="let row of rows">\n          <div class="form-row">\n            <div *ngFor="let item of row.items" [ngClass]="item.class">\n              <lib-dynamic-form-element [field]="item" [form]="form" (newInsertEvent)="emitNewInsert($event)">\n              </lib-dynamic-form-element>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div *ngIf="needConfirm">\n\n        <div class="link-list-wrapper">\n          <ul class="link-list">\n            <li *ngFor="let elem of flatValues">\n              <span class="font-weight-bold">{{ elem.label }}: </span>\n              {{ elem.value }}\n            </li>\n          </ul>\n        </div>\n\n        <p class="font-weight-bold">Vuoi confermare il salvataggio?</p>\n\n      </div>\n\n    </div>\n\n    <div class="modal-footer mt-3">\n\n      <button class="btn btn-outline-secondary btn-sm" type="button" data-dismiss="modal" (click)="form.reset()"\n        *ngIf="!needConfirm">Annulla</button>\n      <button class="btn btn-primary btn-sm" type="button" [disabled]="!form.valid" (click)="toggleConfirm(true)"\n        *ngIf="!needConfirm">Salva</button>\n\n      <button class="btn btn-outline-secondary btn-sm" type="button" (click)="toggleConfirm(false)"\n        *ngIf="needConfirm">Annulla</button>\n      <button class="btn btn-primary btn-sm" type="submit" [disabled]="!form.valid"\n        *ngIf="needConfirm">Conferma</button>\n\n    </div>\n\n  </form>\n\n</div>\n',styles:[""]})],e)}(),H=function(){function e(){}return e=g([t.NgModule({imports:[n.CommonModule,r.ReactiveFormsModule,K],declarations:[M,z,J,j],providers:[F],exports:[M,z,J,j]})],e)}(),U=function(){function e(){this.geoJson=new t.EventEmitter,this.editableLayers=new c.FeatureGroup,this.options={position:"topright",draw:{marker:{icon:c.icon({iconSize:[25,41],iconAnchor:[13,41],iconUrl:"assets/marker-icon.png",shadowUrl:"assets/marker-shadow.png"})},rectangle:!1,polyline:!1,polygon:!0,circlemarker:!1},edit:{featureGroup:this.editableLayers,remove:!0}}}return e.prototype.ngOnInit=function(){var e=this;if(this.drawnLayers=[],this.map=c.map("mapid",{center:[this.latitude,this.longitude],zoom:6,scrollWheelZoom:!0}),c.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{maxZoom:19,attribution:'&copy; <a href="https://openstreetmap.org/copyright">OpenStreetMap</a> contributors'}).addTo(this.map),c.control.scale().addTo(this.map),p("it"),this.map.addLayer(this.editableLayers),this.enableEdit){var t=new c.Control.Draw(this.options);this.map.addControl(t)}this.map.on(c.Draw.Event.CREATED,(function(t){e.drawnLayers.push({layer:t.layer,type:t.layerType}),e.editableLayers.addLayer(t.layer),e.updateMapGeoJson()})),this.map.on(c.Draw.Event.DELETED,(function(t){t.layers.eachLayer((function(t){var n,i,r=-1;e.drawnLayers.forEach((function(e,n){e.layer._leaflet_id===t._leaflet_id&&(r=n)})),r>-1&&e.drawnLayers.splice(r,1),(null===(n=e.locationBoundingBox)||void 0===n?void 0:n._leaflet_id)===t._leaflet_id&&(e.locationBoundingBox=null),(null===(i=e.userCenterMarker)||void 0===i?void 0:i._leaflet_id)===t._leaflet_id&&(e.userCenterMarker=null)})),e.updateMapGeoJson()}));var n=c.geoJSON(this.geoJsonFeatureList);n.getLayers().forEach((function(t){e.drawnLayers.push({layer:t,type:"Feature"}),e.editableLayers.addLayer(t)})),this.map.fitBounds(n.getBounds())},e.prototype.ngOnChanges=function(e){var t,n;if(this.map&&(e.latitude||e.longitude)&&(this.map.setView([this.latitude,this.longitude],6),this.userCenterMarker&&this.map.removeLayer(this.userCenterMarker),this.userCenterMarker=c.marker([this.latitude,this.longitude],{icon:c.icon({iconSize:[25,41],iconAnchor:[13,41],iconUrl:"assets/marker-icon.png",shadowUrl:"assets/marker-shadow.png"})}),this.editableLayers.addLayer(this.userCenterMarker)),e.bboxPolygon&&(null===(t=this.bboxPolygon)||void 0===t?void 0:t.coordinates)){var i=this.getBoundBoxFromPolygon(this.bboxPolygon.coordinates);this.locationBoundingBox&&this.map.removeLayer(this.locationBoundingBox),this.map.fitBounds(i)}e.shapePolygon&&(null===(n=this.shapePolygon)||void 0===n?void 0:n.coordinates)&&(this.locationBoundingBox=c.geoJSON(this.shapePolygon),this.editableLayers.addLayer(this.locationBoundingBox)),this.updateMapGeoJson()},e.prototype.getBoundBoxFromPolygon=function(e){var t,n,i=[],r=[];try{for(var a=f(e[0]),o=a.next();!o.done;o=a.next()){var s=o.value;i.push(s[1]),r.push(s[0])}}catch(e){t={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}var l=Math.min.apply(null,i),c=Math.max.apply(null,i);return[[l,Math.min.apply(null,r)],[c,Math.max.apply(null,r)]]},e.prototype.layerToGeoJson=function(e,t){var n=e.toGeoJSON();if("circle"===t){var i=e.getRadius();n.properties.radius=i}return n},e.prototype.updateMapGeoJson=function(){var e=this,t=[];this.drawnLayers&&this.drawnLayers.forEach((function(n){var i=e.layerToGeoJson(n.layer,n.type);t.push(i)})),this.userCenterMarker&&t.push(this.userCenterMarker.toGeoJSON()),this.locationBoundingBox&&t.push(this.locationBoundingBox.toGeoJSON()),this.geoJson.emit(t)},g([t.Input()],e.prototype,"latitude",void 0),g([t.Input()],e.prototype,"longitude",void 0),g([t.Input()],e.prototype,"enableEdit",void 0),g([t.Input()],e.prototype,"bboxPolygon",void 0),g([t.Input()],e.prototype,"shapePolygon",void 0),g([t.Input()],e.prototype,"geoJsonFeatureList",void 0),g([t.Output()],e.prototype,"geoJson",void 0),e=g([t.Component({selector:"lib-leaflet-map",template:'<div id="mapid"></div>\r\n',styles:["#mapid{height:500px}"]})],e)}(),Z=function(){function e(){}return e=g([t.NgModule({imports:[n.CommonModule],declarations:[U],exports:[U]})],e)}(),W=function(){function e(){this.timeline=[]}return e.prototype.ngOnInit=function(){var e=this,t=this.timeHistory[this.timeHistory.length-1];this.lastElem={id:t.id,datetime:t.datetime,changes:t.changes,user:t.user,changesName:t.changes?this.getElemChanges(t.changes):null},this.timeHistory.forEach((function(t,n){n<e.timeHistory.length-1&&e.timeline.push({id:t.id,datetime:t.datetime,user:t.user,changes:t.changes,changesName:t.changes?e.getElemChanges(t.changes):null})}))},e.prototype.openDetailModal=function(e){var t=this,n=this.timeHistory.indexOf(this.timeHistory.find((function(t){return t.id===e.id}))),i=n-1>=0?this.timeline[n-1]:null;this.modalDetails=[],Object.keys(e.changes).forEach((function(n){t.changesDictionary[n]&&t.modalDetails.push({key:t.changesDictionary[n],value:"object"!=typeof e.changes[n]?e.changes[n]:t.translateObject(e.changes[n]),oldValue:"object"!=typeof e.changes[n]?null==i?void 0:i.changes[n]:t.translateObject(null==i?void 0:i.changes[n])})})),$("#timelineModal").modal("show")},e.prototype.translateObject=function(e){var t=this;if(e){var n={};return Object.keys(e).forEach((function(i){t.changesDictionary[i]?n[t.changesDictionary[i]]=e[i]:n[i]=e[i]})),n}return null},e.prototype.getElemChanges=function(e){var t=this,n=[];return Object.keys(e).forEach((function(e){t.changesDictionary[e]&&n.push(t.changesDictionary[e])})),n.join(", ")},g([t.Input()],e.prototype,"timeHistory",void 0),g([t.Input()],e.prototype,"changesDictionary",void 0),e=g([t.Component({selector:"lib-timeline",template:'<div class="it-timeline-wrapper">\n  <div class="row">\n\n    <div class="col-12" *ngFor="let item of timeline; let i = index">\n      <div class="timeline-element">\n        <div class="it-pin-wrapper it-evidence">\n          <div class="pin-icon">\n            <svg class="icon">\n              <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-code-circle"></use>\n            </svg>\n          </div>\n          <div class="pin-text"><span>{{ item.datetime }}</span></div>\n        </div>\n        <div class="card-wrapper">\n          <div class="card">\n            <div class="card-body">\n              <div class="category-top">\n                <p class="category" *ngIf="i == 0">Inserimento</p>\n                <p class="category" *ngIf="i > 0">Modifica</p>\n              </div>\n              <h5 class="card-title" *ngIf="item.changesName && i > 0">Sono state apportate le seguenti modifiche: </h5>\n              <p class="card-text" *ngIf="item.changesName && i > 0">{{ item.changesName }}</p>\n              <span class="card-signature">utente: {{ item.user }}</span>\n              <a class="read-more" href="javascript:void(0);" (click)="openDetailModal(item)">\n                <span class="text">Leggi di più</span>\n                <svg class="icon">\n                  <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-arrow-right"></use>\n                </svg>\n              </a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n    <div class="col-12">\n      <div class="timeline-element">\n        <span class="it-now-label d-none d-lg-flex">Ultimo Aggiornamento</span>\n        <div class="it-pin-wrapper it-now">\n          <div class="pin-icon">\n            <svg class="icon">\n              <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-code-circle"></use>\n            </svg>\n          </div>\n          <div class="pin-text"><span>{{ lastElem.datetime }}</span></div>\n        </div>\n        <div class="card-wrapper">\n          <div class="card">\n            <div class="card-body">\n              <div class="category-top">\n                <p class="category">Modifica</p>\n              </div>\n              <h5 class="card-title">Sono state apportate le seguenti modifiche: </h5>\n              <p class="card-text">{{ lastElem.changesName }}</p>\n              <span class="card-signature">utente: {{ lastElem.user }}</span>\n              <a class="read-more" href="javascript:void(0);" (click)="openDetailModal(lastElem)">\n                <span class="text">Leggi di più</span>\n                <svg class="icon">\n                  <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-arrow-right"></use>\n                </svg>\n              </a>\n            </div>\n          </div>\n        </div>\n      </div>\n    </div>\n\n  </div>\n</div>\n\n\x3c!-- Modal --\x3e\n<div class="modal fade" tabindex="-1" role="dialog" id="timelineModal" data-keyboard="false" data-backdrop="static">\n  <div class="modal-dialog modal-dialog-centered modal-xl" role="document">\n    <div class="modal-content">\n      <div class="modal-header">\n        <h5 class="modal-title">Elenco Modifiche Apportate:\n        </h5>\n        <button class="close" type="button" data-dismiss="modal" aria-label="Close">\n          <svg class="icon">\n            <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-close"></use>\n          </svg>\n        </button>\n      </div>\n      <div class="modal-body">\n        <div class="link-list-wrapper">\n          <ul class="link-list">\n            <li *ngFor="let elem of modalDetails">\n              <svg class="icon icon-primary">\n                <use xlink:href="./assets/bootstrap-italia/svg/sprite.svg#it-chevron-right"></use>\n              </svg>\n              <span class="font-weight-bold">{{ elem.key }}: </span>\n              {{ elem.value | json }}\n              <span class="font-italic" style="color: gray;" *ngIf="elem.oldValue">\n                (valore precedente: {{ elem.oldValue | json }})\n              </span>\n            </li>\n          </ul>\n        </div>\n      </div>\n    </div>\n  </div>\n</div>\n',styles:[""]})],e)}(),Y=function(){function e(){}return e=g([t.NgModule({declarations:[b,y,k,I,C,P,x,w,S,E,L,O,W],imports:[n.CommonModule,i.RouterModule,r.FormsModule,r.ReactiveFormsModule,H,Z],exports:[H,Z,b,y,k,I,C,S,P,L,O,W]})],e)}();(V=e.HeaderNavbarItemTypeEnum||(e.HeaderNavbarItemTypeEnum={})).link="link",V.dropdown="dropdown",V.megaMenu="megaMenu";var Q=function(){},X=function(){},ee=function(e){void 0===e&&(e={}),this.value=e.value,this.key=e.key||"",this.parentFieldKey=e.parentFieldKey||null,this.parentFieldFilterKey=e.parentFieldFilterKey||null,this.parentShowCondition=e.parentShowCondition||null,this.formattedValueKey=e.formattedValueKey||null,this.label=e.label||"",this.required=!!e.required,this.disabled=e.disabled||!1,this.order=void 0===e.order?1:e.order,this.controlType=e.controlType||"",this.type=e.type||"",this.class=e.class||"",this.validMessage=e.validMessage||"",this.invalidMessage=e.invalidMessage||"",this.min=e.min||null,this.max=e.max||null},te=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.controlType="textbox",n.type=t.type||"",n}return m(t,e),t}(ee),ne=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.controlType="textbox-number",n.type=t.type||"",n.min=t.min||0===t.min?t.min:null,n.max=t.max||0===t.max?t.max:null,n}return m(t,e),t}(ee),ie=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.controlType="textarea",n.type=t.type||"",n}return m(t,e),t}(ee),re=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.controlType="checkbox",n.type=t.type||"",n}return m(t,e),t}(ee),ae=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.controlType="dropdown",n.options=[],n.options=t.options||[],n}return m(t,e),t}(ee),oe=function(e){function t(t,n,i){void 0===t&&(t={}),void 0===i&&(i=!1);var r=e.call(this,t)||this;return r.controlType="autocomplete",r.options=[],r.options=t.options||[],r.addNew=i,r.asyncParams=n,r}return m(t,e),t}(ee),se=function(e){function t(t){void 0===t&&(t={});var n=e.call(this,t)||this;return n.controlType="datepicker",n}return m(t,e),t}(ee);e.AngularBootstrapItaliaModule=Y,e.BlankPageComponent=k,e.CheckboxComponent=q,e.ConfirmDialogComponent=j,e.DatePickerComponent=G,e.DialogComponent=O,e.DynamicFormComponent=M,e.DynamicFormElementComponent=z,e.DynamicFormModule=H,e.DynamicModalFormComponent=J,e.FooterComponent=y,e.FormAutocomplete=oe,e.FormBase=ee,e.FormComponentsModule=K,e.FormDatePicker=se,e.FormDropdown=ae,e.FormRow=X,e.FromCheckbox=re,e.FromTextarea=ie,e.FromTextbox=te,e.FromTextboxNumber=ne,e.HeaderComponent=b,e.LeafletMapComponent=U,e.LeafletModule=Z,e.LoginPageComponent=I,e.ResetPasswordPageComponent=C,e.SearchModalComponent=P,e.SelectComponent=N,e.StepperComponent=L,e.StepperElement=Q,e.TableComponent=S,e.TextareaComponent=R,e.TextboxComponent=A,e.TextboxNumberComponent=B,e.TimelineComponent=W,e.TypeaheadComponent=T,e.ValidationMessagesComponent=_,e.ɵa=x,e.ɵb=w,e.ɵc=E,e.ɵd=F,e.ɵe=D,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=angular-bootstrap-italia.umd.min.js.map