angular-bootstrap-italia
Version:
<p align="center"> <h1 align="center">Bootstrap Italia + Angular 9</h1>
17 lines • 93.9 kB
JavaScript
!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:'© <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